fix(i18n): localize hardcoded UI strings

close #1257
This commit is contained in:
edde746
2026-06-06 11:45:34 +02:00
parent f74314bbf0
commit 4c4b18e2cd
64 changed files with 4391 additions and 258 deletions
+80 -2
View File
@@ -52,6 +52,9 @@
"settings": "Настройки",
"mute": "Заглуши",
"ok": "OK",
"off": "Изкл.",
"seasonNumber": "Сезон ${number}",
"chapterNumber": "Глава ${number}",
"reconnect": "Свържи отново",
"exit": "Изход",
"viewAll": "Виж всички",
@@ -257,6 +260,10 @@
"dvConversionNative": "Нативно / изключено",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Използва засичане на възможностите на устройството и нормално fallback поведение",
"dvConversionNativeDescription": "Принуждава нативен DV7 и спира повторния опит за DV конвертиране",
"dvConversionDv81Description": "Принуждава inline RPU конвертиране към Dolby Vision профил 8.1",
"dvConversionHevcStripDescription": "Премахва Dolby Vision RPU/EL слоевете и подава обикновен HEVC",
"requireProfileSelectionOnOpen": "Питай за профил при отваряне на приложението",
"requireProfileSelectionOnOpenDescription": "Показвай избор на профил всеки път при отваряне на приложението",
"forceTvMode": "Принуди TV режим",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Задай клавишна комбинация за ${actionName}",
"clearShortcut": "Изчисти клавишната комбинация",
"noShortcutSet": "Няма зададена клавишна комбинация",
"currentShortcut": "Текуща комбинация:",
"actions": {
"playPause": "Пускане/пауза",
"volumeUp": "Увеличи звука",
@@ -352,6 +361,7 @@
"goToSeries": "Към сериала",
"goToSeason": "Към сезона",
"shufflePlay": "Разбъркано възпроизвеждане",
"shuffleNotAvailableOffline": "Разбърканото възпроизвеждане не е налично офлайн",
"fileInfo": "Информация за файла",
"deleteFromServer": "Изтрий от сървъра",
"confirmDelete": "Да се изтрие ли тази медия и файловете ѝ от вашия сървър?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Търсене на субтитри",
"language": "Език",
"noSubtitlesFound": "Не са намерени субтитри",
"downloadedSubtitle": "Изтеглени субтитри",
"noSubtitlesAvailable": "Няма налични субтитри",
"noAudioTracksAvailable": "Няма налични аудио писти",
"noTracksAvailable": "Няма налични писти",
"subtitleDownloaded": "Субтитърът е изтеглен",
"subtitleDownloadFailed": "Неуспешно изтегляне на субтитър",
"searchLanguages": "Търсене на езици..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN защита (по желание)",
"pinExplain": "Изисква се 4-цифрен PIN за смяна на профили.",
"continueButton": "Продължи",
"pinsDontMatch": "PIN кодовете не съвпадат"
"pinsDontMatch": "PIN кодовете не съвпадат",
"initializeServicesFailed": "Неуспешно инициализиране на услугите за профили"
},
"connections": {
"sectionTitle": "Връзки",
@@ -647,7 +662,8 @@
"rating": "Рейтинг",
"movie": "Филм",
"tvShow": "ТВ сериал",
"minutesLeft": "Остават ${minutes} мин"
"minutesLeft": "Остават ${minutes} мин",
"moreLikeThis": "Подобно на това"
},
"errors": {
"searchFailed": "Търсенето е неуспешно: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Библиотеки",
"fallbackTitle": "Библиотека",
"scanLibraryFiles": "Сканирай файловете на библиотеката",
"scanLibrary": "Сканирай библиотеката",
"analyze": "Анализирай",
@@ -788,6 +805,12 @@
"noChannels": "Няма налични канали",
"noDvr": "Няма конфигуриран DVR на нито един сървър",
"noPrograms": "Няма налични програмни данни",
"liveStreamFailed": "Потокът на живо се провали",
"unknownProgram": "Неизвестна програма",
"unknownHub": "Неизвестно",
"unknownError": "Неизвестна грешка",
"channelNumber": "Канал ${number}",
"unknownChannel": "Неизвестен канал",
"live": "НА ЖИВО",
"reloadGuide": "Презареди ТВ програмата",
"now": "Сега",
@@ -966,10 +989,19 @@
"deleteDownload": "Изтрий изтегляне",
"retryDownload": "Опитай изтеглянето отново",
"downloadQueued": "Изтеглянето е добавено в опашката",
"downloadResumed": "Изтеглянето е възобновено",
"serverErrorBitrate": "Грешка на сървъра: файлът може да надвишава лимита за отдалечен битрейт",
"episodesQueued": "${count} епизода са добавени в опашката за изтегляне",
"downloadDeleted": "Изтеглянето е изтрито",
"deleteConfirm": "Да се изтрие ли \"${title}\" от това устройство?",
"cancelledDownloadTitle": "Отменено изтегляне",
"cancelledDownloadMessage": "Това изтегляне беше отменено. Какво искате да направите?",
"allEpisodesAlreadyDownloaded": "Всички епизоди вече са изтеглени",
"resumeDownload": "Възобнови изтеглянето",
"cancelledDownload": "Отменено изтегляне",
"syncingFile": "${file} (синхронизира се ${status})",
"downloadedFileClickToComplete": "Изтеглен ${file} — щракнете за довършване",
"partialDownloadClickToComplete": "Частично изтеглено — щракнете за довършване",
"deleting": "Изтриване...",
"deletingWithProgress": "Изтриване на ${title}... (${current} от ${total})",
"queuedTooltip": "В опашката",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Дистанционно управление",
"connectedTo": "Свързан към ${name}",
"unknownDevice": "Непознато устройство",
"session": {
"startingServer": "Стартиране на сървър за дистанционно управление...",
"failedToCreate": "Неуспешно стартиране на сървър за дистанционно управление:",
@@ -1091,6 +1124,14 @@
"subtitles": "Субтитри",
"audio": "Аудио",
"searchHint": "Търсене на настолен компютър..."
},
"errors": {
"noNetworkInterface": "Не е намерен мрежов интерфейс",
"authenticationFailed": "Неуспешно удостоверяване",
"joinTimedOut": "Времето за присъединяване към сесията изтече",
"failedToConnectAnyAddress": "Неуспешно свързване към който и да е адрес",
"connectionLostAfterAttempts": "Връзката е загубена след ${attempts} опита",
"connectionLost": "Връзката е загубена"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Аудио passthrough",
"audioNormalization": "Нормализиране на силата на звука"
},
"performanceOverlay": {
"color": "Цвят",
"performance": "Производителност",
"buffer": "Буфер",
"app": "Приложение",
"decoder": "Декодер",
"rawDecoder": "Суров декодер",
"tunneling": "Тунелиране",
"aspect": "Съотношение",
"rotation": "Завъртане",
"dvSource": "DV източник",
"dvPath": "DV път",
"p7Conversion": "P7 конв.",
"sampleRate": "Честота",
"pixelFormat": "Пикселен формат",
"hwFormat": "HW формат",
"matrix": "Матрица",
"primaries": "Основни цветове",
"transfer": "Трансфер",
"renderFps": "Render FPS",
"displayFps": "Display FPS",
"avSync": "A/V синхр.",
"dropped": "Изпуснати",
"dvRpus": "DV RPU",
"dvRpuAverage": "Средно DV RPU",
"dvSampleAverage": "Средно DV семпл",
"maxLuma": "Макс. яркост",
"minLuma": "Мин. яркост",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Използван кеш",
"speed": "Скорост",
"player": "Плеър",
"memory": "Памет",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Външен плеър",
"useExternalPlayer": "Използвай външен плеър",
@@ -1114,6 +1191,7 @@
"systemDefault": "Системен по подразбиране",
"addCustomPlayer": "Добави персонален плейър",
"playerName": "Име на плейъра",
"playerNameHint": "Моят плеър",
"playerCommand": "Команда",
"playerPackage": "Име на пакет",
"playerUrlScheme": "URL схема",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Indstillinger",
"mute": "Lydløs",
"ok": "OK",
"off": "Fra",
"seasonNumber": "Sæson ${number}",
"chapterNumber": "Kapitel ${number}",
"reconnect": "Genopret forbindelse",
"exit": "Afslut",
"viewAll": "Vis alle",
@@ -257,6 +260,10 @@
"dvConversionNative": "Native / deaktiveret",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Brug enhedens kapabilitetsregistrering og normal fallbackadfærd",
"dvConversionNativeDescription": "Tving native DV7 og undertryk forsøg på DV-konvertering",
"dvConversionDv81Description": "Tving inline RPU-konvertering til Dolby Vision profil 8.1",
"dvConversionHevcStripDescription": "Fjern Dolby Vision RPU/EL-lag og brug almindelig HEVC",
"requireProfileSelectionOnOpen": "Spørg om profil ved åbning",
"requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åbnes",
"forceTvMode": "Gennemtving TV-tilstand",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Indstil genvej for ${actionName}",
"clearShortcut": "Ryd genvej",
"noShortcutSet": "Ingen genvej angivet",
"currentShortcut": "Nuværende genvej:",
"actions": {
"playPause": "Afspil/Pause",
"volumeUp": "Lydstyrke op",
@@ -352,6 +361,7 @@
"goToSeries": "Gå til serie",
"goToSeason": "Gå til sæson",
"shufflePlay": "Afspil tilfældigt",
"shuffleNotAvailableOffline": "Bland afspilning er ikke tilgængelig offline",
"fileInfo": "Filinfo",
"deleteFromServer": "Slet fra server",
"confirmDelete": "Slet dette medie og dets filer fra din server?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Søg undertekster",
"language": "Sprog",
"noSubtitlesFound": "Ingen undertekster fundet",
"downloadedSubtitle": "Downloadet",
"noSubtitlesAvailable": "Ingen undertekster tilgængelige",
"noAudioTracksAvailable": "Ingen lydspor tilgængelige",
"noTracksAvailable": "Ingen spor tilgængelige",
"subtitleDownloaded": "Undertekst downloadet",
"subtitleDownloadFailed": "Kunne ikke downloade undertekst",
"searchLanguages": "Søg sprog..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN-beskyttelse (valgfri)",
"pinExplain": "4-cifret PIN kræves for at skifte profiler.",
"continueButton": "Fortsæt",
"pinsDontMatch": "PIN-koder matcher ikke"
"pinsDontMatch": "PIN-koder matcher ikke",
"initializeServicesFailed": "Kunne ikke initialisere profiltjenester"
},
"connections": {
"sectionTitle": "Forbindelser",
@@ -647,7 +662,8 @@
"rating": "Bedømmelse",
"movie": "Film",
"tvShow": "TV-serie",
"minutesLeft": "${minutes} min tilbage"
"minutesLeft": "${minutes} min tilbage",
"moreLikeThis": "Mere som dette"
},
"errors": {
"searchFailed": "Søgning mislykkedes: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Biblioteker",
"fallbackTitle": "Bibliotek",
"scanLibraryFiles": "Scan biblioteksfiler",
"scanLibrary": "Scan bibliotek",
"analyze": "Analysér",
@@ -788,6 +805,12 @@
"noChannels": "Ingen kanaler tilgængelige",
"noDvr": "Ingen DVR konfigureret på nogen server",
"noPrograms": "Ingen programdata tilgængelig",
"liveStreamFailed": "Livestream mislykkedes",
"unknownProgram": "Ukendt program",
"unknownHub": "Ukendt",
"unknownError": "Ukendt fejl",
"channelNumber": "Kanal ${number}",
"unknownChannel": "Ukendt kanal",
"live": "LIVE",
"reloadGuide": "Genindlæs guide",
"now": "Nu",
@@ -966,12 +989,21 @@
"deleteDownload": "Slet download",
"retryDownload": "Prøv download igen",
"downloadQueued": "Download i kø",
"downloadResumed": "Download genoptaget",
"serverErrorBitrate": "Serverfejl: filen overskrider muligvis grænsen for ekstern bitrate",
"episodesQueued": "${count} episoder i downloadkø",
"downloadDeleted": "Download slettet",
"deleteConfirm": "Slet \"${title}\" fra denne enhed?",
"deletingWithProgress": "Sletter ${title}... (${current} af ${total})",
"cancelledDownloadTitle": "Annulleret download",
"cancelledDownloadMessage": "Denne download blev annulleret. Hvad vil du gøre?",
"allEpisodesAlreadyDownloaded": "Alle episoder er allerede downloadet",
"resumeDownload": "Genoptag download",
"cancelledDownload": "Annulleret download",
"syncingFile": "${file} (synkroniserer ${status})",
"downloadedFileClickToComplete": "${file} downloadet — klik for at fuldføre",
"partialDownloadClickToComplete": "Delvist downloadet — klik for at fuldføre",
"deleting": "Sletter...",
"deletingWithProgress": "Sletter ${title}... (${current} af ${total})",
"queuedTooltip": "I kø",
"queuedFilesTooltip": "I kø: ${files}",
"downloadingTooltip": "Downloader...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Fjernbetjening",
"connectedTo": "Forbundet til ${name}",
"unknownDevice": "Ukendt enhed",
"session": {
"startingServer": "Starter fjernserver...",
"failedToCreate": "Kunne ikke starte fjernserver:",
@@ -1091,6 +1124,14 @@
"subtitles": "Undertekster",
"audio": "Lyd",
"searchHint": "Søg på desktop..."
},
"errors": {
"noNetworkInterface": "Ingen netværksgrænseflade fundet",
"authenticationFailed": "Godkendelse mislykkedes",
"joinTimedOut": "Tidsgrænse for deltagelse i session overskredet",
"failedToConnectAnyAddress": "Kunne ikke oprette forbindelse til nogen adresse",
"connectionLostAfterAttempts": "Forbindelse mistet efter ${attempts} forsøg",
"connectionLost": "Forbindelse mistet"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Lyd-passthrough",
"audioNormalization": "Normalisér lydstyrke"
},
"performanceOverlay": {
"color": "Farve",
"performance": "Ydeevne",
"buffer": "Buffer",
"app": "App",
"decoder": "Dekoder",
"rawDecoder": "Rå dekoder",
"tunneling": "Tunneling",
"aspect": "Billedformat",
"rotation": "Rotation",
"dvSource": "DV-kilde",
"dvPath": "DV-sti",
"p7Conversion": "P7-konv.",
"sampleRate": "Samplingsrate",
"pixelFormat": "Pixelformat",
"hwFormat": "HW-format",
"matrix": "Matrix",
"primaries": "Primærfarver",
"transfer": "Transfer",
"renderFps": "Render FPS",
"displayFps": "Skærm-FPS",
"avSync": "A/V-synk.",
"dropped": "Tabte",
"dvRpus": "DV RPUer",
"dvRpuAverage": "DV RPU gns.",
"dvSampleAverage": "DV-sample gns.",
"maxLuma": "Maks. luma",
"minLuma": "Min. luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Brugt cache",
"speed": "Hastighed",
"player": "Afspiller",
"memory": "Hukommelse",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Ekstern afspiller",
"useExternalPlayer": "Brug ekstern afspiller",
@@ -1114,6 +1191,7 @@
"systemDefault": "Systemstandard",
"addCustomPlayer": "Tilføj brugerdefineret afspiller",
"playerName": "Afspillernavn",
"playerNameHint": "Min afspiller",
"playerCommand": "Kommando",
"playerPackage": "Pakkenavn",
"playerUrlScheme": "URL-skema",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Optionen",
"mute": "Stumm",
"ok": "OK",
"off": "Aus",
"seasonNumber": "Staffel ${number}",
"chapterNumber": "Kapitel ${number}",
"reconnect": "Erneut verbinden",
"exit": "Beenden",
"viewAll": "Alle anzeigen",
@@ -257,6 +260,10 @@
"dvConversionNative": "Nativ / deaktiviert",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Gerätefähigkeiten erkennen und normales Fallback-Verhalten verwenden",
"dvConversionNativeDescription": "Natives DV7 erzwingen und DV-Konvertierungsversuch unterdrücken",
"dvConversionDv81Description": "Inline-RPU-Konvertierung zu Dolby Vision Profil 8.1 erzwingen",
"dvConversionHevcStripDescription": "Dolby-Vision-RPU/EL-Schichten entfernen und reines HEVC ausgeben",
"requireProfileSelectionOnOpen": "Profil beim Öffnen abfragen",
"requireProfileSelectionOnOpenDescription": "Profilauswahl bei jedem Öffnen der App anzeigen",
"forceTvMode": "TV-Modus erzwingen",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Tastenkürzel festlegen für ${actionName}",
"clearShortcut": "Kürzel löschen",
"noShortcutSet": "Keine Tastenkombination festgelegt",
"currentShortcut": "Aktuelle Tastenkombination:",
"actions": {
"playPause": "Wiedergabe/Pause",
"volumeUp": "Lauter",
@@ -352,6 +361,7 @@
"goToSeries": "Zur Serie",
"goToSeason": "Zur Staffel",
"shufflePlay": "Zufallswiedergabe",
"shuffleNotAvailableOffline": "Zufallswiedergabe ist offline nicht verfügbar",
"fileInfo": "Dateiinfo",
"deleteFromServer": "Vom Server löschen",
"confirmDelete": "Dieses Medium und seine Dateien von deinem Server löschen?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Untertitel suchen",
"language": "Sprache",
"noSubtitlesFound": "Keine Untertitel gefunden",
"downloadedSubtitle": "Heruntergeladen",
"noSubtitlesAvailable": "Keine Untertitel verfügbar",
"noAudioTracksAvailable": "Keine Audiospuren verfügbar",
"noTracksAvailable": "Keine Spuren verfügbar",
"subtitleDownloaded": "Untertitel heruntergeladen",
"subtitleDownloadFailed": "Untertitel konnte nicht heruntergeladen werden",
"searchLanguages": "Sprachen suchen..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN-Schutz (optional)",
"pinExplain": "4-stellige PIN zum Profilwechsel erforderlich.",
"continueButton": "Weiter",
"pinsDontMatch": "PINs stimmen nicht überein"
"pinsDontMatch": "PINs stimmen nicht überein",
"initializeServicesFailed": "Profildienste konnten nicht initialisiert werden"
},
"connections": {
"sectionTitle": "Verbindungen",
@@ -647,7 +662,8 @@
"rating": "Altersfreigabe",
"movie": "Film",
"tvShow": "Serie",
"minutesLeft": "${minutes} Min übrig"
"minutesLeft": "${minutes} Min übrig",
"moreLikeThis": "Ähnliche Inhalte"
},
"errors": {
"searchFailed": "Suche fehlgeschlagen: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Mediatheken",
"fallbackTitle": "Mediathek",
"scanLibraryFiles": "Mediatheksdateien scannen",
"scanLibrary": "Mediathek scannen",
"analyze": "Analysieren",
@@ -788,6 +805,12 @@
"noChannels": "Keine Kanäle verfügbar",
"noDvr": "Kein DVR auf einem Server konfiguriert",
"noPrograms": "Keine Programmdaten verfügbar",
"liveStreamFailed": "Livestream fehlgeschlagen",
"unknownProgram": "Unbekannte Sendung",
"unknownHub": "Unbekannt",
"unknownError": "Unbekannter Fehler",
"channelNumber": "Kanal ${number}",
"unknownChannel": "Unbekannter Kanal",
"live": "LIVE",
"reloadGuide": "Programmführer neu laden",
"now": "Jetzt",
@@ -966,12 +989,21 @@
"deleteDownload": "Download löschen",
"retryDownload": "Download wiederholen",
"downloadQueued": "Download in Warteschlange",
"downloadResumed": "Download fortgesetzt",
"serverErrorBitrate": "Serverfehler: Datei überschreitet möglicherweise das Remote-Bitrate-Limit",
"episodesQueued": "${count} Episoden zum Download hinzugefügt",
"downloadDeleted": "Download gelöscht",
"deleteConfirm": "\"${title}\" von diesem Gerät löschen?",
"deletingWithProgress": "Lösche ${title}... (${current} von ${total})",
"cancelledDownloadTitle": "Abgebrochener Download",
"cancelledDownloadMessage": "Dieser Download wurde abgebrochen. Was möchtest du tun?",
"allEpisodesAlreadyDownloaded": "Alle Episoden sind bereits heruntergeladen",
"resumeDownload": "Download fortsetzen",
"cancelledDownload": "Abgebrochener Download",
"syncingFile": "${file} (${status} wird synchronisiert)",
"downloadedFileClickToComplete": "${file} heruntergeladen — zum Abschließen klicken",
"partialDownloadClickToComplete": "Teilweise heruntergeladen — zum Abschließen klicken",
"deleting": "Lösche...",
"deletingWithProgress": "Lösche ${title}... (${current} von ${total})",
"queuedTooltip": "In Warteschlange",
"queuedFilesTooltip": "In Warteschlange: ${files}",
"downloadingTooltip": "Lädt herunter...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Companion-Fernbedienung",
"connectedTo": "Verbunden mit ${name}",
"unknownDevice": "Unbekanntes Gerät",
"session": {
"startingServer": "Remote-Server wird gestartet...",
"failedToCreate": "Remote-Server konnte nicht gestartet werden:",
@@ -1091,6 +1124,14 @@
"subtitles": "Untertitel",
"audio": "Audio",
"searchHint": "Auf Desktop suchen..."
},
"errors": {
"noNetworkInterface": "Keine Netzwerkschnittstelle gefunden",
"authenticationFailed": "Authentifizierung fehlgeschlagen",
"joinTimedOut": "Zeitüberschreitung beim Beitreten zur Sitzung",
"failedToConnectAnyAddress": "Keine Verbindung zu einer Adresse möglich",
"connectionLostAfterAttempts": "Verbindung nach ${attempts} Versuchen verloren",
"connectionLost": "Verbindung verloren"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Audio-Durchleitung",
"audioNormalization": "Lautstärke normalisieren"
},
"performanceOverlay": {
"color": "Farbe",
"performance": "Leistung",
"buffer": "Puffer",
"app": "App",
"decoder": "Decoder",
"rawDecoder": "Raw-Decoder",
"tunneling": "Tunneling",
"aspect": "Seitenverhältnis",
"rotation": "Drehung",
"dvSource": "DV-Quelle",
"dvPath": "DV-Pfad",
"p7Conversion": "P7-Konv.",
"sampleRate": "Abtastrate",
"pixelFormat": "Pixelformat",
"hwFormat": "HW-Format",
"matrix": "Matrix",
"primaries": "Primärfarben",
"transfer": "Transfer",
"renderFps": "Render-FPS",
"displayFps": "Display-FPS",
"avSync": "A/V-Sync",
"dropped": "Verworfen",
"dvRpus": "DV-RPUs",
"dvRpuAverage": "DV-RPU Ø",
"dvSampleAverage": "DV-Sample Ø",
"maxLuma": "Max. Luma",
"minLuma": "Min. Luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache genutzt",
"speed": "Geschwindigkeit",
"player": "Player",
"memory": "Speicher",
"uiFps": "UI-FPS"
},
"externalPlayer": {
"title": "Externer Player",
"useExternalPlayer": "Externen Player verwenden",
@@ -1114,6 +1191,7 @@
"systemDefault": "Systemstandard",
"addCustomPlayer": "Benutzerdefinierten Player hinzufügen",
"playerName": "Playername",
"playerNameHint": "Mein Player",
"playerCommand": "Befehl",
"playerPackage": "Paketname",
"playerUrlScheme": "URL-Schema",
+80 -2
View File
@@ -52,6 +52,9 @@
"settings": "Settings",
"mute": "Mute",
"ok": "OK",
"off": "Off",
"seasonNumber": "Season ${number}",
"chapterNumber": "Chapter ${number}",
"reconnect": "Reconnect",
"exit": "Exit",
"viewAll": "View All",
@@ -257,6 +260,10 @@
"dvConversionNative": "Native / Disabled",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Use device capability detection and normal fallback behavior",
"dvConversionNativeDescription": "Force native DV7 and suppress DV conversion retry",
"dvConversionDv81Description": "Force inline RPU conversion to Dolby Vision profile 8.1",
"dvConversionHevcStripDescription": "Strip Dolby Vision RPU/EL layers and present plain HEVC",
"requireProfileSelectionOnOpen": "Ask for profile on app open",
"requireProfileSelectionOnOpenDescription": "Show profile selection every time the app is opened",
"forceTvMode": "Force TV mode",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Set Shortcut for ${actionName}",
"clearShortcut": "Clear shortcut",
"noShortcutSet": "No shortcut set",
"currentShortcut": "Current shortcut:",
"actions": {
"playPause": "Play/Pause",
"volumeUp": "Volume Up",
@@ -352,6 +361,7 @@
"goToSeries": "Go to series",
"goToSeason": "Go to season",
"shufflePlay": "Shuffle Play",
"shuffleNotAvailableOffline": "Shuffle not available offline",
"fileInfo": "File Info",
"deleteFromServer": "Delete from server",
"confirmDelete": "Delete this media and its files from your server?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Search Subtitles",
"language": "Language",
"noSubtitlesFound": "No subtitles found",
"downloadedSubtitle": "Downloaded",
"noSubtitlesAvailable": "No subtitles available",
"noAudioTracksAvailable": "No audio tracks available",
"noTracksAvailable": "No tracks available",
"subtitleDownloaded": "Subtitle downloaded",
"subtitleDownloadFailed": "Failed to download subtitle",
"searchLanguages": "Search languages..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN protection (optional)",
"pinExplain": "4-digit PIN required to switch profiles.",
"continueButton": "Continue",
"pinsDontMatch": "PINs don't match"
"pinsDontMatch": "PINs don't match",
"initializeServicesFailed": "Failed to initialize profile services"
},
"connections": {
"sectionTitle": "Connections",
@@ -647,7 +662,8 @@
"rating": "Rating",
"movie": "Movie",
"tvShow": "TV Show",
"minutesLeft": "${minutes} min left"
"minutesLeft": "${minutes} min left",
"moreLikeThis": "More Like This"
},
"errors": {
"searchFailed": "Search failed: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Libraries",
"fallbackTitle": "Library",
"scanLibraryFiles": "Scan Library Files",
"scanLibrary": "Scan Library",
"analyze": "Analyze",
@@ -788,6 +805,12 @@
"noChannels": "No channels available",
"noDvr": "No DVR configured on any server",
"noPrograms": "No program data available",
"liveStreamFailed": "Live stream failed",
"unknownProgram": "Unknown Program",
"unknownHub": "Unknown",
"unknownError": "Unknown error",
"channelNumber": "Channel ${number}",
"unknownChannel": "Unknown channel",
"live": "LIVE",
"reloadGuide": "Reload Guide",
"now": "Now",
@@ -966,10 +989,19 @@
"deleteDownload": "Delete download",
"retryDownload": "Retry download",
"downloadQueued": "Download queued",
"downloadResumed": "Download resumed",
"serverErrorBitrate": "Server error: file may exceed the remote bitrate limit",
"episodesQueued": "${count} episodes queued for download",
"downloadDeleted": "Download deleted",
"deleteConfirm": "Delete \"${title}\" from this device?",
"cancelledDownloadTitle": "Cancelled Download",
"cancelledDownloadMessage": "This download was cancelled. What would you like to do?",
"allEpisodesAlreadyDownloaded": "All episodes already downloaded",
"resumeDownload": "Resume download",
"cancelledDownload": "Cancelled download",
"syncingFile": "${file} (syncing ${status})",
"downloadedFileClickToComplete": "Downloaded ${file} - Click to complete",
"partialDownloadClickToComplete": "Partially downloaded - Click to complete",
"deleting": "Deleting...",
"deletingWithProgress": "Deleting ${title}... (${current} of ${total})",
"queuedTooltip": "Queued",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Companion Remote",
"connectedTo": "Connected to ${name}",
"unknownDevice": "Unknown Device",
"session": {
"startingServer": "Starting remote server...",
"failedToCreate": "Failed to start remote server:",
@@ -1091,6 +1124,14 @@
"subtitles": "Subtitles",
"audio": "Audio",
"searchHint": "Search on desktop..."
},
"errors": {
"noNetworkInterface": "No network interface found",
"authenticationFailed": "Authentication failed",
"joinTimedOut": "Timed out joining session",
"failedToConnectAnyAddress": "Failed to connect to any address",
"connectionLostAfterAttempts": "Connection lost after ${attempts} attempts",
"connectionLost": "Connection lost"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Audio Passthrough",
"audioNormalization": "Normalize Loudness"
},
"performanceOverlay": {
"color": "Color",
"performance": "Performance",
"buffer": "Buffer",
"app": "App",
"decoder": "Decoder",
"rawDecoder": "Raw Decoder",
"tunneling": "Tunneling",
"aspect": "Aspect",
"rotation": "Rotation",
"dvSource": "DV Source",
"dvPath": "DV Path",
"p7Conversion": "P7 Conv",
"sampleRate": "Sample Rate",
"pixelFormat": "Pixel Fmt",
"hwFormat": "HW Fmt",
"matrix": "Matrix",
"primaries": "Primaries",
"transfer": "Transfer",
"renderFps": "Render FPS",
"displayFps": "Display FPS",
"avSync": "A/V Sync",
"dropped": "Dropped",
"dvRpus": "DV RPUs",
"dvRpuAverage": "DV RPU Avg",
"dvSampleAverage": "DV Sample Avg",
"maxLuma": "Max Luma",
"minLuma": "Min Luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache Used",
"speed": "Speed",
"player": "Player",
"memory": "Memory",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "External Player",
"useExternalPlayer": "Use External Player",
@@ -1114,6 +1191,7 @@
"systemDefault": "System Default",
"addCustomPlayer": "Add Custom Player",
"playerName": "Player Name",
"playerNameHint": "My Player",
"playerCommand": "Command",
"playerPackage": "Package Name",
"playerUrlScheme": "URL Scheme",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Ajustes",
"mute": "Silencio",
"ok": "OK",
"off": "Desactivado",
"seasonNumber": "Temporada ${number}",
"chapterNumber": "Capítulo ${number}",
"reconnect": "Reconectar",
"exit": "Salir",
"viewAll": "Ver todo",
@@ -257,6 +260,10 @@
"dvConversionNative": "Nativo / desactivado",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Usar detección de capacidades del dispositivo y el comportamiento de respaldo normal",
"dvConversionNativeDescription": "Forzar DV7 nativo y suprimir el reintento de conversión DV",
"dvConversionDv81Description": "Forzar conversión RPU en línea a Dolby Vision perfil 8.1",
"dvConversionHevcStripDescription": "Quitar capas RPU/EL de Dolby Vision y presentar HEVC normal",
"requireProfileSelectionOnOpen": "Pedir perfil al abrir la app",
"requireProfileSelectionOnOpenDescription": "Mostrar selección de perfil cada vez que se abre la aplicación",
"forceTvMode": "Forzar modo TV",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Establecer atajo para ${actionName}",
"clearShortcut": "Borrar atajo",
"noShortcutSet": "Sin atajo asignado",
"currentShortcut": "Atajo actual:",
"actions": {
"playPause": "Reproducir/Pausar",
"volumeUp": "Subir Volumen",
@@ -352,6 +361,7 @@
"goToSeries": "Ir a la serie",
"goToSeason": "Ir a la temporada",
"shufflePlay": "Reproducción Aleatoria",
"shuffleNotAvailableOffline": "La reproducción aleatoria no está disponible sin conexión",
"fileInfo": "Información del Archivo",
"deleteFromServer": "Eliminar del servidor",
"confirmDelete": "¿Eliminar este medio y sus archivos de tu servidor?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Buscar subtítulos",
"language": "Idioma",
"noSubtitlesFound": "No se encontraron subtítulos",
"downloadedSubtitle": "Descargado",
"noSubtitlesAvailable": "No hay subtítulos disponibles",
"noAudioTracksAvailable": "No hay pistas de audio disponibles",
"noTracksAvailable": "No hay pistas disponibles",
"subtitleDownloaded": "Subtítulo descargado",
"subtitleDownloadFailed": "Error al descargar subtítulo",
"searchLanguages": "Buscar idiomas..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "Protección con PIN (opcional)",
"pinExplain": "Se requiere PIN de 4 dígitos para cambiar de perfil.",
"continueButton": "Continuar",
"pinsDontMatch": "Los PIN no coinciden"
"pinsDontMatch": "Los PIN no coinciden",
"initializeServicesFailed": "No se pudieron inicializar los servicios de perfil"
},
"connections": {
"sectionTitle": "Conexiones",
@@ -647,7 +662,8 @@
"rating": "Calificación",
"movie": "Película",
"tvShow": "Serie de TV",
"minutesLeft": "quedan ${minutes} min"
"minutesLeft": "quedan ${minutes} min",
"moreLikeThis": "Más como esto"
},
"errors": {
"searchFailed": "Error en la búsqueda: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Bibliotecas",
"fallbackTitle": "Biblioteca",
"scanLibraryFiles": "Escanear Archivos de la Biblioteca",
"scanLibrary": "Escanear Biblioteca",
"analyze": "Analizar",
@@ -788,6 +805,12 @@
"noChannels": "No hay canales disponibles",
"noDvr": "No hay DVR configurado en ningún servidor",
"noPrograms": "No hay datos de programación disponibles",
"liveStreamFailed": "Falló la transmisión en vivo",
"unknownProgram": "Programa desconocido",
"unknownHub": "Desconocido",
"unknownError": "Error desconocido",
"channelNumber": "Canal ${number}",
"unknownChannel": "Canal desconocido",
"live": "EN VIVO",
"reloadGuide": "Recargar guía",
"now": "Ahora",
@@ -966,12 +989,21 @@
"deleteDownload": "Eliminar descarga",
"retryDownload": "Reintentar descarga",
"downloadQueued": "Descarga en cola",
"downloadResumed": "Descarga reanudada",
"serverErrorBitrate": "Error del servidor: el archivo puede superar el límite de bitrate remoto",
"episodesQueued": "${count} episodios en cola para descargar",
"downloadDeleted": "Descarga eliminada",
"deleteConfirm": "¿Eliminar \"${title}\" de este dispositivo?",
"deletingWithProgress": "Eliminando ${title}... (${current} de ${total})",
"cancelledDownloadTitle": "Descarga cancelada",
"cancelledDownloadMessage": "Esta descarga se canceló. ¿Qué quieres hacer?",
"allEpisodesAlreadyDownloaded": "Todos los episodios ya están descargados",
"resumeDownload": "Reanudar descarga",
"cancelledDownload": "Descarga cancelada",
"syncingFile": "${file} (sincronizando ${status})",
"downloadedFileClickToComplete": "${file} descargado — haz clic para completar",
"partialDownloadClickToComplete": "Descarga parcial — haz clic para completar",
"deleting": "Eliminando...",
"deletingWithProgress": "Eliminando ${title}... (${current} de ${total})",
"queuedTooltip": "En cola",
"queuedFilesTooltip": "En cola: ${files}",
"downloadingTooltip": "Descargando...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Control remoto",
"connectedTo": "Conectado a ${name}",
"unknownDevice": "Dispositivo desconocido",
"session": {
"startingServer": "Iniciando servidor remoto...",
"failedToCreate": "Error al iniciar el servidor remoto:",
@@ -1091,6 +1124,14 @@
"subtitles": "Subtítulos",
"audio": "Audio",
"searchHint": "Buscar en escritorio..."
},
"errors": {
"noNetworkInterface": "No se encontró ninguna interfaz de red",
"authenticationFailed": "Autenticación fallida",
"joinTimedOut": "Se agotó el tiempo al unirse a la sesión",
"failedToConnectAnyAddress": "No se pudo conectar a ninguna dirección",
"connectionLostAfterAttempts": "Conexión perdida tras ${attempts} intentos",
"connectionLost": "Conexión perdida"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Audio Passthrough",
"audioNormalization": "Normalizar volumen"
},
"performanceOverlay": {
"color": "Color",
"performance": "Rendimiento",
"buffer": "Búfer",
"app": "App",
"decoder": "Decodificador",
"rawDecoder": "Decodificador raw",
"tunneling": "Túnel",
"aspect": "Aspecto",
"rotation": "Rotación",
"dvSource": "Origen DV",
"dvPath": "Ruta DV",
"p7Conversion": "Conv. P7",
"sampleRate": "Frecuencia de muestreo",
"pixelFormat": "Formato de píxel",
"hwFormat": "Formato HW",
"matrix": "Matriz",
"primaries": "Primarios",
"transfer": "Transferencia",
"renderFps": "FPS render",
"displayFps": "FPS pantalla",
"avSync": "Sincronía A/V",
"dropped": "Descartados",
"dvRpus": "DV RPUs",
"dvRpuAverage": "Prom. DV RPU",
"dvSampleAverage": "Prom. muestra DV",
"maxLuma": "Luma máx.",
"minLuma": "Luma mín.",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Caché usada",
"speed": "Velocidad",
"player": "Reproductor",
"memory": "Memoria",
"uiFps": "FPS UI"
},
"externalPlayer": {
"title": "Reproductor externo",
"useExternalPlayer": "Usar reproductor externo",
@@ -1114,6 +1191,7 @@
"systemDefault": "Predeterminado del sistema",
"addCustomPlayer": "Añadir reproductor personalizado",
"playerName": "Nombre del reproductor",
"playerNameHint": "Mi reproductor",
"playerCommand": "Comando",
"playerPackage": "Nombre del paquete",
"playerUrlScheme": "Esquema URL",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Réglages",
"mute": "Muet",
"ok": "OK",
"off": "Désactivé",
"seasonNumber": "Saison ${number}",
"chapterNumber": "Chapitre ${number}",
"reconnect": "Reconnecter",
"exit": "Quitter",
"viewAll": "Tout afficher",
@@ -257,6 +260,10 @@
"dvConversionNative": "Natif / désactivé",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Utiliser la détection des capacités de lappareil et le comportement de repli normal",
"dvConversionNativeDescription": "Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV",
"dvConversionDv81Description": "Forcer la conversion RPU intégrée vers Dolby Vision profil 8.1",
"dvConversionHevcStripDescription": "Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple",
"requireProfileSelectionOnOpen": "Demander le profil à l'ouverture",
"requireProfileSelectionOnOpenDescription": "Afficher la sélection de profil à chaque ouverture de l'application",
"forceTvMode": "Forcer le mode TV",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Définir un raccourci pour ${actionName}",
"clearShortcut": "Effacer le raccourci",
"noShortcutSet": "Aucun raccourci défini",
"currentShortcut": "Raccourci actuel :",
"actions": {
"playPause": "Lecture/Pause",
"volumeUp": "Augmenter le volume",
@@ -352,6 +361,7 @@
"goToSeries": "Aller à la série",
"goToSeason": "Aller à la saison",
"shufflePlay": "Lecture aléatoire",
"shuffleNotAvailableOffline": "La lecture aléatoire nest pas disponible hors ligne",
"fileInfo": "Informations sur le fichier",
"deleteFromServer": "Supprimer du serveur",
"confirmDelete": "Supprimer ce média et ses fichiers de votre serveur ?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Rechercher des sous-titres",
"language": "Langue",
"noSubtitlesFound": "Aucun sous-titre trouvé",
"downloadedSubtitle": "Téléchargé",
"noSubtitlesAvailable": "Aucun sous-titre disponible",
"noAudioTracksAvailable": "Aucune piste audio disponible",
"noTracksAvailable": "Aucune piste disponible",
"subtitleDownloaded": "Sous-titre téléchargé",
"subtitleDownloadFailed": "Échec du téléchargement du sous-titre",
"searchLanguages": "Rechercher des langues..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "Protection par PIN (optionnelle)",
"pinExplain": "PIN à 4 chiffres requis pour changer de profil.",
"continueButton": "Continuer",
"pinsDontMatch": "Les PIN ne correspondent pas"
"pinsDontMatch": "Les PIN ne correspondent pas",
"initializeServicesFailed": "Impossible dinitialiser les services de profil"
},
"connections": {
"sectionTitle": "Connexions",
@@ -647,7 +662,8 @@
"rating": "Évaluation",
"movie": "Film",
"tvShow": "Show TV",
"minutesLeft": "${minutes} min restantes"
"minutesLeft": "${minutes} min restantes",
"moreLikeThis": "Plus de contenus similaires"
},
"errors": {
"searchFailed": "Recherche échouée: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Bibliothèques",
"fallbackTitle": "Bibliothèque",
"scanLibraryFiles": "Scanner les fichiers de la bibliothèque",
"scanLibrary": "Scanner la bibliothèque",
"analyze": "Analyser",
@@ -788,6 +805,12 @@
"noChannels": "Aucune chaîne disponible",
"noDvr": "Aucun DVR configuré sur les serveurs",
"noPrograms": "Aucune donnée de programme disponible",
"liveStreamFailed": "Échec du direct",
"unknownProgram": "Programme inconnu",
"unknownHub": "Inconnu",
"unknownError": "Erreur inconnue",
"channelNumber": "Chaîne ${number}",
"unknownChannel": "Chaîne inconnue",
"live": "EN DIRECT",
"reloadGuide": "Recharger le guide",
"now": "Maintenant",
@@ -966,12 +989,21 @@
"deleteDownload": "Supprimer le téléchargement",
"retryDownload": "Réessayer le téléchargement",
"downloadQueued": "Téléchargement en attente",
"downloadResumed": "Téléchargement repris",
"serverErrorBitrate": "Erreur serveur : le fichier peut dépasser la limite de bitrate distant",
"episodesQueued": "${count} épisodes en attente de téléchargement",
"downloadDeleted": "Télécharger supprimé",
"deleteConfirm": "Supprimer \"${title}\" de cet appareil ?",
"deletingWithProgress": "Suppression de ${title}... (${current} sur ${total})",
"cancelledDownloadTitle": "Téléchargement annulé",
"cancelledDownloadMessage": "Ce téléchargement a été annulé. Que voulez-vous faire ?",
"allEpisodesAlreadyDownloaded": "Tous les épisodes sont déjà téléchargés",
"resumeDownload": "Reprendre le téléchargement",
"cancelledDownload": "Téléchargement annulé",
"syncingFile": "${file} (synchronisation ${status})",
"downloadedFileClickToComplete": "${file} téléchargé — cliquez pour terminer",
"partialDownloadClickToComplete": "Téléchargement partiel — cliquez pour terminer",
"deleting": "Suppression...",
"deletingWithProgress": "Suppression de ${title}... (${current} sur ${total})",
"queuedTooltip": "En attente",
"queuedFilesTooltip": "En attente : ${files}",
"downloadingTooltip": "Téléchargement...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Télécommande compagnon",
"connectedTo": "Connecté à ${name}",
"unknownDevice": "Appareil inconnu",
"session": {
"startingServer": "Démarrage du serveur distant...",
"failedToCreate": "Échec du démarrage du serveur distant :",
@@ -1091,6 +1124,14 @@
"subtitles": "Sous-titres",
"audio": "Audio",
"searchHint": "Rechercher sur le bureau..."
},
"errors": {
"noNetworkInterface": "Aucune interface réseau trouvée",
"authenticationFailed": "Échec de lauthentification",
"joinTimedOut": "Délai dépassé lors de la connexion à la session",
"failedToConnectAnyAddress": "Impossible de se connecter à une adresse",
"connectionLostAfterAttempts": "Connexion perdue après ${attempts} tentatives",
"connectionLost": "Connexion perdue"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Audio Pass-Through",
"audioNormalization": "Normaliser le volume"
},
"performanceOverlay": {
"color": "Couleur",
"performance": "Performances",
"buffer": "Tampon",
"app": "App",
"decoder": "Décodeur",
"rawDecoder": "Décodeur brut",
"tunneling": "Tunneling",
"aspect": "Format",
"rotation": "Rotation",
"dvSource": "Source DV",
"dvPath": "Chemin DV",
"p7Conversion": "Conv. P7",
"sampleRate": "Fréquence",
"pixelFormat": "Fmt pixel",
"hwFormat": "Fmt HW",
"matrix": "Matrice",
"primaries": "Primaires",
"transfer": "Transfert",
"renderFps": "FPS rendu",
"displayFps": "FPS écran",
"avSync": "Synchro A/V",
"dropped": "Perdues",
"dvRpus": "DV RPU",
"dvRpuAverage": "Moy. DV RPU",
"dvSampleAverage": "Moy. échant. DV",
"maxLuma": "Luma max.",
"minLuma": "Luma min.",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache utilisé",
"speed": "Vitesse",
"player": "Lecteur",
"memory": "Mémoire",
"uiFps": "FPS UI"
},
"externalPlayer": {
"title": "Lecteur externe",
"useExternalPlayer": "Utiliser un lecteur externe",
@@ -1114,6 +1191,7 @@
"systemDefault": "Par défaut du système",
"addCustomPlayer": "Ajouter un lecteur personnalisé",
"playerName": "Nom du lecteur",
"playerNameHint": "Mon lecteur",
"playerCommand": "Commande",
"playerPackage": "Nom du paquet",
"playerUrlScheme": "Schéma URL",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Opzioni",
"mute": "Muto",
"ok": "OK",
"off": "Disattivato",
"seasonNumber": "Stagione ${number}",
"chapterNumber": "Capitolo ${number}",
"reconnect": "Riconnetti",
"exit": "Esci",
"viewAll": "Mostra tutto",
@@ -257,6 +260,10 @@
"dvConversionNative": "Nativo / disattivato",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Usa il rilevamento delle capacità del dispositivo e il normale comportamento di fallback",
"dvConversionNativeDescription": "Forza DV7 nativo e sopprime il nuovo tentativo di conversione DV",
"dvConversionDv81Description": "Forza la conversione RPU inline a Dolby Vision profilo 8.1",
"dvConversionHevcStripDescription": "Rimuove i livelli RPU/EL Dolby Vision e presenta HEVC semplice",
"requireProfileSelectionOnOpen": "Chiedi profilo all'apertura",
"requireProfileSelectionOnOpenDescription": "Mostra la selezione del profilo ogni volta che l'app viene aperta",
"forceTvMode": "Forza modalità TV",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Imposta scorciatoia per ${actionName}",
"clearShortcut": "Elimina scorciatoia",
"noShortcutSet": "Nessuna scorciatoia impostata",
"currentShortcut": "Scorciatoia attuale:",
"actions": {
"playPause": "Riproduci/Pausa",
"volumeUp": "Alza volume",
@@ -352,6 +361,7 @@
"goToSeries": "Vai alle serie",
"goToSeason": "Vai alla stagione",
"shufflePlay": "Riproduzione casuale",
"shuffleNotAvailableOffline": "Riproduzione casuale non disponibile offline",
"fileInfo": "Info sul file",
"deleteFromServer": "Elimina dal server",
"confirmDelete": "Eliminare questo media e i suoi file dal server?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Cerca sottotitoli",
"language": "Lingua",
"noSubtitlesFound": "Nessun sottotitolo trovato",
"downloadedSubtitle": "Scaricato",
"noSubtitlesAvailable": "Nessun sottotitolo disponibile",
"noAudioTracksAvailable": "Nessuna traccia audio disponibile",
"noTracksAvailable": "Nessuna traccia disponibile",
"subtitleDownloaded": "Sottotitolo scaricato",
"subtitleDownloadFailed": "Impossibile scaricare il sottotitolo",
"searchLanguages": "Cerca lingue..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "Protezione PIN (opzionale)",
"pinExplain": "PIN a 4 cifre richiesto per cambiare profilo.",
"continueButton": "Continua",
"pinsDontMatch": "I PIN non corrispondono"
"pinsDontMatch": "I PIN non corrispondono",
"initializeServicesFailed": "Impossibile inizializzare i servizi profilo"
},
"connections": {
"sectionTitle": "Connessioni",
@@ -647,7 +662,8 @@
"rating": "Classificazione",
"movie": "Film",
"tvShow": "Serie TV",
"minutesLeft": "${minutes} minuti rimanenti"
"minutesLeft": "${minutes} minuti rimanenti",
"moreLikeThis": "Altri contenuti simili"
},
"errors": {
"searchFailed": "Ricerca fallita: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Librerie",
"fallbackTitle": "Libreria",
"scanLibraryFiles": "Scansiona file libreria",
"scanLibrary": "Scansiona libreria",
"analyze": "Analizza",
@@ -788,6 +805,12 @@
"noChannels": "Nessun canale disponibile",
"noDvr": "Nessun DVR configurato su nessun server",
"noPrograms": "Nessun dato di programma disponibile",
"liveStreamFailed": "Streaming live non riuscito",
"unknownProgram": "Programma sconosciuto",
"unknownHub": "Sconosciuto",
"unknownError": "Errore sconosciuto",
"channelNumber": "Canale ${number}",
"unknownChannel": "Canale sconosciuto",
"live": "IN DIRETTA",
"reloadGuide": "Ricarica guida",
"now": "Ora",
@@ -966,12 +989,21 @@
"deleteDownload": "Elimina download",
"retryDownload": "Riprova download",
"downloadQueued": "Download in coda",
"downloadResumed": "Download ripreso",
"serverErrorBitrate": "Errore server: il file può superare il limite di bitrate remoto",
"episodesQueued": "${count} episodi in coda per il download",
"downloadDeleted": "Download eliminato",
"deleteConfirm": "Eliminare \"${title}\" da questo dispositivo?",
"deletingWithProgress": "Eliminazione di ${title}... (${current} di ${total})",
"cancelledDownloadTitle": "Download annullato",
"cancelledDownloadMessage": "Questo download è stato annullato. Cosa vuoi fare?",
"allEpisodesAlreadyDownloaded": "Tutti gli episodi sono già stati scaricati",
"resumeDownload": "Riprendi download",
"cancelledDownload": "Download annullato",
"syncingFile": "${file} (sincronizzazione ${status})",
"downloadedFileClickToComplete": "${file} scaricato — fai clic per completare",
"partialDownloadClickToComplete": "Scaricato parzialmente — fai clic per completare",
"deleting": "Eliminazione...",
"deletingWithProgress": "Eliminazione di ${title}... (${current} di ${total})",
"queuedTooltip": "In coda",
"queuedFilesTooltip": "In coda: ${files}",
"downloadingTooltip": "Download in corso...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Telecomando",
"connectedTo": "Connesso a ${name}",
"unknownDevice": "Dispositivo sconosciuto",
"session": {
"startingServer": "Avvio del server remoto...",
"failedToCreate": "Impossibile avviare il server remoto:",
@@ -1091,6 +1124,14 @@
"subtitles": "Sottotitoli",
"audio": "Audio",
"searchHint": "Cerca sul desktop..."
},
"errors": {
"noNetworkInterface": "Nessuna interfaccia di rete trovata",
"authenticationFailed": "Autenticazione non riuscita",
"joinTimedOut": "Tempo scaduto durante laccesso alla sessione",
"failedToConnectAnyAddress": "Impossibile connettersi a qualsiasi indirizzo",
"connectionLostAfterAttempts": "Connessione persa dopo ${attempts} tentativi",
"connectionLost": "Connessione persa"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Audio Passthrough",
"audioNormalization": "Normalizza volume"
},
"performanceOverlay": {
"color": "Colore",
"performance": "Prestazioni",
"buffer": "Buffer",
"app": "App",
"decoder": "Decoder",
"rawDecoder": "Decoder raw",
"tunneling": "Tunneling",
"aspect": "Aspetto",
"rotation": "Rotazione",
"dvSource": "Sorgente DV",
"dvPath": "Percorso DV",
"p7Conversion": "Conv. P7",
"sampleRate": "Frequenza camp.",
"pixelFormat": "Formato pixel",
"hwFormat": "Formato HW",
"matrix": "Matrice",
"primaries": "Primari",
"transfer": "Transfer",
"renderFps": "FPS render",
"displayFps": "FPS display",
"avSync": "Sync A/V",
"dropped": "Scartati",
"dvRpus": "DV RPU",
"dvRpuAverage": "Media DV RPU",
"dvSampleAverage": "Media camp. DV",
"maxLuma": "Luma max",
"minLuma": "Luma min",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache usata",
"speed": "Velocità",
"player": "Player",
"memory": "Memoria",
"uiFps": "FPS UI"
},
"externalPlayer": {
"title": "Lettore esterno",
"useExternalPlayer": "Usa lettore esterno",
@@ -1114,6 +1191,7 @@
"systemDefault": "Predefinito di sistema",
"addCustomPlayer": "Aggiungi lettore personalizzato",
"playerName": "Nome lettore",
"playerNameHint": "Il mio player",
"playerCommand": "Comando",
"playerPackage": "Nome pacchetto",
"playerUrlScheme": "Schema URL",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "設定",
"mute": "ミュート",
"ok": "OK",
"off": "オフ",
"seasonNumber": "シーズン${number}",
"chapterNumber": "チャプター${number}",
"reconnect": "再接続",
"exit": "終了",
"viewAll": "すべて表示",
@@ -257,6 +260,10 @@
"dvConversionNative": "ネイティブ / 無効",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "デバイスの機能検出と通常のフォールバック動作を使用します",
"dvConversionNativeDescription": "ネイティブ DV7 を強制し、DV 変換の再試行を抑制します",
"dvConversionDv81Description": "Dolby Vision プロファイル 8.1 へのインライン RPU 変換を強制します",
"dvConversionHevcStripDescription": "Dolby Vision の RPU/EL レイヤーを削除し、通常の HEVC として扱います",
"requireProfileSelectionOnOpen": "アプリ起動時にプロフィールを確認",
"requireProfileSelectionOnOpenDescription": "アプリを開くたびにプロフィール選択を表示",
"forceTvMode": "TVモードを強制",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "${actionName}のショートカットを設定",
"clearShortcut": "ショートカットをクリア",
"noShortcutSet": "ショートカット未設定",
"currentShortcut": "現在のショートカット:",
"actions": {
"playPause": "再生/一時停止",
"volumeUp": "音量を上げる",
@@ -352,6 +361,7 @@
"goToSeries": "シリーズへ移動",
"goToSeason": "シーズンへ移動",
"shufflePlay": "シャッフル再生",
"shuffleNotAvailableOffline": "オフラインではシャッフルを利用できません",
"fileInfo": "ファイル情報",
"deleteFromServer": "サーバーから削除",
"confirmDelete": "このメディアとそのファイルをサーバーから削除しますか?",
@@ -470,6 +480,10 @@
"searchSubtitles": "字幕を検索",
"language": "言語",
"noSubtitlesFound": "字幕が見つかりません",
"downloadedSubtitle": "ダウンロード済み",
"noSubtitlesAvailable": "利用可能な字幕はありません",
"noAudioTracksAvailable": "利用可能な音声トラックはありません",
"noTracksAvailable": "利用可能なトラックはありません",
"subtitleDownloaded": "字幕をダウンロードしました",
"subtitleDownloadFailed": "字幕のダウンロードに失敗しました",
"searchLanguages": "言語を検索..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN保護(オプション)",
"pinExplain": "プロフィール切り替えには4桁のPINが必要です。",
"continueButton": "続ける",
"pinsDontMatch": "PINが一致しません"
"pinsDontMatch": "PINが一致しません",
"initializeServicesFailed": "プロフィールサービスの初期化に失敗しました"
},
"connections": {
"sectionTitle": "接続",
@@ -647,7 +662,8 @@
"rating": "評価",
"movie": "映画",
"tvShow": "テレビ番組",
"minutesLeft": "残り${minutes}分"
"minutesLeft": "残り${minutes}分",
"moreLikeThis": "似ている作品"
},
"errors": {
"searchFailed": "検索に失敗しました: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "ライブラリ",
"fallbackTitle": "ライブラリ",
"scanLibraryFiles": "ライブラリファイルをスキャン",
"scanLibrary": "ライブラリをスキャン",
"analyze": "解析",
@@ -788,6 +805,12 @@
"noChannels": "チャンネルがありません",
"noDvr": "どのサーバーにもDVRが設定されていません",
"noPrograms": "番組データがありません",
"liveStreamFailed": "ライブストリームに失敗しました",
"unknownProgram": "不明な番組",
"unknownHub": "不明",
"unknownError": "不明なエラー",
"channelNumber": "チャンネル ${number}",
"unknownChannel": "不明なチャンネル",
"live": "ライブ",
"reloadGuide": "番組表を再読込",
"now": "現在",
@@ -966,12 +989,21 @@
"deleteDownload": "ダウンロードを削除",
"retryDownload": "ダウンロードを再試行",
"downloadQueued": "ダウンロードをキューに追加しました",
"downloadResumed": "ダウンロードを再開しました",
"serverErrorBitrate": "サーバーエラー: ファイルがリモートビットレート制限を超えている可能性があります",
"episodesQueued": "${count}エピソードをダウンロードキューに追加しました",
"downloadDeleted": "ダウンロードを削除しました",
"deleteConfirm": "このデバイスから「${title}」を削除しますか?",
"deletingWithProgress": "${title}を削除中... (${current}/${total})",
"cancelledDownloadTitle": "キャンセルされたダウンロード",
"cancelledDownloadMessage": "このダウンロードはキャンセルされました。どうしますか?",
"allEpisodesAlreadyDownloaded": "すべてのエピソードはすでにダウンロード済みです",
"resumeDownload": "ダウンロードを再開",
"cancelledDownload": "キャンセルされたダウンロード",
"syncingFile": "${file}${status}を同期中)",
"downloadedFileClickToComplete": "${file} をダウンロード済み — クリックして完了",
"partialDownloadClickToComplete": "一部ダウンロード済み — クリックして完了",
"deleting": "削除中...",
"deletingWithProgress": "${title}を削除中... (${current}/${total})",
"queuedTooltip": "キュー",
"queuedFilesTooltip": "キュー: ${files}",
"downloadingTooltip": "ダウンロード中...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "コンパニオンリモート",
"connectedTo": "${name}に接続中",
"unknownDevice": "不明なデバイス",
"session": {
"startingServer": "リモートサーバーを起動中...",
"failedToCreate": "リモートサーバーの起動に失敗しました:",
@@ -1091,6 +1124,14 @@
"subtitles": "字幕",
"audio": "音声",
"searchHint": "デスクトップで検索..."
},
"errors": {
"noNetworkInterface": "ネットワークインターフェースが見つかりません",
"authenticationFailed": "認証に失敗しました",
"joinTimedOut": "セッション参加がタイムアウトしました",
"failedToConnectAnyAddress": "どのアドレスにも接続できませんでした",
"connectionLostAfterAttempts": "${attempts}回試行後に接続が切断されました",
"connectionLost": "接続が切断されました"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "オーディオパススルー",
"audioNormalization": "ラウドネス正規化"
},
"performanceOverlay": {
"color": "色",
"performance": "パフォーマンス",
"buffer": "バッファ",
"app": "アプリ",
"decoder": "デコーダー",
"rawDecoder": "Raw デコーダー",
"tunneling": "トンネリング",
"aspect": "アスペクト",
"rotation": "回転",
"dvSource": "DV ソース",
"dvPath": "DV パス",
"p7Conversion": "P7 変換",
"sampleRate": "サンプルレート",
"pixelFormat": "ピクセル形式",
"hwFormat": "HW 形式",
"matrix": "マトリクス",
"primaries": "プライマリ",
"transfer": "転送",
"renderFps": "描画 FPS",
"displayFps": "表示 FPS",
"avSync": "A/V 同期",
"dropped": "ドロップ",
"dvRpus": "DV RPU",
"dvRpuAverage": "DV RPU 平均",
"dvSampleAverage": "DV サンプル平均",
"maxLuma": "最大輝度",
"minLuma": "最小輝度",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "使用キャッシュ",
"speed": "速度",
"player": "プレーヤー",
"memory": "メモリ",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "外部プレーヤー",
"useExternalPlayer": "外部プレーヤーを使用",
@@ -1114,6 +1191,7 @@
"systemDefault": "システムデフォルト",
"addCustomPlayer": "カスタムプレーヤーを追加",
"playerName": "プレーヤー名",
"playerNameHint": "マイプレーヤー",
"playerCommand": "コマンド",
"playerPackage": "パッケージ名",
"playerUrlScheme": "URLスキーム",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "설정",
"mute": "음소거",
"ok": "확인",
"off": "끔",
"seasonNumber": "시즌 ${number}",
"chapterNumber": "챕터 ${number}",
"reconnect": "다시 연결",
"exit": "종료",
"viewAll": "모두 보기",
@@ -257,6 +260,10 @@
"dvConversionNative": "네이티브 / 비활성화",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "기기 기능 감지와 일반 폴백 동작을 사용합니다",
"dvConversionNativeDescription": "네이티브 DV7을 강제하고 DV 변환 재시도를 억제합니다",
"dvConversionDv81Description": "Dolby Vision 프로필 8.1로 인라인 RPU 변환을 강제합니다",
"dvConversionHevcStripDescription": "Dolby Vision RPU/EL 레이어를 제거하고 일반 HEVC로 제공합니다",
"requireProfileSelectionOnOpen": "앱 실행 시 프로필 선택",
"requireProfileSelectionOnOpenDescription": "앱을 열 때마다 프로필 선택 화면을 표시합니다",
"forceTvMode": "TV 모드 강제 사용",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "${actionName}에 대한 단축키 설정",
"clearShortcut": "단축키 삭제",
"noShortcutSet": "설정된 단축키 없음",
"currentShortcut": "현재 단축키:",
"actions": {
"playPause": "재생/일시정지",
"volumeUp": "볼륨 높이기",
@@ -352,6 +361,7 @@
"goToSeries": "시리즈로 이동",
"goToSeason": "시즌으로 이동",
"shufflePlay": "무작위 재생",
"shuffleNotAvailableOffline": "오프라인에서는 셔플을 사용할 수 없습니다",
"fileInfo": "파일 정보",
"deleteFromServer": "서버에서 삭제",
"confirmDelete": "이 미디어와 해당 파일을 서버에서 삭제할까요?",
@@ -470,6 +480,10 @@
"searchSubtitles": "자막 검색",
"language": "언어",
"noSubtitlesFound": "자막을 찾을 수 없습니다",
"downloadedSubtitle": "다운로드됨",
"noSubtitlesAvailable": "사용 가능한 자막 없음",
"noAudioTracksAvailable": "사용 가능한 오디오 트랙 없음",
"noTracksAvailable": "사용 가능한 트랙 없음",
"subtitleDownloaded": "자막이 다운로드되었습니다",
"subtitleDownloadFailed": "자막 다운로드에 실패했습니다",
"searchLanguages": "언어 검색..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN 보호 (선택 사항)",
"pinExplain": "프로필 전환에는 4자리 PIN이 필요합니다.",
"continueButton": "계속",
"pinsDontMatch": "PIN이 일치하지 않습니다"
"pinsDontMatch": "PIN이 일치하지 않습니다",
"initializeServicesFailed": "프로필 서비스를 초기화하지 못했습니다"
},
"connections": {
"sectionTitle": "연결",
@@ -647,7 +662,8 @@
"rating": "연령 등급",
"movie": "영화",
"tvShow": "TV 시리즈",
"minutesLeft": "${minutes}분 남음"
"minutesLeft": "${minutes}분 남음",
"moreLikeThis": "비슷한 콘텐츠"
},
"errors": {
"searchFailed": "검색 실패: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "미디어 라이브러리",
"fallbackTitle": "라이브러리",
"scanLibraryFiles": "미디어 라이브러리 파일 스캔",
"scanLibrary": "미디어 라이브러리 스캔",
"analyze": "분석",
@@ -788,6 +805,12 @@
"noChannels": "사용 가능한 채널이 없습니다",
"noDvr": "서버에 DVR이 구성되어 있지 않습니다",
"noPrograms": "프로그램 데이터가 없습니다",
"liveStreamFailed": "라이브 스트림 실패",
"unknownProgram": "알 수 없는 프로그램",
"unknownHub": "알 수 없음",
"unknownError": "알 수 없는 오류",
"channelNumber": "채널 ${number}",
"unknownChannel": "알 수 없는 채널",
"live": "실시간",
"reloadGuide": "편성표 새로고침",
"now": "지금",
@@ -966,12 +989,21 @@
"deleteDownload": "다운로드 삭제",
"retryDownload": "다운로드 재시도",
"downloadQueued": "다운로드 대기 중",
"downloadResumed": "다운로드를 재개했습니다",
"serverErrorBitrate": "서버 오류: 파일이 원격 비트레이트 제한을 초과할 수 있습니다",
"episodesQueued": "${count} 에피소드가 다운로드 대기열에 추가 되었습니다",
"downloadDeleted": "다운로드 삭제됨",
"deleteConfirm": "이 기기에서 \"${title}\"을(를) 삭제할까요?",
"deletingWithProgress": "${title} 삭제 중... (${current}/${total})",
"cancelledDownloadTitle": "취소된 다운로드",
"cancelledDownloadMessage": "이 다운로드가 취소되었습니다. 어떻게 하시겠습니까?",
"allEpisodesAlreadyDownloaded": "모든 에피소드가 이미 다운로드되었습니다",
"resumeDownload": "다운로드 재개",
"cancelledDownload": "취소된 다운로드",
"syncingFile": "${file} (${status} 동기화 중)",
"downloadedFileClickToComplete": "${file} 다운로드됨 — 클릭하여 완료",
"partialDownloadClickToComplete": "부분 다운로드됨 — 클릭하여 완료",
"deleting": "삭제 중...",
"deletingWithProgress": "${title} 삭제 중... (${current}/${total})",
"queuedTooltip": "대기 중",
"queuedFilesTooltip": "대기 중: ${files}",
"downloadingTooltip": "다운로드 중...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "컴패니언 리모컨",
"connectedTo": "${name}에 연결됨",
"unknownDevice": "알 수 없는 기기",
"session": {
"startingServer": "원격 서버 시작 중...",
"failedToCreate": "원격 서버를 시작하지 못했습니다:",
@@ -1091,6 +1124,14 @@
"subtitles": "자막",
"audio": "오디오",
"searchHint": "데스크톱에서 검색..."
},
"errors": {
"noNetworkInterface": "네트워크 인터페이스를 찾을 수 없습니다",
"authenticationFailed": "인증 실패",
"joinTimedOut": "세션 참가 시간이 초과되었습니다",
"failedToConnectAnyAddress": "어떤 주소에도 연결하지 못했습니다",
"connectionLostAfterAttempts": "${attempts}회 시도 후 연결이 끊어졌습니다",
"connectionLost": "연결이 끊어졌습니다"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "오디오 패스스루",
"audioNormalization": "음량 정규화"
},
"performanceOverlay": {
"color": "색상",
"performance": "성능",
"buffer": "버퍼",
"app": "앱",
"decoder": "디코더",
"rawDecoder": "원본 디코더",
"tunneling": "터널링",
"aspect": "화면비",
"rotation": "회전",
"dvSource": "DV 소스",
"dvPath": "DV 경로",
"p7Conversion": "P7 변환",
"sampleRate": "샘플 레이트",
"pixelFormat": "픽셀 형식",
"hwFormat": "HW 형식",
"matrix": "매트릭스",
"primaries": "원색",
"transfer": "전송",
"renderFps": "렌더 FPS",
"displayFps": "디스플레이 FPS",
"avSync": "A/V 동기화",
"dropped": "드롭됨",
"dvRpus": "DV RPU",
"dvRpuAverage": "DV RPU 평균",
"dvSampleAverage": "DV 샘플 평균",
"maxLuma": "최대 휘도",
"minLuma": "최소 휘도",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "사용 캐시",
"speed": "속도",
"player": "플레이어",
"memory": "메모리",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "외부 플레이어",
"useExternalPlayer": "외부 플레이어 사용",
@@ -1114,6 +1191,7 @@
"systemDefault": "시스템 기본값",
"addCustomPlayer": "사용자 정의 플레이어 추가",
"playerName": "플레이어 이름",
"playerNameHint": "내 플레이어",
"playerCommand": "명령어",
"playerPackage": "패키지 이름",
"playerUrlScheme": "URL 스킴",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Innstillinger",
"mute": "Demp",
"ok": "OK",
"off": "Av",
"seasonNumber": "Sesong ${number}",
"chapterNumber": "Kapittel ${number}",
"reconnect": "Koble til på nytt",
"exit": "Avslutt",
"viewAll": "Vis alle",
@@ -257,6 +260,10 @@
"dvConversionNative": "Innebygd / deaktivert",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Bruk enhetens kapabilitetsdeteksjon og normal reserveoppførsel",
"dvConversionNativeDescription": "Tving native DV7 og undertrykk forsøk på DV-konvertering",
"dvConversionDv81Description": "Tving inline RPU-konvertering til Dolby Vision profil 8.1",
"dvConversionHevcStripDescription": "Fjern Dolby Vision RPU/EL-lag og presenter vanlig HEVC",
"requireProfileSelectionOnOpen": "Spør om profil ved appåpning",
"requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åpnes",
"forceTvMode": "Tving TV-modus",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Angi snarvei for ${actionName}",
"clearShortcut": "Fjern snarvei",
"noShortcutSet": "Ingen snarvei satt",
"currentShortcut": "Gjeldende snarvei:",
"actions": {
"playPause": "Spill av/Pause",
"volumeUp": "Volum opp",
@@ -352,6 +361,7 @@
"goToSeries": "Gå til serie",
"goToSeason": "Gå til sesong",
"shufflePlay": "Tilfeldig avspilling",
"shuffleNotAvailableOffline": "Tilfeldig avspilling er ikke tilgjengelig offline",
"fileInfo": "Filinformasjon",
"deleteFromServer": "Slett fra server",
"confirmDelete": "Slette dette mediet og filene fra serveren?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Søk etter undertekster",
"language": "Språk",
"noSubtitlesFound": "Ingen undertekster funnet",
"downloadedSubtitle": "Lastet ned",
"noSubtitlesAvailable": "Ingen undertekster tilgjengelig",
"noAudioTracksAvailable": "Ingen lydspor tilgjengelig",
"noTracksAvailable": "Ingen spor tilgjengelig",
"subtitleDownloaded": "Undertekst lastet ned",
"subtitleDownloadFailed": "Kunne ikke laste ned undertekst",
"searchLanguages": "Søk etter språk..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN-beskyttelse (valgfri)",
"pinExplain": "4-sifret PIN kreves for å bytte profiler.",
"continueButton": "Fortsett",
"pinsDontMatch": "PIN-ene samsvarer ikke"
"pinsDontMatch": "PIN-ene samsvarer ikke",
"initializeServicesFailed": "Kunne ikke initialisere profiltjenester"
},
"connections": {
"sectionTitle": "Tilkoblinger",
@@ -647,7 +662,8 @@
"rating": "Vurdering",
"movie": "Film",
"tvShow": "TV-serie",
"minutesLeft": "${minutes} min igjen"
"minutesLeft": "${minutes} min igjen",
"moreLikeThis": "Mer som dette"
},
"errors": {
"searchFailed": "Søk mislyktes: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Biblioteker",
"fallbackTitle": "Bibliotek",
"scanLibraryFiles": "Skann bibliotekfiler",
"scanLibrary": "Skann bibliotek",
"analyze": "Analyser",
@@ -788,6 +805,12 @@
"noChannels": "Ingen kanaler tilgjengelig",
"noDvr": "Ingen DVR konfigurert på noen server",
"noPrograms": "Ingen programdata tilgjengelig",
"liveStreamFailed": "Direktesending mislyktes",
"unknownProgram": "Ukjent program",
"unknownHub": "Ukjent",
"unknownError": "Ukjent feil",
"channelNumber": "Kanal ${number}",
"unknownChannel": "Ukjent kanal",
"live": "DIREKTE",
"reloadGuide": "Last inn programguide på nytt",
"now": "Nå",
@@ -966,12 +989,21 @@
"deleteDownload": "Slett nedlasting",
"retryDownload": "Prøv nedlasting på nytt",
"downloadQueued": "Nedlasting i kø",
"downloadResumed": "Nedlasting gjenopptatt",
"serverErrorBitrate": "Serverfeil: filen kan overskride grensen for ekstern bitrate",
"episodesQueued": "${count} episoder i nedlastingskø",
"downloadDeleted": "Nedlasting slettet",
"deleteConfirm": "Slette \"${title}\" fra denne enheten?",
"deletingWithProgress": "Sletter ${title}... (${current} av ${total})",
"cancelledDownloadTitle": "Avbrutt nedlasting",
"cancelledDownloadMessage": "Denne nedlastingen ble avbrutt. Hva vil du gjøre?",
"allEpisodesAlreadyDownloaded": "Alle episoder er allerede lastet ned",
"resumeDownload": "Gjenoppta nedlasting",
"cancelledDownload": "Avbrutt nedlasting",
"syncingFile": "${file} (synkroniserer ${status})",
"downloadedFileClickToComplete": "${file} lastet ned klikk for å fullføre",
"partialDownloadClickToComplete": "Delvis lastet ned klikk for å fullføre",
"deleting": "Sletter...",
"deletingWithProgress": "Sletter ${title}... (${current} av ${total})",
"queuedTooltip": "I kø",
"queuedFilesTooltip": "I kø: ${files}",
"downloadingTooltip": "Laster ned...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Følgesvenn-fjernkontroll",
"connectedTo": "Tilkoblet ${name}",
"unknownDevice": "Ukjent enhet",
"session": {
"startingServer": "Starter fjernserver...",
"failedToCreate": "Kunne ikke starte fjernserver:",
@@ -1091,6 +1124,14 @@
"subtitles": "Undertekster",
"audio": "Lyd",
"searchHint": "Søk på stasjonær..."
},
"errors": {
"noNetworkInterface": "Fant ingen nettverksgrensesnitt",
"authenticationFailed": "Autentisering mislyktes",
"joinTimedOut": "Tidsavbrudd ved tilkobling til økt",
"failedToConnectAnyAddress": "Kunne ikke koble til noen adresse",
"connectionLostAfterAttempts": "Tilkobling mistet etter ${attempts} forsøk",
"connectionLost": "Tilkobling mistet"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Lydgjennomgang",
"audioNormalization": "Normaliser lydstyrke"
},
"performanceOverlay": {
"color": "Farge",
"performance": "Ytelse",
"buffer": "Buffer",
"app": "App",
"decoder": "Dekoder",
"rawDecoder": "Rå dekoder",
"tunneling": "Tunneling",
"aspect": "Format",
"rotation": "Rotasjon",
"dvSource": "DV-kilde",
"dvPath": "DV-sti",
"p7Conversion": "P7-konv.",
"sampleRate": "Samplingsrate",
"pixelFormat": "Pikselformat",
"hwFormat": "HW-format",
"matrix": "Matrise",
"primaries": "Primærfarger",
"transfer": "Overføring",
"renderFps": "Render-FPS",
"displayFps": "Skjerm-FPS",
"avSync": "A/V-synk",
"dropped": "Droppet",
"dvRpus": "DV RPU-er",
"dvRpuAverage": "DV RPU snitt",
"dvSampleAverage": "DV-sample snitt",
"maxLuma": "Maks luma",
"minLuma": "Min luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache brukt",
"speed": "Hastighet",
"player": "Spiller",
"memory": "Minne",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Ekstern spiller",
"useExternalPlayer": "Bruk ekstern spiller",
@@ -1114,6 +1191,7 @@
"systemDefault": "Systemstandard",
"addCustomPlayer": "Legg til egendefinert spiller",
"playerName": "Spillernavn",
"playerNameHint": "Min spiller",
"playerCommand": "Kommando",
"playerPackage": "Pakkenavn",
"playerUrlScheme": "URL-skjema",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Opties",
"mute": "Dempen",
"ok": "OK",
"off": "Uit",
"seasonNumber": "Seizoen ${number}",
"chapterNumber": "Hoofdstuk ${number}",
"reconnect": "Opnieuw verbinden",
"exit": "Afsluiten",
"viewAll": "Alles weergeven",
@@ -257,6 +260,10 @@
"dvConversionNative": "Native / uitgeschakeld",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Gebruik apparaatdetectie en normaal fallbackgedrag",
"dvConversionNativeDescription": "Forceer native DV7 en onderdruk DV-conversie opnieuw proberen",
"dvConversionDv81Description": "Forceer inline RPU-conversie naar Dolby Vision-profiel 8.1",
"dvConversionHevcStripDescription": "Strip Dolby Vision RPU/EL-lagen en presenteer gewone HEVC",
"requireProfileSelectionOnOpen": "Vraag om profiel bij openen",
"requireProfileSelectionOnOpenDescription": "Toon profielselectie telkens wanneer de app wordt geopend",
"forceTvMode": "TV-modus forceren",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Stel sneltoets in voor ${actionName}",
"clearShortcut": "Wis sneltoets",
"noShortcutSet": "Geen sneltoets ingesteld",
"currentShortcut": "Huidige sneltoets:",
"actions": {
"playPause": "Afspelen/Pauzeren",
"volumeUp": "Volume omhoog",
@@ -352,6 +361,7 @@
"goToSeries": "Ga naar serie",
"goToSeason": "Ga naar seizoen",
"shufflePlay": "Willekeurig afspelen",
"shuffleNotAvailableOffline": "Shuffle is offline niet beschikbaar",
"fileInfo": "Bestand info",
"deleteFromServer": "Verwijderen van server",
"confirmDelete": "Deze media en bestanden van je server verwijderen?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Ondertitels zoeken",
"language": "Taal",
"noSubtitlesFound": "Geen ondertitels gevonden",
"downloadedSubtitle": "Gedownload",
"noSubtitlesAvailable": "Geen ondertitels beschikbaar",
"noAudioTracksAvailable": "Geen audiotracks beschikbaar",
"noTracksAvailable": "Geen tracks beschikbaar",
"subtitleDownloaded": "Ondertitel gedownload",
"subtitleDownloadFailed": "Ondertitel downloaden mislukt",
"searchLanguages": "Talen zoeken..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN-beveiliging (optioneel)",
"pinExplain": "4-cijferige PIN vereist om profielen te wisselen.",
"continueButton": "Doorgaan",
"pinsDontMatch": "PIN-codes komen niet overeen"
"pinsDontMatch": "PIN-codes komen niet overeen",
"initializeServicesFailed": "Kan profielservices niet initialiseren"
},
"connections": {
"sectionTitle": "Verbindingen",
@@ -647,7 +662,8 @@
"rating": "Leeftijd",
"movie": "Film",
"tvShow": "TV Serie",
"minutesLeft": "${minutes} min over"
"minutesLeft": "${minutes} min over",
"moreLikeThis": "Meer zoals dit"
},
"errors": {
"searchFailed": "Zoeken mislukt: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Bibliotheken",
"fallbackTitle": "Bibliotheek",
"scanLibraryFiles": "Scan bibliotheek bestanden",
"scanLibrary": "Scan bibliotheek",
"analyze": "Analyseren",
@@ -788,6 +805,12 @@
"noChannels": "Geen zenders beschikbaar",
"noDvr": "Geen DVR geconfigureerd op een server",
"noPrograms": "Geen programmagegevens beschikbaar",
"liveStreamFailed": "Livestream mislukt",
"unknownProgram": "Onbekend programma",
"unknownHub": "Onbekend",
"unknownError": "Onbekende fout",
"channelNumber": "Kanaal ${number}",
"unknownChannel": "Onbekend kanaal",
"live": "LIVE",
"reloadGuide": "Gids herladen",
"now": "Nu",
@@ -966,12 +989,21 @@
"deleteDownload": "Download verwijderen",
"retryDownload": "Download opnieuw proberen",
"downloadQueued": "Download in wachtrij",
"downloadResumed": "Download hervat",
"serverErrorBitrate": "Serverfout: bestand overschrijdt mogelijk de externe bitrate-limiet",
"episodesQueued": "${count} afleveringen in wachtrij voor download",
"downloadDeleted": "Download verwijderd",
"deleteConfirm": "\"${title}\" van dit apparaat verwijderen?",
"deletingWithProgress": "Verwijderen van ${title}... (${current} van ${total})",
"cancelledDownloadTitle": "Geannuleerde download",
"cancelledDownloadMessage": "Deze download is geannuleerd. Wat wil je doen?",
"allEpisodesAlreadyDownloaded": "Alle afleveringen zijn al gedownload",
"resumeDownload": "Download hervatten",
"cancelledDownload": "Geannuleerde download",
"syncingFile": "${file} (${status} synchroniseren)",
"downloadedFileClickToComplete": "${file} gedownload — klik om te voltooien",
"partialDownloadClickToComplete": "Gedeeltelijk gedownload — klik om te voltooien",
"deleting": "Verwijderen...",
"deletingWithProgress": "Verwijderen van ${title}... (${current} van ${total})",
"queuedTooltip": "In wachtrij",
"queuedFilesTooltip": "In wachtrij: ${files}",
"downloadingTooltip": "Downloaden...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Afstandsbediening",
"connectedTo": "Verbonden met ${name}",
"unknownDevice": "Onbekend apparaat",
"session": {
"startingServer": "Externe server starten...",
"failedToCreate": "Kan externe server niet starten:",
@@ -1091,6 +1124,14 @@
"subtitles": "Ondertitels",
"audio": "Audio",
"searchHint": "Zoeken op desktop..."
},
"errors": {
"noNetworkInterface": "Geen netwerkinterface gevonden",
"authenticationFailed": "Authenticatie mislukt",
"joinTimedOut": "Time-out bij deelnemen aan sessie",
"failedToConnectAnyAddress": "Kan met geen enkel adres verbinden",
"connectionLostAfterAttempts": "Verbinding verloren na ${attempts} pogingen",
"connectionLost": "Verbinding verloren"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Audio-doorvoer",
"audioNormalization": "Volume normaliseren"
},
"performanceOverlay": {
"color": "Kleur",
"performance": "Prestaties",
"buffer": "Buffer",
"app": "App",
"decoder": "Decoder",
"rawDecoder": "Raw decoder",
"tunneling": "Tunneling",
"aspect": "Verhouding",
"rotation": "Rotatie",
"dvSource": "DV-bron",
"dvPath": "DV-pad",
"p7Conversion": "P7-conv.",
"sampleRate": "Samplefrequentie",
"pixelFormat": "Pixelformaat",
"hwFormat": "HW-formaat",
"matrix": "Matrix",
"primaries": "Primaire kleuren",
"transfer": "Transfer",
"renderFps": "Render-FPS",
"displayFps": "Scherm-FPS",
"avSync": "A/V-sync",
"dropped": "Gedropt",
"dvRpus": "DV RPUs",
"dvRpuAverage": "DV RPU gem.",
"dvSampleAverage": "DV-sample gem.",
"maxLuma": "Max luma",
"minLuma": "Min luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache gebruikt",
"speed": "Snelheid",
"player": "Speler",
"memory": "Geheugen",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Externe speler",
"useExternalPlayer": "Externe speler gebruiken",
@@ -1114,6 +1191,7 @@
"systemDefault": "Systeemstandaard",
"addCustomPlayer": "Aangepaste speler toevoegen",
"playerName": "Spelernaam",
"playerNameHint": "Mijn speler",
"playerCommand": "Commando",
"playerPackage": "Pakketnaam",
"playerUrlScheme": "URL-schema",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Ustawienia",
"mute": "Wycisz",
"ok": "OK",
"off": "Wył.",
"seasonNumber": "Sezon ${number}",
"chapterNumber": "Rozdział ${number}",
"reconnect": "Połącz ponownie",
"exit": "Wyjdź",
"viewAll": "Pokaż wszystko",
@@ -257,6 +260,10 @@
"dvConversionNative": "Natywnie / wyłączone",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Użyj wykrywania możliwości urządzenia i normalnego zachowania awaryjnego",
"dvConversionNativeDescription": "Wymuś natywne DV7 i wyłącz ponowną próbę konwersji DV",
"dvConversionDv81Description": "Wymuś wbudowaną konwersję RPU do profilu Dolby Vision 8.1",
"dvConversionHevcStripDescription": "Usuń warstwy Dolby Vision RPU/EL i przedstaw zwykłe HEVC",
"requireProfileSelectionOnOpen": "Pytaj o profil przy otwarciu aplikacji",
"requireProfileSelectionOnOpenDescription": "Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana",
"forceTvMode": "Wymuś tryb TV",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Ustaw skrót dla ${actionName}",
"clearShortcut": "Wyczyść skrót",
"noShortcutSet": "Brak ustawionego skrótu",
"currentShortcut": "Bieżący skrót:",
"actions": {
"playPause": "Odtwórz/Pauza",
"volumeUp": "Głośniej",
@@ -352,6 +361,7 @@
"goToSeries": "Przejdź do serialu",
"goToSeason": "Przejdź do sezonu",
"shufflePlay": "Odtwarzanie losowe",
"shuffleNotAvailableOffline": "Odtwarzanie losowe nie jest dostępne offline",
"fileInfo": "Informacje o pliku",
"deleteFromServer": "Usuń z serwera",
"confirmDelete": "Usunąć to medium i jego pliki z serwera?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Szukaj napisów",
"language": "Język",
"noSubtitlesFound": "Nie znaleziono napisów",
"downloadedSubtitle": "Pobrano",
"noSubtitlesAvailable": "Brak dostępnych napisów",
"noAudioTracksAvailable": "Brak dostępnych ścieżek audio",
"noTracksAvailable": "Brak dostępnych ścieżek",
"subtitleDownloaded": "Napisy pobrane",
"subtitleDownloadFailed": "Nie udało się pobrać napisów",
"searchLanguages": "Szukaj języków..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "Ochrona PIN-em (opcjonalnie)",
"pinExplain": "Do przełączania profili wymagany jest 4-cyfrowy PIN.",
"continueButton": "Kontynuuj",
"pinsDontMatch": "PIN-y nie pasują"
"pinsDontMatch": "PIN-y nie pasują",
"initializeServicesFailed": "Nie udało się zainicjować usług profilu"
},
"connections": {
"sectionTitle": "Połączenia",
@@ -647,7 +662,8 @@
"rating": "Ocena",
"movie": "Film",
"tvShow": "Serial TV",
"minutesLeft": "${minutes} min pozostało"
"minutesLeft": "${minutes} min pozostało",
"moreLikeThis": "Więcej podobnych"
},
"errors": {
"searchFailed": "Wyszukiwanie nie powiodło się: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Biblioteki",
"fallbackTitle": "Biblioteka",
"scanLibraryFiles": "Skanuj pliki biblioteki",
"scanLibrary": "Skanuj bibliotekę",
"analyze": "Analizuj",
@@ -788,6 +805,12 @@
"noChannels": "Brak dostępnych kanałów",
"noDvr": "Brak skonfigurowanego DVR na żadnym serwerze",
"noPrograms": "Brak danych o programach",
"liveStreamFailed": "Transmisja na żywo nie powiodła się",
"unknownProgram": "Nieznany program",
"unknownHub": "Nieznane",
"unknownError": "Nieznany błąd",
"channelNumber": "Kanał ${number}",
"unknownChannel": "Nieznany kanał",
"live": "NA ŻYWO",
"reloadGuide": "Odśwież przewodnik",
"now": "Teraz",
@@ -966,12 +989,21 @@
"deleteDownload": "Usuń pobranie",
"retryDownload": "Ponów pobieranie",
"downloadQueued": "Pobranie w kolejce",
"downloadResumed": "Pobieranie wznowione",
"serverErrorBitrate": "Błąd serwera: plik może przekraczać zdalny limit bitrate",
"episodesQueued": "${count} odcinków w kolejce pobierania",
"downloadDeleted": "Pobranie usunięte",
"deleteConfirm": "Usunąć \"${title}\" z tego urządzenia?",
"deletingWithProgress": "Usuwanie ${title}... (${current} z ${total})",
"cancelledDownloadTitle": "Anulowane pobieranie",
"cancelledDownloadMessage": "To pobieranie zostało anulowane. Co chcesz zrobić?",
"allEpisodesAlreadyDownloaded": "Wszystkie odcinki są już pobrane",
"resumeDownload": "Wznów pobieranie",
"cancelledDownload": "Anulowane pobieranie",
"syncingFile": "${file} (synchronizowanie ${status})",
"downloadedFileClickToComplete": "Pobrano ${file} — kliknij, aby dokończyć",
"partialDownloadClickToComplete": "Pobrano częściowo — kliknij, aby dokończyć",
"deleting": "Usuwanie...",
"deletingWithProgress": "Usuwanie ${title}... (${current} z ${total})",
"queuedTooltip": "W kolejce",
"queuedFilesTooltip": "W kolejce: ${files}",
"downloadingTooltip": "Pobieranie...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Pilot zdalny",
"connectedTo": "Połączono z ${name}",
"unknownDevice": "Nieznane urządzenie",
"session": {
"startingServer": "Uruchamianie serwera zdalnego...",
"failedToCreate": "Nie udało się uruchomić serwera zdalnego:",
@@ -1091,6 +1124,14 @@
"subtitles": "Napisy",
"audio": "Audio",
"searchHint": "Szukaj na komputerze..."
},
"errors": {
"noNetworkInterface": "Nie znaleziono interfejsu sieciowego",
"authenticationFailed": "Uwierzytelnianie nie powiodło się",
"joinTimedOut": "Upłynął limit czasu dołączania do sesji",
"failedToConnectAnyAddress": "Nie udało się połączyć z żadnym adresem",
"connectionLostAfterAttempts": "Połączenie utracone po ${attempts} próbach",
"connectionLost": "Połączenie utracone"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Bezpośrednie audio",
"audioNormalization": "Normalizacja głośności"
},
"performanceOverlay": {
"color": "Kolor",
"performance": "Wydajność",
"buffer": "Bufor",
"app": "Aplikacja",
"decoder": "Dekoder",
"rawDecoder": "Surowy dekoder",
"tunneling": "Tunelowanie",
"aspect": "Proporcje",
"rotation": "Obrót",
"dvSource": "Źródło DV",
"dvPath": "Ścieżka DV",
"p7Conversion": "Konw. P7",
"sampleRate": "Częstotliwość próbkowania",
"pixelFormat": "Format pikseli",
"hwFormat": "Format HW",
"matrix": "Macierz",
"primaries": "Barwy podstawowe",
"transfer": "Transfer",
"renderFps": "FPS renderowania",
"displayFps": "FPS ekranu",
"avSync": "Sync A/V",
"dropped": "Porzucone",
"dvRpus": "DV RPU",
"dvRpuAverage": "Śr. DV RPU",
"dvSampleAverage": "Śr. próbki DV",
"maxLuma": "Maks. luma",
"minLuma": "Min. luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Użyty cache",
"speed": "Szybkość",
"player": "Odtwarzacz",
"memory": "Pamięć",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Zewnętrzny odtwarzacz",
"useExternalPlayer": "Użyj zewnętrznego odtwarzacza",
@@ -1114,6 +1191,7 @@
"systemDefault": "Domyślny systemowy",
"addCustomPlayer": "Dodaj niestandardowy odtwarzacz",
"playerName": "Nazwa odtwarzacza",
"playerNameHint": "Mój odtwarzacz",
"playerCommand": "Polecenie",
"playerPackage": "Nazwa pakietu",
"playerUrlScheme": "Schemat URL",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Configurações",
"mute": "Silenciar",
"ok": "OK",
"off": "Desativado",
"seasonNumber": "Temporada ${number}",
"chapterNumber": "Capítulo ${number}",
"reconnect": "Reconectar",
"exit": "Sair",
"viewAll": "Ver Tudo",
@@ -257,6 +260,10 @@
"dvConversionNative": "Nativo / desativado",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Usar detecção de recursos do dispositivo e comportamento normal de fallback",
"dvConversionNativeDescription": "Forçar DV7 nativo e suprimir nova tentativa de conversão DV",
"dvConversionDv81Description": "Forçar conversão RPU inline para Dolby Vision perfil 8.1",
"dvConversionHevcStripDescription": "Remover camadas RPU/EL do Dolby Vision e apresentar HEVC simples",
"requireProfileSelectionOnOpen": "Pedir perfil ao abrir o app",
"requireProfileSelectionOnOpenDescription": "Mostrar seleção de perfil toda vez que o app for aberto",
"forceTvMode": "Forçar modo TV",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Definir Atalho para ${actionName}",
"clearShortcut": "Limpar atalho",
"noShortcutSet": "Nenhum atalho definido",
"currentShortcut": "Atalho atual:",
"actions": {
"playPause": "Reproduzir/Pausar",
"volumeUp": "Aumentar Volume",
@@ -352,6 +361,7 @@
"goToSeries": "Ir para a série",
"goToSeason": "Ir para a temporada",
"shufflePlay": "Reprodução Aleatória",
"shuffleNotAvailableOffline": "Reprodução aleatória indisponível offline",
"fileInfo": "Info do Arquivo",
"deleteFromServer": "Excluir do servidor",
"confirmDelete": "Excluir esta mídia e seus arquivos do servidor?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Pesquisar legendas",
"language": "Idioma",
"noSubtitlesFound": "Nenhuma legenda encontrada",
"downloadedSubtitle": "Baixado",
"noSubtitlesAvailable": "Nenhuma legenda disponível",
"noAudioTracksAvailable": "Nenhuma faixa de áudio disponível",
"noTracksAvailable": "Nenhuma faixa disponível",
"subtitleDownloaded": "Legenda baixada",
"subtitleDownloadFailed": "Falha ao baixar legenda",
"searchLanguages": "Pesquisar idiomas..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "Proteção por PIN (opcional)",
"pinExplain": "PIN de 4 dígitos necessário para trocar perfis.",
"continueButton": "Continuar",
"pinsDontMatch": "Os PINs não correspondem"
"pinsDontMatch": "Os PINs não correspondem",
"initializeServicesFailed": "Falha ao inicializar serviços de perfil"
},
"connections": {
"sectionTitle": "Conexões",
@@ -647,7 +662,8 @@
"rating": "Avaliação",
"movie": "Filme",
"tvShow": "Série de TV",
"minutesLeft": "${minutes} min restantes"
"minutesLeft": "${minutes} min restantes",
"moreLikeThis": "Mais como este"
},
"errors": {
"searchFailed": "Falha na busca: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Bibliotecas",
"fallbackTitle": "Biblioteca",
"scanLibraryFiles": "Escanear Arquivos da Biblioteca",
"scanLibrary": "Escanear Biblioteca",
"analyze": "Analisar",
@@ -788,6 +805,12 @@
"noChannels": "Nenhum canal disponível",
"noDvr": "Nenhum DVR configurado em nenhum servidor",
"noPrograms": "Nenhum dado de programação disponível",
"liveStreamFailed": "Falha no stream ao vivo",
"unknownProgram": "Programa desconhecido",
"unknownHub": "Desconhecido",
"unknownError": "Erro desconhecido",
"channelNumber": "Canal ${number}",
"unknownChannel": "Canal desconhecido",
"live": "AO VIVO",
"reloadGuide": "Recarregar Guia",
"now": "Agora",
@@ -966,12 +989,21 @@
"deleteDownload": "Excluir download",
"retryDownload": "Tentar download novamente",
"downloadQueued": "Download na fila",
"downloadResumed": "Download retomado",
"serverErrorBitrate": "Erro do servidor: o arquivo pode exceder o limite remoto de bitrate",
"episodesQueued": "${count} episódios na fila de download",
"downloadDeleted": "Download excluído",
"deleteConfirm": "Excluir \"${title}\" deste dispositivo?",
"deletingWithProgress": "Excluindo ${title}... (${current} de ${total})",
"cancelledDownloadTitle": "Download cancelado",
"cancelledDownloadMessage": "Este download foi cancelado. O que você deseja fazer?",
"allEpisodesAlreadyDownloaded": "Todos os episódios já foram baixados",
"resumeDownload": "Retomar download",
"cancelledDownload": "Download cancelado",
"syncingFile": "${file} (sincronizando ${status})",
"downloadedFileClickToComplete": "${file} baixado — clique para concluir",
"partialDownloadClickToComplete": "Parcialmente baixado — clique para concluir",
"deleting": "Excluindo...",
"deletingWithProgress": "Excluindo ${title}... (${current} de ${total})",
"queuedTooltip": "Na fila",
"queuedFilesTooltip": "Na fila: ${files}",
"downloadingTooltip": "Baixando...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Controle Remoto",
"connectedTo": "Conectado a ${name}",
"unknownDevice": "Dispositivo desconhecido",
"session": {
"startingServer": "A iniciar servidor remoto...",
"failedToCreate": "Falha ao iniciar o servidor remoto:",
@@ -1091,6 +1124,14 @@
"subtitles": "Legendas",
"audio": "Áudio",
"searchHint": "Buscar no desktop..."
},
"errors": {
"noNetworkInterface": "Nenhuma interface de rede encontrada",
"authenticationFailed": "Falha na autenticação",
"joinTimedOut": "Tempo esgotado ao entrar na sessão",
"failedToConnectAnyAddress": "Falha ao conectar a qualquer endereço",
"connectionLostAfterAttempts": "Conexão perdida após ${attempts} tentativas",
"connectionLost": "Conexão perdida"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Passagem de Áudio",
"audioNormalization": "Normalizar Volume"
},
"performanceOverlay": {
"color": "Cor",
"performance": "Desempenho",
"buffer": "Buffer",
"app": "App",
"decoder": "Decodificador",
"rawDecoder": "Decodificador bruto",
"tunneling": "Túnel",
"aspect": "Aspecto",
"rotation": "Rotação",
"dvSource": "Fonte DV",
"dvPath": "Caminho DV",
"p7Conversion": "Conv. P7",
"sampleRate": "Taxa de amostragem",
"pixelFormat": "Formato de pixel",
"hwFormat": "Formato HW",
"matrix": "Matriz",
"primaries": "Primárias",
"transfer": "Transferência",
"renderFps": "FPS render",
"displayFps": "FPS tela",
"avSync": "Sync A/V",
"dropped": "Descartados",
"dvRpus": "DV RPUs",
"dvRpuAverage": "Média DV RPU",
"dvSampleAverage": "Média amostra DV",
"maxLuma": "Luma máx.",
"minLuma": "Luma mín.",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache usado",
"speed": "Velocidade",
"player": "Player",
"memory": "Memória",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Player Externo",
"useExternalPlayer": "Usar Player Externo",
@@ -1114,6 +1191,7 @@
"systemDefault": "Padrão do Sistema",
"addCustomPlayer": "Adicionar Player Personalizado",
"playerName": "Nome do Player",
"playerNameHint": "Meu player",
"playerCommand": "Comando",
"playerPackage": "Nome do Pacote",
"playerUrlScheme": "Esquema de URL",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Настройки",
"mute": "Без звука",
"ok": "OK",
"off": "Выкл.",
"seasonNumber": "Сезон ${number}",
"chapterNumber": "Глава ${number}",
"reconnect": "Переподключить",
"exit": "Выход",
"viewAll": "Показать все",
@@ -257,6 +260,10 @@
"dvConversionNative": "Нативно / отключено",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Использовать определение возможностей устройства и обычное резервное поведение",
"dvConversionNativeDescription": "Принудительно использовать нативный DV7 и не повторять DV-конвертацию",
"dvConversionDv81Description": "Принудительно выполнять inline-конвертацию RPU в Dolby Vision профиль 8.1",
"dvConversionHevcStripDescription": "Удалять слои Dolby Vision RPU/EL и передавать обычный HEVC",
"requireProfileSelectionOnOpen": "Запрашивать профиль при запуске",
"requireProfileSelectionOnOpenDescription": "Показывать выбор профиля при каждом открытии приложения",
"forceTvMode": "Принудительный режим ТВ",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Назначить клавишу для ${actionName}",
"clearShortcut": "Очистить клавишу",
"noShortcutSet": "Сочетание не задано",
"currentShortcut": "Текущее сочетание:",
"actions": {
"playPause": "Воспроизведение/Пауза",
"volumeUp": "Громкость выше",
@@ -352,6 +361,7 @@
"goToSeries": "Перейти к сериалу",
"goToSeason": "Перейти к сезону",
"shufflePlay": "Случайное воспроизведение",
"shuffleNotAvailableOffline": "Перемешивание недоступно офлайн",
"fileInfo": "Информация о файле",
"deleteFromServer": "Удалить с сервера",
"confirmDelete": "Удалить это медиа и его файлы с сервера?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Поиск субтитров",
"language": "Язык",
"noSubtitlesFound": "Субтитры не найдены",
"downloadedSubtitle": "Загружено",
"noSubtitlesAvailable": "Нет доступных субтитров",
"noAudioTracksAvailable": "Нет доступных аудиодорожек",
"noTracksAvailable": "Нет доступных дорожек",
"subtitleDownloaded": "Субтитры загружены",
"subtitleDownloadFailed": "Не удалось загрузить субтитры",
"searchLanguages": "Поиск языков..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "Защита PIN-кодом (необязательно)",
"pinExplain": "Для переключения профилей нужен 4-значный PIN.",
"continueButton": "Продолжить",
"pinsDontMatch": "PIN-коды не совпадают"
"pinsDontMatch": "PIN-коды не совпадают",
"initializeServicesFailed": "Не удалось инициализировать службы профиля"
},
"connections": {
"sectionTitle": "Подключения",
@@ -647,7 +662,8 @@
"rating": "Рейтинг",
"movie": "Фильм",
"tvShow": "Сериал",
"minutesLeft": "Осталось ${minutes} мин"
"minutesLeft": "Осталось ${minutes} мин",
"moreLikeThis": "Похожее"
},
"errors": {
"searchFailed": "Ошибка поиска: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Библиотеки",
"fallbackTitle": "Библиотека",
"scanLibraryFiles": "Сканировать файлы библиотеки",
"scanLibrary": "Сканировать библиотеку",
"analyze": "Анализировать",
@@ -788,6 +805,12 @@
"noChannels": "Нет доступных каналов",
"noDvr": "DVR не настроен ни на одном сервере",
"noPrograms": "Нет данных о программах",
"liveStreamFailed": "Не удалось запустить прямой эфир",
"unknownProgram": "Неизвестная программа",
"unknownHub": "Неизвестно",
"unknownError": "Неизвестная ошибка",
"channelNumber": "Канал ${number}",
"unknownChannel": "Неизвестный канал",
"live": "ЭФИР",
"reloadGuide": "Перезагрузить программу",
"now": "Сейчас",
@@ -966,12 +989,21 @@
"deleteDownload": "Удалить загрузку",
"retryDownload": "Повторить загрузку",
"downloadQueued": "Загрузка поставлена в очередь",
"downloadResumed": "Загрузка возобновлена",
"serverErrorBitrate": "Ошибка сервера: файл может превышать удаленный лимит bitrate",
"episodesQueued": "${count} эпизодов поставлено в очередь загрузки",
"downloadDeleted": "Загрузка удалена",
"deleteConfirm": "Удалить \"${title}\" с этого устройства?",
"deletingWithProgress": "Удаление ${title}... (${current} из ${total})",
"cancelledDownloadTitle": "Загрузка отменена",
"cancelledDownloadMessage": "Эта загрузка была отменена. Что вы хотите сделать?",
"allEpisodesAlreadyDownloaded": "Все эпизоды уже загружены",
"resumeDownload": "Возобновить загрузку",
"cancelledDownload": "Загрузка отменена",
"syncingFile": "${file} (синхронизация ${status})",
"downloadedFileClickToComplete": "${file} загружен — нажмите, чтобы завершить",
"partialDownloadClickToComplete": "Частично загружено — нажмите, чтобы завершить",
"deleting": "Удаление...",
"deletingWithProgress": "Удаление ${title}... (${current} из ${total})",
"queuedTooltip": "В очереди",
"queuedFilesTooltip": "В очереди: ${files}",
"downloadingTooltip": "Загрузка...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Пульт управления",
"connectedTo": "Подключено к ${name}",
"unknownDevice": "Неизвестное устройство",
"session": {
"startingServer": "Запуск удалённого сервера...",
"failedToCreate": "Не удалось запустить удалённый сервер:",
@@ -1091,6 +1124,14 @@
"subtitles": "Субтитры",
"audio": "Аудио",
"searchHint": "Поиск на десктопе..."
},
"errors": {
"noNetworkInterface": "Сетевой интерфейс не найден",
"authenticationFailed": "Ошибка аутентификации",
"joinTimedOut": "Время подключения к сеансу истекло",
"failedToConnectAnyAddress": "Не удалось подключиться ни к одному адресу",
"connectionLostAfterAttempts": "Соединение потеряно после ${attempts} попыток",
"connectionLost": "Соединение потеряно"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Сквозной вывод аудио",
"audioNormalization": "Нормализация громкости"
},
"performanceOverlay": {
"color": "Цвет",
"performance": "Производительность",
"buffer": "Буфер",
"app": "Приложение",
"decoder": "Декодер",
"rawDecoder": "Raw-декодер",
"tunneling": "Туннелирование",
"aspect": "Соотношение",
"rotation": "Поворот",
"dvSource": "Источник DV",
"dvPath": "Путь DV",
"p7Conversion": "Конв. P7",
"sampleRate": "Частота дискр.",
"pixelFormat": "Формат пикселей",
"hwFormat": "Формат HW",
"matrix": "Матрица",
"primaries": "Основные цвета",
"transfer": "Передача",
"renderFps": "FPS рендера",
"displayFps": "FPS дисплея",
"avSync": "A/V синхр.",
"dropped": "Пропущено",
"dvRpus": "DV RPU",
"dvRpuAverage": "Сред. DV RPU",
"dvSampleAverage": "Сред. сэмпл DV",
"maxLuma": "Макс. яркость",
"minLuma": "Мин. яркость",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Кэш использован",
"speed": "Скорость",
"player": "Плеер",
"memory": "Память",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Внешний плеер",
"useExternalPlayer": "Использовать внешний плеер",
@@ -1114,6 +1191,7 @@
"systemDefault": "Системный по умолчанию",
"addCustomPlayer": "Добавить свой плеер",
"playerName": "Название плеера",
"playerNameHint": "Мой плеер",
"playerCommand": "Команда",
"playerPackage": "Имя пакета",
"playerUrlScheme": "URL-схема",
+1 -1
View File
@@ -4,7 +4,7 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 16
/// Strings: 19104 (1194 per locale)
/// Strings: 20288 (1268 per locale)
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+172 -4
View File
@@ -77,6 +77,7 @@ class TranslationsBg extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersBg shaders = _TranslationsShadersBg._(_root);
@override late final _TranslationsCompanionRemoteBg companionRemote = _TranslationsCompanionRemoteBg._(_root);
@override late final _TranslationsVideoSettingsBg videoSettings = _TranslationsVideoSettingsBg._(_root);
@override late final _TranslationsPerformanceOverlayBg performanceOverlay = _TranslationsPerformanceOverlayBg._(_root);
@override late final _TranslationsExternalPlayerBg externalPlayer = _TranslationsExternalPlayerBg._(_root);
@override late final _TranslationsMetadataEditBg metadataEdit = _TranslationsMetadataEditBg._(_root);
@override late final _TranslationsMatchScreenBg matchScreen = _TranslationsMatchScreenBg._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonBg extends TranslationsCommonEn {
@override String get settings => 'Настройки';
@override String get mute => 'Заглуши';
@override String get ok => 'OK';
@override String get off => 'Изкл.';
@override String seasonNumber({required Object number}) => 'Сезон ${number}';
@override String chapterNumber({required Object number}) => 'Глава ${number}';
@override String get reconnect => 'Свържи отново';
@override String get exit => 'Изход';
@override String get viewAll => 'Виж всички';
@@ -385,6 +389,10 @@ class _TranslationsSettingsBg extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Нативно / изключено';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Използва засичане на възможностите на устройството и нормално fallback поведение';
@override String get dvConversionNativeDescription => 'Принуждава нативен DV7 и спира повторния опит за DV конвертиране';
@override String get dvConversionDv81Description => 'Принуждава inline RPU конвертиране към Dolby Vision профил 8.1';
@override String get dvConversionHevcStripDescription => 'Премахва Dolby Vision RPU/EL слоевете и подава обикновен HEVC';
@override String get requireProfileSelectionOnOpen => 'Питай за профил при отваряне на приложението';
@override String get requireProfileSelectionOnOpenDescription => 'Показвай избор на профил всеки път при отваряне на приложението';
@override String get forceTvMode => 'Принуди TV режим';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysBg extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Задай клавишна комбинация за ${actionName}';
@override String get clearShortcut => 'Изчисти клавишната комбинация';
@override String get noShortcutSet => 'Няма зададена клавишна комбинация';
@override String get currentShortcut => 'Текуща комбинация:';
@override late final _TranslationsHotkeysActionsBg actions = _TranslationsHotkeysActionsBg._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuBg extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Към сериала';
@override String get goToSeason => 'Към сезона';
@override String get shufflePlay => 'Разбъркано възпроизвеждане';
@override String get shuffleNotAvailableOffline => 'Разбърканото възпроизвеждане не е налично офлайн';
@override String get fileInfo => 'Информация за файла';
@override String get deleteFromServer => 'Изтрий от сървъра';
@override String get confirmDelete => 'Да се изтрие ли тази медия и файловете ѝ от вашия сървър?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsBg extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Търсене на субтитри';
@override String get language => 'Език';
@override String get noSubtitlesFound => 'Не са намерени субтитри';
@override String get downloadedSubtitle => 'Изтеглени субтитри';
@override String get noSubtitlesAvailable => 'Няма налични субтитри';
@override String get noAudioTracksAvailable => 'Няма налични аудио писти';
@override String get noTracksAvailable => 'Няма налични писти';
@override String get subtitleDownloaded => 'Субтитърът е изтеглен';
@override String get subtitleDownloadFailed => 'Неуспешно изтегляне на субтитър';
@override String get searchLanguages => 'Търсене на езици...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesBg extends TranslationsProfilesEn {
@override String get pinExplain => 'Изисква се 4-цифрен PIN за смяна на профили.';
@override String get continueButton => 'Продължи';
@override String get pinsDontMatch => 'PIN кодовете не съвпадат';
@override String get initializeServicesFailed => 'Неуспешно инициализиране на услугите за профили';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverBg extends TranslationsDiscoverEn {
@override String get movie => 'Филм';
@override String get tvShow => 'ТВ сериал';
@override String minutesLeft({required Object minutes}) => 'Остават ${minutes} мин';
@override String get moreLikeThis => 'Подобно на това';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesBg extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Библиотеки';
@override String get fallbackTitle => 'Библиотека';
@override String get scanLibraryFiles => 'Сканирай файловете на библиотеката';
@override String get scanLibrary => 'Сканирай библиотеката';
@override String get analyze => 'Анализирай';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvBg extends TranslationsLiveTvEn {
@override String get noChannels => 'Няма налични канали';
@override String get noDvr => 'Няма конфигуриран DVR на нито един сървър';
@override String get noPrograms => 'Няма налични програмни данни';
@override String get liveStreamFailed => 'Потокът на живо се провали';
@override String get unknownProgram => 'Неизвестна програма';
@override String get unknownHub => 'Неизвестно';
@override String get unknownError => 'Неизвестна грешка';
@override String channelNumber({required Object number}) => 'Канал ${number}';
@override String get unknownChannel => 'Неизвестен канал';
@override String get live => 'НА ЖИВО';
@override String get reloadGuide => 'Презареди ТВ програмата';
@override String get now => 'Сега';
@@ -1224,10 +1248,19 @@ class _TranslationsDownloadsBg extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Изтрий изтегляне';
@override String get retryDownload => 'Опитай изтеглянето отново';
@override String get downloadQueued => 'Изтеглянето е добавено в опашката';
@override String get downloadResumed => 'Изтеглянето е възобновено';
@override String get serverErrorBitrate => 'Грешка на сървъра: файлът може да надвишава лимита за отдалечен битрейт';
@override String episodesQueued({required Object count}) => '${count} епизода са добавени в опашката за изтегляне';
@override String get downloadDeleted => 'Изтеглянето е изтрито';
@override String deleteConfirm({required Object title}) => 'Да се изтрие ли "${title}" от това устройство?';
@override String get cancelledDownloadTitle => 'Отменено изтегляне';
@override String get cancelledDownloadMessage => 'Това изтегляне беше отменено. Какво искате да направите?';
@override String get allEpisodesAlreadyDownloaded => 'Всички епизоди вече са изтеглени';
@override String get resumeDownload => 'Възобнови изтеглянето';
@override String get cancelledDownload => 'Отменено изтегляне';
@override String syncingFile({required Object file, required Object status}) => '${file} (синхронизира се ${status})';
@override String downloadedFileClickToComplete({required Object file}) => 'Изтеглен ${file} — щракнете за довършване';
@override String get partialDownloadClickToComplete => 'Частично изтеглено — щракнете за довършване';
@override String get deleting => 'Изтриване...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Изтриване на ${title}... (${current} от ${total})';
@override String get queuedTooltip => 'В опашката';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteBg extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Дистанционно управление';
@override String connectedTo({required Object name}) => 'Свързан към ${name}';
@override String get unknownDevice => 'Непознато устройство';
@override late final _TranslationsCompanionRemoteSessionBg session = _TranslationsCompanionRemoteSessionBg._(_root);
@override late final _TranslationsCompanionRemotePairingBg pairing = _TranslationsCompanionRemotePairingBg._(_root);
@override late final _TranslationsCompanionRemoteRemoteBg remote = _TranslationsCompanionRemoteRemoteBg._(_root);
@override late final _TranslationsCompanionRemoteErrorsBg errors = _TranslationsCompanionRemoteErrorsBg._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsBg extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Нормализиране на силата на звука';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayBg extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayBg._(TranslationsBg root) : this._root = root, super.internal(root);
final TranslationsBg _root; // ignore: unused_field
// Translations
@override String get color => 'Цвят';
@override String get performance => 'Производителност';
@override String get buffer => 'Буфер';
@override String get app => 'Приложение';
@override String get decoder => 'Декодер';
@override String get rawDecoder => 'Суров декодер';
@override String get tunneling => 'Тунелиране';
@override String get aspect => 'Съотношение';
@override String get rotation => 'Завъртане';
@override String get dvSource => 'DV източник';
@override String get dvPath => 'DV път';
@override String get p7Conversion => 'P7 конв.';
@override String get sampleRate => 'Честота';
@override String get pixelFormat => 'Пикселен формат';
@override String get hwFormat => 'HW формат';
@override String get matrix => 'Матрица';
@override String get primaries => 'Основни цветове';
@override String get transfer => 'Трансфер';
@override String get renderFps => 'Render FPS';
@override String get displayFps => 'Display FPS';
@override String get avSync => 'A/V синхр.';
@override String get dropped => 'Изпуснати';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'Средно DV RPU';
@override String get dvSampleAverage => 'Средно DV семпл';
@override String get maxLuma => 'Макс. яркост';
@override String get minLuma => 'Мин. яркост';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Използван кеш';
@override String get speed => 'Скорост';
@override String get player => 'Плеър';
@override String get memory => 'Памет';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerBg extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerBg._(TranslationsBg root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerBg extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Системен по подразбиране';
@override String get addCustomPlayer => 'Добави персонален плейър';
@override String get playerName => 'Име на плейъра';
@override String get playerNameHint => 'Моят плеър';
@override String get playerCommand => 'Команда';
@override String get playerPackage => 'Име на пакет';
@override String get playerUrlScheme => 'URL схема';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteBg extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Търсене на настолен компютър...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsBg extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsBg._(TranslationsBg root) : this._root = root, super.internal(root);
final TranslationsBg _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Не е намерен мрежов интерфейс';
@override String get authenticationFailed => 'Неуспешно удостоверяване';
@override String get joinTimedOut => 'Времето за присъединяване към сесията изтече';
@override String get failedToConnectAnyAddress => 'Неуспешно свързване към който и да е адрес';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Връзката е загубена след ${attempts} опита';
@override String get connectionLost => 'Връзката е загубена';
}
// Path: trackers.services
class _TranslationsTrackersServicesBg extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesBg._(TranslationsBg root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsBg {
'common.settings' => 'Настройки',
'common.mute' => 'Заглуши',
'common.ok' => 'OK',
'common.off' => 'Изкл.',
'common.seasonNumber' => ({required Object number}) => 'Сезон ${number}',
'common.chapterNumber' => ({required Object number}) => 'Глава ${number}',
'common.reconnect' => 'Свържи отново',
'common.exit' => 'Изход',
'common.viewAll' => 'Виж всички',
@@ -2070,6 +2167,10 @@ extension on TranslationsBg {
'settings.dvConversionNative' => 'Нативно / изключено',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Използва засичане на възможностите на устройството и нормално fallback поведение',
'settings.dvConversionNativeDescription' => 'Принуждава нативен DV7 и спира повторния опит за DV конвертиране',
'settings.dvConversionDv81Description' => 'Принуждава inline RPU конвертиране към Dolby Vision профил 8.1',
'settings.dvConversionHevcStripDescription' => 'Премахва Dolby Vision RPU/EL слоевете и подава обикновен HEVC',
'settings.requireProfileSelectionOnOpen' => 'Питай за профил при отваряне на приложението',
'settings.requireProfileSelectionOnOpenDescription' => 'Показвай избор на профил всеки път при отваряне на приложението',
'settings.forceTvMode' => 'Принуди TV режим',
@@ -2099,6 +2200,8 @@ extension on TranslationsBg {
'search.enterTitleActorOrKeyword' => 'Въведете заглавие, актьор или ключова дума',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Задай клавишна комбинация за ${actionName}',
'hotkeys.clearShortcut' => 'Изчисти клавишната комбинация',
'hotkeys.noShortcutSet' => 'Няма зададена клавишна комбинация',
'hotkeys.currentShortcut' => 'Текуща комбинация:',
'hotkeys.actions.playPause' => 'Пускане/пауза',
'hotkeys.actions.volumeUp' => 'Увеличи звука',
'hotkeys.actions.volumeDown' => 'Намали звука',
@@ -2155,6 +2258,7 @@ extension on TranslationsBg {
'mediaMenu.goToSeries' => 'Към сериала',
'mediaMenu.goToSeason' => 'Към сезона',
'mediaMenu.shufflePlay' => 'Разбъркано възпроизвеждане',
'mediaMenu.shuffleNotAvailableOffline' => 'Разбърканото възпроизвеждане не е налично офлайн',
'mediaMenu.fileInfo' => 'Информация за файла',
'mediaMenu.deleteFromServer' => 'Изтрий от сървъра',
'mediaMenu.confirmDelete' => 'Да се изтрие ли тази медия и файловете ѝ от вашия сървър?',
@@ -2263,6 +2367,10 @@ extension on TranslationsBg {
'videoControls.searchSubtitles' => 'Търсене на субтитри',
'videoControls.language' => 'Език',
'videoControls.noSubtitlesFound' => 'Не са намерени субтитри',
'videoControls.downloadedSubtitle' => 'Изтеглени субтитри',
'videoControls.noSubtitlesAvailable' => 'Няма налични субтитри',
'videoControls.noAudioTracksAvailable' => 'Няма налични аудио писти',
'videoControls.noTracksAvailable' => 'Няма налични писти',
'videoControls.subtitleDownloaded' => 'Субтитърът е изтеглен',
'videoControls.subtitleDownloadFailed' => 'Неуспешно изтегляне на субтитър',
'videoControls.searchLanguages' => 'Търсене на езици...',
@@ -2321,6 +2429,8 @@ extension on TranslationsBg {
'subtitlingStyling.borderColor' => 'Цвят на рамката',
'subtitlingStyling.backgroundOpacity' => 'Прозрачност на фона',
'subtitlingStyling.backgroundColor' => 'Цвят на фона',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Позиция',
'subtitlingStyling.assOverride' => 'ASS презаписване',
'subtitlingStyling.bold' => 'Получер',
@@ -2335,8 +2445,6 @@ extension on TranslationsBg {
'mpvConfig.loadPreset' => 'Зареди',
'mpvConfig.deletePreset' => 'Изтрий',
'mpvConfig.presetSaved' => 'Пресетът е запазен',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Пресетът е зареден',
'mpvConfig.presetDeleted' => 'Пресетът е изтрит',
'mpvConfig.confirmDeletePreset' => 'Сигурни ли сте, че искате да изтриете този пресет?',
@@ -2399,6 +2507,7 @@ extension on TranslationsBg {
'profiles.pinExplain' => 'Изисква се 4-цифрен PIN за смяна на профили.',
'profiles.continueButton' => 'Продължи',
'profiles.pinsDontMatch' => 'PIN кодовете не съвпадат',
'profiles.initializeServicesFailed' => 'Неуспешно инициализиране на услугите за профили',
'connections.sectionTitle' => 'Връзки',
'connections.addConnection' => 'Добави връзка',
'connections.addConnectionSubtitleNoProfile' => 'Влезте с Plex или свържете Jellyfin сървър',
@@ -2427,6 +2536,7 @@ extension on TranslationsBg {
'discover.movie' => 'Филм',
'discover.tvShow' => 'ТВ сериал',
'discover.minutesLeft' => ({required Object minutes}) => 'Остават ${minutes} мин',
'discover.moreLikeThis' => 'Подобно на това',
'errors.searchFailed' => ({required Object error}) => 'Търсенето е неуспешно: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Изтече времето за връзка при зареждане на ${context}',
'errors.connectionFailed' => 'Не може да се осъществи връзка с медиен сървър',
@@ -2441,6 +2551,7 @@ extension on TranslationsBg {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Неуспешно изтриване на ${displayName}',
'errors.failedToRate' => 'Оценката не можа да бъде обновена',
'libraries.title' => 'Библиотеки',
'libraries.fallbackTitle' => 'Библиотека',
'libraries.scanLibraryFiles' => 'Сканирай файловете на библиотеката',
'libraries.scanLibrary' => 'Сканирай библиотеката',
'libraries.analyze' => 'Анализирай',
@@ -2541,6 +2652,12 @@ extension on TranslationsBg {
'liveTv.noChannels' => 'Няма налични канали',
'liveTv.noDvr' => 'Няма конфигуриран DVR на нито един сървър',
'liveTv.noPrograms' => 'Няма налични програмни данни',
'liveTv.liveStreamFailed' => 'Потокът на живо се провали',
'liveTv.unknownProgram' => 'Неизвестна програма',
'liveTv.unknownHub' => 'Неизвестно',
'liveTv.unknownError' => 'Неизвестна грешка',
'liveTv.channelNumber' => ({required Object number}) => 'Канал ${number}',
'liveTv.unknownChannel' => 'Неизвестен канал',
'liveTv.live' => 'НА ЖИВО',
'liveTv.reloadGuide' => 'Презареди ТВ програмата',
'liveTv.now' => 'Сега',
@@ -2711,10 +2828,19 @@ extension on TranslationsBg {
'downloads.deleteDownload' => 'Изтрий изтегляне',
'downloads.retryDownload' => 'Опитай изтеглянето отново',
'downloads.downloadQueued' => 'Изтеглянето е добавено в опашката',
'downloads.downloadResumed' => 'Изтеглянето е възобновено',
'downloads.serverErrorBitrate' => 'Грешка на сървъра: файлът може да надвишава лимита за отдалечен битрейт',
'downloads.episodesQueued' => ({required Object count}) => '${count} епизода са добавени в опашката за изтегляне',
'downloads.downloadDeleted' => 'Изтеглянето е изтрито',
'downloads.deleteConfirm' => ({required Object title}) => 'Да се изтрие ли "${title}" от това устройство?',
'downloads.cancelledDownloadTitle' => 'Отменено изтегляне',
'downloads.cancelledDownloadMessage' => 'Това изтегляне беше отменено. Какво искате да направите?',
'downloads.allEpisodesAlreadyDownloaded' => 'Всички епизоди вече са изтеглени',
'downloads.resumeDownload' => 'Възобнови изтеглянето',
'downloads.cancelledDownload' => 'Отменено изтегляне',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (синхронизира се ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Изтеглен ${file} — щракнете за довършване',
'downloads.partialDownloadClickToComplete' => 'Частично изтеглено — щракнете за довършване',
'downloads.deleting' => 'Изтриване...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Изтриване на ${title}... (${current} от ${total})',
'downloads.queuedTooltip' => 'В опашката',
@@ -2773,6 +2899,7 @@ extension on TranslationsBg {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Да се изтрие ли "${name}"?',
'companionRemote.title' => 'Дистанционно управление',
'companionRemote.connectedTo' => ({required Object name}) => 'Свързан към ${name}',
'companionRemote.unknownDevice' => 'Непознато устройство',
'companionRemote.session.startingServer' => 'Стартиране на сървър за дистанционно управление...',
'companionRemote.session.failedToCreate' => 'Неуспешно стартиране на сървър за дистанционно управление:',
'companionRemote.session.hostAddress' => 'Адрес на хоста',
@@ -2816,6 +2943,8 @@ extension on TranslationsBg {
'companionRemote.remote.tabSettings' => 'Настройки',
'companionRemote.remote.previous' => 'Предишен',
'companionRemote.remote.playPause' => 'Пускане/пауза',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Следващ',
'companionRemote.remote.seekBack' => 'Назад',
'companionRemote.remote.stop' => 'Стоп',
@@ -2827,6 +2956,12 @@ extension on TranslationsBg {
'companionRemote.remote.subtitles' => 'Субтитри',
'companionRemote.remote.audio' => 'Аудио',
'companionRemote.remote.searchHint' => 'Търсене на настолен компютър...',
'companionRemote.errors.noNetworkInterface' => 'Не е намерен мрежов интерфейс',
'companionRemote.errors.authenticationFailed' => 'Неуспешно удостоверяване',
'companionRemote.errors.joinTimedOut' => 'Времето за присъединяване към сесията изтече',
'companionRemote.errors.failedToConnectAnyAddress' => 'Неуспешно свързване към който и да е адрес',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Връзката е загубена след ${attempts} опита',
'companionRemote.errors.connectionLost' => 'Връзката е загубена',
'videoSettings.playbackSpeed' => 'Скорост на възпроизвеждане',
'videoSettings.zoom' => 'Мащаб',
'videoSettings.sleepTimer' => 'Таймер за заспиване',
@@ -2837,6 +2972,40 @@ extension on TranslationsBg {
'videoSettings.performanceOverlay' => 'Оверлей за производителност',
'videoSettings.audioPassthrough' => 'Аудио passthrough',
'videoSettings.audioNormalization' => 'Нормализиране на силата на звука',
'performanceOverlay.color' => 'Цвят',
'performanceOverlay.performance' => 'Производителност',
'performanceOverlay.buffer' => 'Буфер',
'performanceOverlay.app' => 'Приложение',
'performanceOverlay.decoder' => 'Декодер',
'performanceOverlay.rawDecoder' => 'Суров декодер',
'performanceOverlay.tunneling' => 'Тунелиране',
'performanceOverlay.aspect' => 'Съотношение',
'performanceOverlay.rotation' => 'Завъртане',
'performanceOverlay.dvSource' => 'DV източник',
'performanceOverlay.dvPath' => 'DV път',
'performanceOverlay.p7Conversion' => 'P7 конв.',
'performanceOverlay.sampleRate' => 'Честота',
'performanceOverlay.pixelFormat' => 'Пикселен формат',
'performanceOverlay.hwFormat' => 'HW формат',
'performanceOverlay.matrix' => 'Матрица',
'performanceOverlay.primaries' => 'Основни цветове',
'performanceOverlay.transfer' => 'Трансфер',
'performanceOverlay.renderFps' => 'Render FPS',
'performanceOverlay.displayFps' => 'Display FPS',
'performanceOverlay.avSync' => 'A/V синхр.',
'performanceOverlay.dropped' => 'Изпуснати',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'Средно DV RPU',
'performanceOverlay.dvSampleAverage' => 'Средно DV семпл',
'performanceOverlay.maxLuma' => 'Макс. яркост',
'performanceOverlay.minLuma' => 'Мин. яркост',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Използван кеш',
'performanceOverlay.speed' => 'Скорост',
'performanceOverlay.player' => 'Плеър',
'performanceOverlay.memory' => 'Памет',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Външен плеър',
'externalPlayer.useExternalPlayer' => 'Използвай външен плеър',
'externalPlayer.useExternalPlayerDescription' => 'Отваряй видеата в друго приложение',
@@ -2845,12 +3014,11 @@ extension on TranslationsBg {
'externalPlayer.systemDefault' => 'Системен по подразбиране',
'externalPlayer.addCustomPlayer' => 'Добави персонален плейър',
'externalPlayer.playerName' => 'Име на плейъра',
'externalPlayer.playerNameHint' => 'Моят плеър',
'externalPlayer.playerCommand' => 'Команда',
'externalPlayer.playerPackage' => 'Име на пакет',
'externalPlayer.playerUrlScheme' => 'URL схема',
'externalPlayer.off' => 'Изключено',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Неуспешно отваряне на външен плеър',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} не е инсталиран',
'externalPlayer.playInExternalPlayer' => 'Пусни във външен плеър',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsDa extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersDa shaders = _TranslationsShadersDa._(_root);
@override late final _TranslationsCompanionRemoteDa companionRemote = _TranslationsCompanionRemoteDa._(_root);
@override late final _TranslationsVideoSettingsDa videoSettings = _TranslationsVideoSettingsDa._(_root);
@override late final _TranslationsPerformanceOverlayDa performanceOverlay = _TranslationsPerformanceOverlayDa._(_root);
@override late final _TranslationsExternalPlayerDa externalPlayer = _TranslationsExternalPlayerDa._(_root);
@override late final _TranslationsMetadataEditDa metadataEdit = _TranslationsMetadataEditDa._(_root);
@override late final _TranslationsMatchScreenDa matchScreen = _TranslationsMatchScreenDa._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonDa extends TranslationsCommonEn {
@override String get settings => 'Indstillinger';
@override String get mute => 'Lydløs';
@override String get ok => 'OK';
@override String get off => 'Fra';
@override String seasonNumber({required Object number}) => 'Sæson ${number}';
@override String chapterNumber({required Object number}) => 'Kapitel ${number}';
@override String get reconnect => 'Genopret forbindelse';
@override String get exit => 'Afslut';
@override String get viewAll => 'Vis alle';
@@ -385,6 +389,10 @@ class _TranslationsSettingsDa extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Native / deaktiveret';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Brug enhedens kapabilitetsregistrering og normal fallbackadfærd';
@override String get dvConversionNativeDescription => 'Tving native DV7 og undertryk forsøg på DV-konvertering';
@override String get dvConversionDv81Description => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1';
@override String get dvConversionHevcStripDescription => 'Fjern Dolby Vision RPU/EL-lag og brug almindelig HEVC';
@override String get requireProfileSelectionOnOpen => 'Spørg om profil ved åbning';
@override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åbnes';
@override String get forceTvMode => 'Gennemtving TV-tilstand';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysDa extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Indstil genvej for ${actionName}';
@override String get clearShortcut => 'Ryd genvej';
@override String get noShortcutSet => 'Ingen genvej angivet';
@override String get currentShortcut => 'Nuværende genvej:';
@override late final _TranslationsHotkeysActionsDa actions = _TranslationsHotkeysActionsDa._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuDa extends TranslationsMediaMenuEn {
@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 shuffleNotAvailableOffline => 'Bland afspilning er ikke tilgængelig offline';
@override String get fileInfo => 'Filinfo';
@override String get deleteFromServer => 'Slet fra server';
@override String get confirmDelete => 'Slet dette medie og dets filer fra din server?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsDa extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Søg undertekster';
@override String get language => 'Sprog';
@override String get noSubtitlesFound => 'Ingen undertekster fundet';
@override String get downloadedSubtitle => 'Downloadet';
@override String get noSubtitlesAvailable => 'Ingen undertekster tilgængelige';
@override String get noAudioTracksAvailable => 'Ingen lydspor tilgængelige';
@override String get noTracksAvailable => 'Ingen spor tilgængelige';
@override String get subtitleDownloaded => 'Undertekst downloadet';
@override String get subtitleDownloadFailed => 'Kunne ikke downloade undertekst';
@override String get searchLanguages => 'Søg sprog...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesDa extends TranslationsProfilesEn {
@override String get pinExplain => '4-cifret PIN kræves for at skifte profiler.';
@override String get continueButton => 'Fortsæt';
@override String get pinsDontMatch => 'PIN-koder matcher ikke';
@override String get initializeServicesFailed => 'Kunne ikke initialisere profiltjenester';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverDa extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'TV-serie';
@override String minutesLeft({required Object minutes}) => '${minutes} min tilbage';
@override String get moreLikeThis => 'Mere som dette';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesDa extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Biblioteker';
@override String get fallbackTitle => 'Bibliotek';
@override String get scanLibraryFiles => 'Scan biblioteksfiler';
@override String get scanLibrary => 'Scan bibliotek';
@override String get analyze => 'Analysér';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvDa extends TranslationsLiveTvEn {
@override String get noChannels => 'Ingen kanaler tilgængelige';
@override String get noDvr => 'Ingen DVR konfigureret på nogen server';
@override String get noPrograms => 'Ingen programdata tilgængelig';
@override String get liveStreamFailed => 'Livestream mislykkedes';
@override String get unknownProgram => 'Ukendt program';
@override String get unknownHub => 'Ukendt';
@override String get unknownError => 'Ukendt fejl';
@override String channelNumber({required Object number}) => 'Kanal ${number}';
@override String get unknownChannel => 'Ukendt kanal';
@override String get live => 'LIVE';
@override String get reloadGuide => 'Genindlæs guide';
@override String get now => 'Nu';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsDa extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Slet download';
@override String get retryDownload => 'Prøv download igen';
@override String get downloadQueued => 'Download i kø';
@override String get downloadResumed => 'Download genoptaget';
@override String get serverErrorBitrate => 'Serverfejl: filen overskrider muligvis grænsen for ekstern bitrate';
@override String episodesQueued({required Object count}) => '${count} episoder i downloadkø';
@override String get downloadDeleted => 'Download slettet';
@override String deleteConfirm({required Object title}) => 'Slet "${title}" fra denne enhed?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} af ${total})';
@override String get cancelledDownloadTitle => 'Annulleret download';
@override String get cancelledDownloadMessage => 'Denne download blev annulleret. Hvad vil du gøre?';
@override String get allEpisodesAlreadyDownloaded => 'Alle episoder er allerede downloadet';
@override String get resumeDownload => 'Genoptag download';
@override String get cancelledDownload => 'Annulleret download';
@override String syncingFile({required Object file, required Object status}) => '${file} (synkroniserer ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} downloadet — klik for at fuldføre';
@override String get partialDownloadClickToComplete => 'Delvist downloadet — klik for at fuldføre';
@override String get deleting => 'Sletter...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} af ${total})';
@override String get queuedTooltip => 'I kø';
@override String queuedFilesTooltip({required Object files}) => 'I kø: ${files}';
@override String get downloadingTooltip => 'Downloader...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteDa extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Fjernbetjening';
@override String connectedTo({required Object name}) => 'Forbundet til ${name}';
@override String get unknownDevice => 'Ukendt enhed';
@override late final _TranslationsCompanionRemoteSessionDa session = _TranslationsCompanionRemoteSessionDa._(_root);
@override late final _TranslationsCompanionRemotePairingDa pairing = _TranslationsCompanionRemotePairingDa._(_root);
@override late final _TranslationsCompanionRemoteRemoteDa remote = _TranslationsCompanionRemoteRemoteDa._(_root);
@override late final _TranslationsCompanionRemoteErrorsDa errors = _TranslationsCompanionRemoteErrorsDa._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsDa extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normalisér lydstyrke';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayDa extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayDa._(TranslationsDa root) : this._root = root, super.internal(root);
final TranslationsDa _root; // ignore: unused_field
// Translations
@override String get color => 'Farve';
@override String get performance => 'Ydeevne';
@override String get buffer => 'Buffer';
@override String get app => 'App';
@override String get decoder => 'Dekoder';
@override String get rawDecoder => 'Rå dekoder';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Billedformat';
@override String get rotation => 'Rotation';
@override String get dvSource => 'DV-kilde';
@override String get dvPath => 'DV-sti';
@override String get p7Conversion => 'P7-konv.';
@override String get sampleRate => 'Samplingsrate';
@override String get pixelFormat => 'Pixelformat';
@override String get hwFormat => 'HW-format';
@override String get matrix => 'Matrix';
@override String get primaries => 'Primærfarver';
@override String get transfer => 'Transfer';
@override String get renderFps => 'Render FPS';
@override String get displayFps => 'Skærm-FPS';
@override String get avSync => 'A/V-synk.';
@override String get dropped => 'Tabte';
@override String get dvRpus => 'DV RPUer';
@override String get dvRpuAverage => 'DV RPU gns.';
@override String get dvSampleAverage => 'DV-sample gns.';
@override String get maxLuma => 'Maks. luma';
@override String get minLuma => 'Min. luma';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Brugt cache';
@override String get speed => 'Hastighed';
@override String get player => 'Afspiller';
@override String get memory => 'Hukommelse';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerDa extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerDa._(TranslationsDa root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerDa extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Systemstandard';
@override String get addCustomPlayer => 'Tilføj brugerdefineret afspiller';
@override String get playerName => 'Afspillernavn';
@override String get playerNameHint => 'Min afspiller';
@override String get playerCommand => 'Kommando';
@override String get playerPackage => 'Pakkenavn';
@override String get playerUrlScheme => 'URL-skema';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteDa extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Søg på desktop...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsDa extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsDa._(TranslationsDa root) : this._root = root, super.internal(root);
final TranslationsDa _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Ingen netværksgrænseflade fundet';
@override String get authenticationFailed => 'Godkendelse mislykkedes';
@override String get joinTimedOut => 'Tidsgrænse for deltagelse i session overskredet';
@override String get failedToConnectAnyAddress => 'Kunne ikke oprette forbindelse til nogen adresse';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Forbindelse mistet efter ${attempts} forsøg';
@override String get connectionLost => 'Forbindelse mistet';
}
// Path: trackers.services
class _TranslationsTrackersServicesDa extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesDa._(TranslationsDa root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsDa {
'common.settings' => 'Indstillinger',
'common.mute' => 'Lydløs',
'common.ok' => 'OK',
'common.off' => 'Fra',
'common.seasonNumber' => ({required Object number}) => 'Sæson ${number}',
'common.chapterNumber' => ({required Object number}) => 'Kapitel ${number}',
'common.reconnect' => 'Genopret forbindelse',
'common.exit' => 'Afslut',
'common.viewAll' => 'Vis alle',
@@ -2070,6 +2167,10 @@ extension on TranslationsDa {
'settings.dvConversionNative' => 'Native / deaktiveret',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Brug enhedens kapabilitetsregistrering og normal fallbackadfærd',
'settings.dvConversionNativeDescription' => 'Tving native DV7 og undertryk forsøg på DV-konvertering',
'settings.dvConversionDv81Description' => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1',
'settings.dvConversionHevcStripDescription' => 'Fjern Dolby Vision RPU/EL-lag og brug almindelig HEVC',
'settings.requireProfileSelectionOnOpen' => 'Spørg om profil ved åbning',
'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åbnes',
'settings.forceTvMode' => 'Gennemtving TV-tilstand',
@@ -2099,6 +2200,8 @@ extension on TranslationsDa {
'search.enterTitleActorOrKeyword' => 'Indtast titel, skuespiller eller nøgleord',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Indstil genvej for ${actionName}',
'hotkeys.clearShortcut' => 'Ryd genvej',
'hotkeys.noShortcutSet' => 'Ingen genvej angivet',
'hotkeys.currentShortcut' => 'Nuværende genvej:',
'hotkeys.actions.playPause' => 'Afspil/Pause',
'hotkeys.actions.volumeUp' => 'Lydstyrke op',
'hotkeys.actions.volumeDown' => 'Lydstyrke ned',
@@ -2155,6 +2258,7 @@ extension on TranslationsDa {
'mediaMenu.goToSeries' => 'Gå til serie',
'mediaMenu.goToSeason' => 'Gå til sæson',
'mediaMenu.shufflePlay' => 'Afspil tilfældigt',
'mediaMenu.shuffleNotAvailableOffline' => 'Bland afspilning er ikke tilgængelig offline',
'mediaMenu.fileInfo' => 'Filinfo',
'mediaMenu.deleteFromServer' => 'Slet fra server',
'mediaMenu.confirmDelete' => 'Slet dette medie og dets filer fra din server?',
@@ -2263,6 +2367,10 @@ extension on TranslationsDa {
'videoControls.searchSubtitles' => 'Søg undertekster',
'videoControls.language' => 'Sprog',
'videoControls.noSubtitlesFound' => 'Ingen undertekster fundet',
'videoControls.downloadedSubtitle' => 'Downloadet',
'videoControls.noSubtitlesAvailable' => 'Ingen undertekster tilgængelige',
'videoControls.noAudioTracksAvailable' => 'Ingen lydspor tilgængelige',
'videoControls.noTracksAvailable' => 'Ingen spor tilgængelige',
'videoControls.subtitleDownloaded' => 'Undertekst downloadet',
'videoControls.subtitleDownloadFailed' => 'Kunne ikke downloade undertekst',
'videoControls.searchLanguages' => 'Søg sprog...',
@@ -2321,6 +2429,8 @@ extension on TranslationsDa {
'subtitlingStyling.borderColor' => 'Kantfarve',
'subtitlingStyling.backgroundOpacity' => 'Baggrundsgennemsigtighed',
'subtitlingStyling.backgroundColor' => 'Baggrundsfarve',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Position',
'subtitlingStyling.assOverride' => 'ASS-tilsidesættelse',
'subtitlingStyling.bold' => 'Fed',
@@ -2335,8 +2445,6 @@ extension on TranslationsDa {
'mpvConfig.loadPreset' => 'Indlæs',
'mpvConfig.deletePreset' => 'Slet',
'mpvConfig.presetSaved' => 'Forudindstilling gemt',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Forudindstilling indlæst',
'mpvConfig.presetDeleted' => 'Forudindstilling slettet',
'mpvConfig.confirmDeletePreset' => 'Er du sikker på, at du vil slette denne forudindstilling?',
@@ -2399,6 +2507,7 @@ extension on TranslationsDa {
'profiles.pinExplain' => '4-cifret PIN kræves for at skifte profiler.',
'profiles.continueButton' => 'Fortsæt',
'profiles.pinsDontMatch' => 'PIN-koder matcher ikke',
'profiles.initializeServicesFailed' => 'Kunne ikke initialisere profiltjenester',
'connections.sectionTitle' => 'Forbindelser',
'connections.addConnection' => 'Tilføj forbindelse',
'connections.addConnectionSubtitleNoProfile' => 'Log ind med Plex eller forbind til en Jellyfin-server',
@@ -2427,6 +2536,7 @@ extension on TranslationsDa {
'discover.movie' => 'Film',
'discover.tvShow' => 'TV-serie',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min tilbage',
'discover.moreLikeThis' => 'Mere som dette',
'errors.searchFailed' => ({required Object error}) => 'Søgning mislykkedes: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Forbindelsestimeout ved indlæsning af ${context}',
'errors.connectionFailed' => 'Kan ikke oprette forbindelse til medieserver',
@@ -2441,6 +2551,7 @@ extension on TranslationsDa {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Kunne ikke slette ${displayName}',
'errors.failedToRate' => 'Kunne ikke opdatere bedømmelsen',
'libraries.title' => 'Biblioteker',
'libraries.fallbackTitle' => 'Bibliotek',
'libraries.scanLibraryFiles' => 'Scan biblioteksfiler',
'libraries.scanLibrary' => 'Scan bibliotek',
'libraries.analyze' => 'Analysér',
@@ -2541,6 +2652,12 @@ extension on TranslationsDa {
'liveTv.noChannels' => 'Ingen kanaler tilgængelige',
'liveTv.noDvr' => 'Ingen DVR konfigureret på nogen server',
'liveTv.noPrograms' => 'Ingen programdata tilgængelig',
'liveTv.liveStreamFailed' => 'Livestream mislykkedes',
'liveTv.unknownProgram' => 'Ukendt program',
'liveTv.unknownHub' => 'Ukendt',
'liveTv.unknownError' => 'Ukendt fejl',
'liveTv.channelNumber' => ({required Object number}) => 'Kanal ${number}',
'liveTv.unknownChannel' => 'Ukendt kanal',
'liveTv.live' => 'LIVE',
'liveTv.reloadGuide' => 'Genindlæs guide',
'liveTv.now' => 'Nu',
@@ -2711,12 +2828,21 @@ extension on TranslationsDa {
'downloads.deleteDownload' => 'Slet download',
'downloads.retryDownload' => 'Prøv download igen',
'downloads.downloadQueued' => 'Download i kø',
'downloads.downloadResumed' => 'Download genoptaget',
'downloads.serverErrorBitrate' => 'Serverfejl: filen overskrider muligvis grænsen for ekstern bitrate',
'downloads.episodesQueued' => ({required Object count}) => '${count} episoder i downloadkø',
'downloads.downloadDeleted' => 'Download slettet',
'downloads.deleteConfirm' => ({required Object title}) => 'Slet "${title}" fra denne enhed?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} af ${total})',
'downloads.cancelledDownloadTitle' => 'Annulleret download',
'downloads.cancelledDownloadMessage' => 'Denne download blev annulleret. Hvad vil du gøre?',
'downloads.allEpisodesAlreadyDownloaded' => 'Alle episoder er allerede downloadet',
'downloads.resumeDownload' => 'Genoptag download',
'downloads.cancelledDownload' => 'Annulleret download',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synkroniserer ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} downloadet — klik for at fuldføre',
'downloads.partialDownloadClickToComplete' => 'Delvist downloadet — klik for at fuldføre',
'downloads.deleting' => 'Sletter...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} af ${total})',
'downloads.queuedTooltip' => 'I kø',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'I kø: ${files}',
'downloads.downloadingTooltip' => 'Downloader...',
@@ -2773,6 +2899,7 @@ extension on TranslationsDa {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Slet "${name}"?',
'companionRemote.title' => 'Fjernbetjening',
'companionRemote.connectedTo' => ({required Object name}) => 'Forbundet til ${name}',
'companionRemote.unknownDevice' => 'Ukendt enhed',
'companionRemote.session.startingServer' => 'Starter fjernserver...',
'companionRemote.session.failedToCreate' => 'Kunne ikke starte fjernserver:',
'companionRemote.session.hostAddress' => 'Værtsadresse',
@@ -2816,6 +2943,8 @@ extension on TranslationsDa {
'companionRemote.remote.tabSettings' => 'Indstillinger',
'companionRemote.remote.previous' => 'Forrige',
'companionRemote.remote.playPause' => 'Afspil/Pause',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Næste',
'companionRemote.remote.seekBack' => 'Spol tilbage',
'companionRemote.remote.stop' => 'Stop',
@@ -2827,6 +2956,12 @@ extension on TranslationsDa {
'companionRemote.remote.subtitles' => 'Undertekster',
'companionRemote.remote.audio' => 'Lyd',
'companionRemote.remote.searchHint' => 'Søg på desktop...',
'companionRemote.errors.noNetworkInterface' => 'Ingen netværksgrænseflade fundet',
'companionRemote.errors.authenticationFailed' => 'Godkendelse mislykkedes',
'companionRemote.errors.joinTimedOut' => 'Tidsgrænse for deltagelse i session overskredet',
'companionRemote.errors.failedToConnectAnyAddress' => 'Kunne ikke oprette forbindelse til nogen adresse',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Forbindelse mistet efter ${attempts} forsøg',
'companionRemote.errors.connectionLost' => 'Forbindelse mistet',
'videoSettings.playbackSpeed' => 'Afspilningshastighed',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Sove-timer',
@@ -2837,6 +2972,40 @@ extension on TranslationsDa {
'videoSettings.performanceOverlay' => 'Ydelsesoverlay',
'videoSettings.audioPassthrough' => 'Lyd-passthrough',
'videoSettings.audioNormalization' => 'Normalisér lydstyrke',
'performanceOverlay.color' => 'Farve',
'performanceOverlay.performance' => 'Ydeevne',
'performanceOverlay.buffer' => 'Buffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Dekoder',
'performanceOverlay.rawDecoder' => 'Rå dekoder',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Billedformat',
'performanceOverlay.rotation' => 'Rotation',
'performanceOverlay.dvSource' => 'DV-kilde',
'performanceOverlay.dvPath' => 'DV-sti',
'performanceOverlay.p7Conversion' => 'P7-konv.',
'performanceOverlay.sampleRate' => 'Samplingsrate',
'performanceOverlay.pixelFormat' => 'Pixelformat',
'performanceOverlay.hwFormat' => 'HW-format',
'performanceOverlay.matrix' => 'Matrix',
'performanceOverlay.primaries' => 'Primærfarver',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'Render FPS',
'performanceOverlay.displayFps' => 'Skærm-FPS',
'performanceOverlay.avSync' => 'A/V-synk.',
'performanceOverlay.dropped' => 'Tabte',
'performanceOverlay.dvRpus' => 'DV RPUer',
'performanceOverlay.dvRpuAverage' => 'DV RPU gns.',
'performanceOverlay.dvSampleAverage' => 'DV-sample gns.',
'performanceOverlay.maxLuma' => 'Maks. luma',
'performanceOverlay.minLuma' => 'Min. luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Brugt cache',
'performanceOverlay.speed' => 'Hastighed',
'performanceOverlay.player' => 'Afspiller',
'performanceOverlay.memory' => 'Hukommelse',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Ekstern afspiller',
'externalPlayer.useExternalPlayer' => 'Brug ekstern afspiller',
'externalPlayer.useExternalPlayerDescription' => 'Åbn videoer i en anden app',
@@ -2845,12 +3014,11 @@ extension on TranslationsDa {
'externalPlayer.systemDefault' => 'Systemstandard',
'externalPlayer.addCustomPlayer' => 'Tilføj brugerdefineret afspiller',
'externalPlayer.playerName' => 'Afspillernavn',
'externalPlayer.playerNameHint' => 'Min afspiller',
'externalPlayer.playerCommand' => 'Kommando',
'externalPlayer.playerPackage' => 'Pakkenavn',
'externalPlayer.playerUrlScheme' => 'URL-skema',
'externalPlayer.off' => 'Fra',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Kunne ikke åbne ekstern afspiller',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} er ikke installeret',
'externalPlayer.playInExternalPlayer' => 'Afspil i ekstern afspiller',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsDe extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersDe shaders = _TranslationsShadersDe._(_root);
@override late final _TranslationsCompanionRemoteDe companionRemote = _TranslationsCompanionRemoteDe._(_root);
@override late final _TranslationsVideoSettingsDe videoSettings = _TranslationsVideoSettingsDe._(_root);
@override late final _TranslationsPerformanceOverlayDe performanceOverlay = _TranslationsPerformanceOverlayDe._(_root);
@override late final _TranslationsExternalPlayerDe externalPlayer = _TranslationsExternalPlayerDe._(_root);
@override late final _TranslationsMetadataEditDe metadataEdit = _TranslationsMetadataEditDe._(_root);
@override late final _TranslationsMatchScreenDe matchScreen = _TranslationsMatchScreenDe._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonDe extends TranslationsCommonEn {
@override String get settings => 'Optionen';
@override String get mute => 'Stumm';
@override String get ok => 'OK';
@override String get off => 'Aus';
@override String seasonNumber({required Object number}) => 'Staffel ${number}';
@override String chapterNumber({required Object number}) => 'Kapitel ${number}';
@override String get reconnect => 'Erneut verbinden';
@override String get exit => 'Beenden';
@override String get viewAll => 'Alle anzeigen';
@@ -385,6 +389,10 @@ class _TranslationsSettingsDe extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Nativ / deaktiviert';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Gerätefähigkeiten erkennen und normales Fallback-Verhalten verwenden';
@override String get dvConversionNativeDescription => 'Natives DV7 erzwingen und DV-Konvertierungsversuch unterdrücken';
@override String get dvConversionDv81Description => 'Inline-RPU-Konvertierung zu Dolby Vision Profil 8.1 erzwingen';
@override String get dvConversionHevcStripDescription => 'Dolby-Vision-RPU/EL-Schichten entfernen und reines HEVC ausgeben';
@override String get requireProfileSelectionOnOpen => 'Profil beim Öffnen abfragen';
@override String get requireProfileSelectionOnOpenDescription => 'Profilauswahl bei jedem Öffnen der App anzeigen';
@override String get forceTvMode => 'TV-Modus erzwingen';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysDe extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Tastenkürzel festlegen für ${actionName}';
@override String get clearShortcut => 'Kürzel löschen';
@override String get noShortcutSet => 'Keine Tastenkombination festgelegt';
@override String get currentShortcut => 'Aktuelle Tastenkombination:';
@override late final _TranslationsHotkeysActionsDe actions = _TranslationsHotkeysActionsDe._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuDe extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Zur Serie';
@override String get goToSeason => 'Zur Staffel';
@override String get shufflePlay => 'Zufallswiedergabe';
@override String get shuffleNotAvailableOffline => 'Zufallswiedergabe ist offline nicht verfügbar';
@override String get fileInfo => 'Dateiinfo';
@override String get deleteFromServer => 'Vom Server löschen';
@override String get confirmDelete => 'Dieses Medium und seine Dateien von deinem Server löschen?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsDe extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Untertitel suchen';
@override String get language => 'Sprache';
@override String get noSubtitlesFound => 'Keine Untertitel gefunden';
@override String get downloadedSubtitle => 'Heruntergeladen';
@override String get noSubtitlesAvailable => 'Keine Untertitel verfügbar';
@override String get noAudioTracksAvailable => 'Keine Audiospuren verfügbar';
@override String get noTracksAvailable => 'Keine Spuren verfügbar';
@override String get subtitleDownloaded => 'Untertitel heruntergeladen';
@override String get subtitleDownloadFailed => 'Untertitel konnte nicht heruntergeladen werden';
@override String get searchLanguages => 'Sprachen suchen...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesDe extends TranslationsProfilesEn {
@override String get pinExplain => '4-stellige PIN zum Profilwechsel erforderlich.';
@override String get continueButton => 'Weiter';
@override String get pinsDontMatch => 'PINs stimmen nicht überein';
@override String get initializeServicesFailed => 'Profildienste konnten nicht initialisiert werden';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverDe extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'Serie';
@override String minutesLeft({required Object minutes}) => '${minutes} Min übrig';
@override String get moreLikeThis => 'Ähnliche Inhalte';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesDe extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Mediatheken';
@override String get fallbackTitle => 'Mediathek';
@override String get scanLibraryFiles => 'Mediatheksdateien scannen';
@override String get scanLibrary => 'Mediathek scannen';
@override String get analyze => 'Analysieren';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvDe extends TranslationsLiveTvEn {
@override String get noChannels => 'Keine Kanäle verfügbar';
@override String get noDvr => 'Kein DVR auf einem Server konfiguriert';
@override String get noPrograms => 'Keine Programmdaten verfügbar';
@override String get liveStreamFailed => 'Livestream fehlgeschlagen';
@override String get unknownProgram => 'Unbekannte Sendung';
@override String get unknownHub => 'Unbekannt';
@override String get unknownError => 'Unbekannter Fehler';
@override String channelNumber({required Object number}) => 'Kanal ${number}';
@override String get unknownChannel => 'Unbekannter Kanal';
@override String get live => 'LIVE';
@override String get reloadGuide => 'Programmführer neu laden';
@override String get now => 'Jetzt';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsDe extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Download löschen';
@override String get retryDownload => 'Download wiederholen';
@override String get downloadQueued => 'Download in Warteschlange';
@override String get downloadResumed => 'Download fortgesetzt';
@override String get serverErrorBitrate => 'Serverfehler: Datei überschreitet möglicherweise das Remote-Bitrate-Limit';
@override String episodesQueued({required Object count}) => '${count} Episoden zum Download hinzugefügt';
@override String get downloadDeleted => 'Download gelöscht';
@override String deleteConfirm({required Object title}) => '"${title}" von diesem Gerät löschen?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Lösche ${title}... (${current} von ${total})';
@override String get cancelledDownloadTitle => 'Abgebrochener Download';
@override String get cancelledDownloadMessage => 'Dieser Download wurde abgebrochen. Was möchtest du tun?';
@override String get allEpisodesAlreadyDownloaded => 'Alle Episoden sind bereits heruntergeladen';
@override String get resumeDownload => 'Download fortsetzen';
@override String get cancelledDownload => 'Abgebrochener Download';
@override String syncingFile({required Object file, required Object status}) => '${file} (${status} wird synchronisiert)';
@override String downloadedFileClickToComplete({required Object file}) => '${file} heruntergeladen — zum Abschließen klicken';
@override String get partialDownloadClickToComplete => 'Teilweise heruntergeladen — zum Abschließen klicken';
@override String get deleting => 'Lösche...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Lösche ${title}... (${current} von ${total})';
@override String get queuedTooltip => 'In Warteschlange';
@override String queuedFilesTooltip({required Object files}) => 'In Warteschlange: ${files}';
@override String get downloadingTooltip => 'Lädt herunter...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteDe extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Companion-Fernbedienung';
@override String connectedTo({required Object name}) => 'Verbunden mit ${name}';
@override String get unknownDevice => 'Unbekanntes Gerät';
@override late final _TranslationsCompanionRemoteSessionDe session = _TranslationsCompanionRemoteSessionDe._(_root);
@override late final _TranslationsCompanionRemotePairingDe pairing = _TranslationsCompanionRemotePairingDe._(_root);
@override late final _TranslationsCompanionRemoteRemoteDe remote = _TranslationsCompanionRemoteRemoteDe._(_root);
@override late final _TranslationsCompanionRemoteErrorsDe errors = _TranslationsCompanionRemoteErrorsDe._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsDe extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Lautstärke normalisieren';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayDe extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayDe._(TranslationsDe root) : this._root = root, super.internal(root);
final TranslationsDe _root; // ignore: unused_field
// Translations
@override String get color => 'Farbe';
@override String get performance => 'Leistung';
@override String get buffer => 'Puffer';
@override String get app => 'App';
@override String get decoder => 'Decoder';
@override String get rawDecoder => 'Raw-Decoder';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Seitenverhältnis';
@override String get rotation => 'Drehung';
@override String get dvSource => 'DV-Quelle';
@override String get dvPath => 'DV-Pfad';
@override String get p7Conversion => 'P7-Konv.';
@override String get sampleRate => 'Abtastrate';
@override String get pixelFormat => 'Pixelformat';
@override String get hwFormat => 'HW-Format';
@override String get matrix => 'Matrix';
@override String get primaries => 'Primärfarben';
@override String get transfer => 'Transfer';
@override String get renderFps => 'Render-FPS';
@override String get displayFps => 'Display-FPS';
@override String get avSync => 'A/V-Sync';
@override String get dropped => 'Verworfen';
@override String get dvRpus => 'DV-RPUs';
@override String get dvRpuAverage => 'DV-RPU Ø';
@override String get dvSampleAverage => 'DV-Sample Ø';
@override String get maxLuma => 'Max. Luma';
@override String get minLuma => 'Min. Luma';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache genutzt';
@override String get speed => 'Geschwindigkeit';
@override String get player => 'Player';
@override String get memory => 'Speicher';
@override String get uiFps => 'UI-FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerDe extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerDe._(TranslationsDe root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerDe extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Systemstandard';
@override String get addCustomPlayer => 'Benutzerdefinierten Player hinzufügen';
@override String get playerName => 'Playername';
@override String get playerNameHint => 'Mein Player';
@override String get playerCommand => 'Befehl';
@override String get playerPackage => 'Paketname';
@override String get playerUrlScheme => 'URL-Schema';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteDe extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Auf Desktop suchen...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsDe extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsDe._(TranslationsDe root) : this._root = root, super.internal(root);
final TranslationsDe _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Keine Netzwerkschnittstelle gefunden';
@override String get authenticationFailed => 'Authentifizierung fehlgeschlagen';
@override String get joinTimedOut => 'Zeitüberschreitung beim Beitreten zur Sitzung';
@override String get failedToConnectAnyAddress => 'Keine Verbindung zu einer Adresse möglich';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Verbindung nach ${attempts} Versuchen verloren';
@override String get connectionLost => 'Verbindung verloren';
}
// Path: trackers.services
class _TranslationsTrackersServicesDe extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesDe._(TranslationsDe root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsDe {
'common.settings' => 'Optionen',
'common.mute' => 'Stumm',
'common.ok' => 'OK',
'common.off' => 'Aus',
'common.seasonNumber' => ({required Object number}) => 'Staffel ${number}',
'common.chapterNumber' => ({required Object number}) => 'Kapitel ${number}',
'common.reconnect' => 'Erneut verbinden',
'common.exit' => 'Beenden',
'common.viewAll' => 'Alle anzeigen',
@@ -2070,6 +2167,10 @@ extension on TranslationsDe {
'settings.dvConversionNative' => 'Nativ / deaktiviert',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Gerätefähigkeiten erkennen und normales Fallback-Verhalten verwenden',
'settings.dvConversionNativeDescription' => 'Natives DV7 erzwingen und DV-Konvertierungsversuch unterdrücken',
'settings.dvConversionDv81Description' => 'Inline-RPU-Konvertierung zu Dolby Vision Profil 8.1 erzwingen',
'settings.dvConversionHevcStripDescription' => 'Dolby-Vision-RPU/EL-Schichten entfernen und reines HEVC ausgeben',
'settings.requireProfileSelectionOnOpen' => 'Profil beim Öffnen abfragen',
'settings.requireProfileSelectionOnOpenDescription' => 'Profilauswahl bei jedem Öffnen der App anzeigen',
'settings.forceTvMode' => 'TV-Modus erzwingen',
@@ -2099,6 +2200,8 @@ extension on TranslationsDe {
'search.enterTitleActorOrKeyword' => 'Titel, Schauspieler oder Stichwort eingeben',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Tastenkürzel festlegen für ${actionName}',
'hotkeys.clearShortcut' => 'Kürzel löschen',
'hotkeys.noShortcutSet' => 'Keine Tastenkombination festgelegt',
'hotkeys.currentShortcut' => 'Aktuelle Tastenkombination:',
'hotkeys.actions.playPause' => 'Wiedergabe/Pause',
'hotkeys.actions.volumeUp' => 'Lauter',
'hotkeys.actions.volumeDown' => 'Leiser',
@@ -2155,6 +2258,7 @@ extension on TranslationsDe {
'mediaMenu.goToSeries' => 'Zur Serie',
'mediaMenu.goToSeason' => 'Zur Staffel',
'mediaMenu.shufflePlay' => 'Zufallswiedergabe',
'mediaMenu.shuffleNotAvailableOffline' => 'Zufallswiedergabe ist offline nicht verfügbar',
'mediaMenu.fileInfo' => 'Dateiinfo',
'mediaMenu.deleteFromServer' => 'Vom Server löschen',
'mediaMenu.confirmDelete' => 'Dieses Medium und seine Dateien von deinem Server löschen?',
@@ -2263,6 +2367,10 @@ extension on TranslationsDe {
'videoControls.searchSubtitles' => 'Untertitel suchen',
'videoControls.language' => 'Sprache',
'videoControls.noSubtitlesFound' => 'Keine Untertitel gefunden',
'videoControls.downloadedSubtitle' => 'Heruntergeladen',
'videoControls.noSubtitlesAvailable' => 'Keine Untertitel verfügbar',
'videoControls.noAudioTracksAvailable' => 'Keine Audiospuren verfügbar',
'videoControls.noTracksAvailable' => 'Keine Spuren verfügbar',
'videoControls.subtitleDownloaded' => 'Untertitel heruntergeladen',
'videoControls.subtitleDownloadFailed' => 'Untertitel konnte nicht heruntergeladen werden',
'videoControls.searchLanguages' => 'Sprachen suchen...',
@@ -2321,6 +2429,8 @@ extension on TranslationsDe {
'subtitlingStyling.borderColor' => 'Rahmenfarbe',
'subtitlingStyling.backgroundOpacity' => 'Hintergrunddeckkraft',
'subtitlingStyling.backgroundColor' => 'Hintergrundfarbe',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Position',
'subtitlingStyling.assOverride' => 'ASS-Überschreibung',
'subtitlingStyling.bold' => 'Fett',
@@ -2335,8 +2445,6 @@ extension on TranslationsDe {
'mpvConfig.loadPreset' => 'Laden',
'mpvConfig.deletePreset' => 'Löschen',
'mpvConfig.presetSaved' => 'Voreinstellung gespeichert',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Voreinstellung geladen',
'mpvConfig.presetDeleted' => 'Voreinstellung gelöscht',
'mpvConfig.confirmDeletePreset' => 'Möchten Sie diese Voreinstellung wirklich löschen?',
@@ -2399,6 +2507,7 @@ extension on TranslationsDe {
'profiles.pinExplain' => '4-stellige PIN zum Profilwechsel erforderlich.',
'profiles.continueButton' => 'Weiter',
'profiles.pinsDontMatch' => 'PINs stimmen nicht überein',
'profiles.initializeServicesFailed' => 'Profildienste konnten nicht initialisiert werden',
'connections.sectionTitle' => 'Verbindungen',
'connections.addConnection' => 'Verbindung hinzufügen',
'connections.addConnectionSubtitleNoProfile' => 'Mit Plex anmelden oder Jellyfin-Server verbinden',
@@ -2427,6 +2536,7 @@ extension on TranslationsDe {
'discover.movie' => 'Film',
'discover.tvShow' => 'Serie',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} Min übrig',
'discover.moreLikeThis' => 'Ähnliche Inhalte',
'errors.searchFailed' => ({required Object error}) => 'Suche fehlgeschlagen: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Zeitüberschreitung beim Laden von ${context}',
'errors.connectionFailed' => 'Keine Verbindung zum Medienserver möglich',
@@ -2441,6 +2551,7 @@ extension on TranslationsDe {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Löschen von ${displayName} fehlgeschlagen',
'errors.failedToRate' => 'Bewertung konnte nicht aktualisiert werden',
'libraries.title' => 'Mediatheken',
'libraries.fallbackTitle' => 'Mediathek',
'libraries.scanLibraryFiles' => 'Mediatheksdateien scannen',
'libraries.scanLibrary' => 'Mediathek scannen',
'libraries.analyze' => 'Analysieren',
@@ -2541,6 +2652,12 @@ extension on TranslationsDe {
'liveTv.noChannels' => 'Keine Kanäle verfügbar',
'liveTv.noDvr' => 'Kein DVR auf einem Server konfiguriert',
'liveTv.noPrograms' => 'Keine Programmdaten verfügbar',
'liveTv.liveStreamFailed' => 'Livestream fehlgeschlagen',
'liveTv.unknownProgram' => 'Unbekannte Sendung',
'liveTv.unknownHub' => 'Unbekannt',
'liveTv.unknownError' => 'Unbekannter Fehler',
'liveTv.channelNumber' => ({required Object number}) => 'Kanal ${number}',
'liveTv.unknownChannel' => 'Unbekannter Kanal',
'liveTv.live' => 'LIVE',
'liveTv.reloadGuide' => 'Programmführer neu laden',
'liveTv.now' => 'Jetzt',
@@ -2711,12 +2828,21 @@ extension on TranslationsDe {
'downloads.deleteDownload' => 'Download löschen',
'downloads.retryDownload' => 'Download wiederholen',
'downloads.downloadQueued' => 'Download in Warteschlange',
'downloads.downloadResumed' => 'Download fortgesetzt',
'downloads.serverErrorBitrate' => 'Serverfehler: Datei überschreitet möglicherweise das Remote-Bitrate-Limit',
'downloads.episodesQueued' => ({required Object count}) => '${count} Episoden zum Download hinzugefügt',
'downloads.downloadDeleted' => 'Download gelöscht',
'downloads.deleteConfirm' => ({required Object title}) => '"${title}" von diesem Gerät löschen?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Lösche ${title}... (${current} von ${total})',
'downloads.cancelledDownloadTitle' => 'Abgebrochener Download',
'downloads.cancelledDownloadMessage' => 'Dieser Download wurde abgebrochen. Was möchtest du tun?',
'downloads.allEpisodesAlreadyDownloaded' => 'Alle Episoden sind bereits heruntergeladen',
'downloads.resumeDownload' => 'Download fortsetzen',
'downloads.cancelledDownload' => 'Abgebrochener Download',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} wird synchronisiert)',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} heruntergeladen — zum Abschließen klicken',
'downloads.partialDownloadClickToComplete' => 'Teilweise heruntergeladen — zum Abschließen klicken',
'downloads.deleting' => 'Lösche...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Lösche ${title}... (${current} von ${total})',
'downloads.queuedTooltip' => 'In Warteschlange',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'In Warteschlange: ${files}',
'downloads.downloadingTooltip' => 'Lädt herunter...',
@@ -2773,6 +2899,7 @@ extension on TranslationsDe {
'shaders.deleteShaderConfirm' => ({required Object name}) => '"${name}" löschen?',
'companionRemote.title' => 'Companion-Fernbedienung',
'companionRemote.connectedTo' => ({required Object name}) => 'Verbunden mit ${name}',
'companionRemote.unknownDevice' => 'Unbekanntes Gerät',
'companionRemote.session.startingServer' => 'Remote-Server wird gestartet...',
'companionRemote.session.failedToCreate' => 'Remote-Server konnte nicht gestartet werden:',
'companionRemote.session.hostAddress' => 'Host-Adresse',
@@ -2816,6 +2943,8 @@ extension on TranslationsDe {
'companionRemote.remote.tabSettings' => 'Einstellungen',
'companionRemote.remote.previous' => 'Zurück',
'companionRemote.remote.playPause' => 'Wiedergabe/Pause',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Weiter',
'companionRemote.remote.seekBack' => 'Zurückspulen',
'companionRemote.remote.stop' => 'Stopp',
@@ -2827,6 +2956,12 @@ extension on TranslationsDe {
'companionRemote.remote.subtitles' => 'Untertitel',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Auf Desktop suchen...',
'companionRemote.errors.noNetworkInterface' => 'Keine Netzwerkschnittstelle gefunden',
'companionRemote.errors.authenticationFailed' => 'Authentifizierung fehlgeschlagen',
'companionRemote.errors.joinTimedOut' => 'Zeitüberschreitung beim Beitreten zur Sitzung',
'companionRemote.errors.failedToConnectAnyAddress' => 'Keine Verbindung zu einer Adresse möglich',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Verbindung nach ${attempts} Versuchen verloren',
'companionRemote.errors.connectionLost' => 'Verbindung verloren',
'videoSettings.playbackSpeed' => 'Wiedergabegeschwindigkeit',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Schlaftimer',
@@ -2837,6 +2972,40 @@ extension on TranslationsDe {
'videoSettings.performanceOverlay' => 'Leistungsanzeige',
'videoSettings.audioPassthrough' => 'Audio-Durchleitung',
'videoSettings.audioNormalization' => 'Lautstärke normalisieren',
'performanceOverlay.color' => 'Farbe',
'performanceOverlay.performance' => 'Leistung',
'performanceOverlay.buffer' => 'Puffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Decoder',
'performanceOverlay.rawDecoder' => 'Raw-Decoder',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Seitenverhältnis',
'performanceOverlay.rotation' => 'Drehung',
'performanceOverlay.dvSource' => 'DV-Quelle',
'performanceOverlay.dvPath' => 'DV-Pfad',
'performanceOverlay.p7Conversion' => 'P7-Konv.',
'performanceOverlay.sampleRate' => 'Abtastrate',
'performanceOverlay.pixelFormat' => 'Pixelformat',
'performanceOverlay.hwFormat' => 'HW-Format',
'performanceOverlay.matrix' => 'Matrix',
'performanceOverlay.primaries' => 'Primärfarben',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'Render-FPS',
'performanceOverlay.displayFps' => 'Display-FPS',
'performanceOverlay.avSync' => 'A/V-Sync',
'performanceOverlay.dropped' => 'Verworfen',
'performanceOverlay.dvRpus' => 'DV-RPUs',
'performanceOverlay.dvRpuAverage' => 'DV-RPU Ø',
'performanceOverlay.dvSampleAverage' => 'DV-Sample Ø',
'performanceOverlay.maxLuma' => 'Max. Luma',
'performanceOverlay.minLuma' => 'Min. Luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache genutzt',
'performanceOverlay.speed' => 'Geschwindigkeit',
'performanceOverlay.player' => 'Player',
'performanceOverlay.memory' => 'Speicher',
'performanceOverlay.uiFps' => 'UI-FPS',
'externalPlayer.title' => 'Externer Player',
'externalPlayer.useExternalPlayer' => 'Externen Player verwenden',
'externalPlayer.useExternalPlayerDescription' => 'Videos in einer anderen App öffnen',
@@ -2845,12 +3014,11 @@ extension on TranslationsDe {
'externalPlayer.systemDefault' => 'Systemstandard',
'externalPlayer.addCustomPlayer' => 'Benutzerdefinierten Player hinzufügen',
'externalPlayer.playerName' => 'Playername',
'externalPlayer.playerNameHint' => 'Mein Player',
'externalPlayer.playerCommand' => 'Befehl',
'externalPlayer.playerPackage' => 'Paketname',
'externalPlayer.playerUrlScheme' => 'URL-Schema',
'externalPlayer.off' => 'Aus',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Externer Player konnte nicht geöffnet werden',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} ist nicht installiert',
'externalPlayer.playInExternalPlayer' => 'In externem Player abspielen',
+320 -4
View File
@@ -78,6 +78,7 @@ class Translations with BaseTranslations<AppLocale, Translations> {
late final TranslationsShadersEn shaders = TranslationsShadersEn.internal(_root);
late final TranslationsCompanionRemoteEn companionRemote = TranslationsCompanionRemoteEn.internal(_root);
late final TranslationsVideoSettingsEn videoSettings = TranslationsVideoSettingsEn.internal(_root);
late final TranslationsPerformanceOverlayEn performanceOverlay = TranslationsPerformanceOverlayEn.internal(_root);
late final TranslationsExternalPlayerEn externalPlayer = TranslationsExternalPlayerEn.internal(_root);
late final TranslationsMetadataEditEn metadataEdit = TranslationsMetadataEditEn.internal(_root);
late final TranslationsMatchScreenEn matchScreen = TranslationsMatchScreenEn.internal(_root);
@@ -257,6 +258,15 @@ class TranslationsCommonEn {
/// en: 'OK'
String get ok => 'OK';
/// en: 'Off'
String get off => 'Off';
/// en: 'Season ${number}'
String seasonNumber({required Object number}) => 'Season ${number}';
/// en: 'Chapter ${number}'
String chapterNumber({required Object number}) => 'Chapter ${number}';
/// en: 'Reconnect'
String get reconnect => 'Reconnect';
@@ -881,6 +891,18 @@ class TranslationsSettingsEn {
/// en: 'P7 → HEVC'
String get dvConversionHevcStrip => 'P7 → HEVC';
/// en: 'Use device capability detection and normal fallback behavior'
String get dvConversionAutoDescription => 'Use device capability detection and normal fallback behavior';
/// en: 'Force native DV7 and suppress DV conversion retry'
String get dvConversionNativeDescription => 'Force native DV7 and suppress DV conversion retry';
/// en: 'Force inline RPU conversion to Dolby Vision profile 8.1'
String get dvConversionDv81Description => 'Force inline RPU conversion to Dolby Vision profile 8.1';
/// en: 'Strip Dolby Vision RPU/EL layers and present plain HEVC'
String get dvConversionHevcStripDescription => 'Strip Dolby Vision RPU/EL layers and present plain HEVC';
/// en: 'Ask for profile on app open'
String get requireProfileSelectionOnOpen => 'Ask for profile on app open';
@@ -986,6 +1008,12 @@ class TranslationsHotkeysEn {
/// en: 'Clear shortcut'
String get clearShortcut => 'Clear shortcut';
/// en: 'No shortcut set'
String get noShortcutSet => 'No shortcut set';
/// en: 'Current shortcut:'
String get currentShortcut => 'Current shortcut:';
late final TranslationsHotkeysActionsEn actions = TranslationsHotkeysActionsEn.internal(_root);
}
@@ -1099,6 +1127,9 @@ class TranslationsMediaMenuEn {
/// en: 'Shuffle Play'
String get shufflePlay => 'Shuffle Play';
/// en: 'Shuffle not available offline'
String get shuffleNotAvailableOffline => 'Shuffle not available offline';
/// en: 'File Info'
String get fileInfo => 'File Info';
@@ -1440,6 +1471,18 @@ class TranslationsVideoControlsEn {
/// en: 'No subtitles found'
String get noSubtitlesFound => 'No subtitles found';
/// en: 'Downloaded'
String get downloadedSubtitle => 'Downloaded';
/// en: 'No subtitles available'
String get noSubtitlesAvailable => 'No subtitles available';
/// en: 'No audio tracks available'
String get noAudioTracksAvailable => 'No audio tracks available';
/// en: 'No tracks available'
String get noTracksAvailable => 'No tracks available';
/// en: 'Subtitle downloaded'
String get subtitleDownloaded => 'Subtitle downloaded';
@@ -1895,6 +1938,9 @@ class TranslationsProfilesEn {
/// en: 'PINs don't match'
String get pinsDontMatch => 'PINs don\'t match';
/// en: 'Failed to initialize profile services'
String get initializeServicesFailed => 'Failed to initialize profile services';
}
// Path: connections
@@ -1997,6 +2043,9 @@ class TranslationsDiscoverEn {
/// en: '${minutes} min left'
String minutesLeft({required Object minutes}) => '${minutes} min left';
/// en: 'More Like This'
String get moreLikeThis => 'More Like This';
}
// Path: errors
@@ -2058,6 +2107,9 @@ class TranslationsLibrariesEn {
/// en: 'Libraries'
String get title => 'Libraries';
/// en: 'Library'
String get fallbackTitle => 'Library';
/// en: 'Scan Library Files'
String get scanLibraryFiles => 'Scan Library Files';
@@ -2321,6 +2373,24 @@ class TranslationsLiveTvEn {
/// en: 'No program data available'
String get noPrograms => 'No program data available';
/// en: 'Live stream failed'
String get liveStreamFailed => 'Live stream failed';
/// en: 'Unknown Program'
String get unknownProgram => 'Unknown Program';
/// en: 'Unknown'
String get unknownHub => 'Unknown';
/// en: 'Unknown error'
String get unknownError => 'Unknown error';
/// en: 'Channel ${number}'
String channelNumber({required Object number}) => 'Channel ${number}';
/// en: 'Unknown channel'
String get unknownChannel => 'Unknown channel';
/// en: 'LIVE'
String get live => 'LIVE';
@@ -2867,6 +2937,9 @@ class TranslationsDownloadsEn {
/// en: 'Download queued'
String get downloadQueued => 'Download queued';
/// en: 'Download resumed'
String get downloadResumed => 'Download resumed';
/// en: 'Server error: file may exceed the remote bitrate limit'
String get serverErrorBitrate => 'Server error: file may exceed the remote bitrate limit';
@@ -2879,6 +2952,30 @@ class TranslationsDownloadsEn {
/// en: 'Delete "${title}" from this device?'
String deleteConfirm({required Object title}) => 'Delete "${title}" from this device?';
/// en: 'Cancelled Download'
String get cancelledDownloadTitle => 'Cancelled Download';
/// en: 'This download was cancelled. What would you like to do?'
String get cancelledDownloadMessage => 'This download was cancelled. What would you like to do?';
/// en: 'All episodes already downloaded'
String get allEpisodesAlreadyDownloaded => 'All episodes already downloaded';
/// en: 'Resume download'
String get resumeDownload => 'Resume download';
/// en: 'Cancelled download'
String get cancelledDownload => 'Cancelled download';
/// en: '${file} (syncing ${status})'
String syncingFile({required Object file, required Object status}) => '${file} (syncing ${status})';
/// en: 'Downloaded ${file} - Click to complete'
String downloadedFileClickToComplete({required Object file}) => 'Downloaded ${file} - Click to complete';
/// en: 'Partially downloaded - Click to complete'
String get partialDownloadClickToComplete => 'Partially downloaded - Click to complete';
/// en: 'Deleting...'
String get deleting => 'Deleting...';
@@ -3071,9 +3168,13 @@ class TranslationsCompanionRemoteEn {
/// en: 'Connected to ${name}'
String connectedTo({required Object name}) => 'Connected to ${name}';
/// en: 'Unknown Device'
String get unknownDevice => 'Unknown Device';
late final TranslationsCompanionRemoteSessionEn session = TranslationsCompanionRemoteSessionEn.internal(_root);
late final TranslationsCompanionRemotePairingEn pairing = TranslationsCompanionRemotePairingEn.internal(_root);
late final TranslationsCompanionRemoteRemoteEn remote = TranslationsCompanionRemoteRemoteEn.internal(_root);
late final TranslationsCompanionRemoteErrorsEn errors = TranslationsCompanionRemoteErrorsEn.internal(_root);
}
// Path: videoSettings
@@ -3115,6 +3216,117 @@ class TranslationsVideoSettingsEn {
String get audioNormalization => 'Normalize Loudness';
}
// Path: performanceOverlay
class TranslationsPerformanceOverlayEn {
TranslationsPerformanceOverlayEn.internal(this._root);
final Translations _root; // ignore: unused_field
// Translations
/// en: 'Color'
String get color => 'Color';
/// en: 'Performance'
String get performance => 'Performance';
/// en: 'Buffer'
String get buffer => 'Buffer';
/// en: 'App'
String get app => 'App';
/// en: 'Decoder'
String get decoder => 'Decoder';
/// en: 'Raw Decoder'
String get rawDecoder => 'Raw Decoder';
/// en: 'Tunneling'
String get tunneling => 'Tunneling';
/// en: 'Aspect'
String get aspect => 'Aspect';
/// en: 'Rotation'
String get rotation => 'Rotation';
/// en: 'DV Source'
String get dvSource => 'DV Source';
/// en: 'DV Path'
String get dvPath => 'DV Path';
/// en: 'P7 Conv'
String get p7Conversion => 'P7 Conv';
/// en: 'Sample Rate'
String get sampleRate => 'Sample Rate';
/// en: 'Pixel Fmt'
String get pixelFormat => 'Pixel Fmt';
/// en: 'HW Fmt'
String get hwFormat => 'HW Fmt';
/// en: 'Matrix'
String get matrix => 'Matrix';
/// en: 'Primaries'
String get primaries => 'Primaries';
/// en: 'Transfer'
String get transfer => 'Transfer';
/// en: 'Render FPS'
String get renderFps => 'Render FPS';
/// en: 'Display FPS'
String get displayFps => 'Display FPS';
/// en: 'A/V Sync'
String get avSync => 'A/V Sync';
/// en: 'Dropped'
String get dropped => 'Dropped';
/// en: 'DV RPUs'
String get dvRpus => 'DV RPUs';
/// en: 'DV RPU Avg'
String get dvRpuAverage => 'DV RPU Avg';
/// en: 'DV Sample Avg'
String get dvSampleAverage => 'DV Sample Avg';
/// en: 'Max Luma'
String get maxLuma => 'Max Luma';
/// en: 'Min Luma'
String get minLuma => 'Min Luma';
/// en: 'MaxCLL'
String get maxCll => 'MaxCLL';
/// en: 'MaxFALL'
String get maxFall => 'MaxFALL';
/// en: 'Cache Used'
String get cacheUsed => 'Cache Used';
/// en: 'Speed'
String get speed => 'Speed';
/// en: 'Player'
String get player => 'Player';
/// en: 'Memory'
String get memory => 'Memory';
/// en: 'UI FPS'
String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class TranslationsExternalPlayerEn {
TranslationsExternalPlayerEn.internal(this._root);
@@ -3147,6 +3359,9 @@ class TranslationsExternalPlayerEn {
/// en: 'Player Name'
String get playerName => 'Player Name';
/// en: 'My Player'
String get playerNameHint => 'My Player';
/// en: 'Command'
String get playerCommand => 'Command';
@@ -4101,6 +4316,33 @@ class TranslationsCompanionRemoteRemoteEn {
String get searchHint => 'Search on desktop...';
}
// Path: companionRemote.errors
class TranslationsCompanionRemoteErrorsEn {
TranslationsCompanionRemoteErrorsEn.internal(this._root);
final Translations _root; // ignore: unused_field
// Translations
/// en: 'No network interface found'
String get noNetworkInterface => 'No network interface found';
/// en: 'Authentication failed'
String get authenticationFailed => 'Authentication failed';
/// en: 'Timed out joining session'
String get joinTimedOut => 'Timed out joining session';
/// en: 'Failed to connect to any address'
String get failedToConnectAnyAddress => 'Failed to connect to any address';
/// en: 'Connection lost after ${attempts} attempts'
String connectionLostAfterAttempts({required Object attempts}) => 'Connection lost after ${attempts} attempts';
/// en: 'Connection lost'
String get connectionLost => 'Connection lost';
}
// Path: trackers.services
class TranslationsTrackersServicesEn {
TranslationsTrackersServicesEn.internal(this._root);
@@ -4265,6 +4507,9 @@ extension on Translations {
'common.settings' => 'Settings',
'common.mute' => 'Mute',
'common.ok' => 'OK',
'common.off' => 'Off',
'common.seasonNumber' => ({required Object number}) => 'Season ${number}',
'common.chapterNumber' => ({required Object number}) => 'Chapter ${number}',
'common.reconnect' => 'Reconnect',
'common.exit' => 'Exit',
'common.viewAll' => 'View All',
@@ -4464,6 +4709,10 @@ extension on Translations {
'settings.dvConversionNative' => 'Native / Disabled',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Use device capability detection and normal fallback behavior',
'settings.dvConversionNativeDescription' => 'Force native DV7 and suppress DV conversion retry',
'settings.dvConversionDv81Description' => 'Force inline RPU conversion to Dolby Vision profile 8.1',
'settings.dvConversionHevcStripDescription' => 'Strip Dolby Vision RPU/EL layers and present plain HEVC',
'settings.requireProfileSelectionOnOpen' => 'Ask for profile on app open',
'settings.requireProfileSelectionOnOpenDescription' => 'Show profile selection every time the app is opened',
'settings.forceTvMode' => 'Force TV mode',
@@ -4493,6 +4742,8 @@ extension on Translations {
'search.enterTitleActorOrKeyword' => 'Enter a title, actor, or keyword',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Set Shortcut for ${actionName}',
'hotkeys.clearShortcut' => 'Clear shortcut',
'hotkeys.noShortcutSet' => 'No shortcut set',
'hotkeys.currentShortcut' => 'Current shortcut:',
'hotkeys.actions.playPause' => 'Play/Pause',
'hotkeys.actions.volumeUp' => 'Volume Up',
'hotkeys.actions.volumeDown' => 'Volume Down',
@@ -4549,6 +4800,7 @@ extension on Translations {
'mediaMenu.goToSeries' => 'Go to series',
'mediaMenu.goToSeason' => 'Go to season',
'mediaMenu.shufflePlay' => 'Shuffle Play',
'mediaMenu.shuffleNotAvailableOffline' => 'Shuffle not available offline',
'mediaMenu.fileInfo' => 'File Info',
'mediaMenu.deleteFromServer' => 'Delete from server',
'mediaMenu.confirmDelete' => 'Delete this media and its files from your server?',
@@ -4657,6 +4909,10 @@ extension on Translations {
'videoControls.searchSubtitles' => 'Search Subtitles',
'videoControls.language' => 'Language',
'videoControls.noSubtitlesFound' => 'No subtitles found',
'videoControls.downloadedSubtitle' => 'Downloaded',
'videoControls.noSubtitlesAvailable' => 'No subtitles available',
'videoControls.noAudioTracksAvailable' => 'No audio tracks available',
'videoControls.noTracksAvailable' => 'No tracks available',
'videoControls.subtitleDownloaded' => 'Subtitle downloaded',
'videoControls.subtitleDownloadFailed' => 'Failed to download subtitle',
'videoControls.searchLanguages' => 'Search languages...',
@@ -4715,6 +4971,8 @@ extension on Translations {
'subtitlingStyling.borderColor' => 'Border Color',
'subtitlingStyling.backgroundOpacity' => 'Background Opacity',
'subtitlingStyling.backgroundColor' => 'Background Color',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Position',
'subtitlingStyling.assOverride' => 'ASS Override',
'subtitlingStyling.bold' => 'Bold',
@@ -4729,8 +4987,6 @@ extension on Translations {
'mpvConfig.loadPreset' => 'Load',
'mpvConfig.deletePreset' => 'Delete',
'mpvConfig.presetSaved' => 'Preset saved',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Preset loaded',
'mpvConfig.presetDeleted' => 'Preset deleted',
'mpvConfig.confirmDeletePreset' => 'Are you sure you want to delete this preset?',
@@ -4793,6 +5049,7 @@ extension on Translations {
'profiles.pinExplain' => '4-digit PIN required to switch profiles.',
'profiles.continueButton' => 'Continue',
'profiles.pinsDontMatch' => 'PINs don\'t match',
'profiles.initializeServicesFailed' => 'Failed to initialize profile services',
'connections.sectionTitle' => 'Connections',
'connections.addConnection' => 'Add connection',
'connections.addConnectionSubtitleNoProfile' => 'Sign in with Plex or connect a Jellyfin server',
@@ -4821,6 +5078,7 @@ extension on Translations {
'discover.movie' => 'Movie',
'discover.tvShow' => 'TV Show',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min left',
'discover.moreLikeThis' => 'More Like This',
'errors.searchFailed' => ({required Object error}) => 'Search failed: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Connection timeout while loading ${context}',
'errors.connectionFailed' => 'Unable to connect to media server',
@@ -4835,6 +5093,7 @@ extension on Translations {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Failed to delete ${displayName}',
'errors.failedToRate' => 'Couldn\'t update rating',
'libraries.title' => 'Libraries',
'libraries.fallbackTitle' => 'Library',
'libraries.scanLibraryFiles' => 'Scan Library Files',
'libraries.scanLibrary' => 'Scan Library',
'libraries.analyze' => 'Analyze',
@@ -4935,6 +5194,12 @@ extension on Translations {
'liveTv.noChannels' => 'No channels available',
'liveTv.noDvr' => 'No DVR configured on any server',
'liveTv.noPrograms' => 'No program data available',
'liveTv.liveStreamFailed' => 'Live stream failed',
'liveTv.unknownProgram' => 'Unknown Program',
'liveTv.unknownHub' => 'Unknown',
'liveTv.unknownError' => 'Unknown error',
'liveTv.channelNumber' => ({required Object number}) => 'Channel ${number}',
'liveTv.unknownChannel' => 'Unknown channel',
'liveTv.live' => 'LIVE',
'liveTv.reloadGuide' => 'Reload Guide',
'liveTv.now' => 'Now',
@@ -5105,10 +5370,19 @@ extension on Translations {
'downloads.deleteDownload' => 'Delete download',
'downloads.retryDownload' => 'Retry download',
'downloads.downloadQueued' => 'Download queued',
'downloads.downloadResumed' => 'Download resumed',
'downloads.serverErrorBitrate' => 'Server error: file may exceed the remote bitrate limit',
'downloads.episodesQueued' => ({required Object count}) => '${count} episodes queued for download',
'downloads.downloadDeleted' => 'Download deleted',
'downloads.deleteConfirm' => ({required Object title}) => 'Delete "${title}" from this device?',
'downloads.cancelledDownloadTitle' => 'Cancelled Download',
'downloads.cancelledDownloadMessage' => 'This download was cancelled. What would you like to do?',
'downloads.allEpisodesAlreadyDownloaded' => 'All episodes already downloaded',
'downloads.resumeDownload' => 'Resume download',
'downloads.cancelledDownload' => 'Cancelled download',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (syncing ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Downloaded ${file} - Click to complete',
'downloads.partialDownloadClickToComplete' => 'Partially downloaded - Click to complete',
'downloads.deleting' => 'Deleting...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Deleting ${title}... (${current} of ${total})',
'downloads.queuedTooltip' => 'Queued',
@@ -5167,6 +5441,7 @@ extension on Translations {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Delete "${name}"?',
'companionRemote.title' => 'Companion Remote',
'companionRemote.connectedTo' => ({required Object name}) => 'Connected to ${name}',
'companionRemote.unknownDevice' => 'Unknown Device',
'companionRemote.session.startingServer' => 'Starting remote server...',
'companionRemote.session.failedToCreate' => 'Failed to start remote server:',
'companionRemote.session.hostAddress' => 'Host Address',
@@ -5210,6 +5485,8 @@ extension on Translations {
'companionRemote.remote.tabSettings' => 'Settings',
'companionRemote.remote.previous' => 'Previous',
'companionRemote.remote.playPause' => 'Play/Pause',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Next',
'companionRemote.remote.seekBack' => 'Seek Back',
'companionRemote.remote.stop' => 'Stop',
@@ -5221,6 +5498,12 @@ extension on Translations {
'companionRemote.remote.subtitles' => 'Subtitles',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Search on desktop...',
'companionRemote.errors.noNetworkInterface' => 'No network interface found',
'companionRemote.errors.authenticationFailed' => 'Authentication failed',
'companionRemote.errors.joinTimedOut' => 'Timed out joining session',
'companionRemote.errors.failedToConnectAnyAddress' => 'Failed to connect to any address',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Connection lost after ${attempts} attempts',
'companionRemote.errors.connectionLost' => 'Connection lost',
'videoSettings.playbackSpeed' => 'Playback Speed',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Sleep Timer',
@@ -5231,6 +5514,40 @@ extension on Translations {
'videoSettings.performanceOverlay' => 'Performance Overlay',
'videoSettings.audioPassthrough' => 'Audio Passthrough',
'videoSettings.audioNormalization' => 'Normalize Loudness',
'performanceOverlay.color' => 'Color',
'performanceOverlay.performance' => 'Performance',
'performanceOverlay.buffer' => 'Buffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Decoder',
'performanceOverlay.rawDecoder' => 'Raw Decoder',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Aspect',
'performanceOverlay.rotation' => 'Rotation',
'performanceOverlay.dvSource' => 'DV Source',
'performanceOverlay.dvPath' => 'DV Path',
'performanceOverlay.p7Conversion' => 'P7 Conv',
'performanceOverlay.sampleRate' => 'Sample Rate',
'performanceOverlay.pixelFormat' => 'Pixel Fmt',
'performanceOverlay.hwFormat' => 'HW Fmt',
'performanceOverlay.matrix' => 'Matrix',
'performanceOverlay.primaries' => 'Primaries',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'Render FPS',
'performanceOverlay.displayFps' => 'Display FPS',
'performanceOverlay.avSync' => 'A/V Sync',
'performanceOverlay.dropped' => 'Dropped',
'performanceOverlay.dvRpus' => 'DV RPUs',
'performanceOverlay.dvRpuAverage' => 'DV RPU Avg',
'performanceOverlay.dvSampleAverage' => 'DV Sample Avg',
'performanceOverlay.maxLuma' => 'Max Luma',
'performanceOverlay.minLuma' => 'Min Luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache Used',
'performanceOverlay.speed' => 'Speed',
'performanceOverlay.player' => 'Player',
'performanceOverlay.memory' => 'Memory',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'External Player',
'externalPlayer.useExternalPlayer' => 'Use External Player',
'externalPlayer.useExternalPlayerDescription' => 'Open videos in another app',
@@ -5239,12 +5556,11 @@ extension on Translations {
'externalPlayer.systemDefault' => 'System Default',
'externalPlayer.addCustomPlayer' => 'Add Custom Player',
'externalPlayer.playerName' => 'Player Name',
'externalPlayer.playerNameHint' => 'My Player',
'externalPlayer.playerCommand' => 'Command',
'externalPlayer.playerPackage' => 'Package Name',
'externalPlayer.playerUrlScheme' => 'URL Scheme',
'externalPlayer.off' => 'Off',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Failed to open external player',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} is not installed',
'externalPlayer.playInExternalPlayer' => 'Play in External Player',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsEs extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersEs shaders = _TranslationsShadersEs._(_root);
@override late final _TranslationsCompanionRemoteEs companionRemote = _TranslationsCompanionRemoteEs._(_root);
@override late final _TranslationsVideoSettingsEs videoSettings = _TranslationsVideoSettingsEs._(_root);
@override late final _TranslationsPerformanceOverlayEs performanceOverlay = _TranslationsPerformanceOverlayEs._(_root);
@override late final _TranslationsExternalPlayerEs externalPlayer = _TranslationsExternalPlayerEs._(_root);
@override late final _TranslationsMetadataEditEs metadataEdit = _TranslationsMetadataEditEs._(_root);
@override late final _TranslationsMatchScreenEs matchScreen = _TranslationsMatchScreenEs._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonEs extends TranslationsCommonEn {
@override String get settings => 'Ajustes';
@override String get mute => 'Silencio';
@override String get ok => 'OK';
@override String get off => 'Desactivado';
@override String seasonNumber({required Object number}) => 'Temporada ${number}';
@override String chapterNumber({required Object number}) => 'Capítulo ${number}';
@override String get reconnect => 'Reconectar';
@override String get exit => 'Salir';
@override String get viewAll => 'Ver todo';
@@ -385,6 +389,10 @@ class _TranslationsSettingsEs extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Nativo / desactivado';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Usar detección de capacidades del dispositivo y el comportamiento de respaldo normal';
@override String get dvConversionNativeDescription => 'Forzar DV7 nativo y suprimir el reintento de conversión DV';
@override String get dvConversionDv81Description => 'Forzar conversión RPU en línea a Dolby Vision perfil 8.1';
@override String get dvConversionHevcStripDescription => 'Quitar capas RPU/EL de Dolby Vision y presentar HEVC normal';
@override String get requireProfileSelectionOnOpen => 'Pedir perfil al abrir la app';
@override String get requireProfileSelectionOnOpenDescription => 'Mostrar selección de perfil cada vez que se abre la aplicación';
@override String get forceTvMode => 'Forzar modo TV';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysEs extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Establecer atajo para ${actionName}';
@override String get clearShortcut => 'Borrar atajo';
@override String get noShortcutSet => 'Sin atajo asignado';
@override String get currentShortcut => 'Atajo actual:';
@override late final _TranslationsHotkeysActionsEs actions = _TranslationsHotkeysActionsEs._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuEs extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Ir a la serie';
@override String get goToSeason => 'Ir a la temporada';
@override String get shufflePlay => 'Reproducción Aleatoria';
@override String get shuffleNotAvailableOffline => 'La reproducción aleatoria no está disponible sin conexión';
@override String get fileInfo => 'Información del Archivo';
@override String get deleteFromServer => 'Eliminar del servidor';
@override String get confirmDelete => '¿Eliminar este medio y sus archivos de tu servidor?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsEs extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Buscar subtítulos';
@override String get language => 'Idioma';
@override String get noSubtitlesFound => 'No se encontraron subtítulos';
@override String get downloadedSubtitle => 'Descargado';
@override String get noSubtitlesAvailable => 'No hay subtítulos disponibles';
@override String get noAudioTracksAvailable => 'No hay pistas de audio disponibles';
@override String get noTracksAvailable => 'No hay pistas disponibles';
@override String get subtitleDownloaded => 'Subtítulo descargado';
@override String get subtitleDownloadFailed => 'Error al descargar subtítulo';
@override String get searchLanguages => 'Buscar idiomas...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesEs extends TranslationsProfilesEn {
@override String get pinExplain => 'Se requiere PIN de 4 dígitos para cambiar de perfil.';
@override String get continueButton => 'Continuar';
@override String get pinsDontMatch => 'Los PIN no coinciden';
@override String get initializeServicesFailed => 'No se pudieron inicializar los servicios de perfil';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverEs extends TranslationsDiscoverEn {
@override String get movie => 'Película';
@override String get tvShow => 'Serie de TV';
@override String minutesLeft({required Object minutes}) => 'quedan ${minutes} min';
@override String get moreLikeThis => 'Más como esto';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesEs extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Bibliotecas';
@override String get fallbackTitle => 'Biblioteca';
@override String get scanLibraryFiles => 'Escanear Archivos de la Biblioteca';
@override String get scanLibrary => 'Escanear Biblioteca';
@override String get analyze => 'Analizar';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvEs extends TranslationsLiveTvEn {
@override String get noChannels => 'No hay canales disponibles';
@override String get noDvr => 'No hay DVR configurado en ningún servidor';
@override String get noPrograms => 'No hay datos de programación disponibles';
@override String get liveStreamFailed => 'Falló la transmisión en vivo';
@override String get unknownProgram => 'Programa desconocido';
@override String get unknownHub => 'Desconocido';
@override String get unknownError => 'Error desconocido';
@override String channelNumber({required Object number}) => 'Canal ${number}';
@override String get unknownChannel => 'Canal desconocido';
@override String get live => 'EN VIVO';
@override String get reloadGuide => 'Recargar guía';
@override String get now => 'Ahora';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsEs extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Eliminar descarga';
@override String get retryDownload => 'Reintentar descarga';
@override String get downloadQueued => 'Descarga en cola';
@override String get downloadResumed => 'Descarga reanudada';
@override String get serverErrorBitrate => 'Error del servidor: el archivo puede superar el límite de bitrate remoto';
@override String episodesQueued({required Object count}) => '${count} episodios en cola para descargar';
@override String get downloadDeleted => 'Descarga eliminada';
@override String deleteConfirm({required Object title}) => '¿Eliminar "${title}" de este dispositivo?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Eliminando ${title}... (${current} de ${total})';
@override String get cancelledDownloadTitle => 'Descarga cancelada';
@override String get cancelledDownloadMessage => 'Esta descarga se canceló. ¿Qué quieres hacer?';
@override String get allEpisodesAlreadyDownloaded => 'Todos los episodios ya están descargados';
@override String get resumeDownload => 'Reanudar descarga';
@override String get cancelledDownload => 'Descarga cancelada';
@override String syncingFile({required Object file, required Object status}) => '${file} (sincronizando ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} descargado — haz clic para completar';
@override String get partialDownloadClickToComplete => 'Descarga parcial — haz clic para completar';
@override String get deleting => 'Eliminando...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Eliminando ${title}... (${current} de ${total})';
@override String get queuedTooltip => 'En cola';
@override String queuedFilesTooltip({required Object files}) => 'En cola: ${files}';
@override String get downloadingTooltip => 'Descargando...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteEs extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Control remoto';
@override String connectedTo({required Object name}) => 'Conectado a ${name}';
@override String get unknownDevice => 'Dispositivo desconocido';
@override late final _TranslationsCompanionRemoteSessionEs session = _TranslationsCompanionRemoteSessionEs._(_root);
@override late final _TranslationsCompanionRemotePairingEs pairing = _TranslationsCompanionRemotePairingEs._(_root);
@override late final _TranslationsCompanionRemoteRemoteEs remote = _TranslationsCompanionRemoteRemoteEs._(_root);
@override late final _TranslationsCompanionRemoteErrorsEs errors = _TranslationsCompanionRemoteErrorsEs._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsEs extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normalizar volumen';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayEs extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayEs._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get color => 'Color';
@override String get performance => 'Rendimiento';
@override String get buffer => 'Búfer';
@override String get app => 'App';
@override String get decoder => 'Decodificador';
@override String get rawDecoder => 'Decodificador raw';
@override String get tunneling => 'Túnel';
@override String get aspect => 'Aspecto';
@override String get rotation => 'Rotación';
@override String get dvSource => 'Origen DV';
@override String get dvPath => 'Ruta DV';
@override String get p7Conversion => 'Conv. P7';
@override String get sampleRate => 'Frecuencia de muestreo';
@override String get pixelFormat => 'Formato de píxel';
@override String get hwFormat => 'Formato HW';
@override String get matrix => 'Matriz';
@override String get primaries => 'Primarios';
@override String get transfer => 'Transferencia';
@override String get renderFps => 'FPS render';
@override String get displayFps => 'FPS pantalla';
@override String get avSync => 'Sincronía A/V';
@override String get dropped => 'Descartados';
@override String get dvRpus => 'DV RPUs';
@override String get dvRpuAverage => 'Prom. DV RPU';
@override String get dvSampleAverage => 'Prom. muestra DV';
@override String get maxLuma => 'Luma máx.';
@override String get minLuma => 'Luma mín.';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Caché usada';
@override String get speed => 'Velocidad';
@override String get player => 'Reproductor';
@override String get memory => 'Memoria';
@override String get uiFps => 'FPS UI';
}
// Path: externalPlayer
class _TranslationsExternalPlayerEs extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerEs._(TranslationsEs root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerEs extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Predeterminado del sistema';
@override String get addCustomPlayer => 'Añadir reproductor personalizado';
@override String get playerName => 'Nombre del reproductor';
@override String get playerNameHint => 'Mi reproductor';
@override String get playerCommand => 'Comando';
@override String get playerPackage => 'Nombre del paquete';
@override String get playerUrlScheme => 'Esquema URL';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteEs extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Buscar en escritorio...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsEs extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsEs._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'No se encontró ninguna interfaz de red';
@override String get authenticationFailed => 'Autenticación fallida';
@override String get joinTimedOut => 'Se agotó el tiempo al unirse a la sesión';
@override String get failedToConnectAnyAddress => 'No se pudo conectar a ninguna dirección';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Conexión perdida tras ${attempts} intentos';
@override String get connectionLost => 'Conexión perdida';
}
// Path: trackers.services
class _TranslationsTrackersServicesEs extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesEs._(TranslationsEs root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsEs {
'common.settings' => 'Ajustes',
'common.mute' => 'Silencio',
'common.ok' => 'OK',
'common.off' => 'Desactivado',
'common.seasonNumber' => ({required Object number}) => 'Temporada ${number}',
'common.chapterNumber' => ({required Object number}) => 'Capítulo ${number}',
'common.reconnect' => 'Reconectar',
'common.exit' => 'Salir',
'common.viewAll' => 'Ver todo',
@@ -2070,6 +2167,10 @@ extension on TranslationsEs {
'settings.dvConversionNative' => 'Nativo / desactivado',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Usar detección de capacidades del dispositivo y el comportamiento de respaldo normal',
'settings.dvConversionNativeDescription' => 'Forzar DV7 nativo y suprimir el reintento de conversión DV',
'settings.dvConversionDv81Description' => 'Forzar conversión RPU en línea a Dolby Vision perfil 8.1',
'settings.dvConversionHevcStripDescription' => 'Quitar capas RPU/EL de Dolby Vision y presentar HEVC normal',
'settings.requireProfileSelectionOnOpen' => 'Pedir perfil al abrir la app',
'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar selección de perfil cada vez que se abre la aplicación',
'settings.forceTvMode' => 'Forzar modo TV',
@@ -2099,6 +2200,8 @@ extension on TranslationsEs {
'search.enterTitleActorOrKeyword' => 'Introduce un título, actor o palabra clave',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Establecer atajo para ${actionName}',
'hotkeys.clearShortcut' => 'Borrar atajo',
'hotkeys.noShortcutSet' => 'Sin atajo asignado',
'hotkeys.currentShortcut' => 'Atajo actual:',
'hotkeys.actions.playPause' => 'Reproducir/Pausar',
'hotkeys.actions.volumeUp' => 'Subir Volumen',
'hotkeys.actions.volumeDown' => 'Bajar Volumen',
@@ -2155,6 +2258,7 @@ extension on TranslationsEs {
'mediaMenu.goToSeries' => 'Ir a la serie',
'mediaMenu.goToSeason' => 'Ir a la temporada',
'mediaMenu.shufflePlay' => 'Reproducción Aleatoria',
'mediaMenu.shuffleNotAvailableOffline' => 'La reproducción aleatoria no está disponible sin conexión',
'mediaMenu.fileInfo' => 'Información del Archivo',
'mediaMenu.deleteFromServer' => 'Eliminar del servidor',
'mediaMenu.confirmDelete' => '¿Eliminar este medio y sus archivos de tu servidor?',
@@ -2263,6 +2367,10 @@ extension on TranslationsEs {
'videoControls.searchSubtitles' => 'Buscar subtítulos',
'videoControls.language' => 'Idioma',
'videoControls.noSubtitlesFound' => 'No se encontraron subtítulos',
'videoControls.downloadedSubtitle' => 'Descargado',
'videoControls.noSubtitlesAvailable' => 'No hay subtítulos disponibles',
'videoControls.noAudioTracksAvailable' => 'No hay pistas de audio disponibles',
'videoControls.noTracksAvailable' => 'No hay pistas disponibles',
'videoControls.subtitleDownloaded' => 'Subtítulo descargado',
'videoControls.subtitleDownloadFailed' => 'Error al descargar subtítulo',
'videoControls.searchLanguages' => 'Buscar idiomas...',
@@ -2321,6 +2429,8 @@ extension on TranslationsEs {
'subtitlingStyling.borderColor' => 'Color de Borde',
'subtitlingStyling.backgroundOpacity' => 'Opacidad de Fondo',
'subtitlingStyling.backgroundColor' => 'Color de Fondo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Posición',
'subtitlingStyling.assOverride' => 'Sobreescritura ASS',
'subtitlingStyling.bold' => 'Negrita',
@@ -2335,8 +2445,6 @@ extension on TranslationsEs {
'mpvConfig.loadPreset' => 'Cargar',
'mpvConfig.deletePreset' => 'Eliminar',
'mpvConfig.presetSaved' => 'Ajuste guardado',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Ajuste cargado',
'mpvConfig.presetDeleted' => 'Ajuste eliminado',
'mpvConfig.confirmDeletePreset' => '¿Estás seguro de que quieres eliminar este ajuste?',
@@ -2399,6 +2507,7 @@ extension on TranslationsEs {
'profiles.pinExplain' => 'Se requiere PIN de 4 dígitos para cambiar de perfil.',
'profiles.continueButton' => 'Continuar',
'profiles.pinsDontMatch' => 'Los PIN no coinciden',
'profiles.initializeServicesFailed' => 'No se pudieron inicializar los servicios de perfil',
'connections.sectionTitle' => 'Conexiones',
'connections.addConnection' => 'Añadir conexión',
'connections.addConnectionSubtitleNoProfile' => 'Inicia sesión con Plex o conecta un servidor de Jellyfin',
@@ -2427,6 +2536,7 @@ extension on TranslationsEs {
'discover.movie' => 'Película',
'discover.tvShow' => 'Serie de TV',
'discover.minutesLeft' => ({required Object minutes}) => 'quedan ${minutes} min',
'discover.moreLikeThis' => 'Más como esto',
'errors.searchFailed' => ({required Object error}) => 'Error en la búsqueda: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Tiempo de conexión agotado al cargar ${context}',
'errors.connectionFailed' => 'No se puede conectar al servidor multimedia',
@@ -2441,6 +2551,7 @@ extension on TranslationsEs {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Error al eliminar ${displayName}',
'errors.failedToRate' => 'No se pudo actualizar la calificación',
'libraries.title' => 'Bibliotecas',
'libraries.fallbackTitle' => 'Biblioteca',
'libraries.scanLibraryFiles' => 'Escanear Archivos de la Biblioteca',
'libraries.scanLibrary' => 'Escanear Biblioteca',
'libraries.analyze' => 'Analizar',
@@ -2541,6 +2652,12 @@ extension on TranslationsEs {
'liveTv.noChannels' => 'No hay canales disponibles',
'liveTv.noDvr' => 'No hay DVR configurado en ningún servidor',
'liveTv.noPrograms' => 'No hay datos de programación disponibles',
'liveTv.liveStreamFailed' => 'Falló la transmisión en vivo',
'liveTv.unknownProgram' => 'Programa desconocido',
'liveTv.unknownHub' => 'Desconocido',
'liveTv.unknownError' => 'Error desconocido',
'liveTv.channelNumber' => ({required Object number}) => 'Canal ${number}',
'liveTv.unknownChannel' => 'Canal desconocido',
'liveTv.live' => 'EN VIVO',
'liveTv.reloadGuide' => 'Recargar guía',
'liveTv.now' => 'Ahora',
@@ -2711,12 +2828,21 @@ extension on TranslationsEs {
'downloads.deleteDownload' => 'Eliminar descarga',
'downloads.retryDownload' => 'Reintentar descarga',
'downloads.downloadQueued' => 'Descarga en cola',
'downloads.downloadResumed' => 'Descarga reanudada',
'downloads.serverErrorBitrate' => 'Error del servidor: el archivo puede superar el límite de bitrate remoto',
'downloads.episodesQueued' => ({required Object count}) => '${count} episodios en cola para descargar',
'downloads.downloadDeleted' => 'Descarga eliminada',
'downloads.deleteConfirm' => ({required Object title}) => '¿Eliminar "${title}" de este dispositivo?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Eliminando ${title}... (${current} de ${total})',
'downloads.cancelledDownloadTitle' => 'Descarga cancelada',
'downloads.cancelledDownloadMessage' => 'Esta descarga se canceló. ¿Qué quieres hacer?',
'downloads.allEpisodesAlreadyDownloaded' => 'Todos los episodios ya están descargados',
'downloads.resumeDownload' => 'Reanudar descarga',
'downloads.cancelledDownload' => 'Descarga cancelada',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizando ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} descargado — haz clic para completar',
'downloads.partialDownloadClickToComplete' => 'Descarga parcial — haz clic para completar',
'downloads.deleting' => 'Eliminando...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Eliminando ${title}... (${current} de ${total})',
'downloads.queuedTooltip' => 'En cola',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'En cola: ${files}',
'downloads.downloadingTooltip' => 'Descargando...',
@@ -2773,6 +2899,7 @@ extension on TranslationsEs {
'shaders.deleteShaderConfirm' => ({required Object name}) => '¿Eliminar "${name}"?',
'companionRemote.title' => 'Control remoto',
'companionRemote.connectedTo' => ({required Object name}) => 'Conectado a ${name}',
'companionRemote.unknownDevice' => 'Dispositivo desconocido',
'companionRemote.session.startingServer' => 'Iniciando servidor remoto...',
'companionRemote.session.failedToCreate' => 'Error al iniciar el servidor remoto:',
'companionRemote.session.hostAddress' => 'Dirección del host',
@@ -2816,6 +2943,8 @@ extension on TranslationsEs {
'companionRemote.remote.tabSettings' => 'Configuración',
'companionRemote.remote.previous' => 'Anterior',
'companionRemote.remote.playPause' => 'Reproducir/Pausar',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Siguiente',
'companionRemote.remote.seekBack' => 'Retroceder',
'companionRemote.remote.stop' => 'Detener',
@@ -2827,6 +2956,12 @@ extension on TranslationsEs {
'companionRemote.remote.subtitles' => 'Subtítulos',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Buscar en escritorio...',
'companionRemote.errors.noNetworkInterface' => 'No se encontró ninguna interfaz de red',
'companionRemote.errors.authenticationFailed' => 'Autenticación fallida',
'companionRemote.errors.joinTimedOut' => 'Se agotó el tiempo al unirse a la sesión',
'companionRemote.errors.failedToConnectAnyAddress' => 'No se pudo conectar a ninguna dirección',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Conexión perdida tras ${attempts} intentos',
'companionRemote.errors.connectionLost' => 'Conexión perdida',
'videoSettings.playbackSpeed' => 'Velocidad de reproducción',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Temporizador de apagado',
@@ -2837,6 +2972,40 @@ extension on TranslationsEs {
'videoSettings.performanceOverlay' => 'Indicador de rendimiento',
'videoSettings.audioPassthrough' => 'Audio Passthrough',
'videoSettings.audioNormalization' => 'Normalizar volumen',
'performanceOverlay.color' => 'Color',
'performanceOverlay.performance' => 'Rendimiento',
'performanceOverlay.buffer' => 'Búfer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Decodificador',
'performanceOverlay.rawDecoder' => 'Decodificador raw',
'performanceOverlay.tunneling' => 'Túnel',
'performanceOverlay.aspect' => 'Aspecto',
'performanceOverlay.rotation' => 'Rotación',
'performanceOverlay.dvSource' => 'Origen DV',
'performanceOverlay.dvPath' => 'Ruta DV',
'performanceOverlay.p7Conversion' => 'Conv. P7',
'performanceOverlay.sampleRate' => 'Frecuencia de muestreo',
'performanceOverlay.pixelFormat' => 'Formato de píxel',
'performanceOverlay.hwFormat' => 'Formato HW',
'performanceOverlay.matrix' => 'Matriz',
'performanceOverlay.primaries' => 'Primarios',
'performanceOverlay.transfer' => 'Transferencia',
'performanceOverlay.renderFps' => 'FPS render',
'performanceOverlay.displayFps' => 'FPS pantalla',
'performanceOverlay.avSync' => 'Sincronía A/V',
'performanceOverlay.dropped' => 'Descartados',
'performanceOverlay.dvRpus' => 'DV RPUs',
'performanceOverlay.dvRpuAverage' => 'Prom. DV RPU',
'performanceOverlay.dvSampleAverage' => 'Prom. muestra DV',
'performanceOverlay.maxLuma' => 'Luma máx.',
'performanceOverlay.minLuma' => 'Luma mín.',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Caché usada',
'performanceOverlay.speed' => 'Velocidad',
'performanceOverlay.player' => 'Reproductor',
'performanceOverlay.memory' => 'Memoria',
'performanceOverlay.uiFps' => 'FPS UI',
'externalPlayer.title' => 'Reproductor externo',
'externalPlayer.useExternalPlayer' => 'Usar reproductor externo',
'externalPlayer.useExternalPlayerDescription' => 'Abrir videos en otra app',
@@ -2845,12 +3014,11 @@ extension on TranslationsEs {
'externalPlayer.systemDefault' => 'Predeterminado del sistema',
'externalPlayer.addCustomPlayer' => 'Añadir reproductor personalizado',
'externalPlayer.playerName' => 'Nombre del reproductor',
'externalPlayer.playerNameHint' => 'Mi reproductor',
'externalPlayer.playerCommand' => 'Comando',
'externalPlayer.playerPackage' => 'Nombre del paquete',
'externalPlayer.playerUrlScheme' => 'Esquema URL',
'externalPlayer.off' => 'Desactivado',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'No se pudo abrir el reproductor externo',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} no está instalado',
'externalPlayer.playInExternalPlayer' => 'Reproducir en reproductor externo',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsFr extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersFr shaders = _TranslationsShadersFr._(_root);
@override late final _TranslationsCompanionRemoteFr companionRemote = _TranslationsCompanionRemoteFr._(_root);
@override late final _TranslationsVideoSettingsFr videoSettings = _TranslationsVideoSettingsFr._(_root);
@override late final _TranslationsPerformanceOverlayFr performanceOverlay = _TranslationsPerformanceOverlayFr._(_root);
@override late final _TranslationsExternalPlayerFr externalPlayer = _TranslationsExternalPlayerFr._(_root);
@override late final _TranslationsMetadataEditFr metadataEdit = _TranslationsMetadataEditFr._(_root);
@override late final _TranslationsMatchScreenFr matchScreen = _TranslationsMatchScreenFr._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonFr extends TranslationsCommonEn {
@override String get settings => 'Réglages';
@override String get mute => 'Muet';
@override String get ok => 'OK';
@override String get off => 'Désactivé';
@override String seasonNumber({required Object number}) => 'Saison ${number}';
@override String chapterNumber({required Object number}) => 'Chapitre ${number}';
@override String get reconnect => 'Reconnecter';
@override String get exit => 'Quitter';
@override String get viewAll => 'Tout afficher';
@@ -385,6 +389,10 @@ class _TranslationsSettingsFr extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Natif / désactivé';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Utiliser la détection des capacités de lappareil et le comportement de repli normal';
@override String get dvConversionNativeDescription => 'Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV';
@override String get dvConversionDv81Description => 'Forcer la conversion RPU intégrée vers Dolby Vision profil 8.1';
@override String get dvConversionHevcStripDescription => 'Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple';
@override String get requireProfileSelectionOnOpen => 'Demander le profil à l\'ouverture';
@override String get requireProfileSelectionOnOpenDescription => 'Afficher la sélection de profil à chaque ouverture de l\'application';
@override String get forceTvMode => 'Forcer le mode TV';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysFr extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Définir un raccourci pour ${actionName}';
@override String get clearShortcut => 'Effacer le raccourci';
@override String get noShortcutSet => 'Aucun raccourci défini';
@override String get currentShortcut => 'Raccourci actuel :';
@override late final _TranslationsHotkeysActionsFr actions = _TranslationsHotkeysActionsFr._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuFr extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Aller à la série';
@override String get goToSeason => 'Aller à la saison';
@override String get shufflePlay => 'Lecture aléatoire';
@override String get shuffleNotAvailableOffline => 'La lecture aléatoire nest pas disponible hors ligne';
@override String get fileInfo => 'Informations sur le fichier';
@override String get deleteFromServer => 'Supprimer du serveur';
@override String get confirmDelete => 'Supprimer ce média et ses fichiers de votre serveur ?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsFr extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Rechercher des sous-titres';
@override String get language => 'Langue';
@override String get noSubtitlesFound => 'Aucun sous-titre trouvé';
@override String get downloadedSubtitle => 'Téléchargé';
@override String get noSubtitlesAvailable => 'Aucun sous-titre disponible';
@override String get noAudioTracksAvailable => 'Aucune piste audio disponible';
@override String get noTracksAvailable => 'Aucune piste disponible';
@override String get subtitleDownloaded => 'Sous-titre téléchargé';
@override String get subtitleDownloadFailed => 'Échec du téléchargement du sous-titre';
@override String get searchLanguages => 'Rechercher des langues...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesFr extends TranslationsProfilesEn {
@override String get pinExplain => 'PIN à 4 chiffres requis pour changer de profil.';
@override String get continueButton => 'Continuer';
@override String get pinsDontMatch => 'Les PIN ne correspondent pas';
@override String get initializeServicesFailed => 'Impossible dinitialiser les services de profil';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverFr extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'Show TV';
@override String minutesLeft({required Object minutes}) => '${minutes} min restantes';
@override String get moreLikeThis => 'Plus de contenus similaires';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesFr extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Bibliothèques';
@override String get fallbackTitle => 'Bibliothèque';
@override String get scanLibraryFiles => 'Scanner les fichiers de la bibliothèque';
@override String get scanLibrary => 'Scanner la bibliothèque';
@override String get analyze => 'Analyser';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvFr extends TranslationsLiveTvEn {
@override String get noChannels => 'Aucune chaîne disponible';
@override String get noDvr => 'Aucun DVR configuré sur les serveurs';
@override String get noPrograms => 'Aucune donnée de programme disponible';
@override String get liveStreamFailed => 'Échec du direct';
@override String get unknownProgram => 'Programme inconnu';
@override String get unknownHub => 'Inconnu';
@override String get unknownError => 'Erreur inconnue';
@override String channelNumber({required Object number}) => 'Chaîne ${number}';
@override String get unknownChannel => 'Chaîne inconnue';
@override String get live => 'EN DIRECT';
@override String get reloadGuide => 'Recharger le guide';
@override String get now => 'Maintenant';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsFr extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Supprimer le téléchargement';
@override String get retryDownload => 'Réessayer le téléchargement';
@override String get downloadQueued => 'Téléchargement en attente';
@override String get downloadResumed => 'Téléchargement repris';
@override String get serverErrorBitrate => 'Erreur serveur : le fichier peut dépasser la limite de bitrate distant';
@override String episodesQueued({required Object count}) => '${count} épisodes en attente de téléchargement';
@override String get downloadDeleted => 'Télécharger supprimé';
@override String deleteConfirm({required Object title}) => 'Supprimer "${title}" de cet appareil ?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Suppression de ${title}... (${current} sur ${total})';
@override String get cancelledDownloadTitle => 'Téléchargement annulé';
@override String get cancelledDownloadMessage => 'Ce téléchargement a été annulé. Que voulez-vous faire ?';
@override String get allEpisodesAlreadyDownloaded => 'Tous les épisodes sont déjà téléchargés';
@override String get resumeDownload => 'Reprendre le téléchargement';
@override String get cancelledDownload => 'Téléchargement annulé';
@override String syncingFile({required Object file, required Object status}) => '${file} (synchronisation ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} téléchargé — cliquez pour terminer';
@override String get partialDownloadClickToComplete => 'Téléchargement partiel — cliquez pour terminer';
@override String get deleting => 'Suppression...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Suppression de ${title}... (${current} sur ${total})';
@override String get queuedTooltip => 'En attente';
@override String queuedFilesTooltip({required Object files}) => 'En attente : ${files}';
@override String get downloadingTooltip => 'Téléchargement...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteFr extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Télécommande compagnon';
@override String connectedTo({required Object name}) => 'Connecté à ${name}';
@override String get unknownDevice => 'Appareil inconnu';
@override late final _TranslationsCompanionRemoteSessionFr session = _TranslationsCompanionRemoteSessionFr._(_root);
@override late final _TranslationsCompanionRemotePairingFr pairing = _TranslationsCompanionRemotePairingFr._(_root);
@override late final _TranslationsCompanionRemoteRemoteFr remote = _TranslationsCompanionRemoteRemoteFr._(_root);
@override late final _TranslationsCompanionRemoteErrorsFr errors = _TranslationsCompanionRemoteErrorsFr._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsFr extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normaliser le volume';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayFr extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayFr._(TranslationsFr root) : this._root = root, super.internal(root);
final TranslationsFr _root; // ignore: unused_field
// Translations
@override String get color => 'Couleur';
@override String get performance => 'Performances';
@override String get buffer => 'Tampon';
@override String get app => 'App';
@override String get decoder => 'Décodeur';
@override String get rawDecoder => 'Décodeur brut';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Format';
@override String get rotation => 'Rotation';
@override String get dvSource => 'Source DV';
@override String get dvPath => 'Chemin DV';
@override String get p7Conversion => 'Conv. P7';
@override String get sampleRate => 'Fréquence';
@override String get pixelFormat => 'Fmt pixel';
@override String get hwFormat => 'Fmt HW';
@override String get matrix => 'Matrice';
@override String get primaries => 'Primaires';
@override String get transfer => 'Transfert';
@override String get renderFps => 'FPS rendu';
@override String get displayFps => 'FPS écran';
@override String get avSync => 'Synchro A/V';
@override String get dropped => 'Perdues';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'Moy. DV RPU';
@override String get dvSampleAverage => 'Moy. échant. DV';
@override String get maxLuma => 'Luma max.';
@override String get minLuma => 'Luma min.';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache utilisé';
@override String get speed => 'Vitesse';
@override String get player => 'Lecteur';
@override String get memory => 'Mémoire';
@override String get uiFps => 'FPS UI';
}
// Path: externalPlayer
class _TranslationsExternalPlayerFr extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerFr._(TranslationsFr root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerFr extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Par défaut du système';
@override String get addCustomPlayer => 'Ajouter un lecteur personnalisé';
@override String get playerName => 'Nom du lecteur';
@override String get playerNameHint => 'Mon lecteur';
@override String get playerCommand => 'Commande';
@override String get playerPackage => 'Nom du paquet';
@override String get playerUrlScheme => 'Schéma URL';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteFr extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Rechercher sur le bureau...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsFr extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsFr._(TranslationsFr root) : this._root = root, super.internal(root);
final TranslationsFr _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Aucune interface réseau trouvée';
@override String get authenticationFailed => 'Échec de lauthentification';
@override String get joinTimedOut => 'Délai dépassé lors de la connexion à la session';
@override String get failedToConnectAnyAddress => 'Impossible de se connecter à une adresse';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Connexion perdue après ${attempts} tentatives';
@override String get connectionLost => 'Connexion perdue';
}
// Path: trackers.services
class _TranslationsTrackersServicesFr extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesFr._(TranslationsFr root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsFr {
'common.settings' => 'Réglages',
'common.mute' => 'Muet',
'common.ok' => 'OK',
'common.off' => 'Désactivé',
'common.seasonNumber' => ({required Object number}) => 'Saison ${number}',
'common.chapterNumber' => ({required Object number}) => 'Chapitre ${number}',
'common.reconnect' => 'Reconnecter',
'common.exit' => 'Quitter',
'common.viewAll' => 'Tout afficher',
@@ -2070,6 +2167,10 @@ extension on TranslationsFr {
'settings.dvConversionNative' => 'Natif / désactivé',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Utiliser la détection des capacités de lappareil et le comportement de repli normal',
'settings.dvConversionNativeDescription' => 'Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV',
'settings.dvConversionDv81Description' => 'Forcer la conversion RPU intégrée vers Dolby Vision profil 8.1',
'settings.dvConversionHevcStripDescription' => 'Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple',
'settings.requireProfileSelectionOnOpen' => 'Demander le profil à l\'ouverture',
'settings.requireProfileSelectionOnOpenDescription' => 'Afficher la sélection de profil à chaque ouverture de l\'application',
'settings.forceTvMode' => 'Forcer le mode TV',
@@ -2099,6 +2200,8 @@ extension on TranslationsFr {
'search.enterTitleActorOrKeyword' => 'Entrez un titre, un acteur ou un mot-clé',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Définir un raccourci pour ${actionName}',
'hotkeys.clearShortcut' => 'Effacer le raccourci',
'hotkeys.noShortcutSet' => 'Aucun raccourci défini',
'hotkeys.currentShortcut' => 'Raccourci actuel :',
'hotkeys.actions.playPause' => 'Lecture/Pause',
'hotkeys.actions.volumeUp' => 'Augmenter le volume',
'hotkeys.actions.volumeDown' => 'Baisser le volume',
@@ -2155,6 +2258,7 @@ extension on TranslationsFr {
'mediaMenu.goToSeries' => 'Aller à la série',
'mediaMenu.goToSeason' => 'Aller à la saison',
'mediaMenu.shufflePlay' => 'Lecture aléatoire',
'mediaMenu.shuffleNotAvailableOffline' => 'La lecture aléatoire nest pas disponible hors ligne',
'mediaMenu.fileInfo' => 'Informations sur le fichier',
'mediaMenu.deleteFromServer' => 'Supprimer du serveur',
'mediaMenu.confirmDelete' => 'Supprimer ce média et ses fichiers de votre serveur ?',
@@ -2263,6 +2367,10 @@ extension on TranslationsFr {
'videoControls.searchSubtitles' => 'Rechercher des sous-titres',
'videoControls.language' => 'Langue',
'videoControls.noSubtitlesFound' => 'Aucun sous-titre trouvé',
'videoControls.downloadedSubtitle' => 'Téléchargé',
'videoControls.noSubtitlesAvailable' => 'Aucun sous-titre disponible',
'videoControls.noAudioTracksAvailable' => 'Aucune piste audio disponible',
'videoControls.noTracksAvailable' => 'Aucune piste disponible',
'videoControls.subtitleDownloaded' => 'Sous-titre téléchargé',
'videoControls.subtitleDownloadFailed' => 'Échec du téléchargement du sous-titre',
'videoControls.searchLanguages' => 'Rechercher des langues...',
@@ -2321,6 +2429,8 @@ extension on TranslationsFr {
'subtitlingStyling.borderColor' => 'Couleur de la bordure',
'subtitlingStyling.backgroundOpacity' => 'Opacité d\'arrière-plan',
'subtitlingStyling.backgroundColor' => 'Couleur d\'arrière-plan',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Position',
'subtitlingStyling.assOverride' => 'Remplacement ASS',
'subtitlingStyling.bold' => 'Gras',
@@ -2335,8 +2445,6 @@ extension on TranslationsFr {
'mpvConfig.loadPreset' => 'Charger',
'mpvConfig.deletePreset' => 'Supprimer',
'mpvConfig.presetSaved' => 'Préréglage enregistré',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Préréglage chargé',
'mpvConfig.presetDeleted' => 'Préréglage supprimé',
'mpvConfig.confirmDeletePreset' => 'Êtes-vous sûr de vouloir supprimer ce préréglage ?',
@@ -2399,6 +2507,7 @@ extension on TranslationsFr {
'profiles.pinExplain' => 'PIN à 4 chiffres requis pour changer de profil.',
'profiles.continueButton' => 'Continuer',
'profiles.pinsDontMatch' => 'Les PIN ne correspondent pas',
'profiles.initializeServicesFailed' => 'Impossible dinitialiser les services de profil',
'connections.sectionTitle' => 'Connexions',
'connections.addConnection' => 'Ajouter une connexion',
'connections.addConnectionSubtitleNoProfile' => 'Connectez-vous avec Plex ou connectez un serveur Jellyfin',
@@ -2427,6 +2536,7 @@ extension on TranslationsFr {
'discover.movie' => 'Film',
'discover.tvShow' => 'Show TV',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes',
'discover.moreLikeThis' => 'Plus de contenus similaires',
'errors.searchFailed' => ({required Object error}) => 'Recherche échouée: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Délai d\'attente de connexion dépassé pendant le chargement ${context}',
'errors.connectionFailed' => 'Impossible de se connecter au serveur multimédia',
@@ -2441,6 +2551,7 @@ extension on TranslationsFr {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Impossible de supprimer ${displayName}',
'errors.failedToRate' => 'Impossible de mettre à jour la note',
'libraries.title' => 'Bibliothèques',
'libraries.fallbackTitle' => 'Bibliothèque',
'libraries.scanLibraryFiles' => 'Scanner les fichiers de la bibliothèque',
'libraries.scanLibrary' => 'Scanner la bibliothèque',
'libraries.analyze' => 'Analyser',
@@ -2541,6 +2652,12 @@ extension on TranslationsFr {
'liveTv.noChannels' => 'Aucune chaîne disponible',
'liveTv.noDvr' => 'Aucun DVR configuré sur les serveurs',
'liveTv.noPrograms' => 'Aucune donnée de programme disponible',
'liveTv.liveStreamFailed' => 'Échec du direct',
'liveTv.unknownProgram' => 'Programme inconnu',
'liveTv.unknownHub' => 'Inconnu',
'liveTv.unknownError' => 'Erreur inconnue',
'liveTv.channelNumber' => ({required Object number}) => 'Chaîne ${number}',
'liveTv.unknownChannel' => 'Chaîne inconnue',
'liveTv.live' => 'EN DIRECT',
'liveTv.reloadGuide' => 'Recharger le guide',
'liveTv.now' => 'Maintenant',
@@ -2711,12 +2828,21 @@ extension on TranslationsFr {
'downloads.deleteDownload' => 'Supprimer le téléchargement',
'downloads.retryDownload' => 'Réessayer le téléchargement',
'downloads.downloadQueued' => 'Téléchargement en attente',
'downloads.downloadResumed' => 'Téléchargement repris',
'downloads.serverErrorBitrate' => 'Erreur serveur : le fichier peut dépasser la limite de bitrate distant',
'downloads.episodesQueued' => ({required Object count}) => '${count} épisodes en attente de téléchargement',
'downloads.downloadDeleted' => 'Télécharger supprimé',
'downloads.deleteConfirm' => ({required Object title}) => 'Supprimer "${title}" de cet appareil ?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Suppression de ${title}... (${current} sur ${total})',
'downloads.cancelledDownloadTitle' => 'Téléchargement annulé',
'downloads.cancelledDownloadMessage' => 'Ce téléchargement a été annulé. Que voulez-vous faire ?',
'downloads.allEpisodesAlreadyDownloaded' => 'Tous les épisodes sont déjà téléchargés',
'downloads.resumeDownload' => 'Reprendre le téléchargement',
'downloads.cancelledDownload' => 'Téléchargement annulé',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synchronisation ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} téléchargé — cliquez pour terminer',
'downloads.partialDownloadClickToComplete' => 'Téléchargement partiel — cliquez pour terminer',
'downloads.deleting' => 'Suppression...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Suppression de ${title}... (${current} sur ${total})',
'downloads.queuedTooltip' => 'En attente',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'En attente : ${files}',
'downloads.downloadingTooltip' => 'Téléchargement...',
@@ -2773,6 +2899,7 @@ extension on TranslationsFr {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Supprimer "${name}" ?',
'companionRemote.title' => 'Télécommande compagnon',
'companionRemote.connectedTo' => ({required Object name}) => 'Connecté à ${name}',
'companionRemote.unknownDevice' => 'Appareil inconnu',
'companionRemote.session.startingServer' => 'Démarrage du serveur distant...',
'companionRemote.session.failedToCreate' => 'Échec du démarrage du serveur distant :',
'companionRemote.session.hostAddress' => 'Adresse de l\'hôte',
@@ -2816,6 +2943,8 @@ extension on TranslationsFr {
'companionRemote.remote.tabSettings' => 'Paramètres',
'companionRemote.remote.previous' => 'Précédent',
'companionRemote.remote.playPause' => 'Lecture/Pause',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Suivant',
'companionRemote.remote.seekBack' => 'Reculer',
'companionRemote.remote.stop' => 'Arrêter',
@@ -2827,6 +2956,12 @@ extension on TranslationsFr {
'companionRemote.remote.subtitles' => 'Sous-titres',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Rechercher sur le bureau...',
'companionRemote.errors.noNetworkInterface' => 'Aucune interface réseau trouvée',
'companionRemote.errors.authenticationFailed' => 'Échec de lauthentification',
'companionRemote.errors.joinTimedOut' => 'Délai dépassé lors de la connexion à la session',
'companionRemote.errors.failedToConnectAnyAddress' => 'Impossible de se connecter à une adresse',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Connexion perdue après ${attempts} tentatives',
'companionRemote.errors.connectionLost' => 'Connexion perdue',
'videoSettings.playbackSpeed' => 'Vitesse de lecture',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Minuterie de mise en veille',
@@ -2837,6 +2972,40 @@ extension on TranslationsFr {
'videoSettings.performanceOverlay' => 'Superposition de performance',
'videoSettings.audioPassthrough' => 'Audio Pass-Through',
'videoSettings.audioNormalization' => 'Normaliser le volume',
'performanceOverlay.color' => 'Couleur',
'performanceOverlay.performance' => 'Performances',
'performanceOverlay.buffer' => 'Tampon',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Décodeur',
'performanceOverlay.rawDecoder' => 'Décodeur brut',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Format',
'performanceOverlay.rotation' => 'Rotation',
'performanceOverlay.dvSource' => 'Source DV',
'performanceOverlay.dvPath' => 'Chemin DV',
'performanceOverlay.p7Conversion' => 'Conv. P7',
'performanceOverlay.sampleRate' => 'Fréquence',
'performanceOverlay.pixelFormat' => 'Fmt pixel',
'performanceOverlay.hwFormat' => 'Fmt HW',
'performanceOverlay.matrix' => 'Matrice',
'performanceOverlay.primaries' => 'Primaires',
'performanceOverlay.transfer' => 'Transfert',
'performanceOverlay.renderFps' => 'FPS rendu',
'performanceOverlay.displayFps' => 'FPS écran',
'performanceOverlay.avSync' => 'Synchro A/V',
'performanceOverlay.dropped' => 'Perdues',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'Moy. DV RPU',
'performanceOverlay.dvSampleAverage' => 'Moy. échant. DV',
'performanceOverlay.maxLuma' => 'Luma max.',
'performanceOverlay.minLuma' => 'Luma min.',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache utilisé',
'performanceOverlay.speed' => 'Vitesse',
'performanceOverlay.player' => 'Lecteur',
'performanceOverlay.memory' => 'Mémoire',
'performanceOverlay.uiFps' => 'FPS UI',
'externalPlayer.title' => 'Lecteur externe',
'externalPlayer.useExternalPlayer' => 'Utiliser un lecteur externe',
'externalPlayer.useExternalPlayerDescription' => 'Ouvrir les vidéos dans une autre app',
@@ -2845,12 +3014,11 @@ extension on TranslationsFr {
'externalPlayer.systemDefault' => 'Par défaut du système',
'externalPlayer.addCustomPlayer' => 'Ajouter un lecteur personnalisé',
'externalPlayer.playerName' => 'Nom du lecteur',
'externalPlayer.playerNameHint' => 'Mon lecteur',
'externalPlayer.playerCommand' => 'Commande',
'externalPlayer.playerPackage' => 'Nom du paquet',
'externalPlayer.playerUrlScheme' => 'Schéma URL',
'externalPlayer.off' => 'Désactivé',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Impossible d\'ouvrir le lecteur externe',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} n\'est pas installé',
'externalPlayer.playInExternalPlayer' => 'Lire dans un lecteur externe',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsIt extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersIt shaders = _TranslationsShadersIt._(_root);
@override late final _TranslationsCompanionRemoteIt companionRemote = _TranslationsCompanionRemoteIt._(_root);
@override late final _TranslationsVideoSettingsIt videoSettings = _TranslationsVideoSettingsIt._(_root);
@override late final _TranslationsPerformanceOverlayIt performanceOverlay = _TranslationsPerformanceOverlayIt._(_root);
@override late final _TranslationsExternalPlayerIt externalPlayer = _TranslationsExternalPlayerIt._(_root);
@override late final _TranslationsMetadataEditIt metadataEdit = _TranslationsMetadataEditIt._(_root);
@override late final _TranslationsMatchScreenIt matchScreen = _TranslationsMatchScreenIt._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonIt extends TranslationsCommonEn {
@override String get settings => 'Opzioni';
@override String get mute => 'Muto';
@override String get ok => 'OK';
@override String get off => 'Disattivato';
@override String seasonNumber({required Object number}) => 'Stagione ${number}';
@override String chapterNumber({required Object number}) => 'Capitolo ${number}';
@override String get reconnect => 'Riconnetti';
@override String get exit => 'Esci';
@override String get viewAll => 'Mostra tutto';
@@ -385,6 +389,10 @@ class _TranslationsSettingsIt extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Nativo / disattivato';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Usa il rilevamento delle capacità del dispositivo e il normale comportamento di fallback';
@override String get dvConversionNativeDescription => 'Forza DV7 nativo e sopprime il nuovo tentativo di conversione DV';
@override String get dvConversionDv81Description => 'Forza la conversione RPU inline a Dolby Vision profilo 8.1';
@override String get dvConversionHevcStripDescription => 'Rimuove i livelli RPU/EL Dolby Vision e presenta HEVC semplice';
@override String get requireProfileSelectionOnOpen => 'Chiedi profilo all\'apertura';
@override String get requireProfileSelectionOnOpenDescription => 'Mostra la selezione del profilo ogni volta che l\'app viene aperta';
@override String get forceTvMode => 'Forza modalità TV';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysIt extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Imposta scorciatoia per ${actionName}';
@override String get clearShortcut => 'Elimina scorciatoia';
@override String get noShortcutSet => 'Nessuna scorciatoia impostata';
@override String get currentShortcut => 'Scorciatoia attuale:';
@override late final _TranslationsHotkeysActionsIt actions = _TranslationsHotkeysActionsIt._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuIt extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Vai alle serie';
@override String get goToSeason => 'Vai alla stagione';
@override String get shufflePlay => 'Riproduzione casuale';
@override String get shuffleNotAvailableOffline => 'Riproduzione casuale non disponibile offline';
@override String get fileInfo => 'Info sul file';
@override String get deleteFromServer => 'Elimina dal server';
@override String get confirmDelete => 'Eliminare questo media e i suoi file dal server?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsIt extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Cerca sottotitoli';
@override String get language => 'Lingua';
@override String get noSubtitlesFound => 'Nessun sottotitolo trovato';
@override String get downloadedSubtitle => 'Scaricato';
@override String get noSubtitlesAvailable => 'Nessun sottotitolo disponibile';
@override String get noAudioTracksAvailable => 'Nessuna traccia audio disponibile';
@override String get noTracksAvailable => 'Nessuna traccia disponibile';
@override String get subtitleDownloaded => 'Sottotitolo scaricato';
@override String get subtitleDownloadFailed => 'Impossibile scaricare il sottotitolo';
@override String get searchLanguages => 'Cerca lingue...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesIt extends TranslationsProfilesEn {
@override String get pinExplain => 'PIN a 4 cifre richiesto per cambiare profilo.';
@override String get continueButton => 'Continua';
@override String get pinsDontMatch => 'I PIN non corrispondono';
@override String get initializeServicesFailed => 'Impossibile inizializzare i servizi profilo';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverIt extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'Serie TV';
@override String minutesLeft({required Object minutes}) => '${minutes} minuti rimanenti';
@override String get moreLikeThis => 'Altri contenuti simili';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesIt extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Librerie';
@override String get fallbackTitle => 'Libreria';
@override String get scanLibraryFiles => 'Scansiona file libreria';
@override String get scanLibrary => 'Scansiona libreria';
@override String get analyze => 'Analizza';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvIt extends TranslationsLiveTvEn {
@override String get noChannels => 'Nessun canale disponibile';
@override String get noDvr => 'Nessun DVR configurato su nessun server';
@override String get noPrograms => 'Nessun dato di programma disponibile';
@override String get liveStreamFailed => 'Streaming live non riuscito';
@override String get unknownProgram => 'Programma sconosciuto';
@override String get unknownHub => 'Sconosciuto';
@override String get unknownError => 'Errore sconosciuto';
@override String channelNumber({required Object number}) => 'Canale ${number}';
@override String get unknownChannel => 'Canale sconosciuto';
@override String get live => 'IN DIRETTA';
@override String get reloadGuide => 'Ricarica guida';
@override String get now => 'Ora';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsIt extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Elimina download';
@override String get retryDownload => 'Riprova download';
@override String get downloadQueued => 'Download in coda';
@override String get downloadResumed => 'Download ripreso';
@override String get serverErrorBitrate => 'Errore server: il file può superare il limite di bitrate remoto';
@override String episodesQueued({required Object count}) => '${count} episodi in coda per il download';
@override String get downloadDeleted => 'Download eliminato';
@override String deleteConfirm({required Object title}) => 'Eliminare "${title}" da questo dispositivo?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Eliminazione di ${title}... (${current} di ${total})';
@override String get cancelledDownloadTitle => 'Download annullato';
@override String get cancelledDownloadMessage => 'Questo download è stato annullato. Cosa vuoi fare?';
@override String get allEpisodesAlreadyDownloaded => 'Tutti gli episodi sono già stati scaricati';
@override String get resumeDownload => 'Riprendi download';
@override String get cancelledDownload => 'Download annullato';
@override String syncingFile({required Object file, required Object status}) => '${file} (sincronizzazione ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} scaricato — fai clic per completare';
@override String get partialDownloadClickToComplete => 'Scaricato parzialmente — fai clic per completare';
@override String get deleting => 'Eliminazione...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Eliminazione di ${title}... (${current} di ${total})';
@override String get queuedTooltip => 'In coda';
@override String queuedFilesTooltip({required Object files}) => 'In coda: ${files}';
@override String get downloadingTooltip => 'Download in corso...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteIt extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Telecomando';
@override String connectedTo({required Object name}) => 'Connesso a ${name}';
@override String get unknownDevice => 'Dispositivo sconosciuto';
@override late final _TranslationsCompanionRemoteSessionIt session = _TranslationsCompanionRemoteSessionIt._(_root);
@override late final _TranslationsCompanionRemotePairingIt pairing = _TranslationsCompanionRemotePairingIt._(_root);
@override late final _TranslationsCompanionRemoteRemoteIt remote = _TranslationsCompanionRemoteRemoteIt._(_root);
@override late final _TranslationsCompanionRemoteErrorsIt errors = _TranslationsCompanionRemoteErrorsIt._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsIt extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normalizza volume';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayIt extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayIt._(TranslationsIt root) : this._root = root, super.internal(root);
final TranslationsIt _root; // ignore: unused_field
// Translations
@override String get color => 'Colore';
@override String get performance => 'Prestazioni';
@override String get buffer => 'Buffer';
@override String get app => 'App';
@override String get decoder => 'Decoder';
@override String get rawDecoder => 'Decoder raw';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Aspetto';
@override String get rotation => 'Rotazione';
@override String get dvSource => 'Sorgente DV';
@override String get dvPath => 'Percorso DV';
@override String get p7Conversion => 'Conv. P7';
@override String get sampleRate => 'Frequenza camp.';
@override String get pixelFormat => 'Formato pixel';
@override String get hwFormat => 'Formato HW';
@override String get matrix => 'Matrice';
@override String get primaries => 'Primari';
@override String get transfer => 'Transfer';
@override String get renderFps => 'FPS render';
@override String get displayFps => 'FPS display';
@override String get avSync => 'Sync A/V';
@override String get dropped => 'Scartati';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'Media DV RPU';
@override String get dvSampleAverage => 'Media camp. DV';
@override String get maxLuma => 'Luma max';
@override String get minLuma => 'Luma min';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache usata';
@override String get speed => 'Velocità';
@override String get player => 'Player';
@override String get memory => 'Memoria';
@override String get uiFps => 'FPS UI';
}
// Path: externalPlayer
class _TranslationsExternalPlayerIt extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerIt._(TranslationsIt root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerIt extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Predefinito di sistema';
@override String get addCustomPlayer => 'Aggiungi lettore personalizzato';
@override String get playerName => 'Nome lettore';
@override String get playerNameHint => 'Il mio player';
@override String get playerCommand => 'Comando';
@override String get playerPackage => 'Nome pacchetto';
@override String get playerUrlScheme => 'Schema URL';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteIt extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Cerca sul desktop...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsIt extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsIt._(TranslationsIt root) : this._root = root, super.internal(root);
final TranslationsIt _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Nessuna interfaccia di rete trovata';
@override String get authenticationFailed => 'Autenticazione non riuscita';
@override String get joinTimedOut => 'Tempo scaduto durante laccesso alla sessione';
@override String get failedToConnectAnyAddress => 'Impossibile connettersi a qualsiasi indirizzo';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Connessione persa dopo ${attempts} tentativi';
@override String get connectionLost => 'Connessione persa';
}
// Path: trackers.services
class _TranslationsTrackersServicesIt extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesIt._(TranslationsIt root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsIt {
'common.settings' => 'Opzioni',
'common.mute' => 'Muto',
'common.ok' => 'OK',
'common.off' => 'Disattivato',
'common.seasonNumber' => ({required Object number}) => 'Stagione ${number}',
'common.chapterNumber' => ({required Object number}) => 'Capitolo ${number}',
'common.reconnect' => 'Riconnetti',
'common.exit' => 'Esci',
'common.viewAll' => 'Mostra tutto',
@@ -2070,6 +2167,10 @@ extension on TranslationsIt {
'settings.dvConversionNative' => 'Nativo / disattivato',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Usa il rilevamento delle capacità del dispositivo e il normale comportamento di fallback',
'settings.dvConversionNativeDescription' => 'Forza DV7 nativo e sopprime il nuovo tentativo di conversione DV',
'settings.dvConversionDv81Description' => 'Forza la conversione RPU inline a Dolby Vision profilo 8.1',
'settings.dvConversionHevcStripDescription' => 'Rimuove i livelli RPU/EL Dolby Vision e presenta HEVC semplice',
'settings.requireProfileSelectionOnOpen' => 'Chiedi profilo all\'apertura',
'settings.requireProfileSelectionOnOpenDescription' => 'Mostra la selezione del profilo ogni volta che l\'app viene aperta',
'settings.forceTvMode' => 'Forza modalità TV',
@@ -2099,6 +2200,8 @@ extension on TranslationsIt {
'search.enterTitleActorOrKeyword' => 'Inserisci un titolo, attore o parola chiave',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Imposta scorciatoia per ${actionName}',
'hotkeys.clearShortcut' => 'Elimina scorciatoia',
'hotkeys.noShortcutSet' => 'Nessuna scorciatoia impostata',
'hotkeys.currentShortcut' => 'Scorciatoia attuale:',
'hotkeys.actions.playPause' => 'Riproduci/Pausa',
'hotkeys.actions.volumeUp' => 'Alza volume',
'hotkeys.actions.volumeDown' => 'Abbassa volume',
@@ -2155,6 +2258,7 @@ extension on TranslationsIt {
'mediaMenu.goToSeries' => 'Vai alle serie',
'mediaMenu.goToSeason' => 'Vai alla stagione',
'mediaMenu.shufflePlay' => 'Riproduzione casuale',
'mediaMenu.shuffleNotAvailableOffline' => 'Riproduzione casuale non disponibile offline',
'mediaMenu.fileInfo' => 'Info sul file',
'mediaMenu.deleteFromServer' => 'Elimina dal server',
'mediaMenu.confirmDelete' => 'Eliminare questo media e i suoi file dal server?',
@@ -2263,6 +2367,10 @@ extension on TranslationsIt {
'videoControls.searchSubtitles' => 'Cerca sottotitoli',
'videoControls.language' => 'Lingua',
'videoControls.noSubtitlesFound' => 'Nessun sottotitolo trovato',
'videoControls.downloadedSubtitle' => 'Scaricato',
'videoControls.noSubtitlesAvailable' => 'Nessun sottotitolo disponibile',
'videoControls.noAudioTracksAvailable' => 'Nessuna traccia audio disponibile',
'videoControls.noTracksAvailable' => 'Nessuna traccia disponibile',
'videoControls.subtitleDownloaded' => 'Sottotitolo scaricato',
'videoControls.subtitleDownloadFailed' => 'Impossibile scaricare il sottotitolo',
'videoControls.searchLanguages' => 'Cerca lingue...',
@@ -2321,6 +2429,8 @@ extension on TranslationsIt {
'subtitlingStyling.borderColor' => 'Colore bordo',
'subtitlingStyling.backgroundOpacity' => 'Opacità sfondo',
'subtitlingStyling.backgroundColor' => 'Colore sfondo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Posizione',
'subtitlingStyling.assOverride' => 'Sovrascrittura ASS',
'subtitlingStyling.bold' => 'Grassetto',
@@ -2335,8 +2445,6 @@ extension on TranslationsIt {
'mpvConfig.loadPreset' => 'Carica',
'mpvConfig.deletePreset' => 'Elimina',
'mpvConfig.presetSaved' => 'Preset salvato',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Preset caricato',
'mpvConfig.presetDeleted' => 'Preset eliminato',
'mpvConfig.confirmDeletePreset' => 'Sei sicuro di voler eliminare questo preset?',
@@ -2399,6 +2507,7 @@ extension on TranslationsIt {
'profiles.pinExplain' => 'PIN a 4 cifre richiesto per cambiare profilo.',
'profiles.continueButton' => 'Continua',
'profiles.pinsDontMatch' => 'I PIN non corrispondono',
'profiles.initializeServicesFailed' => 'Impossibile inizializzare i servizi profilo',
'connections.sectionTitle' => 'Connessioni',
'connections.addConnection' => 'Aggiungi connessione',
'connections.addConnectionSubtitleNoProfile' => 'Accedi con Plex o collega un server Jellyfin',
@@ -2427,6 +2536,7 @@ extension on TranslationsIt {
'discover.movie' => 'Film',
'discover.tvShow' => 'Serie TV',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} minuti rimanenti',
'discover.moreLikeThis' => 'Altri contenuti simili',
'errors.searchFailed' => ({required Object error}) => 'Ricerca fallita: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Timeout connessione durante caricamento di ${context}',
'errors.connectionFailed' => 'Impossibile connettersi al server multimediale',
@@ -2441,6 +2551,7 @@ extension on TranslationsIt {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Impossibile eliminare ${displayName}',
'errors.failedToRate' => 'Impossibile aggiornare la valutazione',
'libraries.title' => 'Librerie',
'libraries.fallbackTitle' => 'Libreria',
'libraries.scanLibraryFiles' => 'Scansiona file libreria',
'libraries.scanLibrary' => 'Scansiona libreria',
'libraries.analyze' => 'Analizza',
@@ -2541,6 +2652,12 @@ extension on TranslationsIt {
'liveTv.noChannels' => 'Nessun canale disponibile',
'liveTv.noDvr' => 'Nessun DVR configurato su nessun server',
'liveTv.noPrograms' => 'Nessun dato di programma disponibile',
'liveTv.liveStreamFailed' => 'Streaming live non riuscito',
'liveTv.unknownProgram' => 'Programma sconosciuto',
'liveTv.unknownHub' => 'Sconosciuto',
'liveTv.unknownError' => 'Errore sconosciuto',
'liveTv.channelNumber' => ({required Object number}) => 'Canale ${number}',
'liveTv.unknownChannel' => 'Canale sconosciuto',
'liveTv.live' => 'IN DIRETTA',
'liveTv.reloadGuide' => 'Ricarica guida',
'liveTv.now' => 'Ora',
@@ -2711,12 +2828,21 @@ extension on TranslationsIt {
'downloads.deleteDownload' => 'Elimina download',
'downloads.retryDownload' => 'Riprova download',
'downloads.downloadQueued' => 'Download in coda',
'downloads.downloadResumed' => 'Download ripreso',
'downloads.serverErrorBitrate' => 'Errore server: il file può superare il limite di bitrate remoto',
'downloads.episodesQueued' => ({required Object count}) => '${count} episodi in coda per il download',
'downloads.downloadDeleted' => 'Download eliminato',
'downloads.deleteConfirm' => ({required Object title}) => 'Eliminare "${title}" da questo dispositivo?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Eliminazione di ${title}... (${current} di ${total})',
'downloads.cancelledDownloadTitle' => 'Download annullato',
'downloads.cancelledDownloadMessage' => 'Questo download è stato annullato. Cosa vuoi fare?',
'downloads.allEpisodesAlreadyDownloaded' => 'Tutti gli episodi sono già stati scaricati',
'downloads.resumeDownload' => 'Riprendi download',
'downloads.cancelledDownload' => 'Download annullato',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizzazione ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} scaricato — fai clic per completare',
'downloads.partialDownloadClickToComplete' => 'Scaricato parzialmente — fai clic per completare',
'downloads.deleting' => 'Eliminazione...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Eliminazione di ${title}... (${current} di ${total})',
'downloads.queuedTooltip' => 'In coda',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'In coda: ${files}',
'downloads.downloadingTooltip' => 'Download in corso...',
@@ -2773,6 +2899,7 @@ extension on TranslationsIt {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Eliminare "${name}"?',
'companionRemote.title' => 'Telecomando',
'companionRemote.connectedTo' => ({required Object name}) => 'Connesso a ${name}',
'companionRemote.unknownDevice' => 'Dispositivo sconosciuto',
'companionRemote.session.startingServer' => 'Avvio del server remoto...',
'companionRemote.session.failedToCreate' => 'Impossibile avviare il server remoto:',
'companionRemote.session.hostAddress' => 'Indirizzo host',
@@ -2816,6 +2943,8 @@ extension on TranslationsIt {
'companionRemote.remote.tabSettings' => 'Impostazioni',
'companionRemote.remote.previous' => 'Precedente',
'companionRemote.remote.playPause' => 'Riproduci/Pausa',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Successivo',
'companionRemote.remote.seekBack' => 'Riavvolgi',
'companionRemote.remote.stop' => 'Ferma',
@@ -2827,6 +2956,12 @@ extension on TranslationsIt {
'companionRemote.remote.subtitles' => 'Sottotitoli',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Cerca sul desktop...',
'companionRemote.errors.noNetworkInterface' => 'Nessuna interfaccia di rete trovata',
'companionRemote.errors.authenticationFailed' => 'Autenticazione non riuscita',
'companionRemote.errors.joinTimedOut' => 'Tempo scaduto durante laccesso alla sessione',
'companionRemote.errors.failedToConnectAnyAddress' => 'Impossibile connettersi a qualsiasi indirizzo',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Connessione persa dopo ${attempts} tentativi',
'companionRemote.errors.connectionLost' => 'Connessione persa',
'videoSettings.playbackSpeed' => 'Velocità di riproduzione',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Timer di spegnimento',
@@ -2837,6 +2972,40 @@ extension on TranslationsIt {
'videoSettings.performanceOverlay' => 'Overlay prestazioni',
'videoSettings.audioPassthrough' => 'Audio Passthrough',
'videoSettings.audioNormalization' => 'Normalizza volume',
'performanceOverlay.color' => 'Colore',
'performanceOverlay.performance' => 'Prestazioni',
'performanceOverlay.buffer' => 'Buffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Decoder',
'performanceOverlay.rawDecoder' => 'Decoder raw',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Aspetto',
'performanceOverlay.rotation' => 'Rotazione',
'performanceOverlay.dvSource' => 'Sorgente DV',
'performanceOverlay.dvPath' => 'Percorso DV',
'performanceOverlay.p7Conversion' => 'Conv. P7',
'performanceOverlay.sampleRate' => 'Frequenza camp.',
'performanceOverlay.pixelFormat' => 'Formato pixel',
'performanceOverlay.hwFormat' => 'Formato HW',
'performanceOverlay.matrix' => 'Matrice',
'performanceOverlay.primaries' => 'Primari',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'FPS render',
'performanceOverlay.displayFps' => 'FPS display',
'performanceOverlay.avSync' => 'Sync A/V',
'performanceOverlay.dropped' => 'Scartati',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'Media DV RPU',
'performanceOverlay.dvSampleAverage' => 'Media camp. DV',
'performanceOverlay.maxLuma' => 'Luma max',
'performanceOverlay.minLuma' => 'Luma min',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache usata',
'performanceOverlay.speed' => 'Velocità',
'performanceOverlay.player' => 'Player',
'performanceOverlay.memory' => 'Memoria',
'performanceOverlay.uiFps' => 'FPS UI',
'externalPlayer.title' => 'Lettore esterno',
'externalPlayer.useExternalPlayer' => 'Usa lettore esterno',
'externalPlayer.useExternalPlayerDescription' => 'Apri video in un\'altra app',
@@ -2845,12 +3014,11 @@ extension on TranslationsIt {
'externalPlayer.systemDefault' => 'Predefinito di sistema',
'externalPlayer.addCustomPlayer' => 'Aggiungi lettore personalizzato',
'externalPlayer.playerName' => 'Nome lettore',
'externalPlayer.playerNameHint' => 'Il mio player',
'externalPlayer.playerCommand' => 'Comando',
'externalPlayer.playerPackage' => 'Nome pacchetto',
'externalPlayer.playerUrlScheme' => 'Schema URL',
'externalPlayer.off' => 'Disattivato',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Impossibile aprire il lettore esterno',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} non è installato',
'externalPlayer.playInExternalPlayer' => 'Riproduci in lettore esterno',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsJa extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersJa shaders = _TranslationsShadersJa._(_root);
@override late final _TranslationsCompanionRemoteJa companionRemote = _TranslationsCompanionRemoteJa._(_root);
@override late final _TranslationsVideoSettingsJa videoSettings = _TranslationsVideoSettingsJa._(_root);
@override late final _TranslationsPerformanceOverlayJa performanceOverlay = _TranslationsPerformanceOverlayJa._(_root);
@override late final _TranslationsExternalPlayerJa externalPlayer = _TranslationsExternalPlayerJa._(_root);
@override late final _TranslationsMetadataEditJa metadataEdit = _TranslationsMetadataEditJa._(_root);
@override late final _TranslationsMatchScreenJa matchScreen = _TranslationsMatchScreenJa._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonJa extends TranslationsCommonEn {
@override String get settings => '設定';
@override String get mute => 'ミュート';
@override String get ok => 'OK';
@override String get off => 'オフ';
@override String seasonNumber({required Object number}) => 'シーズン${number}';
@override String chapterNumber({required Object number}) => 'チャプター${number}';
@override String get reconnect => '再接続';
@override String get exit => '終了';
@override String get viewAll => 'すべて表示';
@@ -385,6 +389,10 @@ class _TranslationsSettingsJa extends TranslationsSettingsEn {
@override String get dvConversionNative => 'ネイティブ / 無効';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'デバイスの機能検出と通常のフォールバック動作を使用します';
@override String get dvConversionNativeDescription => 'ネイティブ DV7 を強制し、DV 変換の再試行を抑制します';
@override String get dvConversionDv81Description => 'Dolby Vision プロファイル 8.1 へのインライン RPU 変換を強制します';
@override String get dvConversionHevcStripDescription => 'Dolby Vision の RPU/EL レイヤーを削除し、通常の HEVC として扱います';
@override String get requireProfileSelectionOnOpen => 'アプリ起動時にプロフィールを確認';
@override String get requireProfileSelectionOnOpenDescription => 'アプリを開くたびにプロフィール選択を表示';
@override String get forceTvMode => 'TVモードを強制';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysJa extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => '${actionName}のショートカットを設定';
@override String get clearShortcut => 'ショートカットをクリア';
@override String get noShortcutSet => 'ショートカット未設定';
@override String get currentShortcut => '現在のショートカット:';
@override late final _TranslationsHotkeysActionsJa actions = _TranslationsHotkeysActionsJa._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuJa extends TranslationsMediaMenuEn {
@override String get goToSeries => 'シリーズへ移動';
@override String get goToSeason => 'シーズンへ移動';
@override String get shufflePlay => 'シャッフル再生';
@override String get shuffleNotAvailableOffline => 'オフラインではシャッフルを利用できません';
@override String get fileInfo => 'ファイル情報';
@override String get deleteFromServer => 'サーバーから削除';
@override String get confirmDelete => 'このメディアとそのファイルをサーバーから削除しますか?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsJa extends TranslationsVideoControlsEn {
@override String get searchSubtitles => '字幕を検索';
@override String get language => '言語';
@override String get noSubtitlesFound => '字幕が見つかりません';
@override String get downloadedSubtitle => 'ダウンロード済み';
@override String get noSubtitlesAvailable => '利用可能な字幕はありません';
@override String get noAudioTracksAvailable => '利用可能な音声トラックはありません';
@override String get noTracksAvailable => '利用可能なトラックはありません';
@override String get subtitleDownloaded => '字幕をダウンロードしました';
@override String get subtitleDownloadFailed => '字幕のダウンロードに失敗しました';
@override String get searchLanguages => '言語を検索...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesJa extends TranslationsProfilesEn {
@override String get pinExplain => 'プロフィール切り替えには4桁のPINが必要です。';
@override String get continueButton => '続ける';
@override String get pinsDontMatch => 'PINが一致しません';
@override String get initializeServicesFailed => 'プロフィールサービスの初期化に失敗しました';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverJa extends TranslationsDiscoverEn {
@override String get movie => '映画';
@override String get tvShow => 'テレビ番組';
@override String minutesLeft({required Object minutes}) => '残り${minutes}';
@override String get moreLikeThis => '似ている作品';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesJa extends TranslationsLibrariesEn {
// Translations
@override String get title => 'ライブラリ';
@override String get fallbackTitle => 'ライブラリ';
@override String get scanLibraryFiles => 'ライブラリファイルをスキャン';
@override String get scanLibrary => 'ライブラリをスキャン';
@override String get analyze => '解析';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvJa extends TranslationsLiveTvEn {
@override String get noChannels => 'チャンネルがありません';
@override String get noDvr => 'どのサーバーにもDVRが設定されていません';
@override String get noPrograms => '番組データがありません';
@override String get liveStreamFailed => 'ライブストリームに失敗しました';
@override String get unknownProgram => '不明な番組';
@override String get unknownHub => '不明';
@override String get unknownError => '不明なエラー';
@override String channelNumber({required Object number}) => 'チャンネル ${number}';
@override String get unknownChannel => '不明なチャンネル';
@override String get live => 'ライブ';
@override String get reloadGuide => '番組表を再読込';
@override String get now => '現在';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsJa extends TranslationsDownloadsEn {
@override String get deleteDownload => 'ダウンロードを削除';
@override String get retryDownload => 'ダウンロードを再試行';
@override String get downloadQueued => 'ダウンロードをキューに追加しました';
@override String get downloadResumed => 'ダウンロードを再開しました';
@override String get serverErrorBitrate => 'サーバーエラー: ファイルがリモートビットレート制限を超えている可能性があります';
@override String episodesQueued({required Object count}) => '${count}エピソードをダウンロードキューに追加しました';
@override String get downloadDeleted => 'ダウンロードを削除しました';
@override String deleteConfirm({required Object title}) => 'このデバイスから「${title}」を削除しますか?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})';
@override String get cancelledDownloadTitle => 'キャンセルされたダウンロード';
@override String get cancelledDownloadMessage => 'このダウンロードはキャンセルされました。どうしますか?';
@override String get allEpisodesAlreadyDownloaded => 'すべてのエピソードはすでにダウンロード済みです';
@override String get resumeDownload => 'ダウンロードを再開';
@override String get cancelledDownload => 'キャンセルされたダウンロード';
@override String syncingFile({required Object file, required Object status}) => '${file}${status}を同期中)';
@override String downloadedFileClickToComplete({required Object file}) => '${file} をダウンロード済み — クリックして完了';
@override String get partialDownloadClickToComplete => '一部ダウンロード済み — クリックして完了';
@override String get deleting => '削除中...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})';
@override String get queuedTooltip => 'キュー';
@override String queuedFilesTooltip({required Object files}) => 'キュー: ${files}';
@override String get downloadingTooltip => 'ダウンロード中...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteJa extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'コンパニオンリモート';
@override String connectedTo({required Object name}) => '${name}に接続中';
@override String get unknownDevice => '不明なデバイス';
@override late final _TranslationsCompanionRemoteSessionJa session = _TranslationsCompanionRemoteSessionJa._(_root);
@override late final _TranslationsCompanionRemotePairingJa pairing = _TranslationsCompanionRemotePairingJa._(_root);
@override late final _TranslationsCompanionRemoteRemoteJa remote = _TranslationsCompanionRemoteRemoteJa._(_root);
@override late final _TranslationsCompanionRemoteErrorsJa errors = _TranslationsCompanionRemoteErrorsJa._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsJa extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'ラウドネス正規化';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayJa extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayJa._(TranslationsJa root) : this._root = root, super.internal(root);
final TranslationsJa _root; // ignore: unused_field
// Translations
@override String get color => '';
@override String get performance => 'パフォーマンス';
@override String get buffer => 'バッファ';
@override String get app => 'アプリ';
@override String get decoder => 'デコーダー';
@override String get rawDecoder => 'Raw デコーダー';
@override String get tunneling => 'トンネリング';
@override String get aspect => 'アスペクト';
@override String get rotation => '回転';
@override String get dvSource => 'DV ソース';
@override String get dvPath => 'DV パス';
@override String get p7Conversion => 'P7 変換';
@override String get sampleRate => 'サンプルレート';
@override String get pixelFormat => 'ピクセル形式';
@override String get hwFormat => 'HW 形式';
@override String get matrix => 'マトリクス';
@override String get primaries => 'プライマリ';
@override String get transfer => '転送';
@override String get renderFps => '描画 FPS';
@override String get displayFps => '表示 FPS';
@override String get avSync => 'A/V 同期';
@override String get dropped => 'ドロップ';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'DV RPU 平均';
@override String get dvSampleAverage => 'DV サンプル平均';
@override String get maxLuma => '最大輝度';
@override String get minLuma => '最小輝度';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => '使用キャッシュ';
@override String get speed => '速度';
@override String get player => 'プレーヤー';
@override String get memory => 'メモリ';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerJa extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerJa._(TranslationsJa root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerJa extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'システムデフォルト';
@override String get addCustomPlayer => 'カスタムプレーヤーを追加';
@override String get playerName => 'プレーヤー名';
@override String get playerNameHint => 'マイプレーヤー';
@override String get playerCommand => 'コマンド';
@override String get playerPackage => 'パッケージ名';
@override String get playerUrlScheme => 'URLスキーム';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteJa extends TranslationsCompanionRemoteRe
@override String get searchHint => 'デスクトップで検索...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsJa extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsJa._(TranslationsJa root) : this._root = root, super.internal(root);
final TranslationsJa _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'ネットワークインターフェースが見つかりません';
@override String get authenticationFailed => '認証に失敗しました';
@override String get joinTimedOut => 'セッション参加がタイムアウトしました';
@override String get failedToConnectAnyAddress => 'どのアドレスにも接続できませんでした';
@override String connectionLostAfterAttempts({required Object attempts}) => '${attempts}回試行後に接続が切断されました';
@override String get connectionLost => '接続が切断されました';
}
// Path: trackers.services
class _TranslationsTrackersServicesJa extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesJa._(TranslationsJa root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsJa {
'common.settings' => '設定',
'common.mute' => 'ミュート',
'common.ok' => 'OK',
'common.off' => 'オフ',
'common.seasonNumber' => ({required Object number}) => 'シーズン${number}',
'common.chapterNumber' => ({required Object number}) => 'チャプター${number}',
'common.reconnect' => '再接続',
'common.exit' => '終了',
'common.viewAll' => 'すべて表示',
@@ -2070,6 +2167,10 @@ extension on TranslationsJa {
'settings.dvConversionNative' => 'ネイティブ / 無効',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'デバイスの機能検出と通常のフォールバック動作を使用します',
'settings.dvConversionNativeDescription' => 'ネイティブ DV7 を強制し、DV 変換の再試行を抑制します',
'settings.dvConversionDv81Description' => 'Dolby Vision プロファイル 8.1 へのインライン RPU 変換を強制します',
'settings.dvConversionHevcStripDescription' => 'Dolby Vision の RPU/EL レイヤーを削除し、通常の HEVC として扱います',
'settings.requireProfileSelectionOnOpen' => 'アプリ起動時にプロフィールを確認',
'settings.requireProfileSelectionOnOpenDescription' => 'アプリを開くたびにプロフィール選択を表示',
'settings.forceTvMode' => 'TVモードを強制',
@@ -2099,6 +2200,8 @@ extension on TranslationsJa {
'search.enterTitleActorOrKeyword' => 'タイトル、俳優、またはキーワードを入力',
'hotkeys.setShortcutFor' => ({required Object actionName}) => '${actionName}のショートカットを設定',
'hotkeys.clearShortcut' => 'ショートカットをクリア',
'hotkeys.noShortcutSet' => 'ショートカット未設定',
'hotkeys.currentShortcut' => '現在のショートカット:',
'hotkeys.actions.playPause' => '再生/一時停止',
'hotkeys.actions.volumeUp' => '音量を上げる',
'hotkeys.actions.volumeDown' => '音量を下げる',
@@ -2155,6 +2258,7 @@ extension on TranslationsJa {
'mediaMenu.goToSeries' => 'シリーズへ移動',
'mediaMenu.goToSeason' => 'シーズンへ移動',
'mediaMenu.shufflePlay' => 'シャッフル再生',
'mediaMenu.shuffleNotAvailableOffline' => 'オフラインではシャッフルを利用できません',
'mediaMenu.fileInfo' => 'ファイル情報',
'mediaMenu.deleteFromServer' => 'サーバーから削除',
'mediaMenu.confirmDelete' => 'このメディアとそのファイルをサーバーから削除しますか?',
@@ -2263,6 +2367,10 @@ extension on TranslationsJa {
'videoControls.searchSubtitles' => '字幕を検索',
'videoControls.language' => '言語',
'videoControls.noSubtitlesFound' => '字幕が見つかりません',
'videoControls.downloadedSubtitle' => 'ダウンロード済み',
'videoControls.noSubtitlesAvailable' => '利用可能な字幕はありません',
'videoControls.noAudioTracksAvailable' => '利用可能な音声トラックはありません',
'videoControls.noTracksAvailable' => '利用可能なトラックはありません',
'videoControls.subtitleDownloaded' => '字幕をダウンロードしました',
'videoControls.subtitleDownloadFailed' => '字幕のダウンロードに失敗しました',
'videoControls.searchLanguages' => '言語を検索...',
@@ -2321,6 +2429,8 @@ extension on TranslationsJa {
'subtitlingStyling.borderColor' => '枠線の色',
'subtitlingStyling.backgroundOpacity' => '背景の不透明度',
'subtitlingStyling.backgroundColor' => '背景色',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => '位置',
'subtitlingStyling.assOverride' => 'ASSオーバーライド',
'subtitlingStyling.bold' => '太字',
@@ -2335,8 +2445,6 @@ extension on TranslationsJa {
'mpvConfig.loadPreset' => '読み込み',
'mpvConfig.deletePreset' => '削除',
'mpvConfig.presetSaved' => 'プリセットを保存しました',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'プリセットを読み込みました',
'mpvConfig.presetDeleted' => 'プリセットを削除しました',
'mpvConfig.confirmDeletePreset' => 'このプリセットを削除してもよろしいですか?',
@@ -2399,6 +2507,7 @@ extension on TranslationsJa {
'profiles.pinExplain' => 'プロフィール切り替えには4桁のPINが必要です。',
'profiles.continueButton' => '続ける',
'profiles.pinsDontMatch' => 'PINが一致しません',
'profiles.initializeServicesFailed' => 'プロフィールサービスの初期化に失敗しました',
'connections.sectionTitle' => '接続',
'connections.addConnection' => '接続を追加',
'connections.addConnectionSubtitleNoProfile' => 'Plexでサインインするか、Jellyfinサーバーに接続',
@@ -2427,6 +2536,7 @@ extension on TranslationsJa {
'discover.movie' => '映画',
'discover.tvShow' => 'テレビ番組',
'discover.minutesLeft' => ({required Object minutes}) => '残り${minutes}',
'discover.moreLikeThis' => '似ている作品',
'errors.searchFailed' => ({required Object error}) => '検索に失敗しました: ${error}',
'errors.connectionTimeout' => ({required Object context}) => '${context}の読み込み中に接続がタイムアウトしました',
'errors.connectionFailed' => 'メディアサーバーに接続できません',
@@ -2441,6 +2551,7 @@ extension on TranslationsJa {
'errors.failedToDeleteProfile' => ({required Object displayName}) => '${displayName}の削除に失敗しました',
'errors.failedToRate' => '評価を更新できませんでした',
'libraries.title' => 'ライブラリ',
'libraries.fallbackTitle' => 'ライブラリ',
'libraries.scanLibraryFiles' => 'ライブラリファイルをスキャン',
'libraries.scanLibrary' => 'ライブラリをスキャン',
'libraries.analyze' => '解析',
@@ -2541,6 +2652,12 @@ extension on TranslationsJa {
'liveTv.noChannels' => 'チャンネルがありません',
'liveTv.noDvr' => 'どのサーバーにもDVRが設定されていません',
'liveTv.noPrograms' => '番組データがありません',
'liveTv.liveStreamFailed' => 'ライブストリームに失敗しました',
'liveTv.unknownProgram' => '不明な番組',
'liveTv.unknownHub' => '不明',
'liveTv.unknownError' => '不明なエラー',
'liveTv.channelNumber' => ({required Object number}) => 'チャンネル ${number}',
'liveTv.unknownChannel' => '不明なチャンネル',
'liveTv.live' => 'ライブ',
'liveTv.reloadGuide' => '番組表を再読込',
'liveTv.now' => '現在',
@@ -2711,12 +2828,21 @@ extension on TranslationsJa {
'downloads.deleteDownload' => 'ダウンロードを削除',
'downloads.retryDownload' => 'ダウンロードを再試行',
'downloads.downloadQueued' => 'ダウンロードをキューに追加しました',
'downloads.downloadResumed' => 'ダウンロードを再開しました',
'downloads.serverErrorBitrate' => 'サーバーエラー: ファイルがリモートビットレート制限を超えている可能性があります',
'downloads.episodesQueued' => ({required Object count}) => '${count}エピソードをダウンロードキューに追加しました',
'downloads.downloadDeleted' => 'ダウンロードを削除しました',
'downloads.deleteConfirm' => ({required Object title}) => 'このデバイスから「${title}」を削除しますか?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})',
'downloads.cancelledDownloadTitle' => 'キャンセルされたダウンロード',
'downloads.cancelledDownloadMessage' => 'このダウンロードはキャンセルされました。どうしますか?',
'downloads.allEpisodesAlreadyDownloaded' => 'すべてのエピソードはすでにダウンロード済みです',
'downloads.resumeDownload' => 'ダウンロードを再開',
'downloads.cancelledDownload' => 'キャンセルされたダウンロード',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}${status}を同期中)',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} をダウンロード済み — クリックして完了',
'downloads.partialDownloadClickToComplete' => '一部ダウンロード済み — クリックして完了',
'downloads.deleting' => '削除中...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})',
'downloads.queuedTooltip' => 'キュー',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'キュー: ${files}',
'downloads.downloadingTooltip' => 'ダウンロード中...',
@@ -2773,6 +2899,7 @@ extension on TranslationsJa {
'shaders.deleteShaderConfirm' => ({required Object name}) => '"${name}"を削除しますか?',
'companionRemote.title' => 'コンパニオンリモート',
'companionRemote.connectedTo' => ({required Object name}) => '${name}に接続中',
'companionRemote.unknownDevice' => '不明なデバイス',
'companionRemote.session.startingServer' => 'リモートサーバーを起動中...',
'companionRemote.session.failedToCreate' => 'リモートサーバーの起動に失敗しました:',
'companionRemote.session.hostAddress' => 'ホストアドレス',
@@ -2816,6 +2943,8 @@ extension on TranslationsJa {
'companionRemote.remote.tabSettings' => '設定',
'companionRemote.remote.previous' => '前へ',
'companionRemote.remote.playPause' => '再生/一時停止',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => '次へ',
'companionRemote.remote.seekBack' => '巻き戻し',
'companionRemote.remote.stop' => '停止',
@@ -2827,6 +2956,12 @@ extension on TranslationsJa {
'companionRemote.remote.subtitles' => '字幕',
'companionRemote.remote.audio' => '音声',
'companionRemote.remote.searchHint' => 'デスクトップで検索...',
'companionRemote.errors.noNetworkInterface' => 'ネットワークインターフェースが見つかりません',
'companionRemote.errors.authenticationFailed' => '認証に失敗しました',
'companionRemote.errors.joinTimedOut' => 'セッション参加がタイムアウトしました',
'companionRemote.errors.failedToConnectAnyAddress' => 'どのアドレスにも接続できませんでした',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => '${attempts}回試行後に接続が切断されました',
'companionRemote.errors.connectionLost' => '接続が切断されました',
'videoSettings.playbackSpeed' => '再生速度',
'videoSettings.zoom' => 'ズーム',
'videoSettings.sleepTimer' => 'スリープタイマー',
@@ -2837,6 +2972,40 @@ extension on TranslationsJa {
'videoSettings.performanceOverlay' => 'パフォーマンスオーバーレイ',
'videoSettings.audioPassthrough' => 'オーディオパススルー',
'videoSettings.audioNormalization' => 'ラウドネス正規化',
'performanceOverlay.color' => '',
'performanceOverlay.performance' => 'パフォーマンス',
'performanceOverlay.buffer' => 'バッファ',
'performanceOverlay.app' => 'アプリ',
'performanceOverlay.decoder' => 'デコーダー',
'performanceOverlay.rawDecoder' => 'Raw デコーダー',
'performanceOverlay.tunneling' => 'トンネリング',
'performanceOverlay.aspect' => 'アスペクト',
'performanceOverlay.rotation' => '回転',
'performanceOverlay.dvSource' => 'DV ソース',
'performanceOverlay.dvPath' => 'DV パス',
'performanceOverlay.p7Conversion' => 'P7 変換',
'performanceOverlay.sampleRate' => 'サンプルレート',
'performanceOverlay.pixelFormat' => 'ピクセル形式',
'performanceOverlay.hwFormat' => 'HW 形式',
'performanceOverlay.matrix' => 'マトリクス',
'performanceOverlay.primaries' => 'プライマリ',
'performanceOverlay.transfer' => '転送',
'performanceOverlay.renderFps' => '描画 FPS',
'performanceOverlay.displayFps' => '表示 FPS',
'performanceOverlay.avSync' => 'A/V 同期',
'performanceOverlay.dropped' => 'ドロップ',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'DV RPU 平均',
'performanceOverlay.dvSampleAverage' => 'DV サンプル平均',
'performanceOverlay.maxLuma' => '最大輝度',
'performanceOverlay.minLuma' => '最小輝度',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => '使用キャッシュ',
'performanceOverlay.speed' => '速度',
'performanceOverlay.player' => 'プレーヤー',
'performanceOverlay.memory' => 'メモリ',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => '外部プレーヤー',
'externalPlayer.useExternalPlayer' => '外部プレーヤーを使用',
'externalPlayer.useExternalPlayerDescription' => '動画を別のアプリで開きます',
@@ -2845,12 +3014,11 @@ extension on TranslationsJa {
'externalPlayer.systemDefault' => 'システムデフォルト',
'externalPlayer.addCustomPlayer' => 'カスタムプレーヤーを追加',
'externalPlayer.playerName' => 'プレーヤー名',
'externalPlayer.playerNameHint' => 'マイプレーヤー',
'externalPlayer.playerCommand' => 'コマンド',
'externalPlayer.playerPackage' => 'パッケージ名',
'externalPlayer.playerUrlScheme' => 'URLスキーム',
'externalPlayer.off' => 'オフ',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => '外部プレーヤーの起動に失敗しました',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name}がインストールされていません',
'externalPlayer.playInExternalPlayer' => '外部プレーヤーで再生',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsKo extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersKo shaders = _TranslationsShadersKo._(_root);
@override late final _TranslationsCompanionRemoteKo companionRemote = _TranslationsCompanionRemoteKo._(_root);
@override late final _TranslationsVideoSettingsKo videoSettings = _TranslationsVideoSettingsKo._(_root);
@override late final _TranslationsPerformanceOverlayKo performanceOverlay = _TranslationsPerformanceOverlayKo._(_root);
@override late final _TranslationsExternalPlayerKo externalPlayer = _TranslationsExternalPlayerKo._(_root);
@override late final _TranslationsMetadataEditKo metadataEdit = _TranslationsMetadataEditKo._(_root);
@override late final _TranslationsMatchScreenKo matchScreen = _TranslationsMatchScreenKo._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonKo extends TranslationsCommonEn {
@override String get settings => '설정';
@override String get mute => '음소거';
@override String get ok => '확인';
@override String get off => '';
@override String seasonNumber({required Object number}) => '시즌 ${number}';
@override String chapterNumber({required Object number}) => '챕터 ${number}';
@override String get reconnect => '다시 연결';
@override String get exit => '종료';
@override String get viewAll => '모두 보기';
@@ -385,6 +389,10 @@ class _TranslationsSettingsKo extends TranslationsSettingsEn {
@override String get dvConversionNative => '네이티브 / 비활성화';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => '기기 기능 감지와 일반 폴백 동작을 사용합니다';
@override String get dvConversionNativeDescription => '네이티브 DV7을 강제하고 DV 변환 재시도를 억제합니다';
@override String get dvConversionDv81Description => 'Dolby Vision 프로필 8.1로 인라인 RPU 변환을 강제합니다';
@override String get dvConversionHevcStripDescription => 'Dolby Vision RPU/EL 레이어를 제거하고 일반 HEVC로 제공합니다';
@override String get requireProfileSelectionOnOpen => '앱 실행 시 프로필 선택';
@override String get requireProfileSelectionOnOpenDescription => '앱을 열 때마다 프로필 선택 화면을 표시합니다';
@override String get forceTvMode => 'TV 모드 강제 사용';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysKo extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => '${actionName}에 대한 단축키 설정';
@override String get clearShortcut => '단축키 삭제';
@override String get noShortcutSet => '설정된 단축키 없음';
@override String get currentShortcut => '현재 단축키:';
@override late final _TranslationsHotkeysActionsKo actions = _TranslationsHotkeysActionsKo._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuKo extends TranslationsMediaMenuEn {
@override String get goToSeries => '시리즈로 이동';
@override String get goToSeason => '시즌으로 이동';
@override String get shufflePlay => '무작위 재생';
@override String get shuffleNotAvailableOffline => '오프라인에서는 셔플을 사용할 수 없습니다';
@override String get fileInfo => '파일 정보';
@override String get deleteFromServer => '서버에서 삭제';
@override String get confirmDelete => '이 미디어와 해당 파일을 서버에서 삭제할까요?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsKo extends TranslationsVideoControlsEn {
@override String get searchSubtitles => '자막 검색';
@override String get language => '언어';
@override String get noSubtitlesFound => '자막을 찾을 수 없습니다';
@override String get downloadedSubtitle => '다운로드됨';
@override String get noSubtitlesAvailable => '사용 가능한 자막 없음';
@override String get noAudioTracksAvailable => '사용 가능한 오디오 트랙 없음';
@override String get noTracksAvailable => '사용 가능한 트랙 없음';
@override String get subtitleDownloaded => '자막이 다운로드되었습니다';
@override String get subtitleDownloadFailed => '자막 다운로드에 실패했습니다';
@override String get searchLanguages => '언어 검색...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesKo extends TranslationsProfilesEn {
@override String get pinExplain => '프로필 전환에는 4자리 PIN이 필요합니다.';
@override String get continueButton => '계속';
@override String get pinsDontMatch => 'PIN이 일치하지 않습니다';
@override String get initializeServicesFailed => '프로필 서비스를 초기화하지 못했습니다';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverKo extends TranslationsDiscoverEn {
@override String get movie => '영화';
@override String get tvShow => 'TV 시리즈';
@override String minutesLeft({required Object minutes}) => '${minutes}분 남음';
@override String get moreLikeThis => '비슷한 콘텐츠';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesKo extends TranslationsLibrariesEn {
// Translations
@override String get title => '미디어 라이브러리';
@override String get fallbackTitle => '라이브러리';
@override String get scanLibraryFiles => '미디어 라이브러리 파일 스캔';
@override String get scanLibrary => '미디어 라이브러리 스캔';
@override String get analyze => '분석';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvKo extends TranslationsLiveTvEn {
@override String get noChannels => '사용 가능한 채널이 없습니다';
@override String get noDvr => '서버에 DVR이 구성되어 있지 않습니다';
@override String get noPrograms => '프로그램 데이터가 없습니다';
@override String get liveStreamFailed => '라이브 스트림 실패';
@override String get unknownProgram => '알 수 없는 프로그램';
@override String get unknownHub => '알 수 없음';
@override String get unknownError => '알 수 없는 오류';
@override String channelNumber({required Object number}) => '채널 ${number}';
@override String get unknownChannel => '알 수 없는 채널';
@override String get live => '실시간';
@override String get reloadGuide => '편성표 새로고침';
@override String get now => '지금';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsKo extends TranslationsDownloadsEn {
@override String get deleteDownload => '다운로드 삭제';
@override String get retryDownload => '다운로드 재시도';
@override String get downloadQueued => '다운로드 대기 중';
@override String get downloadResumed => '다운로드를 재개했습니다';
@override String get serverErrorBitrate => '서버 오류: 파일이 원격 비트레이트 제한을 초과할 수 있습니다';
@override String episodesQueued({required Object count}) => '${count} 에피소드가 다운로드 대기열에 추가 되었습니다';
@override String get downloadDeleted => '다운로드 삭제됨';
@override String deleteConfirm({required Object title}) => '이 기기에서 "${title}"을(를) 삭제할까요?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title} 삭제 중... (${current}/${total})';
@override String get cancelledDownloadTitle => '취소된 다운로드';
@override String get cancelledDownloadMessage => '이 다운로드가 취소되었습니다. 어떻게 하시겠습니까?';
@override String get allEpisodesAlreadyDownloaded => '모든 에피소드가 이미 다운로드되었습니다';
@override String get resumeDownload => '다운로드 재개';
@override String get cancelledDownload => '취소된 다운로드';
@override String syncingFile({required Object file, required Object status}) => '${file} (${status} 동기화 중)';
@override String downloadedFileClickToComplete({required Object file}) => '${file} 다운로드됨 — 클릭하여 완료';
@override String get partialDownloadClickToComplete => '부분 다운로드됨 — 클릭하여 완료';
@override String get deleting => '삭제 중...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title} 삭제 중... (${current}/${total})';
@override String get queuedTooltip => '대기 중';
@override String queuedFilesTooltip({required Object files}) => '대기 중: ${files}';
@override String get downloadingTooltip => '다운로드 중...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteKo extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => '컴패니언 리모컨';
@override String connectedTo({required Object name}) => '${name}에 연결됨';
@override String get unknownDevice => '알 수 없는 기기';
@override late final _TranslationsCompanionRemoteSessionKo session = _TranslationsCompanionRemoteSessionKo._(_root);
@override late final _TranslationsCompanionRemotePairingKo pairing = _TranslationsCompanionRemotePairingKo._(_root);
@override late final _TranslationsCompanionRemoteRemoteKo remote = _TranslationsCompanionRemoteRemoteKo._(_root);
@override late final _TranslationsCompanionRemoteErrorsKo errors = _TranslationsCompanionRemoteErrorsKo._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsKo extends TranslationsVideoSettingsEn {
@override String get audioNormalization => '음량 정규화';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayKo extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayKo._(TranslationsKo root) : this._root = root, super.internal(root);
final TranslationsKo _root; // ignore: unused_field
// Translations
@override String get color => '색상';
@override String get performance => '성능';
@override String get buffer => '버퍼';
@override String get app => '';
@override String get decoder => '디코더';
@override String get rawDecoder => '원본 디코더';
@override String get tunneling => '터널링';
@override String get aspect => '화면비';
@override String get rotation => '회전';
@override String get dvSource => 'DV 소스';
@override String get dvPath => 'DV 경로';
@override String get p7Conversion => 'P7 변환';
@override String get sampleRate => '샘플 레이트';
@override String get pixelFormat => '픽셀 형식';
@override String get hwFormat => 'HW 형식';
@override String get matrix => '매트릭스';
@override String get primaries => '원색';
@override String get transfer => '전송';
@override String get renderFps => '렌더 FPS';
@override String get displayFps => '디스플레이 FPS';
@override String get avSync => 'A/V 동기화';
@override String get dropped => '드롭됨';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'DV RPU 평균';
@override String get dvSampleAverage => 'DV 샘플 평균';
@override String get maxLuma => '최대 휘도';
@override String get minLuma => '최소 휘도';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => '사용 캐시';
@override String get speed => '속도';
@override String get player => '플레이어';
@override String get memory => '메모리';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerKo extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerKo._(TranslationsKo root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerKo extends TranslationsExternalPlayerEn {
@override String get systemDefault => '시스템 기본값';
@override String get addCustomPlayer => '사용자 정의 플레이어 추가';
@override String get playerName => '플레이어 이름';
@override String get playerNameHint => '내 플레이어';
@override String get playerCommand => '명령어';
@override String get playerPackage => '패키지 이름';
@override String get playerUrlScheme => 'URL 스킴';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteKo extends TranslationsCompanionRemoteRe
@override String get searchHint => '데스크톱에서 검색...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsKo extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsKo._(TranslationsKo root) : this._root = root, super.internal(root);
final TranslationsKo _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => '네트워크 인터페이스를 찾을 수 없습니다';
@override String get authenticationFailed => '인증 실패';
@override String get joinTimedOut => '세션 참가 시간이 초과되었습니다';
@override String get failedToConnectAnyAddress => '어떤 주소에도 연결하지 못했습니다';
@override String connectionLostAfterAttempts({required Object attempts}) => '${attempts}회 시도 후 연결이 끊어졌습니다';
@override String get connectionLost => '연결이 끊어졌습니다';
}
// Path: trackers.services
class _TranslationsTrackersServicesKo extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesKo._(TranslationsKo root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsKo {
'common.settings' => '설정',
'common.mute' => '음소거',
'common.ok' => '확인',
'common.off' => '',
'common.seasonNumber' => ({required Object number}) => '시즌 ${number}',
'common.chapterNumber' => ({required Object number}) => '챕터 ${number}',
'common.reconnect' => '다시 연결',
'common.exit' => '종료',
'common.viewAll' => '모두 보기',
@@ -2070,6 +2167,10 @@ extension on TranslationsKo {
'settings.dvConversionNative' => '네이티브 / 비활성화',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => '기기 기능 감지와 일반 폴백 동작을 사용합니다',
'settings.dvConversionNativeDescription' => '네이티브 DV7을 강제하고 DV 변환 재시도를 억제합니다',
'settings.dvConversionDv81Description' => 'Dolby Vision 프로필 8.1로 인라인 RPU 변환을 강제합니다',
'settings.dvConversionHevcStripDescription' => 'Dolby Vision RPU/EL 레이어를 제거하고 일반 HEVC로 제공합니다',
'settings.requireProfileSelectionOnOpen' => '앱 실행 시 프로필 선택',
'settings.requireProfileSelectionOnOpenDescription' => '앱을 열 때마다 프로필 선택 화면을 표시합니다',
'settings.forceTvMode' => 'TV 모드 강제 사용',
@@ -2099,6 +2200,8 @@ extension on TranslationsKo {
'search.enterTitleActorOrKeyword' => '제목, 배우 또는 키워드를 입력하세요',
'hotkeys.setShortcutFor' => ({required Object actionName}) => '${actionName}에 대한 단축키 설정',
'hotkeys.clearShortcut' => '단축키 삭제',
'hotkeys.noShortcutSet' => '설정된 단축키 없음',
'hotkeys.currentShortcut' => '현재 단축키:',
'hotkeys.actions.playPause' => '재생/일시정지',
'hotkeys.actions.volumeUp' => '볼륨 높이기',
'hotkeys.actions.volumeDown' => '볼륨 낮추기',
@@ -2155,6 +2258,7 @@ extension on TranslationsKo {
'mediaMenu.goToSeries' => '시리즈로 이동',
'mediaMenu.goToSeason' => '시즌으로 이동',
'mediaMenu.shufflePlay' => '무작위 재생',
'mediaMenu.shuffleNotAvailableOffline' => '오프라인에서는 셔플을 사용할 수 없습니다',
'mediaMenu.fileInfo' => '파일 정보',
'mediaMenu.deleteFromServer' => '서버에서 삭제',
'mediaMenu.confirmDelete' => '이 미디어와 해당 파일을 서버에서 삭제할까요?',
@@ -2263,6 +2367,10 @@ extension on TranslationsKo {
'videoControls.searchSubtitles' => '자막 검색',
'videoControls.language' => '언어',
'videoControls.noSubtitlesFound' => '자막을 찾을 수 없습니다',
'videoControls.downloadedSubtitle' => '다운로드됨',
'videoControls.noSubtitlesAvailable' => '사용 가능한 자막 없음',
'videoControls.noAudioTracksAvailable' => '사용 가능한 오디오 트랙 없음',
'videoControls.noTracksAvailable' => '사용 가능한 트랙 없음',
'videoControls.subtitleDownloaded' => '자막이 다운로드되었습니다',
'videoControls.subtitleDownloadFailed' => '자막 다운로드에 실패했습니다',
'videoControls.searchLanguages' => '언어 검색...',
@@ -2321,6 +2429,8 @@ extension on TranslationsKo {
'subtitlingStyling.borderColor' => '테두리 색상',
'subtitlingStyling.backgroundOpacity' => '배경 불투명도',
'subtitlingStyling.backgroundColor' => '배경색',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => '위치',
'subtitlingStyling.assOverride' => 'ASS 오버라이드',
'subtitlingStyling.bold' => '굵게',
@@ -2335,8 +2445,6 @@ extension on TranslationsKo {
'mpvConfig.loadPreset' => '로드',
'mpvConfig.deletePreset' => '삭제',
'mpvConfig.presetSaved' => '프리셋이 저장 되었습니다',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => '프리셋이 로드 되었습니다',
'mpvConfig.presetDeleted' => '프리셋이 삭제 되었습니다',
'mpvConfig.confirmDeletePreset' => '이 프리셋을 삭제 하시겠습니까?',
@@ -2399,6 +2507,7 @@ extension on TranslationsKo {
'profiles.pinExplain' => '프로필 전환에는 4자리 PIN이 필요합니다.',
'profiles.continueButton' => '계속',
'profiles.pinsDontMatch' => 'PIN이 일치하지 않습니다',
'profiles.initializeServicesFailed' => '프로필 서비스를 초기화하지 못했습니다',
'connections.sectionTitle' => '연결',
'connections.addConnection' => '연결 추가',
'connections.addConnectionSubtitleNoProfile' => 'Plex로 로그인하거나 Jellyfin 서버에 연결',
@@ -2427,6 +2536,7 @@ extension on TranslationsKo {
'discover.movie' => '영화',
'discover.tvShow' => 'TV 시리즈',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes}분 남음',
'discover.moreLikeThis' => '비슷한 콘텐츠',
'errors.searchFailed' => ({required Object error}) => '검색 실패: ${error}',
'errors.connectionTimeout' => ({required Object context}) => '${context} 로드 중 연결 시간 초과',
'errors.connectionFailed' => '미디어 서버에 연결할 수 없습니다',
@@ -2441,6 +2551,7 @@ extension on TranslationsKo {
'errors.failedToDeleteProfile' => ({required Object displayName}) => '${displayName}을(를) 삭제할 수 없습니다',
'errors.failedToRate' => '평점을 업데이트하지 못했습니다',
'libraries.title' => '미디어 라이브러리',
'libraries.fallbackTitle' => '라이브러리',
'libraries.scanLibraryFiles' => '미디어 라이브러리 파일 스캔',
'libraries.scanLibrary' => '미디어 라이브러리 스캔',
'libraries.analyze' => '분석',
@@ -2541,6 +2652,12 @@ extension on TranslationsKo {
'liveTv.noChannels' => '사용 가능한 채널이 없습니다',
'liveTv.noDvr' => '서버에 DVR이 구성되어 있지 않습니다',
'liveTv.noPrograms' => '프로그램 데이터가 없습니다',
'liveTv.liveStreamFailed' => '라이브 스트림 실패',
'liveTv.unknownProgram' => '알 수 없는 프로그램',
'liveTv.unknownHub' => '알 수 없음',
'liveTv.unknownError' => '알 수 없는 오류',
'liveTv.channelNumber' => ({required Object number}) => '채널 ${number}',
'liveTv.unknownChannel' => '알 수 없는 채널',
'liveTv.live' => '실시간',
'liveTv.reloadGuide' => '편성표 새로고침',
'liveTv.now' => '지금',
@@ -2711,12 +2828,21 @@ extension on TranslationsKo {
'downloads.deleteDownload' => '다운로드 삭제',
'downloads.retryDownload' => '다운로드 재시도',
'downloads.downloadQueued' => '다운로드 대기 중',
'downloads.downloadResumed' => '다운로드를 재개했습니다',
'downloads.serverErrorBitrate' => '서버 오류: 파일이 원격 비트레이트 제한을 초과할 수 있습니다',
'downloads.episodesQueued' => ({required Object count}) => '${count} 에피소드가 다운로드 대기열에 추가 되었습니다',
'downloads.downloadDeleted' => '다운로드 삭제됨',
'downloads.deleteConfirm' => ({required Object title}) => '이 기기에서 "${title}"을(를) 삭제할까요?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title} 삭제 중... (${current}/${total})',
'downloads.cancelledDownloadTitle' => '취소된 다운로드',
'downloads.cancelledDownloadMessage' => '이 다운로드가 취소되었습니다. 어떻게 하시겠습니까?',
'downloads.allEpisodesAlreadyDownloaded' => '모든 에피소드가 이미 다운로드되었습니다',
'downloads.resumeDownload' => '다운로드 재개',
'downloads.cancelledDownload' => '취소된 다운로드',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} 동기화 중)',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} 다운로드됨 — 클릭하여 완료',
'downloads.partialDownloadClickToComplete' => '부분 다운로드됨 — 클릭하여 완료',
'downloads.deleting' => '삭제 중...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title} 삭제 중... (${current}/${total})',
'downloads.queuedTooltip' => '대기 중',
'downloads.queuedFilesTooltip' => ({required Object files}) => '대기 중: ${files}',
'downloads.downloadingTooltip' => '다운로드 중...',
@@ -2773,6 +2899,7 @@ extension on TranslationsKo {
'shaders.deleteShaderConfirm' => ({required Object name}) => '"${name}"을(를) 삭제하시겠습니까?',
'companionRemote.title' => '컴패니언 리모컨',
'companionRemote.connectedTo' => ({required Object name}) => '${name}에 연결됨',
'companionRemote.unknownDevice' => '알 수 없는 기기',
'companionRemote.session.startingServer' => '원격 서버 시작 중...',
'companionRemote.session.failedToCreate' => '원격 서버를 시작하지 못했습니다:',
'companionRemote.session.hostAddress' => '호스트 주소',
@@ -2816,6 +2943,8 @@ extension on TranslationsKo {
'companionRemote.remote.tabSettings' => '설정',
'companionRemote.remote.previous' => '이전',
'companionRemote.remote.playPause' => '재생/일시정지',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => '다음',
'companionRemote.remote.seekBack' => '되감기',
'companionRemote.remote.stop' => '정지',
@@ -2827,6 +2956,12 @@ extension on TranslationsKo {
'companionRemote.remote.subtitles' => '자막',
'companionRemote.remote.audio' => '오디오',
'companionRemote.remote.searchHint' => '데스크톱에서 검색...',
'companionRemote.errors.noNetworkInterface' => '네트워크 인터페이스를 찾을 수 없습니다',
'companionRemote.errors.authenticationFailed' => '인증 실패',
'companionRemote.errors.joinTimedOut' => '세션 참가 시간이 초과되었습니다',
'companionRemote.errors.failedToConnectAnyAddress' => '어떤 주소에도 연결하지 못했습니다',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => '${attempts}회 시도 후 연결이 끊어졌습니다',
'companionRemote.errors.connectionLost' => '연결이 끊어졌습니다',
'videoSettings.playbackSpeed' => '재생 속도',
'videoSettings.zoom' => '확대/축소',
'videoSettings.sleepTimer' => '취침 타이머',
@@ -2837,6 +2972,40 @@ extension on TranslationsKo {
'videoSettings.performanceOverlay' => '성능 오버레이',
'videoSettings.audioPassthrough' => '오디오 패스스루',
'videoSettings.audioNormalization' => '음량 정규화',
'performanceOverlay.color' => '색상',
'performanceOverlay.performance' => '성능',
'performanceOverlay.buffer' => '버퍼',
'performanceOverlay.app' => '',
'performanceOverlay.decoder' => '디코더',
'performanceOverlay.rawDecoder' => '원본 디코더',
'performanceOverlay.tunneling' => '터널링',
'performanceOverlay.aspect' => '화면비',
'performanceOverlay.rotation' => '회전',
'performanceOverlay.dvSource' => 'DV 소스',
'performanceOverlay.dvPath' => 'DV 경로',
'performanceOverlay.p7Conversion' => 'P7 변환',
'performanceOverlay.sampleRate' => '샘플 레이트',
'performanceOverlay.pixelFormat' => '픽셀 형식',
'performanceOverlay.hwFormat' => 'HW 형식',
'performanceOverlay.matrix' => '매트릭스',
'performanceOverlay.primaries' => '원색',
'performanceOverlay.transfer' => '전송',
'performanceOverlay.renderFps' => '렌더 FPS',
'performanceOverlay.displayFps' => '디스플레이 FPS',
'performanceOverlay.avSync' => 'A/V 동기화',
'performanceOverlay.dropped' => '드롭됨',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'DV RPU 평균',
'performanceOverlay.dvSampleAverage' => 'DV 샘플 평균',
'performanceOverlay.maxLuma' => '최대 휘도',
'performanceOverlay.minLuma' => '최소 휘도',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => '사용 캐시',
'performanceOverlay.speed' => '속도',
'performanceOverlay.player' => '플레이어',
'performanceOverlay.memory' => '메모리',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => '외부 플레이어',
'externalPlayer.useExternalPlayer' => '외부 플레이어 사용',
'externalPlayer.useExternalPlayerDescription' => '동영상을 다른 앱에서 열기',
@@ -2845,12 +3014,11 @@ extension on TranslationsKo {
'externalPlayer.systemDefault' => '시스템 기본값',
'externalPlayer.addCustomPlayer' => '사용자 정의 플레이어 추가',
'externalPlayer.playerName' => '플레이어 이름',
'externalPlayer.playerNameHint' => '내 플레이어',
'externalPlayer.playerCommand' => '명령어',
'externalPlayer.playerPackage' => '패키지 이름',
'externalPlayer.playerUrlScheme' => 'URL 스킴',
'externalPlayer.off' => '꺼짐',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => '외부 플레이어를 열 수 없습니다',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name}이(가) 설치되어 있지 않습니다',
'externalPlayer.playInExternalPlayer' => '외부 플레이어에서 재생',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsNb extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersNb shaders = _TranslationsShadersNb._(_root);
@override late final _TranslationsCompanionRemoteNb companionRemote = _TranslationsCompanionRemoteNb._(_root);
@override late final _TranslationsVideoSettingsNb videoSettings = _TranslationsVideoSettingsNb._(_root);
@override late final _TranslationsPerformanceOverlayNb performanceOverlay = _TranslationsPerformanceOverlayNb._(_root);
@override late final _TranslationsExternalPlayerNb externalPlayer = _TranslationsExternalPlayerNb._(_root);
@override late final _TranslationsMetadataEditNb metadataEdit = _TranslationsMetadataEditNb._(_root);
@override late final _TranslationsMatchScreenNb matchScreen = _TranslationsMatchScreenNb._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonNb extends TranslationsCommonEn {
@override String get settings => 'Innstillinger';
@override String get mute => 'Demp';
@override String get ok => 'OK';
@override String get off => 'Av';
@override String seasonNumber({required Object number}) => 'Sesong ${number}';
@override String chapterNumber({required Object number}) => 'Kapittel ${number}';
@override String get reconnect => 'Koble til på nytt';
@override String get exit => 'Avslutt';
@override String get viewAll => 'Vis alle';
@@ -385,6 +389,10 @@ class _TranslationsSettingsNb extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Innebygd / deaktivert';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Bruk enhetens kapabilitetsdeteksjon og normal reserveoppførsel';
@override String get dvConversionNativeDescription => 'Tving native DV7 og undertrykk forsøk på DV-konvertering';
@override String get dvConversionDv81Description => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1';
@override String get dvConversionHevcStripDescription => 'Fjern Dolby Vision RPU/EL-lag og presenter vanlig HEVC';
@override String get requireProfileSelectionOnOpen => 'Spør om profil ved appåpning';
@override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åpnes';
@override String get forceTvMode => 'Tving TV-modus';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysNb extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Angi snarvei for ${actionName}';
@override String get clearShortcut => 'Fjern snarvei';
@override String get noShortcutSet => 'Ingen snarvei satt';
@override String get currentShortcut => 'Gjeldende snarvei:';
@override late final _TranslationsHotkeysActionsNb actions = _TranslationsHotkeysActionsNb._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuNb extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Gå til serie';
@override String get goToSeason => 'Gå til sesong';
@override String get shufflePlay => 'Tilfeldig avspilling';
@override String get shuffleNotAvailableOffline => 'Tilfeldig avspilling er ikke tilgjengelig offline';
@override String get fileInfo => 'Filinformasjon';
@override String get deleteFromServer => 'Slett fra server';
@override String get confirmDelete => 'Slette dette mediet og filene fra serveren?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsNb extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Søk etter undertekster';
@override String get language => 'Språk';
@override String get noSubtitlesFound => 'Ingen undertekster funnet';
@override String get downloadedSubtitle => 'Lastet ned';
@override String get noSubtitlesAvailable => 'Ingen undertekster tilgjengelig';
@override String get noAudioTracksAvailable => 'Ingen lydspor tilgjengelig';
@override String get noTracksAvailable => 'Ingen spor tilgjengelig';
@override String get subtitleDownloaded => 'Undertekst lastet ned';
@override String get subtitleDownloadFailed => 'Kunne ikke laste ned undertekst';
@override String get searchLanguages => 'Søk etter språk...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesNb extends TranslationsProfilesEn {
@override String get pinExplain => '4-sifret PIN kreves for å bytte profiler.';
@override String get continueButton => 'Fortsett';
@override String get pinsDontMatch => 'PIN-ene samsvarer ikke';
@override String get initializeServicesFailed => 'Kunne ikke initialisere profiltjenester';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverNb extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'TV-serie';
@override String minutesLeft({required Object minutes}) => '${minutes} min igjen';
@override String get moreLikeThis => 'Mer som dette';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesNb extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Biblioteker';
@override String get fallbackTitle => 'Bibliotek';
@override String get scanLibraryFiles => 'Skann bibliotekfiler';
@override String get scanLibrary => 'Skann bibliotek';
@override String get analyze => 'Analyser';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvNb extends TranslationsLiveTvEn {
@override String get noChannels => 'Ingen kanaler tilgjengelig';
@override String get noDvr => 'Ingen DVR konfigurert på noen server';
@override String get noPrograms => 'Ingen programdata tilgjengelig';
@override String get liveStreamFailed => 'Direktesending mislyktes';
@override String get unknownProgram => 'Ukjent program';
@override String get unknownHub => 'Ukjent';
@override String get unknownError => 'Ukjent feil';
@override String channelNumber({required Object number}) => 'Kanal ${number}';
@override String get unknownChannel => 'Ukjent kanal';
@override String get live => 'DIREKTE';
@override String get reloadGuide => 'Last inn programguide på nytt';
@override String get now => '';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsNb extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Slett nedlasting';
@override String get retryDownload => 'Prøv nedlasting på nytt';
@override String get downloadQueued => 'Nedlasting i kø';
@override String get downloadResumed => 'Nedlasting gjenopptatt';
@override String get serverErrorBitrate => 'Serverfeil: filen kan overskride grensen for ekstern bitrate';
@override String episodesQueued({required Object count}) => '${count} episoder i nedlastingskø';
@override String get downloadDeleted => 'Nedlasting slettet';
@override String deleteConfirm({required Object title}) => 'Slette "${title}" fra denne enheten?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} av ${total})';
@override String get cancelledDownloadTitle => 'Avbrutt nedlasting';
@override String get cancelledDownloadMessage => 'Denne nedlastingen ble avbrutt. Hva vil du gjøre?';
@override String get allEpisodesAlreadyDownloaded => 'Alle episoder er allerede lastet ned';
@override String get resumeDownload => 'Gjenoppta nedlasting';
@override String get cancelledDownload => 'Avbrutt nedlasting';
@override String syncingFile({required Object file, required Object status}) => '${file} (synkroniserer ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} lastet ned klikk for å fullføre';
@override String get partialDownloadClickToComplete => 'Delvis lastet ned klikk for å fullføre';
@override String get deleting => 'Sletter...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} av ${total})';
@override String get queuedTooltip => 'I kø';
@override String queuedFilesTooltip({required Object files}) => 'I kø: ${files}';
@override String get downloadingTooltip => 'Laster ned...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteNb extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Følgesvenn-fjernkontroll';
@override String connectedTo({required Object name}) => 'Tilkoblet ${name}';
@override String get unknownDevice => 'Ukjent enhet';
@override late final _TranslationsCompanionRemoteSessionNb session = _TranslationsCompanionRemoteSessionNb._(_root);
@override late final _TranslationsCompanionRemotePairingNb pairing = _TranslationsCompanionRemotePairingNb._(_root);
@override late final _TranslationsCompanionRemoteRemoteNb remote = _TranslationsCompanionRemoteRemoteNb._(_root);
@override late final _TranslationsCompanionRemoteErrorsNb errors = _TranslationsCompanionRemoteErrorsNb._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsNb extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normaliser lydstyrke';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayNb extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayNb._(TranslationsNb root) : this._root = root, super.internal(root);
final TranslationsNb _root; // ignore: unused_field
// Translations
@override String get color => 'Farge';
@override String get performance => 'Ytelse';
@override String get buffer => 'Buffer';
@override String get app => 'App';
@override String get decoder => 'Dekoder';
@override String get rawDecoder => 'Rå dekoder';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Format';
@override String get rotation => 'Rotasjon';
@override String get dvSource => 'DV-kilde';
@override String get dvPath => 'DV-sti';
@override String get p7Conversion => 'P7-konv.';
@override String get sampleRate => 'Samplingsrate';
@override String get pixelFormat => 'Pikselformat';
@override String get hwFormat => 'HW-format';
@override String get matrix => 'Matrise';
@override String get primaries => 'Primærfarger';
@override String get transfer => 'Overføring';
@override String get renderFps => 'Render-FPS';
@override String get displayFps => 'Skjerm-FPS';
@override String get avSync => 'A/V-synk';
@override String get dropped => 'Droppet';
@override String get dvRpus => 'DV RPU-er';
@override String get dvRpuAverage => 'DV RPU snitt';
@override String get dvSampleAverage => 'DV-sample snitt';
@override String get maxLuma => 'Maks luma';
@override String get minLuma => 'Min luma';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache brukt';
@override String get speed => 'Hastighet';
@override String get player => 'Spiller';
@override String get memory => 'Minne';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerNb extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerNb._(TranslationsNb root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerNb extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Systemstandard';
@override String get addCustomPlayer => 'Legg til egendefinert spiller';
@override String get playerName => 'Spillernavn';
@override String get playerNameHint => 'Min spiller';
@override String get playerCommand => 'Kommando';
@override String get playerPackage => 'Pakkenavn';
@override String get playerUrlScheme => 'URL-skjema';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteNb extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Søk på stasjonær...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsNb extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsNb._(TranslationsNb root) : this._root = root, super.internal(root);
final TranslationsNb _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Fant ingen nettverksgrensesnitt';
@override String get authenticationFailed => 'Autentisering mislyktes';
@override String get joinTimedOut => 'Tidsavbrudd ved tilkobling til økt';
@override String get failedToConnectAnyAddress => 'Kunne ikke koble til noen adresse';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Tilkobling mistet etter ${attempts} forsøk';
@override String get connectionLost => 'Tilkobling mistet';
}
// Path: trackers.services
class _TranslationsTrackersServicesNb extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesNb._(TranslationsNb root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsNb {
'common.settings' => 'Innstillinger',
'common.mute' => 'Demp',
'common.ok' => 'OK',
'common.off' => 'Av',
'common.seasonNumber' => ({required Object number}) => 'Sesong ${number}',
'common.chapterNumber' => ({required Object number}) => 'Kapittel ${number}',
'common.reconnect' => 'Koble til på nytt',
'common.exit' => 'Avslutt',
'common.viewAll' => 'Vis alle',
@@ -2070,6 +2167,10 @@ extension on TranslationsNb {
'settings.dvConversionNative' => 'Innebygd / deaktivert',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Bruk enhetens kapabilitetsdeteksjon og normal reserveoppførsel',
'settings.dvConversionNativeDescription' => 'Tving native DV7 og undertrykk forsøk på DV-konvertering',
'settings.dvConversionDv81Description' => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1',
'settings.dvConversionHevcStripDescription' => 'Fjern Dolby Vision RPU/EL-lag og presenter vanlig HEVC',
'settings.requireProfileSelectionOnOpen' => 'Spør om profil ved appåpning',
'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åpnes',
'settings.forceTvMode' => 'Tving TV-modus',
@@ -2099,6 +2200,8 @@ extension on TranslationsNb {
'search.enterTitleActorOrKeyword' => 'Skriv inn tittel, skuespiller eller nøkkelord',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Angi snarvei for ${actionName}',
'hotkeys.clearShortcut' => 'Fjern snarvei',
'hotkeys.noShortcutSet' => 'Ingen snarvei satt',
'hotkeys.currentShortcut' => 'Gjeldende snarvei:',
'hotkeys.actions.playPause' => 'Spill av/Pause',
'hotkeys.actions.volumeUp' => 'Volum opp',
'hotkeys.actions.volumeDown' => 'Volum ned',
@@ -2155,6 +2258,7 @@ extension on TranslationsNb {
'mediaMenu.goToSeries' => 'Gå til serie',
'mediaMenu.goToSeason' => 'Gå til sesong',
'mediaMenu.shufflePlay' => 'Tilfeldig avspilling',
'mediaMenu.shuffleNotAvailableOffline' => 'Tilfeldig avspilling er ikke tilgjengelig offline',
'mediaMenu.fileInfo' => 'Filinformasjon',
'mediaMenu.deleteFromServer' => 'Slett fra server',
'mediaMenu.confirmDelete' => 'Slette dette mediet og filene fra serveren?',
@@ -2263,6 +2367,10 @@ extension on TranslationsNb {
'videoControls.searchSubtitles' => 'Søk etter undertekster',
'videoControls.language' => 'Språk',
'videoControls.noSubtitlesFound' => 'Ingen undertekster funnet',
'videoControls.downloadedSubtitle' => 'Lastet ned',
'videoControls.noSubtitlesAvailable' => 'Ingen undertekster tilgjengelig',
'videoControls.noAudioTracksAvailable' => 'Ingen lydspor tilgjengelig',
'videoControls.noTracksAvailable' => 'Ingen spor tilgjengelig',
'videoControls.subtitleDownloaded' => 'Undertekst lastet ned',
'videoControls.subtitleDownloadFailed' => 'Kunne ikke laste ned undertekst',
'videoControls.searchLanguages' => 'Søk etter språk...',
@@ -2321,6 +2429,8 @@ extension on TranslationsNb {
'subtitlingStyling.borderColor' => 'Kantfarge',
'subtitlingStyling.backgroundOpacity' => 'Bakgrunnsopasitet',
'subtitlingStyling.backgroundColor' => 'Bakgrunnsfarge',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Posisjon',
'subtitlingStyling.assOverride' => 'ASS-overstyring',
'subtitlingStyling.bold' => 'Fet',
@@ -2335,8 +2445,6 @@ extension on TranslationsNb {
'mpvConfig.loadPreset' => 'Last inn',
'mpvConfig.deletePreset' => 'Slett',
'mpvConfig.presetSaved' => 'Forhåndsinnstilling lagret',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Forhåndsinnstilling lastet inn',
'mpvConfig.presetDeleted' => 'Forhåndsinnstilling slettet',
'mpvConfig.confirmDeletePreset' => 'Er du sikker på at du vil slette denne forhåndsinnstillingen?',
@@ -2399,6 +2507,7 @@ extension on TranslationsNb {
'profiles.pinExplain' => '4-sifret PIN kreves for å bytte profiler.',
'profiles.continueButton' => 'Fortsett',
'profiles.pinsDontMatch' => 'PIN-ene samsvarer ikke',
'profiles.initializeServicesFailed' => 'Kunne ikke initialisere profiltjenester',
'connections.sectionTitle' => 'Tilkoblinger',
'connections.addConnection' => 'Legg til tilkobling',
'connections.addConnectionSubtitleNoProfile' => 'Logg inn med Plex eller koble til en Jellyfin-server',
@@ -2427,6 +2536,7 @@ extension on TranslationsNb {
'discover.movie' => 'Film',
'discover.tvShow' => 'TV-serie',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min igjen',
'discover.moreLikeThis' => 'Mer som dette',
'errors.searchFailed' => ({required Object error}) => 'Søk mislyktes: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Tidsavbrudd ved lasting av ${context}',
'errors.connectionFailed' => 'Kan ikke koble til medieserver',
@@ -2441,6 +2551,7 @@ extension on TranslationsNb {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Kunne ikke slette ${displayName}',
'errors.failedToRate' => 'Kunne ikke oppdatere vurderingen',
'libraries.title' => 'Biblioteker',
'libraries.fallbackTitle' => 'Bibliotek',
'libraries.scanLibraryFiles' => 'Skann bibliotekfiler',
'libraries.scanLibrary' => 'Skann bibliotek',
'libraries.analyze' => 'Analyser',
@@ -2541,6 +2652,12 @@ extension on TranslationsNb {
'liveTv.noChannels' => 'Ingen kanaler tilgjengelig',
'liveTv.noDvr' => 'Ingen DVR konfigurert på noen server',
'liveTv.noPrograms' => 'Ingen programdata tilgjengelig',
'liveTv.liveStreamFailed' => 'Direktesending mislyktes',
'liveTv.unknownProgram' => 'Ukjent program',
'liveTv.unknownHub' => 'Ukjent',
'liveTv.unknownError' => 'Ukjent feil',
'liveTv.channelNumber' => ({required Object number}) => 'Kanal ${number}',
'liveTv.unknownChannel' => 'Ukjent kanal',
'liveTv.live' => 'DIREKTE',
'liveTv.reloadGuide' => 'Last inn programguide på nytt',
'liveTv.now' => '',
@@ -2711,12 +2828,21 @@ extension on TranslationsNb {
'downloads.deleteDownload' => 'Slett nedlasting',
'downloads.retryDownload' => 'Prøv nedlasting på nytt',
'downloads.downloadQueued' => 'Nedlasting i kø',
'downloads.downloadResumed' => 'Nedlasting gjenopptatt',
'downloads.serverErrorBitrate' => 'Serverfeil: filen kan overskride grensen for ekstern bitrate',
'downloads.episodesQueued' => ({required Object count}) => '${count} episoder i nedlastingskø',
'downloads.downloadDeleted' => 'Nedlasting slettet',
'downloads.deleteConfirm' => ({required Object title}) => 'Slette "${title}" fra denne enheten?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} av ${total})',
'downloads.cancelledDownloadTitle' => 'Avbrutt nedlasting',
'downloads.cancelledDownloadMessage' => 'Denne nedlastingen ble avbrutt. Hva vil du gjøre?',
'downloads.allEpisodesAlreadyDownloaded' => 'Alle episoder er allerede lastet ned',
'downloads.resumeDownload' => 'Gjenoppta nedlasting',
'downloads.cancelledDownload' => 'Avbrutt nedlasting',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synkroniserer ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} lastet ned klikk for å fullføre',
'downloads.partialDownloadClickToComplete' => 'Delvis lastet ned klikk for å fullføre',
'downloads.deleting' => 'Sletter...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} av ${total})',
'downloads.queuedTooltip' => 'I kø',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'I kø: ${files}',
'downloads.downloadingTooltip' => 'Laster ned...',
@@ -2773,6 +2899,7 @@ extension on TranslationsNb {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Slette "${name}"?',
'companionRemote.title' => 'Følgesvenn-fjernkontroll',
'companionRemote.connectedTo' => ({required Object name}) => 'Tilkoblet ${name}',
'companionRemote.unknownDevice' => 'Ukjent enhet',
'companionRemote.session.startingServer' => 'Starter fjernserver...',
'companionRemote.session.failedToCreate' => 'Kunne ikke starte fjernserver:',
'companionRemote.session.hostAddress' => 'Vertsadresse',
@@ -2816,6 +2943,8 @@ extension on TranslationsNb {
'companionRemote.remote.tabSettings' => 'Innstillinger',
'companionRemote.remote.previous' => 'Forrige',
'companionRemote.remote.playPause' => 'Spill av/Pause',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Neste',
'companionRemote.remote.seekBack' => 'Spol tilbake',
'companionRemote.remote.stop' => 'Stopp',
@@ -2827,6 +2956,12 @@ extension on TranslationsNb {
'companionRemote.remote.subtitles' => 'Undertekster',
'companionRemote.remote.audio' => 'Lyd',
'companionRemote.remote.searchHint' => 'Søk på stasjonær...',
'companionRemote.errors.noNetworkInterface' => 'Fant ingen nettverksgrensesnitt',
'companionRemote.errors.authenticationFailed' => 'Autentisering mislyktes',
'companionRemote.errors.joinTimedOut' => 'Tidsavbrudd ved tilkobling til økt',
'companionRemote.errors.failedToConnectAnyAddress' => 'Kunne ikke koble til noen adresse',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Tilkobling mistet etter ${attempts} forsøk',
'companionRemote.errors.connectionLost' => 'Tilkobling mistet',
'videoSettings.playbackSpeed' => 'Avspillingshastighet',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Søvntimer',
@@ -2837,6 +2972,40 @@ extension on TranslationsNb {
'videoSettings.performanceOverlay' => 'Ytelsesoverlegg',
'videoSettings.audioPassthrough' => 'Lydgjennomgang',
'videoSettings.audioNormalization' => 'Normaliser lydstyrke',
'performanceOverlay.color' => 'Farge',
'performanceOverlay.performance' => 'Ytelse',
'performanceOverlay.buffer' => 'Buffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Dekoder',
'performanceOverlay.rawDecoder' => 'Rå dekoder',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Format',
'performanceOverlay.rotation' => 'Rotasjon',
'performanceOverlay.dvSource' => 'DV-kilde',
'performanceOverlay.dvPath' => 'DV-sti',
'performanceOverlay.p7Conversion' => 'P7-konv.',
'performanceOverlay.sampleRate' => 'Samplingsrate',
'performanceOverlay.pixelFormat' => 'Pikselformat',
'performanceOverlay.hwFormat' => 'HW-format',
'performanceOverlay.matrix' => 'Matrise',
'performanceOverlay.primaries' => 'Primærfarger',
'performanceOverlay.transfer' => 'Overføring',
'performanceOverlay.renderFps' => 'Render-FPS',
'performanceOverlay.displayFps' => 'Skjerm-FPS',
'performanceOverlay.avSync' => 'A/V-synk',
'performanceOverlay.dropped' => 'Droppet',
'performanceOverlay.dvRpus' => 'DV RPU-er',
'performanceOverlay.dvRpuAverage' => 'DV RPU snitt',
'performanceOverlay.dvSampleAverage' => 'DV-sample snitt',
'performanceOverlay.maxLuma' => 'Maks luma',
'performanceOverlay.minLuma' => 'Min luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache brukt',
'performanceOverlay.speed' => 'Hastighet',
'performanceOverlay.player' => 'Spiller',
'performanceOverlay.memory' => 'Minne',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Ekstern spiller',
'externalPlayer.useExternalPlayer' => 'Bruk ekstern spiller',
'externalPlayer.useExternalPlayerDescription' => 'Åpne videoer i en annen app',
@@ -2845,12 +3014,11 @@ extension on TranslationsNb {
'externalPlayer.systemDefault' => 'Systemstandard',
'externalPlayer.addCustomPlayer' => 'Legg til egendefinert spiller',
'externalPlayer.playerName' => 'Spillernavn',
'externalPlayer.playerNameHint' => 'Min spiller',
'externalPlayer.playerCommand' => 'Kommando',
'externalPlayer.playerPackage' => 'Pakkenavn',
'externalPlayer.playerUrlScheme' => 'URL-skjema',
'externalPlayer.off' => 'Av',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Kunne ikke åpne ekstern spiller',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} er ikke installert',
'externalPlayer.playInExternalPlayer' => 'Spill av i ekstern spiller',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsNl extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersNl shaders = _TranslationsShadersNl._(_root);
@override late final _TranslationsCompanionRemoteNl companionRemote = _TranslationsCompanionRemoteNl._(_root);
@override late final _TranslationsVideoSettingsNl videoSettings = _TranslationsVideoSettingsNl._(_root);
@override late final _TranslationsPerformanceOverlayNl performanceOverlay = _TranslationsPerformanceOverlayNl._(_root);
@override late final _TranslationsExternalPlayerNl externalPlayer = _TranslationsExternalPlayerNl._(_root);
@override late final _TranslationsMetadataEditNl metadataEdit = _TranslationsMetadataEditNl._(_root);
@override late final _TranslationsMatchScreenNl matchScreen = _TranslationsMatchScreenNl._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonNl extends TranslationsCommonEn {
@override String get settings => 'Opties';
@override String get mute => 'Dempen';
@override String get ok => 'OK';
@override String get off => 'Uit';
@override String seasonNumber({required Object number}) => 'Seizoen ${number}';
@override String chapterNumber({required Object number}) => 'Hoofdstuk ${number}';
@override String get reconnect => 'Opnieuw verbinden';
@override String get exit => 'Afsluiten';
@override String get viewAll => 'Alles weergeven';
@@ -385,6 +389,10 @@ class _TranslationsSettingsNl extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Native / uitgeschakeld';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Gebruik apparaatdetectie en normaal fallbackgedrag';
@override String get dvConversionNativeDescription => 'Forceer native DV7 en onderdruk DV-conversie opnieuw proberen';
@override String get dvConversionDv81Description => 'Forceer inline RPU-conversie naar Dolby Vision-profiel 8.1';
@override String get dvConversionHevcStripDescription => 'Strip Dolby Vision RPU/EL-lagen en presenteer gewone HEVC';
@override String get requireProfileSelectionOnOpen => 'Vraag om profiel bij openen';
@override String get requireProfileSelectionOnOpenDescription => 'Toon profielselectie telkens wanneer de app wordt geopend';
@override String get forceTvMode => 'TV-modus forceren';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysNl extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Stel sneltoets in voor ${actionName}';
@override String get clearShortcut => 'Wis sneltoets';
@override String get noShortcutSet => 'Geen sneltoets ingesteld';
@override String get currentShortcut => 'Huidige sneltoets:';
@override late final _TranslationsHotkeysActionsNl actions = _TranslationsHotkeysActionsNl._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuNl extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Ga naar serie';
@override String get goToSeason => 'Ga naar seizoen';
@override String get shufflePlay => 'Willekeurig afspelen';
@override String get shuffleNotAvailableOffline => 'Shuffle is offline niet beschikbaar';
@override String get fileInfo => 'Bestand info';
@override String get deleteFromServer => 'Verwijderen van server';
@override String get confirmDelete => 'Deze media en bestanden van je server verwijderen?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsNl extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Ondertitels zoeken';
@override String get language => 'Taal';
@override String get noSubtitlesFound => 'Geen ondertitels gevonden';
@override String get downloadedSubtitle => 'Gedownload';
@override String get noSubtitlesAvailable => 'Geen ondertitels beschikbaar';
@override String get noAudioTracksAvailable => 'Geen audiotracks beschikbaar';
@override String get noTracksAvailable => 'Geen tracks beschikbaar';
@override String get subtitleDownloaded => 'Ondertitel gedownload';
@override String get subtitleDownloadFailed => 'Ondertitel downloaden mislukt';
@override String get searchLanguages => 'Talen zoeken...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesNl extends TranslationsProfilesEn {
@override String get pinExplain => '4-cijferige PIN vereist om profielen te wisselen.';
@override String get continueButton => 'Doorgaan';
@override String get pinsDontMatch => 'PIN-codes komen niet overeen';
@override String get initializeServicesFailed => 'Kan profielservices niet initialiseren';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverNl extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'TV Serie';
@override String minutesLeft({required Object minutes}) => '${minutes} min over';
@override String get moreLikeThis => 'Meer zoals dit';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesNl extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Bibliotheken';
@override String get fallbackTitle => 'Bibliotheek';
@override String get scanLibraryFiles => 'Scan bibliotheek bestanden';
@override String get scanLibrary => 'Scan bibliotheek';
@override String get analyze => 'Analyseren';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvNl extends TranslationsLiveTvEn {
@override String get noChannels => 'Geen zenders beschikbaar';
@override String get noDvr => 'Geen DVR geconfigureerd op een server';
@override String get noPrograms => 'Geen programmagegevens beschikbaar';
@override String get liveStreamFailed => 'Livestream mislukt';
@override String get unknownProgram => 'Onbekend programma';
@override String get unknownHub => 'Onbekend';
@override String get unknownError => 'Onbekende fout';
@override String channelNumber({required Object number}) => 'Kanaal ${number}';
@override String get unknownChannel => 'Onbekend kanaal';
@override String get live => 'LIVE';
@override String get reloadGuide => 'Gids herladen';
@override String get now => 'Nu';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsNl extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Download verwijderen';
@override String get retryDownload => 'Download opnieuw proberen';
@override String get downloadQueued => 'Download in wachtrij';
@override String get downloadResumed => 'Download hervat';
@override String get serverErrorBitrate => 'Serverfout: bestand overschrijdt mogelijk de externe bitrate-limiet';
@override String episodesQueued({required Object count}) => '${count} afleveringen in wachtrij voor download';
@override String get downloadDeleted => 'Download verwijderd';
@override String deleteConfirm({required Object title}) => '"${title}" van dit apparaat verwijderen?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Verwijderen van ${title}... (${current} van ${total})';
@override String get cancelledDownloadTitle => 'Geannuleerde download';
@override String get cancelledDownloadMessage => 'Deze download is geannuleerd. Wat wil je doen?';
@override String get allEpisodesAlreadyDownloaded => 'Alle afleveringen zijn al gedownload';
@override String get resumeDownload => 'Download hervatten';
@override String get cancelledDownload => 'Geannuleerde download';
@override String syncingFile({required Object file, required Object status}) => '${file} (${status} synchroniseren)';
@override String downloadedFileClickToComplete({required Object file}) => '${file} gedownload — klik om te voltooien';
@override String get partialDownloadClickToComplete => 'Gedeeltelijk gedownload — klik om te voltooien';
@override String get deleting => 'Verwijderen...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Verwijderen van ${title}... (${current} van ${total})';
@override String get queuedTooltip => 'In wachtrij';
@override String queuedFilesTooltip({required Object files}) => 'In wachtrij: ${files}';
@override String get downloadingTooltip => 'Downloaden...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteNl extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Afstandsbediening';
@override String connectedTo({required Object name}) => 'Verbonden met ${name}';
@override String get unknownDevice => 'Onbekend apparaat';
@override late final _TranslationsCompanionRemoteSessionNl session = _TranslationsCompanionRemoteSessionNl._(_root);
@override late final _TranslationsCompanionRemotePairingNl pairing = _TranslationsCompanionRemotePairingNl._(_root);
@override late final _TranslationsCompanionRemoteRemoteNl remote = _TranslationsCompanionRemoteRemoteNl._(_root);
@override late final _TranslationsCompanionRemoteErrorsNl errors = _TranslationsCompanionRemoteErrorsNl._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsNl extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Volume normaliseren';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayNl extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayNl._(TranslationsNl root) : this._root = root, super.internal(root);
final TranslationsNl _root; // ignore: unused_field
// Translations
@override String get color => 'Kleur';
@override String get performance => 'Prestaties';
@override String get buffer => 'Buffer';
@override String get app => 'App';
@override String get decoder => 'Decoder';
@override String get rawDecoder => 'Raw decoder';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Verhouding';
@override String get rotation => 'Rotatie';
@override String get dvSource => 'DV-bron';
@override String get dvPath => 'DV-pad';
@override String get p7Conversion => 'P7-conv.';
@override String get sampleRate => 'Samplefrequentie';
@override String get pixelFormat => 'Pixelformaat';
@override String get hwFormat => 'HW-formaat';
@override String get matrix => 'Matrix';
@override String get primaries => 'Primaire kleuren';
@override String get transfer => 'Transfer';
@override String get renderFps => 'Render-FPS';
@override String get displayFps => 'Scherm-FPS';
@override String get avSync => 'A/V-sync';
@override String get dropped => 'Gedropt';
@override String get dvRpus => 'DV RPUs';
@override String get dvRpuAverage => 'DV RPU gem.';
@override String get dvSampleAverage => 'DV-sample gem.';
@override String get maxLuma => 'Max luma';
@override String get minLuma => 'Min luma';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache gebruikt';
@override String get speed => 'Snelheid';
@override String get player => 'Speler';
@override String get memory => 'Geheugen';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerNl extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerNl._(TranslationsNl root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerNl extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Systeemstandaard';
@override String get addCustomPlayer => 'Aangepaste speler toevoegen';
@override String get playerName => 'Spelernaam';
@override String get playerNameHint => 'Mijn speler';
@override String get playerCommand => 'Commando';
@override String get playerPackage => 'Pakketnaam';
@override String get playerUrlScheme => 'URL-schema';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteNl extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Zoeken op desktop...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsNl extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsNl._(TranslationsNl root) : this._root = root, super.internal(root);
final TranslationsNl _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Geen netwerkinterface gevonden';
@override String get authenticationFailed => 'Authenticatie mislukt';
@override String get joinTimedOut => 'Time-out bij deelnemen aan sessie';
@override String get failedToConnectAnyAddress => 'Kan met geen enkel adres verbinden';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Verbinding verloren na ${attempts} pogingen';
@override String get connectionLost => 'Verbinding verloren';
}
// Path: trackers.services
class _TranslationsTrackersServicesNl extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesNl._(TranslationsNl root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsNl {
'common.settings' => 'Opties',
'common.mute' => 'Dempen',
'common.ok' => 'OK',
'common.off' => 'Uit',
'common.seasonNumber' => ({required Object number}) => 'Seizoen ${number}',
'common.chapterNumber' => ({required Object number}) => 'Hoofdstuk ${number}',
'common.reconnect' => 'Opnieuw verbinden',
'common.exit' => 'Afsluiten',
'common.viewAll' => 'Alles weergeven',
@@ -2070,6 +2167,10 @@ extension on TranslationsNl {
'settings.dvConversionNative' => 'Native / uitgeschakeld',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Gebruik apparaatdetectie en normaal fallbackgedrag',
'settings.dvConversionNativeDescription' => 'Forceer native DV7 en onderdruk DV-conversie opnieuw proberen',
'settings.dvConversionDv81Description' => 'Forceer inline RPU-conversie naar Dolby Vision-profiel 8.1',
'settings.dvConversionHevcStripDescription' => 'Strip Dolby Vision RPU/EL-lagen en presenteer gewone HEVC',
'settings.requireProfileSelectionOnOpen' => 'Vraag om profiel bij openen',
'settings.requireProfileSelectionOnOpenDescription' => 'Toon profielselectie telkens wanneer de app wordt geopend',
'settings.forceTvMode' => 'TV-modus forceren',
@@ -2099,6 +2200,8 @@ extension on TranslationsNl {
'search.enterTitleActorOrKeyword' => 'Voer een titel, acteur of trefwoord in',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Stel sneltoets in voor ${actionName}',
'hotkeys.clearShortcut' => 'Wis sneltoets',
'hotkeys.noShortcutSet' => 'Geen sneltoets ingesteld',
'hotkeys.currentShortcut' => 'Huidige sneltoets:',
'hotkeys.actions.playPause' => 'Afspelen/Pauzeren',
'hotkeys.actions.volumeUp' => 'Volume omhoog',
'hotkeys.actions.volumeDown' => 'Volume omlaag',
@@ -2155,6 +2258,7 @@ extension on TranslationsNl {
'mediaMenu.goToSeries' => 'Ga naar serie',
'mediaMenu.goToSeason' => 'Ga naar seizoen',
'mediaMenu.shufflePlay' => 'Willekeurig afspelen',
'mediaMenu.shuffleNotAvailableOffline' => 'Shuffle is offline niet beschikbaar',
'mediaMenu.fileInfo' => 'Bestand info',
'mediaMenu.deleteFromServer' => 'Verwijderen van server',
'mediaMenu.confirmDelete' => 'Deze media en bestanden van je server verwijderen?',
@@ -2263,6 +2367,10 @@ extension on TranslationsNl {
'videoControls.searchSubtitles' => 'Ondertitels zoeken',
'videoControls.language' => 'Taal',
'videoControls.noSubtitlesFound' => 'Geen ondertitels gevonden',
'videoControls.downloadedSubtitle' => 'Gedownload',
'videoControls.noSubtitlesAvailable' => 'Geen ondertitels beschikbaar',
'videoControls.noAudioTracksAvailable' => 'Geen audiotracks beschikbaar',
'videoControls.noTracksAvailable' => 'Geen tracks beschikbaar',
'videoControls.subtitleDownloaded' => 'Ondertitel gedownload',
'videoControls.subtitleDownloadFailed' => 'Ondertitel downloaden mislukt',
'videoControls.searchLanguages' => 'Talen zoeken...',
@@ -2321,6 +2429,8 @@ extension on TranslationsNl {
'subtitlingStyling.borderColor' => 'Randkleur',
'subtitlingStyling.backgroundOpacity' => 'Achtergrond transparantie',
'subtitlingStyling.backgroundColor' => 'Achtergrondkleur',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Positie',
'subtitlingStyling.assOverride' => 'ASS-overschrijving',
'subtitlingStyling.bold' => 'Vet',
@@ -2335,8 +2445,6 @@ extension on TranslationsNl {
'mpvConfig.loadPreset' => 'Laden',
'mpvConfig.deletePreset' => 'Verwijderen',
'mpvConfig.presetSaved' => 'Voorinstelling opgeslagen',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Voorinstelling geladen',
'mpvConfig.presetDeleted' => 'Voorinstelling verwijderd',
'mpvConfig.confirmDeletePreset' => 'Weet je zeker dat je deze voorinstelling wilt verwijderen?',
@@ -2399,6 +2507,7 @@ extension on TranslationsNl {
'profiles.pinExplain' => '4-cijferige PIN vereist om profielen te wisselen.',
'profiles.continueButton' => 'Doorgaan',
'profiles.pinsDontMatch' => 'PIN-codes komen niet overeen',
'profiles.initializeServicesFailed' => 'Kan profielservices niet initialiseren',
'connections.sectionTitle' => 'Verbindingen',
'connections.addConnection' => 'Verbinding toevoegen',
'connections.addConnectionSubtitleNoProfile' => 'Meld je aan met Plex of verbind een Jellyfin-server',
@@ -2427,6 +2536,7 @@ extension on TranslationsNl {
'discover.movie' => 'Film',
'discover.tvShow' => 'TV Serie',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min over',
'discover.moreLikeThis' => 'Meer zoals dit',
'errors.searchFailed' => ({required Object error}) => 'Zoeken mislukt: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Verbinding time-out tijdens laden ${context}',
'errors.connectionFailed' => 'Kan geen verbinding maken met mediaserver',
@@ -2441,6 +2551,7 @@ extension on TranslationsNl {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Kon ${displayName} niet verwijderen',
'errors.failedToRate' => 'Beoordeling kon niet worden bijgewerkt',
'libraries.title' => 'Bibliotheken',
'libraries.fallbackTitle' => 'Bibliotheek',
'libraries.scanLibraryFiles' => 'Scan bibliotheek bestanden',
'libraries.scanLibrary' => 'Scan bibliotheek',
'libraries.analyze' => 'Analyseren',
@@ -2541,6 +2652,12 @@ extension on TranslationsNl {
'liveTv.noChannels' => 'Geen zenders beschikbaar',
'liveTv.noDvr' => 'Geen DVR geconfigureerd op een server',
'liveTv.noPrograms' => 'Geen programmagegevens beschikbaar',
'liveTv.liveStreamFailed' => 'Livestream mislukt',
'liveTv.unknownProgram' => 'Onbekend programma',
'liveTv.unknownHub' => 'Onbekend',
'liveTv.unknownError' => 'Onbekende fout',
'liveTv.channelNumber' => ({required Object number}) => 'Kanaal ${number}',
'liveTv.unknownChannel' => 'Onbekend kanaal',
'liveTv.live' => 'LIVE',
'liveTv.reloadGuide' => 'Gids herladen',
'liveTv.now' => 'Nu',
@@ -2711,12 +2828,21 @@ extension on TranslationsNl {
'downloads.deleteDownload' => 'Download verwijderen',
'downloads.retryDownload' => 'Download opnieuw proberen',
'downloads.downloadQueued' => 'Download in wachtrij',
'downloads.downloadResumed' => 'Download hervat',
'downloads.serverErrorBitrate' => 'Serverfout: bestand overschrijdt mogelijk de externe bitrate-limiet',
'downloads.episodesQueued' => ({required Object count}) => '${count} afleveringen in wachtrij voor download',
'downloads.downloadDeleted' => 'Download verwijderd',
'downloads.deleteConfirm' => ({required Object title}) => '"${title}" van dit apparaat verwijderen?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Verwijderen van ${title}... (${current} van ${total})',
'downloads.cancelledDownloadTitle' => 'Geannuleerde download',
'downloads.cancelledDownloadMessage' => 'Deze download is geannuleerd. Wat wil je doen?',
'downloads.allEpisodesAlreadyDownloaded' => 'Alle afleveringen zijn al gedownload',
'downloads.resumeDownload' => 'Download hervatten',
'downloads.cancelledDownload' => 'Geannuleerde download',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} synchroniseren)',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} gedownload — klik om te voltooien',
'downloads.partialDownloadClickToComplete' => 'Gedeeltelijk gedownload — klik om te voltooien',
'downloads.deleting' => 'Verwijderen...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Verwijderen van ${title}... (${current} van ${total})',
'downloads.queuedTooltip' => 'In wachtrij',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'In wachtrij: ${files}',
'downloads.downloadingTooltip' => 'Downloaden...',
@@ -2773,6 +2899,7 @@ extension on TranslationsNl {
'shaders.deleteShaderConfirm' => ({required Object name}) => '"${name}" verwijderen?',
'companionRemote.title' => 'Afstandsbediening',
'companionRemote.connectedTo' => ({required Object name}) => 'Verbonden met ${name}',
'companionRemote.unknownDevice' => 'Onbekend apparaat',
'companionRemote.session.startingServer' => 'Externe server starten...',
'companionRemote.session.failedToCreate' => 'Kan externe server niet starten:',
'companionRemote.session.hostAddress' => 'Hostadres',
@@ -2816,6 +2943,8 @@ extension on TranslationsNl {
'companionRemote.remote.tabSettings' => 'Instellingen',
'companionRemote.remote.previous' => 'Vorige',
'companionRemote.remote.playPause' => 'Afspelen/Pauzeren',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Volgende',
'companionRemote.remote.seekBack' => 'Terugspoelen',
'companionRemote.remote.stop' => 'Stoppen',
@@ -2827,6 +2956,12 @@ extension on TranslationsNl {
'companionRemote.remote.subtitles' => 'Ondertitels',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Zoeken op desktop...',
'companionRemote.errors.noNetworkInterface' => 'Geen netwerkinterface gevonden',
'companionRemote.errors.authenticationFailed' => 'Authenticatie mislukt',
'companionRemote.errors.joinTimedOut' => 'Time-out bij deelnemen aan sessie',
'companionRemote.errors.failedToConnectAnyAddress' => 'Kan met geen enkel adres verbinden',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Verbinding verloren na ${attempts} pogingen',
'companionRemote.errors.connectionLost' => 'Verbinding verloren',
'videoSettings.playbackSpeed' => 'Afspeelsnelheid',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Slaaptimer',
@@ -2837,6 +2972,40 @@ extension on TranslationsNl {
'videoSettings.performanceOverlay' => 'Prestatie-overlay',
'videoSettings.audioPassthrough' => 'Audio-doorvoer',
'videoSettings.audioNormalization' => 'Volume normaliseren',
'performanceOverlay.color' => 'Kleur',
'performanceOverlay.performance' => 'Prestaties',
'performanceOverlay.buffer' => 'Buffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Decoder',
'performanceOverlay.rawDecoder' => 'Raw decoder',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Verhouding',
'performanceOverlay.rotation' => 'Rotatie',
'performanceOverlay.dvSource' => 'DV-bron',
'performanceOverlay.dvPath' => 'DV-pad',
'performanceOverlay.p7Conversion' => 'P7-conv.',
'performanceOverlay.sampleRate' => 'Samplefrequentie',
'performanceOverlay.pixelFormat' => 'Pixelformaat',
'performanceOverlay.hwFormat' => 'HW-formaat',
'performanceOverlay.matrix' => 'Matrix',
'performanceOverlay.primaries' => 'Primaire kleuren',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'Render-FPS',
'performanceOverlay.displayFps' => 'Scherm-FPS',
'performanceOverlay.avSync' => 'A/V-sync',
'performanceOverlay.dropped' => 'Gedropt',
'performanceOverlay.dvRpus' => 'DV RPUs',
'performanceOverlay.dvRpuAverage' => 'DV RPU gem.',
'performanceOverlay.dvSampleAverage' => 'DV-sample gem.',
'performanceOverlay.maxLuma' => 'Max luma',
'performanceOverlay.minLuma' => 'Min luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache gebruikt',
'performanceOverlay.speed' => 'Snelheid',
'performanceOverlay.player' => 'Speler',
'performanceOverlay.memory' => 'Geheugen',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Externe speler',
'externalPlayer.useExternalPlayer' => 'Externe speler gebruiken',
'externalPlayer.useExternalPlayerDescription' => 'Open video\'s in een andere app',
@@ -2845,12 +3014,11 @@ extension on TranslationsNl {
'externalPlayer.systemDefault' => 'Systeemstandaard',
'externalPlayer.addCustomPlayer' => 'Aangepaste speler toevoegen',
'externalPlayer.playerName' => 'Spelernaam',
'externalPlayer.playerNameHint' => 'Mijn speler',
'externalPlayer.playerCommand' => 'Commando',
'externalPlayer.playerPackage' => 'Pakketnaam',
'externalPlayer.playerUrlScheme' => 'URL-schema',
'externalPlayer.off' => 'Uit',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Kan externe speler niet openen',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} is niet geïnstalleerd',
'externalPlayer.playInExternalPlayer' => 'Afspelen in externe speler',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsPl extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersPl shaders = _TranslationsShadersPl._(_root);
@override late final _TranslationsCompanionRemotePl companionRemote = _TranslationsCompanionRemotePl._(_root);
@override late final _TranslationsVideoSettingsPl videoSettings = _TranslationsVideoSettingsPl._(_root);
@override late final _TranslationsPerformanceOverlayPl performanceOverlay = _TranslationsPerformanceOverlayPl._(_root);
@override late final _TranslationsExternalPlayerPl externalPlayer = _TranslationsExternalPlayerPl._(_root);
@override late final _TranslationsMetadataEditPl metadataEdit = _TranslationsMetadataEditPl._(_root);
@override late final _TranslationsMatchScreenPl matchScreen = _TranslationsMatchScreenPl._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonPl extends TranslationsCommonEn {
@override String get settings => 'Ustawienia';
@override String get mute => 'Wycisz';
@override String get ok => 'OK';
@override String get off => 'Wył.';
@override String seasonNumber({required Object number}) => 'Sezon ${number}';
@override String chapterNumber({required Object number}) => 'Rozdział ${number}';
@override String get reconnect => 'Połącz ponownie';
@override String get exit => 'Wyjdź';
@override String get viewAll => 'Pokaż wszystko';
@@ -385,6 +389,10 @@ class _TranslationsSettingsPl extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Natywnie / wyłączone';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Użyj wykrywania możliwości urządzenia i normalnego zachowania awaryjnego';
@override String get dvConversionNativeDescription => 'Wymuś natywne DV7 i wyłącz ponowną próbę konwersji DV';
@override String get dvConversionDv81Description => 'Wymuś wbudowaną konwersję RPU do profilu Dolby Vision 8.1';
@override String get dvConversionHevcStripDescription => 'Usuń warstwy Dolby Vision RPU/EL i przedstaw zwykłe HEVC';
@override String get requireProfileSelectionOnOpen => 'Pytaj o profil przy otwarciu aplikacji';
@override String get requireProfileSelectionOnOpenDescription => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana';
@override String get forceTvMode => 'Wymuś tryb TV';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysPl extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Ustaw skrót dla ${actionName}';
@override String get clearShortcut => 'Wyczyść skrót';
@override String get noShortcutSet => 'Brak ustawionego skrótu';
@override String get currentShortcut => 'Bieżący skrót:';
@override late final _TranslationsHotkeysActionsPl actions = _TranslationsHotkeysActionsPl._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuPl extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Przejdź do serialu';
@override String get goToSeason => 'Przejdź do sezonu';
@override String get shufflePlay => 'Odtwarzanie losowe';
@override String get shuffleNotAvailableOffline => 'Odtwarzanie losowe nie jest dostępne offline';
@override String get fileInfo => 'Informacje o pliku';
@override String get deleteFromServer => 'Usuń z serwera';
@override String get confirmDelete => 'Usunąć to medium i jego pliki z serwera?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsPl extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Szukaj napisów';
@override String get language => 'Język';
@override String get noSubtitlesFound => 'Nie znaleziono napisów';
@override String get downloadedSubtitle => 'Pobrano';
@override String get noSubtitlesAvailable => 'Brak dostępnych napisów';
@override String get noAudioTracksAvailable => 'Brak dostępnych ścieżek audio';
@override String get noTracksAvailable => 'Brak dostępnych ścieżek';
@override String get subtitleDownloaded => 'Napisy pobrane';
@override String get subtitleDownloadFailed => 'Nie udało się pobrać napisów';
@override String get searchLanguages => 'Szukaj języków...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesPl extends TranslationsProfilesEn {
@override String get pinExplain => 'Do przełączania profili wymagany jest 4-cyfrowy PIN.';
@override String get continueButton => 'Kontynuuj';
@override String get pinsDontMatch => 'PIN-y nie pasują';
@override String get initializeServicesFailed => 'Nie udało się zainicjować usług profilu';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverPl extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'Serial TV';
@override String minutesLeft({required Object minutes}) => '${minutes} min pozostało';
@override String get moreLikeThis => 'Więcej podobnych';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesPl extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Biblioteki';
@override String get fallbackTitle => 'Biblioteka';
@override String get scanLibraryFiles => 'Skanuj pliki biblioteki';
@override String get scanLibrary => 'Skanuj bibliotekę';
@override String get analyze => 'Analizuj';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvPl extends TranslationsLiveTvEn {
@override String get noChannels => 'Brak dostępnych kanałów';
@override String get noDvr => 'Brak skonfigurowanego DVR na żadnym serwerze';
@override String get noPrograms => 'Brak danych o programach';
@override String get liveStreamFailed => 'Transmisja na żywo nie powiodła się';
@override String get unknownProgram => 'Nieznany program';
@override String get unknownHub => 'Nieznane';
@override String get unknownError => 'Nieznany błąd';
@override String channelNumber({required Object number}) => 'Kanał ${number}';
@override String get unknownChannel => 'Nieznany kanał';
@override String get live => 'NA ŻYWO';
@override String get reloadGuide => 'Odśwież przewodnik';
@override String get now => 'Teraz';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsPl extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Usuń pobranie';
@override String get retryDownload => 'Ponów pobieranie';
@override String get downloadQueued => 'Pobranie w kolejce';
@override String get downloadResumed => 'Pobieranie wznowione';
@override String get serverErrorBitrate => 'Błąd serwera: plik może przekraczać zdalny limit bitrate';
@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}) => 'Usunąć "${title}" z tego urządzenia?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Usuwanie ${title}... (${current} z ${total})';
@override String get cancelledDownloadTitle => 'Anulowane pobieranie';
@override String get cancelledDownloadMessage => 'To pobieranie zostało anulowane. Co chcesz zrobić?';
@override String get allEpisodesAlreadyDownloaded => 'Wszystkie odcinki są już pobrane';
@override String get resumeDownload => 'Wznów pobieranie';
@override String get cancelledDownload => 'Anulowane pobieranie';
@override String syncingFile({required Object file, required Object status}) => '${file} (synchronizowanie ${status})';
@override String downloadedFileClickToComplete({required Object file}) => 'Pobrano ${file} — kliknij, aby dokończyć';
@override String get partialDownloadClickToComplete => 'Pobrano częściowo — kliknij, aby dokończyć';
@override String get deleting => 'Usuwanie...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Usuwanie ${title}... (${current} z ${total})';
@override String get queuedTooltip => 'W kolejce';
@override String queuedFilesTooltip({required Object files}) => 'W kolejce: ${files}';
@override String get downloadingTooltip => 'Pobieranie...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemotePl extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Pilot zdalny';
@override String connectedTo({required Object name}) => 'Połączono z ${name}';
@override String get unknownDevice => 'Nieznane urządzenie';
@override late final _TranslationsCompanionRemoteSessionPl session = _TranslationsCompanionRemoteSessionPl._(_root);
@override late final _TranslationsCompanionRemotePairingPl pairing = _TranslationsCompanionRemotePairingPl._(_root);
@override late final _TranslationsCompanionRemoteRemotePl remote = _TranslationsCompanionRemoteRemotePl._(_root);
@override late final _TranslationsCompanionRemoteErrorsPl errors = _TranslationsCompanionRemoteErrorsPl._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsPl extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normalizacja głośności';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayPl extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayPl._(TranslationsPl root) : this._root = root, super.internal(root);
final TranslationsPl _root; // ignore: unused_field
// Translations
@override String get color => 'Kolor';
@override String get performance => 'Wydajność';
@override String get buffer => 'Bufor';
@override String get app => 'Aplikacja';
@override String get decoder => 'Dekoder';
@override String get rawDecoder => 'Surowy dekoder';
@override String get tunneling => 'Tunelowanie';
@override String get aspect => 'Proporcje';
@override String get rotation => 'Obrót';
@override String get dvSource => 'Źródło DV';
@override String get dvPath => 'Ścieżka DV';
@override String get p7Conversion => 'Konw. P7';
@override String get sampleRate => 'Częstotliwość próbkowania';
@override String get pixelFormat => 'Format pikseli';
@override String get hwFormat => 'Format HW';
@override String get matrix => 'Macierz';
@override String get primaries => 'Barwy podstawowe';
@override String get transfer => 'Transfer';
@override String get renderFps => 'FPS renderowania';
@override String get displayFps => 'FPS ekranu';
@override String get avSync => 'Sync A/V';
@override String get dropped => 'Porzucone';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'Śr. DV RPU';
@override String get dvSampleAverage => 'Śr. próbki DV';
@override String get maxLuma => 'Maks. luma';
@override String get minLuma => 'Min. luma';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Użyty cache';
@override String get speed => 'Szybkość';
@override String get player => 'Odtwarzacz';
@override String get memory => 'Pamięć';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerPl extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerPl._(TranslationsPl root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerPl extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Domyślny systemowy';
@override String get addCustomPlayer => 'Dodaj niestandardowy odtwarzacz';
@override String get playerName => 'Nazwa odtwarzacza';
@override String get playerNameHint => 'Mój odtwarzacz';
@override String get playerCommand => 'Polecenie';
@override String get playerPackage => 'Nazwa pakietu';
@override String get playerUrlScheme => 'Schemat URL';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemotePl extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Szukaj na komputerze...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsPl extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsPl._(TranslationsPl root) : this._root = root, super.internal(root);
final TranslationsPl _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Nie znaleziono interfejsu sieciowego';
@override String get authenticationFailed => 'Uwierzytelnianie nie powiodło się';
@override String get joinTimedOut => 'Upłynął limit czasu dołączania do sesji';
@override String get failedToConnectAnyAddress => 'Nie udało się połączyć z żadnym adresem';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Połączenie utracone po ${attempts} próbach';
@override String get connectionLost => 'Połączenie utracone';
}
// Path: trackers.services
class _TranslationsTrackersServicesPl extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesPl._(TranslationsPl root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsPl {
'common.settings' => 'Ustawienia',
'common.mute' => 'Wycisz',
'common.ok' => 'OK',
'common.off' => 'Wył.',
'common.seasonNumber' => ({required Object number}) => 'Sezon ${number}',
'common.chapterNumber' => ({required Object number}) => 'Rozdział ${number}',
'common.reconnect' => 'Połącz ponownie',
'common.exit' => 'Wyjdź',
'common.viewAll' => 'Pokaż wszystko',
@@ -2070,6 +2167,10 @@ extension on TranslationsPl {
'settings.dvConversionNative' => 'Natywnie / wyłączone',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Użyj wykrywania możliwości urządzenia i normalnego zachowania awaryjnego',
'settings.dvConversionNativeDescription' => 'Wymuś natywne DV7 i wyłącz ponowną próbę konwersji DV',
'settings.dvConversionDv81Description' => 'Wymuś wbudowaną konwersję RPU do profilu Dolby Vision 8.1',
'settings.dvConversionHevcStripDescription' => 'Usuń warstwy Dolby Vision RPU/EL i przedstaw zwykłe HEVC',
'settings.requireProfileSelectionOnOpen' => 'Pytaj o profil przy otwarciu aplikacji',
'settings.requireProfileSelectionOnOpenDescription' => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana',
'settings.forceTvMode' => 'Wymuś tryb TV',
@@ -2099,6 +2200,8 @@ extension on TranslationsPl {
'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.noShortcutSet' => 'Brak ustawionego skrótu',
'hotkeys.currentShortcut' => 'Bieżący skrót:',
'hotkeys.actions.playPause' => 'Odtwórz/Pauza',
'hotkeys.actions.volumeUp' => 'Głośniej',
'hotkeys.actions.volumeDown' => 'Ciszej',
@@ -2155,6 +2258,7 @@ extension on TranslationsPl {
'mediaMenu.goToSeries' => 'Przejdź do serialu',
'mediaMenu.goToSeason' => 'Przejdź do sezonu',
'mediaMenu.shufflePlay' => 'Odtwarzanie losowe',
'mediaMenu.shuffleNotAvailableOffline' => 'Odtwarzanie losowe nie jest dostępne offline',
'mediaMenu.fileInfo' => 'Informacje o pliku',
'mediaMenu.deleteFromServer' => 'Usuń z serwera',
'mediaMenu.confirmDelete' => 'Usunąć to medium i jego pliki z serwera?',
@@ -2263,6 +2367,10 @@ extension on TranslationsPl {
'videoControls.searchSubtitles' => 'Szukaj napisów',
'videoControls.language' => 'Język',
'videoControls.noSubtitlesFound' => 'Nie znaleziono napisów',
'videoControls.downloadedSubtitle' => 'Pobrano',
'videoControls.noSubtitlesAvailable' => 'Brak dostępnych napisów',
'videoControls.noAudioTracksAvailable' => 'Brak dostępnych ścieżek audio',
'videoControls.noTracksAvailable' => 'Brak dostępnych ścieżek',
'videoControls.subtitleDownloaded' => 'Napisy pobrane',
'videoControls.subtitleDownloadFailed' => 'Nie udało się pobrać napisów',
'videoControls.searchLanguages' => 'Szukaj języków...',
@@ -2321,6 +2429,8 @@ extension on TranslationsPl {
'subtitlingStyling.borderColor' => 'Kolor obramowania',
'subtitlingStyling.backgroundOpacity' => 'Przezroczystość tła',
'subtitlingStyling.backgroundColor' => 'Kolor tła',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Pozycja',
'subtitlingStyling.assOverride' => 'Nadpisywanie ASS',
'subtitlingStyling.bold' => 'Pogrubienie',
@@ -2335,8 +2445,6 @@ extension on TranslationsPl {
'mpvConfig.loadPreset' => 'Załaduj',
'mpvConfig.deletePreset' => 'Usuń',
'mpvConfig.presetSaved' => 'Preset zapisany',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Preset załadowany',
'mpvConfig.presetDeleted' => 'Preset usunięty',
'mpvConfig.confirmDeletePreset' => 'Czy na pewno chcesz usunąć ten preset?',
@@ -2399,6 +2507,7 @@ extension on TranslationsPl {
'profiles.pinExplain' => 'Do przełączania profili wymagany jest 4-cyfrowy PIN.',
'profiles.continueButton' => 'Kontynuuj',
'profiles.pinsDontMatch' => 'PIN-y nie pasują',
'profiles.initializeServicesFailed' => 'Nie udało się zainicjować usług profilu',
'connections.sectionTitle' => 'Połączenia',
'connections.addConnection' => 'Dodaj połączenie',
'connections.addConnectionSubtitleNoProfile' => 'Zaloguj się przez Plex lub połącz serwer Jellyfin',
@@ -2427,6 +2536,7 @@ extension on TranslationsPl {
'discover.movie' => 'Film',
'discover.tvShow' => 'Serial TV',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min pozostało',
'discover.moreLikeThis' => 'Więcej podobnych',
'errors.searchFailed' => ({required Object error}) => 'Wyszukiwanie nie powiodło się: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Limit czasu połączenia przy ładowaniu ${context}',
'errors.connectionFailed' => 'Nie można połączyć się z serwerem multimediów',
@@ -2441,6 +2551,7 @@ extension on TranslationsPl {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Nie udało się usunąć ${displayName}',
'errors.failedToRate' => 'Nie udało się zaktualizować oceny',
'libraries.title' => 'Biblioteki',
'libraries.fallbackTitle' => 'Biblioteka',
'libraries.scanLibraryFiles' => 'Skanuj pliki biblioteki',
'libraries.scanLibrary' => 'Skanuj bibliotekę',
'libraries.analyze' => 'Analizuj',
@@ -2541,6 +2652,12 @@ extension on TranslationsPl {
'liveTv.noChannels' => 'Brak dostępnych kanałów',
'liveTv.noDvr' => 'Brak skonfigurowanego DVR na żadnym serwerze',
'liveTv.noPrograms' => 'Brak danych o programach',
'liveTv.liveStreamFailed' => 'Transmisja na żywo nie powiodła się',
'liveTv.unknownProgram' => 'Nieznany program',
'liveTv.unknownHub' => 'Nieznane',
'liveTv.unknownError' => 'Nieznany błąd',
'liveTv.channelNumber' => ({required Object number}) => 'Kanał ${number}',
'liveTv.unknownChannel' => 'Nieznany kanał',
'liveTv.live' => 'NA ŻYWO',
'liveTv.reloadGuide' => 'Odśwież przewodnik',
'liveTv.now' => 'Teraz',
@@ -2711,12 +2828,21 @@ extension on TranslationsPl {
'downloads.deleteDownload' => 'Usuń pobranie',
'downloads.retryDownload' => 'Ponów pobieranie',
'downloads.downloadQueued' => 'Pobranie w kolejce',
'downloads.downloadResumed' => 'Pobieranie wznowione',
'downloads.serverErrorBitrate' => 'Błąd serwera: plik może przekraczać zdalny limit bitrate',
'downloads.episodesQueued' => ({required Object count}) => '${count} odcinków w kolejce pobierania',
'downloads.downloadDeleted' => 'Pobranie usunięte',
'downloads.deleteConfirm' => ({required Object title}) => 'Usunąć "${title}" z tego urządzenia?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Usuwanie ${title}... (${current} z ${total})',
'downloads.cancelledDownloadTitle' => 'Anulowane pobieranie',
'downloads.cancelledDownloadMessage' => 'To pobieranie zostało anulowane. Co chcesz zrobić?',
'downloads.allEpisodesAlreadyDownloaded' => 'Wszystkie odcinki są już pobrane',
'downloads.resumeDownload' => 'Wznów pobieranie',
'downloads.cancelledDownload' => 'Anulowane pobieranie',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synchronizowanie ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Pobrano ${file} — kliknij, aby dokończyć',
'downloads.partialDownloadClickToComplete' => 'Pobrano częściowo — kliknij, aby dokończyć',
'downloads.deleting' => 'Usuwanie...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Usuwanie ${title}... (${current} z ${total})',
'downloads.queuedTooltip' => 'W kolejce',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'W kolejce: ${files}',
'downloads.downloadingTooltip' => 'Pobieranie...',
@@ -2773,6 +2899,7 @@ extension on TranslationsPl {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Usunąć "${name}"?',
'companionRemote.title' => 'Pilot zdalny',
'companionRemote.connectedTo' => ({required Object name}) => 'Połączono z ${name}',
'companionRemote.unknownDevice' => 'Nieznane urządzenie',
'companionRemote.session.startingServer' => 'Uruchamianie serwera zdalnego...',
'companionRemote.session.failedToCreate' => 'Nie udało się uruchomić serwera zdalnego:',
'companionRemote.session.hostAddress' => 'Adres hosta',
@@ -2816,6 +2943,8 @@ extension on TranslationsPl {
'companionRemote.remote.tabSettings' => 'Ustawienia',
'companionRemote.remote.previous' => 'Poprzedni',
'companionRemote.remote.playPause' => 'Odtwórz/Pauza',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Następny',
'companionRemote.remote.seekBack' => 'Przewiń wstecz',
'companionRemote.remote.stop' => 'Stop',
@@ -2827,6 +2956,12 @@ extension on TranslationsPl {
'companionRemote.remote.subtitles' => 'Napisy',
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Szukaj na komputerze...',
'companionRemote.errors.noNetworkInterface' => 'Nie znaleziono interfejsu sieciowego',
'companionRemote.errors.authenticationFailed' => 'Uwierzytelnianie nie powiodło się',
'companionRemote.errors.joinTimedOut' => 'Upłynął limit czasu dołączania do sesji',
'companionRemote.errors.failedToConnectAnyAddress' => 'Nie udało się połączyć z żadnym adresem',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Połączenie utracone po ${attempts} próbach',
'companionRemote.errors.connectionLost' => 'Połączenie utracone',
'videoSettings.playbackSpeed' => 'Prędkość odtwarzania',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Wyłącznik czasowy',
@@ -2837,6 +2972,40 @@ extension on TranslationsPl {
'videoSettings.performanceOverlay' => 'Nakładka wydajności',
'videoSettings.audioPassthrough' => 'Bezpośrednie audio',
'videoSettings.audioNormalization' => 'Normalizacja głośności',
'performanceOverlay.color' => 'Kolor',
'performanceOverlay.performance' => 'Wydajność',
'performanceOverlay.buffer' => 'Bufor',
'performanceOverlay.app' => 'Aplikacja',
'performanceOverlay.decoder' => 'Dekoder',
'performanceOverlay.rawDecoder' => 'Surowy dekoder',
'performanceOverlay.tunneling' => 'Tunelowanie',
'performanceOverlay.aspect' => 'Proporcje',
'performanceOverlay.rotation' => 'Obrót',
'performanceOverlay.dvSource' => 'Źródło DV',
'performanceOverlay.dvPath' => 'Ścieżka DV',
'performanceOverlay.p7Conversion' => 'Konw. P7',
'performanceOverlay.sampleRate' => 'Częstotliwość próbkowania',
'performanceOverlay.pixelFormat' => 'Format pikseli',
'performanceOverlay.hwFormat' => 'Format HW',
'performanceOverlay.matrix' => 'Macierz',
'performanceOverlay.primaries' => 'Barwy podstawowe',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'FPS renderowania',
'performanceOverlay.displayFps' => 'FPS ekranu',
'performanceOverlay.avSync' => 'Sync A/V',
'performanceOverlay.dropped' => 'Porzucone',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'Śr. DV RPU',
'performanceOverlay.dvSampleAverage' => 'Śr. próbki DV',
'performanceOverlay.maxLuma' => 'Maks. luma',
'performanceOverlay.minLuma' => 'Min. luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Użyty cache',
'performanceOverlay.speed' => 'Szybkość',
'performanceOverlay.player' => 'Odtwarzacz',
'performanceOverlay.memory' => 'Pamięć',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Zewnętrzny odtwarzacz',
'externalPlayer.useExternalPlayer' => 'Użyj zewnętrznego odtwarzacza',
'externalPlayer.useExternalPlayerDescription' => 'Otwieraj wideo w innej aplikacji',
@@ -2845,12 +3014,11 @@ extension on TranslationsPl {
'externalPlayer.systemDefault' => 'Domyślny systemowy',
'externalPlayer.addCustomPlayer' => 'Dodaj niestandardowy odtwarzacz',
'externalPlayer.playerName' => 'Nazwa odtwarzacza',
'externalPlayer.playerNameHint' => 'Mój odtwarzacz',
'externalPlayer.playerCommand' => 'Polecenie',
'externalPlayer.playerPackage' => 'Nazwa pakietu',
'externalPlayer.playerUrlScheme' => 'Schemat URL',
'externalPlayer.off' => 'Wyłączony',
_ => null,
} ?? switch (path) {
'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',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsPt extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersPt shaders = _TranslationsShadersPt._(_root);
@override late final _TranslationsCompanionRemotePt companionRemote = _TranslationsCompanionRemotePt._(_root);
@override late final _TranslationsVideoSettingsPt videoSettings = _TranslationsVideoSettingsPt._(_root);
@override late final _TranslationsPerformanceOverlayPt performanceOverlay = _TranslationsPerformanceOverlayPt._(_root);
@override late final _TranslationsExternalPlayerPt externalPlayer = _TranslationsExternalPlayerPt._(_root);
@override late final _TranslationsMetadataEditPt metadataEdit = _TranslationsMetadataEditPt._(_root);
@override late final _TranslationsMatchScreenPt matchScreen = _TranslationsMatchScreenPt._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonPt extends TranslationsCommonEn {
@override String get settings => 'Configurações';
@override String get mute => 'Silenciar';
@override String get ok => 'OK';
@override String get off => 'Desativado';
@override String seasonNumber({required Object number}) => 'Temporada ${number}';
@override String chapterNumber({required Object number}) => 'Capítulo ${number}';
@override String get reconnect => 'Reconectar';
@override String get exit => 'Sair';
@override String get viewAll => 'Ver Tudo';
@@ -385,6 +389,10 @@ class _TranslationsSettingsPt extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Nativo / desativado';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Usar detecção de recursos do dispositivo e comportamento normal de fallback';
@override String get dvConversionNativeDescription => 'Forçar DV7 nativo e suprimir nova tentativa de conversão DV';
@override String get dvConversionDv81Description => 'Forçar conversão RPU inline para Dolby Vision perfil 8.1';
@override String get dvConversionHevcStripDescription => 'Remover camadas RPU/EL do Dolby Vision e apresentar HEVC simples';
@override String get 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 forceTvMode => 'Forçar modo TV';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysPt extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Definir Atalho para ${actionName}';
@override String get clearShortcut => 'Limpar atalho';
@override String get noShortcutSet => 'Nenhum atalho definido';
@override String get currentShortcut => 'Atalho atual:';
@override late final _TranslationsHotkeysActionsPt actions = _TranslationsHotkeysActionsPt._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuPt extends TranslationsMediaMenuEn {
@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 shuffleNotAvailableOffline => 'Reprodução aleatória indisponível offline';
@override String get fileInfo => 'Info do Arquivo';
@override String get deleteFromServer => 'Excluir do servidor';
@override String get confirmDelete => 'Excluir esta mídia e seus arquivos do servidor?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsPt extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Pesquisar legendas';
@override String get language => 'Idioma';
@override String get noSubtitlesFound => 'Nenhuma legenda encontrada';
@override String get downloadedSubtitle => 'Baixado';
@override String get noSubtitlesAvailable => 'Nenhuma legenda disponível';
@override String get noAudioTracksAvailable => 'Nenhuma faixa de áudio disponível';
@override String get noTracksAvailable => 'Nenhuma faixa disponível';
@override String get subtitleDownloaded => 'Legenda baixada';
@override String get subtitleDownloadFailed => 'Falha ao baixar legenda';
@override String get searchLanguages => 'Pesquisar idiomas...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesPt extends TranslationsProfilesEn {
@override String get pinExplain => 'PIN de 4 dígitos necessário para trocar perfis.';
@override String get continueButton => 'Continuar';
@override String get pinsDontMatch => 'Os PINs não correspondem';
@override String get initializeServicesFailed => 'Falha ao inicializar serviços de perfil';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverPt extends TranslationsDiscoverEn {
@override String get movie => 'Filme';
@override String get tvShow => 'Série de TV';
@override String minutesLeft({required Object minutes}) => '${minutes} min restantes';
@override String get moreLikeThis => 'Mais como este';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesPt extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Bibliotecas';
@override String get fallbackTitle => 'Biblioteca';
@override String get scanLibraryFiles => 'Escanear Arquivos da Biblioteca';
@override String get scanLibrary => 'Escanear Biblioteca';
@override String get analyze => 'Analisar';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvPt extends TranslationsLiveTvEn {
@override String get noChannels => 'Nenhum canal disponível';
@override String get noDvr => 'Nenhum DVR configurado em nenhum servidor';
@override String get noPrograms => 'Nenhum dado de programação disponível';
@override String get liveStreamFailed => 'Falha no stream ao vivo';
@override String get unknownProgram => 'Programa desconhecido';
@override String get unknownHub => 'Desconhecido';
@override String get unknownError => 'Erro desconhecido';
@override String channelNumber({required Object number}) => 'Canal ${number}';
@override String get unknownChannel => 'Canal desconhecido';
@override String get live => 'AO VIVO';
@override String get reloadGuide => 'Recarregar Guia';
@override String get now => 'Agora';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsPt extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Excluir download';
@override String get retryDownload => 'Tentar download novamente';
@override String get downloadQueued => 'Download na fila';
@override String get downloadResumed => 'Download retomado';
@override String get serverErrorBitrate => 'Erro do servidor: o arquivo pode exceder o limite remoto de bitrate';
@override String episodesQueued({required Object count}) => '${count} episódios na fila de download';
@override String get downloadDeleted => 'Download excluído';
@override String deleteConfirm({required Object title}) => 'Excluir "${title}" deste dispositivo?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Excluindo ${title}... (${current} de ${total})';
@override String get cancelledDownloadTitle => 'Download cancelado';
@override String get cancelledDownloadMessage => 'Este download foi cancelado. O que você deseja fazer?';
@override String get allEpisodesAlreadyDownloaded => 'Todos os episódios já foram baixados';
@override String get resumeDownload => 'Retomar download';
@override String get cancelledDownload => 'Download cancelado';
@override String syncingFile({required Object file, required Object status}) => '${file} (sincronizando ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} baixado — clique para concluir';
@override String get partialDownloadClickToComplete => 'Parcialmente baixado — clique para concluir';
@override String get deleting => 'Excluindo...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Excluindo ${title}... (${current} de ${total})';
@override String get queuedTooltip => 'Na fila';
@override String queuedFilesTooltip({required Object files}) => 'Na fila: ${files}';
@override String get downloadingTooltip => 'Baixando...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemotePt extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Controle Remoto';
@override String connectedTo({required Object name}) => 'Conectado a ${name}';
@override String get unknownDevice => 'Dispositivo desconhecido';
@override late final _TranslationsCompanionRemoteSessionPt session = _TranslationsCompanionRemoteSessionPt._(_root);
@override late final _TranslationsCompanionRemotePairingPt pairing = _TranslationsCompanionRemotePairingPt._(_root);
@override late final _TranslationsCompanionRemoteRemotePt remote = _TranslationsCompanionRemoteRemotePt._(_root);
@override late final _TranslationsCompanionRemoteErrorsPt errors = _TranslationsCompanionRemoteErrorsPt._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsPt extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normalizar Volume';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayPt extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayPt._(TranslationsPt root) : this._root = root, super.internal(root);
final TranslationsPt _root; // ignore: unused_field
// Translations
@override String get color => 'Cor';
@override String get performance => 'Desempenho';
@override String get buffer => 'Buffer';
@override String get app => 'App';
@override String get decoder => 'Decodificador';
@override String get rawDecoder => 'Decodificador bruto';
@override String get tunneling => 'Túnel';
@override String get aspect => 'Aspecto';
@override String get rotation => 'Rotação';
@override String get dvSource => 'Fonte DV';
@override String get dvPath => 'Caminho DV';
@override String get p7Conversion => 'Conv. P7';
@override String get sampleRate => 'Taxa de amostragem';
@override String get pixelFormat => 'Formato de pixel';
@override String get hwFormat => 'Formato HW';
@override String get matrix => 'Matriz';
@override String get primaries => 'Primárias';
@override String get transfer => 'Transferência';
@override String get renderFps => 'FPS render';
@override String get displayFps => 'FPS tela';
@override String get avSync => 'Sync A/V';
@override String get dropped => 'Descartados';
@override String get dvRpus => 'DV RPUs';
@override String get dvRpuAverage => 'Média DV RPU';
@override String get dvSampleAverage => 'Média amostra DV';
@override String get maxLuma => 'Luma máx.';
@override String get minLuma => 'Luma mín.';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache usado';
@override String get speed => 'Velocidade';
@override String get player => 'Player';
@override String get memory => 'Memória';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerPt extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerPt._(TranslationsPt root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerPt extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Padrão do Sistema';
@override String get addCustomPlayer => 'Adicionar Player Personalizado';
@override String get playerName => 'Nome do Player';
@override String get playerNameHint => 'Meu player';
@override String get playerCommand => 'Comando';
@override String get playerPackage => 'Nome do Pacote';
@override String get playerUrlScheme => 'Esquema de URL';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemotePt extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Buscar no desktop...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsPt extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsPt._(TranslationsPt root) : this._root = root, super.internal(root);
final TranslationsPt _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Nenhuma interface de rede encontrada';
@override String get authenticationFailed => 'Falha na autenticação';
@override String get joinTimedOut => 'Tempo esgotado ao entrar na sessão';
@override String get failedToConnectAnyAddress => 'Falha ao conectar a qualquer endereço';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Conexão perdida após ${attempts} tentativas';
@override String get connectionLost => 'Conexão perdida';
}
// Path: trackers.services
class _TranslationsTrackersServicesPt extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesPt._(TranslationsPt root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsPt {
'common.settings' => 'Configurações',
'common.mute' => 'Silenciar',
'common.ok' => 'OK',
'common.off' => 'Desativado',
'common.seasonNumber' => ({required Object number}) => 'Temporada ${number}',
'common.chapterNumber' => ({required Object number}) => 'Capítulo ${number}',
'common.reconnect' => 'Reconectar',
'common.exit' => 'Sair',
'common.viewAll' => 'Ver Tudo',
@@ -2070,6 +2167,10 @@ extension on TranslationsPt {
'settings.dvConversionNative' => 'Nativo / desativado',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Usar detecção de recursos do dispositivo e comportamento normal de fallback',
'settings.dvConversionNativeDescription' => 'Forçar DV7 nativo e suprimir nova tentativa de conversão DV',
'settings.dvConversionDv81Description' => 'Forçar conversão RPU inline para Dolby Vision perfil 8.1',
'settings.dvConversionHevcStripDescription' => 'Remover camadas RPU/EL do Dolby Vision e apresentar HEVC simples',
'settings.requireProfileSelectionOnOpen' => 'Pedir perfil ao abrir o app',
'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar seleção de perfil toda vez que o app for aberto',
'settings.forceTvMode' => 'Forçar modo TV',
@@ -2099,6 +2200,8 @@ extension on TranslationsPt {
'search.enterTitleActorOrKeyword' => 'Insira um título, ator ou palavra-chave',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Definir Atalho para ${actionName}',
'hotkeys.clearShortcut' => 'Limpar atalho',
'hotkeys.noShortcutSet' => 'Nenhum atalho definido',
'hotkeys.currentShortcut' => 'Atalho atual:',
'hotkeys.actions.playPause' => 'Reproduzir/Pausar',
'hotkeys.actions.volumeUp' => 'Aumentar Volume',
'hotkeys.actions.volumeDown' => 'Diminuir Volume',
@@ -2155,6 +2258,7 @@ extension on TranslationsPt {
'mediaMenu.goToSeries' => 'Ir para a série',
'mediaMenu.goToSeason' => 'Ir para a temporada',
'mediaMenu.shufflePlay' => 'Reprodução Aleatória',
'mediaMenu.shuffleNotAvailableOffline' => 'Reprodução aleatória indisponível offline',
'mediaMenu.fileInfo' => 'Info do Arquivo',
'mediaMenu.deleteFromServer' => 'Excluir do servidor',
'mediaMenu.confirmDelete' => 'Excluir esta mídia e seus arquivos do servidor?',
@@ -2263,6 +2367,10 @@ extension on TranslationsPt {
'videoControls.searchSubtitles' => 'Pesquisar legendas',
'videoControls.language' => 'Idioma',
'videoControls.noSubtitlesFound' => 'Nenhuma legenda encontrada',
'videoControls.downloadedSubtitle' => 'Baixado',
'videoControls.noSubtitlesAvailable' => 'Nenhuma legenda disponível',
'videoControls.noAudioTracksAvailable' => 'Nenhuma faixa de áudio disponível',
'videoControls.noTracksAvailable' => 'Nenhuma faixa disponível',
'videoControls.subtitleDownloaded' => 'Legenda baixada',
'videoControls.subtitleDownloadFailed' => 'Falha ao baixar legenda',
'videoControls.searchLanguages' => 'Pesquisar idiomas...',
@@ -2321,6 +2429,8 @@ extension on TranslationsPt {
'subtitlingStyling.borderColor' => 'Cor da Borda',
'subtitlingStyling.backgroundOpacity' => 'Opacidade do Fundo',
'subtitlingStyling.backgroundColor' => 'Cor de Fundo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Posição',
'subtitlingStyling.assOverride' => 'Substituição ASS',
'subtitlingStyling.bold' => 'Negrito',
@@ -2335,8 +2445,6 @@ extension on TranslationsPt {
'mpvConfig.loadPreset' => 'Carregar',
'mpvConfig.deletePreset' => 'Excluir',
'mpvConfig.presetSaved' => 'Predefinição salva',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Predefinição carregada',
'mpvConfig.presetDeleted' => 'Predefinição excluída',
'mpvConfig.confirmDeletePreset' => 'Tem certeza que deseja excluir esta predefinição?',
@@ -2399,6 +2507,7 @@ extension on TranslationsPt {
'profiles.pinExplain' => 'PIN de 4 dígitos necessário para trocar perfis.',
'profiles.continueButton' => 'Continuar',
'profiles.pinsDontMatch' => 'Os PINs não correspondem',
'profiles.initializeServicesFailed' => 'Falha ao inicializar serviços de perfil',
'connections.sectionTitle' => 'Conexões',
'connections.addConnection' => 'Adicionar conexão',
'connections.addConnectionSubtitleNoProfile' => 'Faça login com Plex ou conecte um servidor Jellyfin',
@@ -2427,6 +2536,7 @@ extension on TranslationsPt {
'discover.movie' => 'Filme',
'discover.tvShow' => 'Série de TV',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes',
'discover.moreLikeThis' => 'Mais como este',
'errors.searchFailed' => ({required Object error}) => 'Falha na busca: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Tempo de conexão esgotado ao carregar ${context}',
'errors.connectionFailed' => 'Não foi possível conectar ao servidor de mídia',
@@ -2441,6 +2551,7 @@ extension on TranslationsPt {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Falha ao excluir ${displayName}',
'errors.failedToRate' => 'Não foi possível atualizar a classificação',
'libraries.title' => 'Bibliotecas',
'libraries.fallbackTitle' => 'Biblioteca',
'libraries.scanLibraryFiles' => 'Escanear Arquivos da Biblioteca',
'libraries.scanLibrary' => 'Escanear Biblioteca',
'libraries.analyze' => 'Analisar',
@@ -2541,6 +2652,12 @@ extension on TranslationsPt {
'liveTv.noChannels' => 'Nenhum canal disponível',
'liveTv.noDvr' => 'Nenhum DVR configurado em nenhum servidor',
'liveTv.noPrograms' => 'Nenhum dado de programação disponível',
'liveTv.liveStreamFailed' => 'Falha no stream ao vivo',
'liveTv.unknownProgram' => 'Programa desconhecido',
'liveTv.unknownHub' => 'Desconhecido',
'liveTv.unknownError' => 'Erro desconhecido',
'liveTv.channelNumber' => ({required Object number}) => 'Canal ${number}',
'liveTv.unknownChannel' => 'Canal desconhecido',
'liveTv.live' => 'AO VIVO',
'liveTv.reloadGuide' => 'Recarregar Guia',
'liveTv.now' => 'Agora',
@@ -2711,12 +2828,21 @@ extension on TranslationsPt {
'downloads.deleteDownload' => 'Excluir download',
'downloads.retryDownload' => 'Tentar download novamente',
'downloads.downloadQueued' => 'Download na fila',
'downloads.downloadResumed' => 'Download retomado',
'downloads.serverErrorBitrate' => 'Erro do servidor: o arquivo pode exceder o limite remoto de bitrate',
'downloads.episodesQueued' => ({required Object count}) => '${count} episódios na fila de download',
'downloads.downloadDeleted' => 'Download excluído',
'downloads.deleteConfirm' => ({required Object title}) => 'Excluir "${title}" deste dispositivo?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Excluindo ${title}... (${current} de ${total})',
'downloads.cancelledDownloadTitle' => 'Download cancelado',
'downloads.cancelledDownloadMessage' => 'Este download foi cancelado. O que você deseja fazer?',
'downloads.allEpisodesAlreadyDownloaded' => 'Todos os episódios já foram baixados',
'downloads.resumeDownload' => 'Retomar download',
'downloads.cancelledDownload' => 'Download cancelado',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizando ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} baixado — clique para concluir',
'downloads.partialDownloadClickToComplete' => 'Parcialmente baixado — clique para concluir',
'downloads.deleting' => 'Excluindo...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Excluindo ${title}... (${current} de ${total})',
'downloads.queuedTooltip' => 'Na fila',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'Na fila: ${files}',
'downloads.downloadingTooltip' => 'Baixando...',
@@ -2773,6 +2899,7 @@ extension on TranslationsPt {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Excluir "${name}"?',
'companionRemote.title' => 'Controle Remoto',
'companionRemote.connectedTo' => ({required Object name}) => 'Conectado a ${name}',
'companionRemote.unknownDevice' => 'Dispositivo desconhecido',
'companionRemote.session.startingServer' => 'A iniciar servidor remoto...',
'companionRemote.session.failedToCreate' => 'Falha ao iniciar o servidor remoto:',
'companionRemote.session.hostAddress' => 'Endereço do host',
@@ -2816,6 +2943,8 @@ extension on TranslationsPt {
'companionRemote.remote.tabSettings' => 'Configurações',
'companionRemote.remote.previous' => 'Anterior',
'companionRemote.remote.playPause' => 'Reproduzir/Pausar',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Próximo',
'companionRemote.remote.seekBack' => 'Retroceder',
'companionRemote.remote.stop' => 'Parar',
@@ -2827,6 +2956,12 @@ extension on TranslationsPt {
'companionRemote.remote.subtitles' => 'Legendas',
'companionRemote.remote.audio' => 'Áudio',
'companionRemote.remote.searchHint' => 'Buscar no desktop...',
'companionRemote.errors.noNetworkInterface' => 'Nenhuma interface de rede encontrada',
'companionRemote.errors.authenticationFailed' => 'Falha na autenticação',
'companionRemote.errors.joinTimedOut' => 'Tempo esgotado ao entrar na sessão',
'companionRemote.errors.failedToConnectAnyAddress' => 'Falha ao conectar a qualquer endereço',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Conexão perdida após ${attempts} tentativas',
'companionRemote.errors.connectionLost' => 'Conexão perdida',
'videoSettings.playbackSpeed' => 'Velocidade de Reprodução',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Timer de Sono',
@@ -2837,6 +2972,40 @@ extension on TranslationsPt {
'videoSettings.performanceOverlay' => 'Overlay de Desempenho',
'videoSettings.audioPassthrough' => 'Passagem de Áudio',
'videoSettings.audioNormalization' => 'Normalizar Volume',
'performanceOverlay.color' => 'Cor',
'performanceOverlay.performance' => 'Desempenho',
'performanceOverlay.buffer' => 'Buffer',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Decodificador',
'performanceOverlay.rawDecoder' => 'Decodificador bruto',
'performanceOverlay.tunneling' => 'Túnel',
'performanceOverlay.aspect' => 'Aspecto',
'performanceOverlay.rotation' => 'Rotação',
'performanceOverlay.dvSource' => 'Fonte DV',
'performanceOverlay.dvPath' => 'Caminho DV',
'performanceOverlay.p7Conversion' => 'Conv. P7',
'performanceOverlay.sampleRate' => 'Taxa de amostragem',
'performanceOverlay.pixelFormat' => 'Formato de pixel',
'performanceOverlay.hwFormat' => 'Formato HW',
'performanceOverlay.matrix' => 'Matriz',
'performanceOverlay.primaries' => 'Primárias',
'performanceOverlay.transfer' => 'Transferência',
'performanceOverlay.renderFps' => 'FPS render',
'performanceOverlay.displayFps' => 'FPS tela',
'performanceOverlay.avSync' => 'Sync A/V',
'performanceOverlay.dropped' => 'Descartados',
'performanceOverlay.dvRpus' => 'DV RPUs',
'performanceOverlay.dvRpuAverage' => 'Média DV RPU',
'performanceOverlay.dvSampleAverage' => 'Média amostra DV',
'performanceOverlay.maxLuma' => 'Luma máx.',
'performanceOverlay.minLuma' => 'Luma mín.',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache usado',
'performanceOverlay.speed' => 'Velocidade',
'performanceOverlay.player' => 'Player',
'performanceOverlay.memory' => 'Memória',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Player Externo',
'externalPlayer.useExternalPlayer' => 'Usar Player Externo',
'externalPlayer.useExternalPlayerDescription' => 'Abrir vídeos em outro app',
@@ -2845,12 +3014,11 @@ extension on TranslationsPt {
'externalPlayer.systemDefault' => 'Padrão do Sistema',
'externalPlayer.addCustomPlayer' => 'Adicionar Player Personalizado',
'externalPlayer.playerName' => 'Nome do Player',
'externalPlayer.playerNameHint' => 'Meu player',
'externalPlayer.playerCommand' => 'Comando',
'externalPlayer.playerPackage' => 'Nome do Pacote',
'externalPlayer.playerUrlScheme' => 'Esquema de URL',
'externalPlayer.off' => 'Desativado',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Falha ao abrir player externo',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} não está instalado',
'externalPlayer.playInExternalPlayer' => 'Reproduzir no Player Externo',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsRu extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersRu shaders = _TranslationsShadersRu._(_root);
@override late final _TranslationsCompanionRemoteRu companionRemote = _TranslationsCompanionRemoteRu._(_root);
@override late final _TranslationsVideoSettingsRu videoSettings = _TranslationsVideoSettingsRu._(_root);
@override late final _TranslationsPerformanceOverlayRu performanceOverlay = _TranslationsPerformanceOverlayRu._(_root);
@override late final _TranslationsExternalPlayerRu externalPlayer = _TranslationsExternalPlayerRu._(_root);
@override late final _TranslationsMetadataEditRu metadataEdit = _TranslationsMetadataEditRu._(_root);
@override late final _TranslationsMatchScreenRu matchScreen = _TranslationsMatchScreenRu._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonRu extends TranslationsCommonEn {
@override String get settings => 'Настройки';
@override String get mute => 'Без звука';
@override String get ok => 'OK';
@override String get off => 'Выкл.';
@override String seasonNumber({required Object number}) => 'Сезон ${number}';
@override String chapterNumber({required Object number}) => 'Глава ${number}';
@override String get reconnect => 'Переподключить';
@override String get exit => 'Выход';
@override String get viewAll => 'Показать все';
@@ -385,6 +389,10 @@ class _TranslationsSettingsRu extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Нативно / отключено';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Использовать определение возможностей устройства и обычное резервное поведение';
@override String get dvConversionNativeDescription => 'Принудительно использовать нативный DV7 и не повторять DV-конвертацию';
@override String get dvConversionDv81Description => 'Принудительно выполнять inline-конвертацию RPU в Dolby Vision профиль 8.1';
@override String get dvConversionHevcStripDescription => 'Удалять слои Dolby Vision RPU/EL и передавать обычный HEVC';
@override String get requireProfileSelectionOnOpen => 'Запрашивать профиль при запуске';
@override String get requireProfileSelectionOnOpenDescription => 'Показывать выбор профиля при каждом открытии приложения';
@override String get forceTvMode => 'Принудительный режим ТВ';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysRu extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Назначить клавишу для ${actionName}';
@override String get clearShortcut => 'Очистить клавишу';
@override String get noShortcutSet => 'Сочетание не задано';
@override String get currentShortcut => 'Текущее сочетание:';
@override late final _TranslationsHotkeysActionsRu actions = _TranslationsHotkeysActionsRu._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuRu extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Перейти к сериалу';
@override String get goToSeason => 'Перейти к сезону';
@override String get shufflePlay => 'Случайное воспроизведение';
@override String get shuffleNotAvailableOffline => 'Перемешивание недоступно офлайн';
@override String get fileInfo => 'Информация о файле';
@override String get deleteFromServer => 'Удалить с сервера';
@override String get confirmDelete => 'Удалить это медиа и его файлы с сервера?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsRu extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Поиск субтитров';
@override String get language => 'Язык';
@override String get noSubtitlesFound => 'Субтитры не найдены';
@override String get downloadedSubtitle => 'Загружено';
@override String get noSubtitlesAvailable => 'Нет доступных субтитров';
@override String get noAudioTracksAvailable => 'Нет доступных аудиодорожек';
@override String get noTracksAvailable => 'Нет доступных дорожек';
@override String get subtitleDownloaded => 'Субтитры загружены';
@override String get subtitleDownloadFailed => 'Не удалось загрузить субтитры';
@override String get searchLanguages => 'Поиск языков...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesRu extends TranslationsProfilesEn {
@override String get pinExplain => 'Для переключения профилей нужен 4-значный PIN.';
@override String get continueButton => 'Продолжить';
@override String get pinsDontMatch => 'PIN-коды не совпадают';
@override String get initializeServicesFailed => 'Не удалось инициализировать службы профиля';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverRu extends TranslationsDiscoverEn {
@override String get movie => 'Фильм';
@override String get tvShow => 'Сериал';
@override String minutesLeft({required Object minutes}) => 'Осталось ${minutes} мин';
@override String get moreLikeThis => 'Похожее';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesRu extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Библиотеки';
@override String get fallbackTitle => 'Библиотека';
@override String get scanLibraryFiles => 'Сканировать файлы библиотеки';
@override String get scanLibrary => 'Сканировать библиотеку';
@override String get analyze => 'Анализировать';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvRu extends TranslationsLiveTvEn {
@override String get noChannels => 'Нет доступных каналов';
@override String get noDvr => 'DVR не настроен ни на одном сервере';
@override String get noPrograms => 'Нет данных о программах';
@override String get liveStreamFailed => 'Не удалось запустить прямой эфир';
@override String get unknownProgram => 'Неизвестная программа';
@override String get unknownHub => 'Неизвестно';
@override String get unknownError => 'Неизвестная ошибка';
@override String channelNumber({required Object number}) => 'Канал ${number}';
@override String get unknownChannel => 'Неизвестный канал';
@override String get live => 'ЭФИР';
@override String get reloadGuide => 'Перезагрузить программу';
@override String get now => 'Сейчас';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsRu extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Удалить загрузку';
@override String get retryDownload => 'Повторить загрузку';
@override String get downloadQueued => 'Загрузка поставлена в очередь';
@override String get downloadResumed => 'Загрузка возобновлена';
@override String get serverErrorBitrate => 'Ошибка сервера: файл может превышать удаленный лимит bitrate';
@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 cancelledDownloadTitle => 'Загрузка отменена';
@override String get cancelledDownloadMessage => 'Эта загрузка была отменена. Что вы хотите сделать?';
@override String get allEpisodesAlreadyDownloaded => 'Все эпизоды уже загружены';
@override String get resumeDownload => 'Возобновить загрузку';
@override String get cancelledDownload => 'Загрузка отменена';
@override String syncingFile({required Object file, required Object status}) => '${file} (синхронизация ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} загружен — нажмите, чтобы завершить';
@override String get partialDownloadClickToComplete => 'Частично загружено — нажмите, чтобы завершить';
@override String get deleting => 'Удаление...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Удаление ${title}... (${current} из ${total})';
@override String get queuedTooltip => 'В очереди';
@override String queuedFilesTooltip({required Object files}) => 'В очереди: ${files}';
@override String get downloadingTooltip => 'Загрузка...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteRu extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Пульт управления';
@override String connectedTo({required Object name}) => 'Подключено к ${name}';
@override String get unknownDevice => 'Неизвестное устройство';
@override late final _TranslationsCompanionRemoteSessionRu session = _TranslationsCompanionRemoteSessionRu._(_root);
@override late final _TranslationsCompanionRemotePairingRu pairing = _TranslationsCompanionRemotePairingRu._(_root);
@override late final _TranslationsCompanionRemoteRemoteRu remote = _TranslationsCompanionRemoteRemoteRu._(_root);
@override late final _TranslationsCompanionRemoteErrorsRu errors = _TranslationsCompanionRemoteErrorsRu._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsRu extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Нормализация громкости';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayRu extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayRu._(TranslationsRu root) : this._root = root, super.internal(root);
final TranslationsRu _root; // ignore: unused_field
// Translations
@override String get color => 'Цвет';
@override String get performance => 'Производительность';
@override String get buffer => 'Буфер';
@override String get app => 'Приложение';
@override String get decoder => 'Декодер';
@override String get rawDecoder => 'Raw-декодер';
@override String get tunneling => 'Туннелирование';
@override String get aspect => 'Соотношение';
@override String get rotation => 'Поворот';
@override String get dvSource => 'Источник DV';
@override String get dvPath => 'Путь DV';
@override String get p7Conversion => 'Конв. P7';
@override String get sampleRate => 'Частота дискр.';
@override String get pixelFormat => 'Формат пикселей';
@override String get hwFormat => 'Формат HW';
@override String get matrix => 'Матрица';
@override String get primaries => 'Основные цвета';
@override String get transfer => 'Передача';
@override String get renderFps => 'FPS рендера';
@override String get displayFps => 'FPS дисплея';
@override String get avSync => 'A/V синхр.';
@override String get dropped => 'Пропущено';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'Сред. DV RPU';
@override String get dvSampleAverage => 'Сред. сэмпл DV';
@override String get maxLuma => 'Макс. яркость';
@override String get minLuma => 'Мин. яркость';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Кэш использован';
@override String get speed => 'Скорость';
@override String get player => 'Плеер';
@override String get memory => 'Память';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerRu extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerRu._(TranslationsRu root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerRu extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Системный по умолчанию';
@override String get addCustomPlayer => 'Добавить свой плеер';
@override String get playerName => 'Название плеера';
@override String get playerNameHint => 'Мой плеер';
@override String get playerCommand => 'Команда';
@override String get playerPackage => 'Имя пакета';
@override String get playerUrlScheme => 'URL-схема';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteRu extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Поиск на десктопе...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsRu extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsRu._(TranslationsRu root) : this._root = root, super.internal(root);
final TranslationsRu _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Сетевой интерфейс не найден';
@override String get authenticationFailed => 'Ошибка аутентификации';
@override String get joinTimedOut => 'Время подключения к сеансу истекло';
@override String get failedToConnectAnyAddress => 'Не удалось подключиться ни к одному адресу';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Соединение потеряно после ${attempts} попыток';
@override String get connectionLost => 'Соединение потеряно';
}
// Path: trackers.services
class _TranslationsTrackersServicesRu extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesRu._(TranslationsRu root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsRu {
'common.settings' => 'Настройки',
'common.mute' => 'Без звука',
'common.ok' => 'OK',
'common.off' => 'Выкл.',
'common.seasonNumber' => ({required Object number}) => 'Сезон ${number}',
'common.chapterNumber' => ({required Object number}) => 'Глава ${number}',
'common.reconnect' => 'Переподключить',
'common.exit' => 'Выход',
'common.viewAll' => 'Показать все',
@@ -2070,6 +2167,10 @@ extension on TranslationsRu {
'settings.dvConversionNative' => 'Нативно / отключено',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Использовать определение возможностей устройства и обычное резервное поведение',
'settings.dvConversionNativeDescription' => 'Принудительно использовать нативный DV7 и не повторять DV-конвертацию',
'settings.dvConversionDv81Description' => 'Принудительно выполнять inline-конвертацию RPU в Dolby Vision профиль 8.1',
'settings.dvConversionHevcStripDescription' => 'Удалять слои Dolby Vision RPU/EL и передавать обычный HEVC',
'settings.requireProfileSelectionOnOpen' => 'Запрашивать профиль при запуске',
'settings.requireProfileSelectionOnOpenDescription' => 'Показывать выбор профиля при каждом открытии приложения',
'settings.forceTvMode' => 'Принудительный режим ТВ',
@@ -2099,6 +2200,8 @@ extension on TranslationsRu {
'search.enterTitleActorOrKeyword' => 'Введите название, актёра или ключевое слово',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Назначить клавишу для ${actionName}',
'hotkeys.clearShortcut' => 'Очистить клавишу',
'hotkeys.noShortcutSet' => 'Сочетание не задано',
'hotkeys.currentShortcut' => 'Текущее сочетание:',
'hotkeys.actions.playPause' => 'Воспроизведение/Пауза',
'hotkeys.actions.volumeUp' => 'Громкость выше',
'hotkeys.actions.volumeDown' => 'Громкость ниже',
@@ -2155,6 +2258,7 @@ extension on TranslationsRu {
'mediaMenu.goToSeries' => 'Перейти к сериалу',
'mediaMenu.goToSeason' => 'Перейти к сезону',
'mediaMenu.shufflePlay' => 'Случайное воспроизведение',
'mediaMenu.shuffleNotAvailableOffline' => 'Перемешивание недоступно офлайн',
'mediaMenu.fileInfo' => 'Информация о файле',
'mediaMenu.deleteFromServer' => 'Удалить с сервера',
'mediaMenu.confirmDelete' => 'Удалить это медиа и его файлы с сервера?',
@@ -2263,6 +2367,10 @@ extension on TranslationsRu {
'videoControls.searchSubtitles' => 'Поиск субтитров',
'videoControls.language' => 'Язык',
'videoControls.noSubtitlesFound' => 'Субтитры не найдены',
'videoControls.downloadedSubtitle' => 'Загружено',
'videoControls.noSubtitlesAvailable' => 'Нет доступных субтитров',
'videoControls.noAudioTracksAvailable' => 'Нет доступных аудиодорожек',
'videoControls.noTracksAvailable' => 'Нет доступных дорожек',
'videoControls.subtitleDownloaded' => 'Субтитры загружены',
'videoControls.subtitleDownloadFailed' => 'Не удалось загрузить субтитры',
'videoControls.searchLanguages' => 'Поиск языков...',
@@ -2321,6 +2429,8 @@ extension on TranslationsRu {
'subtitlingStyling.borderColor' => 'Цвет обводки',
'subtitlingStyling.backgroundOpacity' => 'Прозрачность фона',
'subtitlingStyling.backgroundColor' => 'Цвет фона',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Позиция',
'subtitlingStyling.assOverride' => 'Переопределение ASS',
'subtitlingStyling.bold' => 'Жирный',
@@ -2335,8 +2445,6 @@ extension on TranslationsRu {
'mpvConfig.loadPreset' => 'Загрузить',
'mpvConfig.deletePreset' => 'Удалить',
'mpvConfig.presetSaved' => 'Пресет сохранён',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Пресет загружен',
'mpvConfig.presetDeleted' => 'Пресет удалён',
'mpvConfig.confirmDeletePreset' => 'Вы уверены, что хотите удалить этот пресет?',
@@ -2399,6 +2507,7 @@ extension on TranslationsRu {
'profiles.pinExplain' => 'Для переключения профилей нужен 4-значный PIN.',
'profiles.continueButton' => 'Продолжить',
'profiles.pinsDontMatch' => 'PIN-коды не совпадают',
'profiles.initializeServicesFailed' => 'Не удалось инициализировать службы профиля',
'connections.sectionTitle' => 'Подключения',
'connections.addConnection' => 'Добавить подключение',
'connections.addConnectionSubtitleNoProfile' => 'Войдите через Plex или подключите сервер Jellyfin',
@@ -2427,6 +2536,7 @@ extension on TranslationsRu {
'discover.movie' => 'Фильм',
'discover.tvShow' => 'Сериал',
'discover.minutesLeft' => ({required Object minutes}) => 'Осталось ${minutes} мин',
'discover.moreLikeThis' => 'Похожее',
'errors.searchFailed' => ({required Object error}) => 'Ошибка поиска: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Таймаут подключения при загрузке ${context}',
'errors.connectionFailed' => 'Не удалось подключиться к медиасерверу',
@@ -2441,6 +2551,7 @@ extension on TranslationsRu {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Не удалось удалить ${displayName}',
'errors.failedToRate' => 'Не удалось обновить оценку',
'libraries.title' => 'Библиотеки',
'libraries.fallbackTitle' => 'Библиотека',
'libraries.scanLibraryFiles' => 'Сканировать файлы библиотеки',
'libraries.scanLibrary' => 'Сканировать библиотеку',
'libraries.analyze' => 'Анализировать',
@@ -2541,6 +2652,12 @@ extension on TranslationsRu {
'liveTv.noChannels' => 'Нет доступных каналов',
'liveTv.noDvr' => 'DVR не настроен ни на одном сервере',
'liveTv.noPrograms' => 'Нет данных о программах',
'liveTv.liveStreamFailed' => 'Не удалось запустить прямой эфир',
'liveTv.unknownProgram' => 'Неизвестная программа',
'liveTv.unknownHub' => 'Неизвестно',
'liveTv.unknownError' => 'Неизвестная ошибка',
'liveTv.channelNumber' => ({required Object number}) => 'Канал ${number}',
'liveTv.unknownChannel' => 'Неизвестный канал',
'liveTv.live' => 'ЭФИР',
'liveTv.reloadGuide' => 'Перезагрузить программу',
'liveTv.now' => 'Сейчас',
@@ -2711,12 +2828,21 @@ extension on TranslationsRu {
'downloads.deleteDownload' => 'Удалить загрузку',
'downloads.retryDownload' => 'Повторить загрузку',
'downloads.downloadQueued' => 'Загрузка поставлена в очередь',
'downloads.downloadResumed' => 'Загрузка возобновлена',
'downloads.serverErrorBitrate' => 'Ошибка сервера: файл может превышать удаленный лимит bitrate',
'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.cancelledDownloadTitle' => 'Загрузка отменена',
'downloads.cancelledDownloadMessage' => 'Эта загрузка была отменена. Что вы хотите сделать?',
'downloads.allEpisodesAlreadyDownloaded' => 'Все эпизоды уже загружены',
'downloads.resumeDownload' => 'Возобновить загрузку',
'downloads.cancelledDownload' => 'Загрузка отменена',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (синхронизация ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} загружен — нажмите, чтобы завершить',
'downloads.partialDownloadClickToComplete' => 'Частично загружено — нажмите, чтобы завершить',
'downloads.deleting' => 'Удаление...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Удаление ${title}... (${current} из ${total})',
'downloads.queuedTooltip' => 'В очереди',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'В очереди: ${files}',
'downloads.downloadingTooltip' => 'Загрузка...',
@@ -2773,6 +2899,7 @@ extension on TranslationsRu {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Удалить "${name}"?',
'companionRemote.title' => 'Пульт управления',
'companionRemote.connectedTo' => ({required Object name}) => 'Подключено к ${name}',
'companionRemote.unknownDevice' => 'Неизвестное устройство',
'companionRemote.session.startingServer' => 'Запуск удалённого сервера...',
'companionRemote.session.failedToCreate' => 'Не удалось запустить удалённый сервер:',
'companionRemote.session.hostAddress' => 'Адрес хоста',
@@ -2816,6 +2943,8 @@ extension on TranslationsRu {
'companionRemote.remote.tabSettings' => 'Настройки',
'companionRemote.remote.previous' => 'Предыдущий',
'companionRemote.remote.playPause' => 'Воспроизведение/Пауза',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Следующий',
'companionRemote.remote.seekBack' => 'Назад',
'companionRemote.remote.stop' => 'Стоп',
@@ -2827,6 +2956,12 @@ extension on TranslationsRu {
'companionRemote.remote.subtitles' => 'Субтитры',
'companionRemote.remote.audio' => 'Аудио',
'companionRemote.remote.searchHint' => 'Поиск на десктопе...',
'companionRemote.errors.noNetworkInterface' => 'Сетевой интерфейс не найден',
'companionRemote.errors.authenticationFailed' => 'Ошибка аутентификации',
'companionRemote.errors.joinTimedOut' => 'Время подключения к сеансу истекло',
'companionRemote.errors.failedToConnectAnyAddress' => 'Не удалось подключиться ни к одному адресу',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Соединение потеряно после ${attempts} попыток',
'companionRemote.errors.connectionLost' => 'Соединение потеряно',
'videoSettings.playbackSpeed' => 'Скорость воспроизведения',
'videoSettings.zoom' => 'Масштаб',
'videoSettings.sleepTimer' => 'Таймер сна',
@@ -2837,6 +2972,40 @@ extension on TranslationsRu {
'videoSettings.performanceOverlay' => 'Оверлей производительности',
'videoSettings.audioPassthrough' => 'Сквозной вывод аудио',
'videoSettings.audioNormalization' => 'Нормализация громкости',
'performanceOverlay.color' => 'Цвет',
'performanceOverlay.performance' => 'Производительность',
'performanceOverlay.buffer' => 'Буфер',
'performanceOverlay.app' => 'Приложение',
'performanceOverlay.decoder' => 'Декодер',
'performanceOverlay.rawDecoder' => 'Raw-декодер',
'performanceOverlay.tunneling' => 'Туннелирование',
'performanceOverlay.aspect' => 'Соотношение',
'performanceOverlay.rotation' => 'Поворот',
'performanceOverlay.dvSource' => 'Источник DV',
'performanceOverlay.dvPath' => 'Путь DV',
'performanceOverlay.p7Conversion' => 'Конв. P7',
'performanceOverlay.sampleRate' => 'Частота дискр.',
'performanceOverlay.pixelFormat' => 'Формат пикселей',
'performanceOverlay.hwFormat' => 'Формат HW',
'performanceOverlay.matrix' => 'Матрица',
'performanceOverlay.primaries' => 'Основные цвета',
'performanceOverlay.transfer' => 'Передача',
'performanceOverlay.renderFps' => 'FPS рендера',
'performanceOverlay.displayFps' => 'FPS дисплея',
'performanceOverlay.avSync' => 'A/V синхр.',
'performanceOverlay.dropped' => 'Пропущено',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'Сред. DV RPU',
'performanceOverlay.dvSampleAverage' => 'Сред. сэмпл DV',
'performanceOverlay.maxLuma' => 'Макс. яркость',
'performanceOverlay.minLuma' => 'Мин. яркость',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Кэш использован',
'performanceOverlay.speed' => 'Скорость',
'performanceOverlay.player' => 'Плеер',
'performanceOverlay.memory' => 'Память',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Внешний плеер',
'externalPlayer.useExternalPlayer' => 'Использовать внешний плеер',
'externalPlayer.useExternalPlayerDescription' => 'Открывать видео в другом приложении',
@@ -2845,12 +3014,11 @@ extension on TranslationsRu {
'externalPlayer.systemDefault' => 'Системный по умолчанию',
'externalPlayer.addCustomPlayer' => 'Добавить свой плеер',
'externalPlayer.playerName' => 'Название плеера',
'externalPlayer.playerNameHint' => 'Мой плеер',
'externalPlayer.playerCommand' => 'Команда',
'externalPlayer.playerPackage' => 'Имя пакета',
'externalPlayer.playerUrlScheme' => 'URL-схема',
'externalPlayer.off' => 'Выкл.',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Не удалось открыть внешний плеер',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} не установлен',
'externalPlayer.playInExternalPlayer' => 'Воспроизвести во внешнем плеере',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsSv extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersSv shaders = _TranslationsShadersSv._(_root);
@override late final _TranslationsCompanionRemoteSv companionRemote = _TranslationsCompanionRemoteSv._(_root);
@override late final _TranslationsVideoSettingsSv videoSettings = _TranslationsVideoSettingsSv._(_root);
@override late final _TranslationsPerformanceOverlaySv performanceOverlay = _TranslationsPerformanceOverlaySv._(_root);
@override late final _TranslationsExternalPlayerSv externalPlayer = _TranslationsExternalPlayerSv._(_root);
@override late final _TranslationsMetadataEditSv metadataEdit = _TranslationsMetadataEditSv._(_root);
@override late final _TranslationsMatchScreenSv matchScreen = _TranslationsMatchScreenSv._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonSv extends TranslationsCommonEn {
@override String get settings => 'Mer';
@override String get mute => 'Ljud av';
@override String get ok => 'OK';
@override String get off => 'Av';
@override String seasonNumber({required Object number}) => 'Säsong ${number}';
@override String chapterNumber({required Object number}) => 'Kapitel ${number}';
@override String get reconnect => 'Återanslut';
@override String get exit => 'Avsluta';
@override String get viewAll => 'Visa alla';
@@ -385,6 +389,10 @@ class _TranslationsSettingsSv extends TranslationsSettingsEn {
@override String get dvConversionNative => 'Inbyggt / inaktiverat';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => 'Använd enhetens kapabilitetsdetektering och normalt reservbeteende';
@override String get dvConversionNativeDescription => 'Tvinga native DV7 och undertryck försök till DV-konvertering';
@override String get dvConversionDv81Description => 'Tvinga inline RPU-konvertering till Dolby Vision profil 8.1';
@override String get dvConversionHevcStripDescription => 'Ta bort Dolby Vision RPU/EL-lager och presentera vanlig HEVC';
@override String get requireProfileSelectionOnOpen => 'Fråga efter profil vid appstart';
@override String get requireProfileSelectionOnOpenDescription => 'Visa profilval varje gång appen öppnas';
@override String get forceTvMode => 'Tvinga TV-läge';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysSv extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => 'Sätt genväg för ${actionName}';
@override String get clearShortcut => 'Rensa genväg';
@override String get noShortcutSet => 'Ingen genväg angiven';
@override String get currentShortcut => 'Aktuell genväg:';
@override late final _TranslationsHotkeysActionsSv actions = _TranslationsHotkeysActionsSv._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuSv extends TranslationsMediaMenuEn {
@override String get goToSeries => 'Gå till serie';
@override String get goToSeason => 'Gå till säsong';
@override String get shufflePlay => 'Blanda uppspelning';
@override String get shuffleNotAvailableOffline => 'Blandad uppspelning är inte tillgänglig offline';
@override String get fileInfo => 'Filinformation';
@override String get deleteFromServer => 'Ta bort från servern';
@override String get confirmDelete => 'Ta bort detta media och dess filer från din server?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsSv extends TranslationsVideoControlsEn {
@override String get searchSubtitles => 'Sök undertexter';
@override String get language => 'Språk';
@override String get noSubtitlesFound => 'Inga undertexter hittades';
@override String get downloadedSubtitle => 'Nedladdad';
@override String get noSubtitlesAvailable => 'Inga undertexter tillgängliga';
@override String get noAudioTracksAvailable => 'Inga ljudspår tillgängliga';
@override String get noTracksAvailable => 'Inga spår tillgängliga';
@override String get subtitleDownloaded => 'Undertext nedladdad';
@override String get subtitleDownloadFailed => 'Kunde inte ladda ner undertext';
@override String get searchLanguages => 'Sök språk...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesSv extends TranslationsProfilesEn {
@override String get pinExplain => '4-siffrig PIN krävs för att byta profiler.';
@override String get continueButton => 'Fortsätt';
@override String get pinsDontMatch => 'PIN-koderna stämmer inte överens';
@override String get initializeServicesFailed => 'Kunde inte initiera profiltjänster';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverSv extends TranslationsDiscoverEn {
@override String get movie => 'Film';
@override String get tvShow => 'TV-serie';
@override String minutesLeft({required Object minutes}) => '${minutes} min kvar';
@override String get moreLikeThis => 'Mer som detta';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesSv extends TranslationsLibrariesEn {
// Translations
@override String get title => 'Bibliotek';
@override String get fallbackTitle => 'Bibliotek';
@override String get scanLibraryFiles => 'Skanna biblioteksfiler';
@override String get scanLibrary => 'Skanna bibliotek';
@override String get analyze => 'Analysera';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvSv extends TranslationsLiveTvEn {
@override String get noChannels => 'Inga kanaler tillgängliga';
@override String get noDvr => 'Ingen DVR konfigurerad på någon server';
@override String get noPrograms => 'Ingen programdata tillgänglig';
@override String get liveStreamFailed => 'Liveström misslyckades';
@override String get unknownProgram => 'Okänt program';
@override String get unknownHub => 'Okänt';
@override String get unknownError => 'Okänt fel';
@override String channelNumber({required Object number}) => 'Kanal ${number}';
@override String get unknownChannel => 'Okänd kanal';
@override String get live => 'LIVE';
@override String get reloadGuide => 'Ladda om programguide';
@override String get now => 'Nu';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsSv extends TranslationsDownloadsEn {
@override String get deleteDownload => 'Ta bort nedladdning';
@override String get retryDownload => 'Försök igen';
@override String get downloadQueued => 'Nedladdning köad';
@override String get downloadResumed => 'Nedladdning återupptagen';
@override String get serverErrorBitrate => 'Serverfel: filen kan överskrida gränsen för fjärrbitrate';
@override String episodesQueued({required Object count}) => '${count} avsnitt köade för nedladdning';
@override String get downloadDeleted => 'Nedladdning borttagen';
@override String deleteConfirm({required Object title}) => 'Ta bort "${title}" från den här enheten?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Tar bort ${title}... (${current} av ${total})';
@override String get cancelledDownloadTitle => 'Avbruten nedladdning';
@override String get cancelledDownloadMessage => 'Den här nedladdningen avbröts. Vad vill du göra?';
@override String get allEpisodesAlreadyDownloaded => 'Alla avsnitt är redan nedladdade';
@override String get resumeDownload => 'Återuppta nedladdning';
@override String get cancelledDownload => 'Avbruten nedladdning';
@override String syncingFile({required Object file, required Object status}) => '${file} (synkroniserar ${status})';
@override String downloadedFileClickToComplete({required Object file}) => '${file} nedladdad klicka för att slutföra';
@override String get partialDownloadClickToComplete => 'Delvis nedladdad klicka för att slutföra';
@override String get deleting => 'Tar bort...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Tar bort ${title}... (${current} av ${total})';
@override String get queuedTooltip => 'I kö';
@override String queuedFilesTooltip({required Object files}) => 'I kö: ${files}';
@override String get downloadingTooltip => 'Laddar ned...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteSv extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => 'Fjärrkontroll';
@override String connectedTo({required Object name}) => 'Ansluten till ${name}';
@override String get unknownDevice => 'Okänd enhet';
@override late final _TranslationsCompanionRemoteSessionSv session = _TranslationsCompanionRemoteSessionSv._(_root);
@override late final _TranslationsCompanionRemotePairingSv pairing = _TranslationsCompanionRemotePairingSv._(_root);
@override late final _TranslationsCompanionRemoteRemoteSv remote = _TranslationsCompanionRemoteRemoteSv._(_root);
@override late final _TranslationsCompanionRemoteErrorsSv errors = _TranslationsCompanionRemoteErrorsSv._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsSv extends TranslationsVideoSettingsEn {
@override String get audioNormalization => 'Normalisera ljudstyrka';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlaySv extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlaySv._(TranslationsSv root) : this._root = root, super.internal(root);
final TranslationsSv _root; // ignore: unused_field
// Translations
@override String get color => 'Färg';
@override String get performance => 'Prestanda';
@override String get buffer => 'Buffert';
@override String get app => 'App';
@override String get decoder => 'Dekoder';
@override String get rawDecoder => 'Rå dekoder';
@override String get tunneling => 'Tunneling';
@override String get aspect => 'Bildformat';
@override String get rotation => 'Rotation';
@override String get dvSource => 'DV-källa';
@override String get dvPath => 'DV-sökväg';
@override String get p7Conversion => 'P7-konv.';
@override String get sampleRate => 'Samplingsfrekvens';
@override String get pixelFormat => 'Pixelformat';
@override String get hwFormat => 'HW-format';
@override String get matrix => 'Matris';
@override String get primaries => 'Primärfärger';
@override String get transfer => 'Transfer';
@override String get renderFps => 'Render-FPS';
@override String get displayFps => 'Skärm-FPS';
@override String get avSync => 'A/V-synk';
@override String get dropped => 'Tappade';
@override String get dvRpus => 'DV RPU:er';
@override String get dvRpuAverage => 'DV RPU snitt';
@override String get dvSampleAverage => 'DV-sample snitt';
@override String get maxLuma => 'Max luma';
@override String get minLuma => 'Min luma';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => 'Cache använd';
@override String get speed => 'Hastighet';
@override String get player => 'Spelare';
@override String get memory => 'Minne';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerSv extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerSv._(TranslationsSv root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerSv extends TranslationsExternalPlayerEn {
@override String get systemDefault => 'Systemstandard';
@override String get addCustomPlayer => 'Lägg till anpassad spelare';
@override String get playerName => 'Spelarnamn';
@override String get playerNameHint => 'Min spelare';
@override String get playerCommand => 'Kommando';
@override String get playerPackage => 'Paketnamn';
@override String get playerUrlScheme => 'URL-schema';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteSv extends TranslationsCompanionRemoteRe
@override String get searchHint => 'Sök på datorn...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsSv extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsSv._(TranslationsSv root) : this._root = root, super.internal(root);
final TranslationsSv _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => 'Inget nätverksgränssnitt hittades';
@override String get authenticationFailed => 'Autentisering misslyckades';
@override String get joinTimedOut => 'Tidsgräns vid anslutning till session';
@override String get failedToConnectAnyAddress => 'Kunde inte ansluta till någon adress';
@override String connectionLostAfterAttempts({required Object attempts}) => 'Anslutning förlorad efter ${attempts} försök';
@override String get connectionLost => 'Anslutning förlorad';
}
// Path: trackers.services
class _TranslationsTrackersServicesSv extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesSv._(TranslationsSv root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsSv {
'common.settings' => 'Mer',
'common.mute' => 'Ljud av',
'common.ok' => 'OK',
'common.off' => 'Av',
'common.seasonNumber' => ({required Object number}) => 'Säsong ${number}',
'common.chapterNumber' => ({required Object number}) => 'Kapitel ${number}',
'common.reconnect' => 'Återanslut',
'common.exit' => 'Avsluta',
'common.viewAll' => 'Visa alla',
@@ -2070,6 +2167,10 @@ extension on TranslationsSv {
'settings.dvConversionNative' => 'Inbyggt / inaktiverat',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => 'Använd enhetens kapabilitetsdetektering och normalt reservbeteende',
'settings.dvConversionNativeDescription' => 'Tvinga native DV7 och undertryck försök till DV-konvertering',
'settings.dvConversionDv81Description' => 'Tvinga inline RPU-konvertering till Dolby Vision profil 8.1',
'settings.dvConversionHevcStripDescription' => 'Ta bort Dolby Vision RPU/EL-lager och presentera vanlig HEVC',
'settings.requireProfileSelectionOnOpen' => 'Fråga efter profil vid appstart',
'settings.requireProfileSelectionOnOpenDescription' => 'Visa profilval varje gång appen öppnas',
'settings.forceTvMode' => 'Tvinga TV-läge',
@@ -2099,6 +2200,8 @@ extension on TranslationsSv {
'search.enterTitleActorOrKeyword' => 'Ange en titel, skådespelare eller nyckelord',
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Sätt genväg för ${actionName}',
'hotkeys.clearShortcut' => 'Rensa genväg',
'hotkeys.noShortcutSet' => 'Ingen genväg angiven',
'hotkeys.currentShortcut' => 'Aktuell genväg:',
'hotkeys.actions.playPause' => 'Spela/Pausa',
'hotkeys.actions.volumeUp' => 'Höj volym',
'hotkeys.actions.volumeDown' => 'Sänk volym',
@@ -2155,6 +2258,7 @@ extension on TranslationsSv {
'mediaMenu.goToSeries' => 'Gå till serie',
'mediaMenu.goToSeason' => 'Gå till säsong',
'mediaMenu.shufflePlay' => 'Blanda uppspelning',
'mediaMenu.shuffleNotAvailableOffline' => 'Blandad uppspelning är inte tillgänglig offline',
'mediaMenu.fileInfo' => 'Filinformation',
'mediaMenu.deleteFromServer' => 'Ta bort från servern',
'mediaMenu.confirmDelete' => 'Ta bort detta media och dess filer från din server?',
@@ -2263,6 +2367,10 @@ extension on TranslationsSv {
'videoControls.searchSubtitles' => 'Sök undertexter',
'videoControls.language' => 'Språk',
'videoControls.noSubtitlesFound' => 'Inga undertexter hittades',
'videoControls.downloadedSubtitle' => 'Nedladdad',
'videoControls.noSubtitlesAvailable' => 'Inga undertexter tillgängliga',
'videoControls.noAudioTracksAvailable' => 'Inga ljudspår tillgängliga',
'videoControls.noTracksAvailable' => 'Inga spår tillgängliga',
'videoControls.subtitleDownloaded' => 'Undertext nedladdad',
'videoControls.subtitleDownloadFailed' => 'Kunde inte ladda ner undertext',
'videoControls.searchLanguages' => 'Sök språk...',
@@ -2321,6 +2429,8 @@ extension on TranslationsSv {
'subtitlingStyling.borderColor' => 'Kantfärg',
'subtitlingStyling.backgroundOpacity' => 'Bakgrundsopacitet',
'subtitlingStyling.backgroundColor' => 'Bakgrundsfärg',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => 'Position',
'subtitlingStyling.assOverride' => 'ASS-åsidosättning',
'subtitlingStyling.bold' => 'Fet',
@@ -2335,8 +2445,6 @@ extension on TranslationsSv {
'mpvConfig.loadPreset' => 'Ladda',
'mpvConfig.deletePreset' => 'Ta bort',
'mpvConfig.presetSaved' => 'Förval sparat',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => 'Förval laddat',
'mpvConfig.presetDeleted' => 'Förval borttaget',
'mpvConfig.confirmDeletePreset' => 'Är du säker på att du vill ta bort detta förval?',
@@ -2399,6 +2507,7 @@ extension on TranslationsSv {
'profiles.pinExplain' => '4-siffrig PIN krävs för att byta profiler.',
'profiles.continueButton' => 'Fortsätt',
'profiles.pinsDontMatch' => 'PIN-koderna stämmer inte överens',
'profiles.initializeServicesFailed' => 'Kunde inte initiera profiltjänster',
'connections.sectionTitle' => 'Anslutningar',
'connections.addConnection' => 'Lägg till anslutning',
'connections.addConnectionSubtitleNoProfile' => 'Logga in med Plex eller anslut en Jellyfin-server',
@@ -2427,6 +2536,7 @@ extension on TranslationsSv {
'discover.movie' => 'Film',
'discover.tvShow' => 'TV-serie',
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min kvar',
'discover.moreLikeThis' => 'Mer som detta',
'errors.searchFailed' => ({required Object error}) => 'Sökning misslyckades: ${error}',
'errors.connectionTimeout' => ({required Object context}) => 'Anslutnings-timeout vid laddning ${context}',
'errors.connectionFailed' => 'Kan inte ansluta till mediaserver',
@@ -2441,6 +2551,7 @@ extension on TranslationsSv {
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Misslyckades att ta bort ${displayName}',
'errors.failedToRate' => 'Det gick inte att uppdatera betyget',
'libraries.title' => 'Bibliotek',
'libraries.fallbackTitle' => 'Bibliotek',
'libraries.scanLibraryFiles' => 'Skanna biblioteksfiler',
'libraries.scanLibrary' => 'Skanna bibliotek',
'libraries.analyze' => 'Analysera',
@@ -2541,6 +2652,12 @@ extension on TranslationsSv {
'liveTv.noChannels' => 'Inga kanaler tillgängliga',
'liveTv.noDvr' => 'Ingen DVR konfigurerad på någon server',
'liveTv.noPrograms' => 'Ingen programdata tillgänglig',
'liveTv.liveStreamFailed' => 'Liveström misslyckades',
'liveTv.unknownProgram' => 'Okänt program',
'liveTv.unknownHub' => 'Okänt',
'liveTv.unknownError' => 'Okänt fel',
'liveTv.channelNumber' => ({required Object number}) => 'Kanal ${number}',
'liveTv.unknownChannel' => 'Okänd kanal',
'liveTv.live' => 'LIVE',
'liveTv.reloadGuide' => 'Ladda om programguide',
'liveTv.now' => 'Nu',
@@ -2711,12 +2828,21 @@ extension on TranslationsSv {
'downloads.deleteDownload' => 'Ta bort nedladdning',
'downloads.retryDownload' => 'Försök igen',
'downloads.downloadQueued' => 'Nedladdning köad',
'downloads.downloadResumed' => 'Nedladdning återupptagen',
'downloads.serverErrorBitrate' => 'Serverfel: filen kan överskrida gränsen för fjärrbitrate',
'downloads.episodesQueued' => ({required Object count}) => '${count} avsnitt köade för nedladdning',
'downloads.downloadDeleted' => 'Nedladdning borttagen',
'downloads.deleteConfirm' => ({required Object title}) => 'Ta bort "${title}" från den här enheten?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Tar bort ${title}... (${current} av ${total})',
'downloads.cancelledDownloadTitle' => 'Avbruten nedladdning',
'downloads.cancelledDownloadMessage' => 'Den här nedladdningen avbröts. Vad vill du göra?',
'downloads.allEpisodesAlreadyDownloaded' => 'Alla avsnitt är redan nedladdade',
'downloads.resumeDownload' => 'Återuppta nedladdning',
'downloads.cancelledDownload' => 'Avbruten nedladdning',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synkroniserar ${status})',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} nedladdad klicka för att slutföra',
'downloads.partialDownloadClickToComplete' => 'Delvis nedladdad klicka för att slutföra',
'downloads.deleting' => 'Tar bort...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Tar bort ${title}... (${current} av ${total})',
'downloads.queuedTooltip' => 'I kö',
'downloads.queuedFilesTooltip' => ({required Object files}) => 'I kö: ${files}',
'downloads.downloadingTooltip' => 'Laddar ned...',
@@ -2773,6 +2899,7 @@ extension on TranslationsSv {
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Ta bort "${name}"?',
'companionRemote.title' => 'Fjärrkontroll',
'companionRemote.connectedTo' => ({required Object name}) => 'Ansluten till ${name}',
'companionRemote.unknownDevice' => 'Okänd enhet',
'companionRemote.session.startingServer' => 'Startar fjärrserver...',
'companionRemote.session.failedToCreate' => 'Kunde inte starta fjärrserver:',
'companionRemote.session.hostAddress' => 'Värdadress',
@@ -2816,6 +2943,8 @@ extension on TranslationsSv {
'companionRemote.remote.tabSettings' => 'Inställningar',
'companionRemote.remote.previous' => 'Föregående',
'companionRemote.remote.playPause' => 'Spela/Pausa',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => 'Nästa',
'companionRemote.remote.seekBack' => 'Spola bakåt',
'companionRemote.remote.stop' => 'Stopp',
@@ -2827,6 +2956,12 @@ extension on TranslationsSv {
'companionRemote.remote.subtitles' => 'Undertexter',
'companionRemote.remote.audio' => 'Ljud',
'companionRemote.remote.searchHint' => 'Sök på datorn...',
'companionRemote.errors.noNetworkInterface' => 'Inget nätverksgränssnitt hittades',
'companionRemote.errors.authenticationFailed' => 'Autentisering misslyckades',
'companionRemote.errors.joinTimedOut' => 'Tidsgräns vid anslutning till session',
'companionRemote.errors.failedToConnectAnyAddress' => 'Kunde inte ansluta till någon adress',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Anslutning förlorad efter ${attempts} försök',
'companionRemote.errors.connectionLost' => 'Anslutning förlorad',
'videoSettings.playbackSpeed' => 'Uppspelningshastighet',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Sovtimer',
@@ -2837,6 +2972,40 @@ extension on TranslationsSv {
'videoSettings.performanceOverlay' => 'Prestandaöverlägg',
'videoSettings.audioPassthrough' => 'Ljudgenomkoppling',
'videoSettings.audioNormalization' => 'Normalisera ljudstyrka',
'performanceOverlay.color' => 'Färg',
'performanceOverlay.performance' => 'Prestanda',
'performanceOverlay.buffer' => 'Buffert',
'performanceOverlay.app' => 'App',
'performanceOverlay.decoder' => 'Dekoder',
'performanceOverlay.rawDecoder' => 'Rå dekoder',
'performanceOverlay.tunneling' => 'Tunneling',
'performanceOverlay.aspect' => 'Bildformat',
'performanceOverlay.rotation' => 'Rotation',
'performanceOverlay.dvSource' => 'DV-källa',
'performanceOverlay.dvPath' => 'DV-sökväg',
'performanceOverlay.p7Conversion' => 'P7-konv.',
'performanceOverlay.sampleRate' => 'Samplingsfrekvens',
'performanceOverlay.pixelFormat' => 'Pixelformat',
'performanceOverlay.hwFormat' => 'HW-format',
'performanceOverlay.matrix' => 'Matris',
'performanceOverlay.primaries' => 'Primärfärger',
'performanceOverlay.transfer' => 'Transfer',
'performanceOverlay.renderFps' => 'Render-FPS',
'performanceOverlay.displayFps' => 'Skärm-FPS',
'performanceOverlay.avSync' => 'A/V-synk',
'performanceOverlay.dropped' => 'Tappade',
'performanceOverlay.dvRpus' => 'DV RPU:er',
'performanceOverlay.dvRpuAverage' => 'DV RPU snitt',
'performanceOverlay.dvSampleAverage' => 'DV-sample snitt',
'performanceOverlay.maxLuma' => 'Max luma',
'performanceOverlay.minLuma' => 'Min luma',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => 'Cache använd',
'performanceOverlay.speed' => 'Hastighet',
'performanceOverlay.player' => 'Spelare',
'performanceOverlay.memory' => 'Minne',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => 'Extern spelare',
'externalPlayer.useExternalPlayer' => 'Använd extern spelare',
'externalPlayer.useExternalPlayerDescription' => 'Öppna videor i en annan app',
@@ -2845,12 +3014,11 @@ extension on TranslationsSv {
'externalPlayer.systemDefault' => 'Systemstandard',
'externalPlayer.addCustomPlayer' => 'Lägg till anpassad spelare',
'externalPlayer.playerName' => 'Spelarnamn',
'externalPlayer.playerNameHint' => 'Min spelare',
'externalPlayer.playerCommand' => 'Kommando',
'externalPlayer.playerPackage' => 'Paketnamn',
'externalPlayer.playerUrlScheme' => 'URL-schema',
'externalPlayer.off' => 'Av',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => 'Kunde inte öppna extern spelare',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} är inte installerad',
'externalPlayer.playInExternalPlayer' => 'Spela i extern spelare',
+174 -6
View File
@@ -77,6 +77,7 @@ class TranslationsZh extends Translations with BaseTranslations<AppLocale, Trans
@override late final _TranslationsShadersZh shaders = _TranslationsShadersZh._(_root);
@override late final _TranslationsCompanionRemoteZh companionRemote = _TranslationsCompanionRemoteZh._(_root);
@override late final _TranslationsVideoSettingsZh videoSettings = _TranslationsVideoSettingsZh._(_root);
@override late final _TranslationsPerformanceOverlayZh performanceOverlay = _TranslationsPerformanceOverlayZh._(_root);
@override late final _TranslationsExternalPlayerZh externalPlayer = _TranslationsExternalPlayerZh._(_root);
@override late final _TranslationsMetadataEditZh metadataEdit = _TranslationsMetadataEditZh._(_root);
@override late final _TranslationsMatchScreenZh matchScreen = _TranslationsMatchScreenZh._(_root);
@@ -159,6 +160,9 @@ class _TranslationsCommonZh extends TranslationsCommonEn {
@override String get settings => '设置';
@override String get mute => '静音';
@override String get ok => '确定';
@override String get off => '关闭';
@override String seasonNumber({required Object number}) => '${number}';
@override String chapterNumber({required Object number}) => '章节 ${number}';
@override String get reconnect => '重新连接';
@override String get exit => '退出';
@override String get viewAll => '查看全部';
@@ -385,6 +389,10 @@ class _TranslationsSettingsZh extends TranslationsSettingsEn {
@override String get dvConversionNative => '原生 / 禁用';
@override String get dvConversionDv81 => 'P7 → P8.1';
@override String get dvConversionHevcStrip => 'P7 → HEVC';
@override String get dvConversionAutoDescription => '使用设备能力检测和正常回退行为';
@override String get dvConversionNativeDescription => '强制原生 DV7 并抑制 DV 转换重试';
@override String get dvConversionDv81Description => '强制内联 RPU 转换为 Dolby Vision Profile 8.1';
@override String get dvConversionHevcStripDescription => '移除 Dolby Vision RPU/EL 层并呈现普通 HEVC';
@override String get requireProfileSelectionOnOpen => '打开应用时询问配置文件';
@override String get requireProfileSelectionOnOpenDescription => '每次打开应用时显示配置文件选择';
@override String get forceTvMode => '强制 TV 模式';
@@ -432,6 +440,8 @@ class _TranslationsHotkeysZh extends TranslationsHotkeysEn {
// Translations
@override String setShortcutFor({required Object actionName}) => '${actionName} 设置快捷键';
@override String get clearShortcut => '清除快捷键';
@override String get noShortcutSet => '未设置快捷键';
@override String get currentShortcut => '当前快捷键:';
@override late final _TranslationsHotkeysActionsZh actions = _TranslationsHotkeysActionsZh._(_root);
}
@@ -482,6 +492,7 @@ class _TranslationsMediaMenuZh extends TranslationsMediaMenuEn {
@override String get goToSeries => '转到系列';
@override String get goToSeason => '转到季';
@override String get shufflePlay => '随机播放';
@override String get shuffleNotAvailableOffline => '离线时无法随机播放';
@override String get fileInfo => '文件信息';
@override String get deleteFromServer => '从服务器删除';
@override String get confirmDelete => '要从服务器删除此媒体及其文件吗?';
@@ -620,6 +631,10 @@ class _TranslationsVideoControlsZh extends TranslationsVideoControlsEn {
@override String get searchSubtitles => '搜索字幕';
@override String get language => '语言';
@override String get noSubtitlesFound => '未找到字幕';
@override String get downloadedSubtitle => '已下载';
@override String get noSubtitlesAvailable => '没有可用字幕';
@override String get noAudioTracksAvailable => '没有可用音轨';
@override String get noTracksAvailable => '没有可用轨道';
@override String get subtitleDownloaded => '字幕已下载';
@override String get subtitleDownloadFailed => '字幕下载失败';
@override String get searchLanguages => '搜索语言...';
@@ -808,6 +823,7 @@ class _TranslationsProfilesZh extends TranslationsProfilesEn {
@override String get pinExplain => '切换个人资料需要 4 位 PIN。';
@override String get continueButton => '继续';
@override String get pinsDontMatch => 'PIN 不匹配';
@override String get initializeServicesFailed => '无法初始化个人资料服务';
}
// Path: connections
@@ -854,6 +870,7 @@ class _TranslationsDiscoverZh extends TranslationsDiscoverEn {
@override String get movie => '电影';
@override String get tvShow => '电视剧';
@override String minutesLeft({required Object minutes}) => '剩余 ${minutes} 分钟';
@override String get moreLikeThis => '更多类似内容';
}
// Path: errors
@@ -886,6 +903,7 @@ class _TranslationsLibrariesZh extends TranslationsLibrariesEn {
// Translations
@override String get title => '媒体库';
@override String get fallbackTitle => '媒体库';
@override String get scanLibraryFiles => '扫描媒体库文件';
@override String get scanLibrary => '扫描媒体库';
@override String get analyze => '分析';
@@ -1018,6 +1036,12 @@ class _TranslationsLiveTvZh extends TranslationsLiveTvEn {
@override String get noChannels => '没有可用的频道';
@override String get noDvr => '没有服务器配置了DVR';
@override String get noPrograms => '没有可用的节目数据';
@override String get liveStreamFailed => '直播流失败';
@override String get unknownProgram => '未知节目';
@override String get unknownHub => '未知';
@override String get unknownError => '未知错误';
@override String channelNumber({required Object number}) => '频道 ${number}';
@override String get unknownChannel => '未知频道';
@override String get live => '直播';
@override String get reloadGuide => '重新加载节目指南';
@override String get now => '现在';
@@ -1224,12 +1248,21 @@ class _TranslationsDownloadsZh extends TranslationsDownloadsEn {
@override String get deleteDownload => '删除下载';
@override String get retryDownload => '重试下载';
@override String get downloadQueued => '下载已排队';
@override String get downloadResumed => '下载已继续';
@override String get serverErrorBitrate => '服务器错误:文件可能超过远程比特率限制';
@override String episodesQueued({required Object count}) => '${count} 集已加入下载队列';
@override String get downloadDeleted => '下载已删除';
@override String deleteConfirm({required Object title}) => '要从此设备删除“${title}”吗?';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})';
@override String get cancelledDownloadTitle => '已取消的下载';
@override String get cancelledDownloadMessage => '此下载已取消。你想怎么做?';
@override String get allEpisodesAlreadyDownloaded => '所有剧集均已下载';
@override String get resumeDownload => '继续下载';
@override String get cancelledDownload => '已取消的下载';
@override String syncingFile({required Object file, required Object status}) => '${file}(正在同步 ${status}';
@override String downloadedFileClickToComplete({required Object file}) => '已下载 ${file} — 点击完成';
@override String get partialDownloadClickToComplete => '已部分下载 — 点击完成';
@override String get deleting => '正在删除...';
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})';
@override String get queuedTooltip => '已排队';
@override String queuedFilesTooltip({required Object files}) => '已排队:${files}';
@override String get downloadingTooltip => '正在下载...';
@@ -1304,9 +1337,11 @@ class _TranslationsCompanionRemoteZh extends TranslationsCompanionRemoteEn {
// Translations
@override String get title => '伴侣遥控';
@override String connectedTo({required Object name}) => '已连接到 ${name}';
@override String get unknownDevice => '未知设备';
@override late final _TranslationsCompanionRemoteSessionZh session = _TranslationsCompanionRemoteSessionZh._(_root);
@override late final _TranslationsCompanionRemotePairingZh pairing = _TranslationsCompanionRemotePairingZh._(_root);
@override late final _TranslationsCompanionRemoteRemoteZh remote = _TranslationsCompanionRemoteRemoteZh._(_root);
@override late final _TranslationsCompanionRemoteErrorsZh errors = _TranslationsCompanionRemoteErrorsZh._(_root);
}
// Path: videoSettings
@@ -1328,6 +1363,49 @@ class _TranslationsVideoSettingsZh extends TranslationsVideoSettingsEn {
@override String get audioNormalization => '响度标准化';
}
// Path: performanceOverlay
class _TranslationsPerformanceOverlayZh extends TranslationsPerformanceOverlayEn {
_TranslationsPerformanceOverlayZh._(TranslationsZh root) : this._root = root, super.internal(root);
final TranslationsZh _root; // ignore: unused_field
// Translations
@override String get color => '颜色';
@override String get performance => '性能';
@override String get buffer => '缓冲';
@override String get app => '应用';
@override String get decoder => '解码器';
@override String get rawDecoder => '原始解码器';
@override String get tunneling => '隧道';
@override String get aspect => '宽高比';
@override String get rotation => '旋转';
@override String get dvSource => 'DV 来源';
@override String get dvPath => 'DV 路径';
@override String get p7Conversion => 'P7 转换';
@override String get sampleRate => '采样率';
@override String get pixelFormat => '像素格式';
@override String get hwFormat => '硬件格式';
@override String get matrix => '矩阵';
@override String get primaries => '基色';
@override String get transfer => '传输';
@override String get renderFps => '渲染 FPS';
@override String get displayFps => '显示 FPS';
@override String get avSync => 'A/V 同步';
@override String get dropped => '丢帧';
@override String get dvRpus => 'DV RPU';
@override String get dvRpuAverage => 'DV RPU 平均';
@override String get dvSampleAverage => 'DV 采样平均';
@override String get maxLuma => '最大亮度';
@override String get minLuma => '最小亮度';
@override String get maxCll => 'MaxCLL';
@override String get maxFall => 'MaxFALL';
@override String get cacheUsed => '已用缓存';
@override String get speed => '速度';
@override String get player => '播放器';
@override String get memory => '内存';
@override String get uiFps => 'UI FPS';
}
// Path: externalPlayer
class _TranslationsExternalPlayerZh extends TranslationsExternalPlayerEn {
_TranslationsExternalPlayerZh._(TranslationsZh root) : this._root = root, super.internal(root);
@@ -1343,6 +1421,7 @@ class _TranslationsExternalPlayerZh extends TranslationsExternalPlayerEn {
@override String get systemDefault => '系统默认';
@override String get addCustomPlayer => '添加自定义播放器';
@override String get playerName => '播放器名称';
@override String get playerNameHint => '我的播放器';
@override String get playerCommand => '命令';
@override String get playerPackage => '包名';
@override String get playerUrlScheme => 'URL 方案';
@@ -1755,6 +1834,21 @@ class _TranslationsCompanionRemoteRemoteZh extends TranslationsCompanionRemoteRe
@override String get searchHint => '在桌面上搜索...';
}
// Path: companionRemote.errors
class _TranslationsCompanionRemoteErrorsZh extends TranslationsCompanionRemoteErrorsEn {
_TranslationsCompanionRemoteErrorsZh._(TranslationsZh root) : this._root = root, super.internal(root);
final TranslationsZh _root; // ignore: unused_field
// Translations
@override String get noNetworkInterface => '未找到网络接口';
@override String get authenticationFailed => '身份验证失败';
@override String get joinTimedOut => '加入会话超时';
@override String get failedToConnectAnyAddress => '无法连接到任何地址';
@override String connectionLostAfterAttempts({required Object attempts}) => '${attempts} 次尝试后连接丢失';
@override String get connectionLost => '连接丢失';
}
// Path: trackers.services
class _TranslationsTrackersServicesZh extends TranslationsTrackersServicesEn {
_TranslationsTrackersServicesZh._(TranslationsZh root) : this._root = root, super.internal(root);
@@ -1871,6 +1965,9 @@ extension on TranslationsZh {
'common.settings' => '设置',
'common.mute' => '静音',
'common.ok' => '确定',
'common.off' => '关闭',
'common.seasonNumber' => ({required Object number}) => '${number}',
'common.chapterNumber' => ({required Object number}) => '章节 ${number}',
'common.reconnect' => '重新连接',
'common.exit' => '退出',
'common.viewAll' => '查看全部',
@@ -2070,6 +2167,10 @@ extension on TranslationsZh {
'settings.dvConversionNative' => '原生 / 禁用',
'settings.dvConversionDv81' => 'P7 → P8.1',
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
'settings.dvConversionAutoDescription' => '使用设备能力检测和正常回退行为',
'settings.dvConversionNativeDescription' => '强制原生 DV7 并抑制 DV 转换重试',
'settings.dvConversionDv81Description' => '强制内联 RPU 转换为 Dolby Vision Profile 8.1',
'settings.dvConversionHevcStripDescription' => '移除 Dolby Vision RPU/EL 层并呈现普通 HEVC',
'settings.requireProfileSelectionOnOpen' => '打开应用时询问配置文件',
'settings.requireProfileSelectionOnOpenDescription' => '每次打开应用时显示配置文件选择',
'settings.forceTvMode' => '强制 TV 模式',
@@ -2099,6 +2200,8 @@ extension on TranslationsZh {
'search.enterTitleActorOrKeyword' => '输入标题、演员或关键词',
'hotkeys.setShortcutFor' => ({required Object actionName}) => '${actionName} 设置快捷键',
'hotkeys.clearShortcut' => '清除快捷键',
'hotkeys.noShortcutSet' => '未设置快捷键',
'hotkeys.currentShortcut' => '当前快捷键:',
'hotkeys.actions.playPause' => '播放/暂停',
'hotkeys.actions.volumeUp' => '增大音量',
'hotkeys.actions.volumeDown' => '减小音量',
@@ -2155,6 +2258,7 @@ extension on TranslationsZh {
'mediaMenu.goToSeries' => '转到系列',
'mediaMenu.goToSeason' => '转到季',
'mediaMenu.shufflePlay' => '随机播放',
'mediaMenu.shuffleNotAvailableOffline' => '离线时无法随机播放',
'mediaMenu.fileInfo' => '文件信息',
'mediaMenu.deleteFromServer' => '从服务器删除',
'mediaMenu.confirmDelete' => '要从服务器删除此媒体及其文件吗?',
@@ -2263,6 +2367,10 @@ extension on TranslationsZh {
'videoControls.searchSubtitles' => '搜索字幕',
'videoControls.language' => '语言',
'videoControls.noSubtitlesFound' => '未找到字幕',
'videoControls.downloadedSubtitle' => '已下载',
'videoControls.noSubtitlesAvailable' => '没有可用字幕',
'videoControls.noAudioTracksAvailable' => '没有可用音轨',
'videoControls.noTracksAvailable' => '没有可用轨道',
'videoControls.subtitleDownloaded' => '字幕已下载',
'videoControls.subtitleDownloadFailed' => '字幕下载失败',
'videoControls.searchLanguages' => '搜索语言...',
@@ -2321,6 +2429,8 @@ extension on TranslationsZh {
'subtitlingStyling.borderColor' => '边框颜色',
'subtitlingStyling.backgroundOpacity' => '背景不透明度',
'subtitlingStyling.backgroundColor' => '背景颜色',
_ => null,
} ?? switch (path) {
'subtitlingStyling.position' => '位置',
'subtitlingStyling.assOverride' => 'ASS 样式覆盖',
'subtitlingStyling.bold' => '粗体',
@@ -2335,8 +2445,6 @@ extension on TranslationsZh {
'mpvConfig.loadPreset' => '加载',
'mpvConfig.deletePreset' => '删除',
'mpvConfig.presetSaved' => '预设已保存',
_ => null,
} ?? switch (path) {
'mpvConfig.presetLoaded' => '预设已加载',
'mpvConfig.presetDeleted' => '预设已删除',
'mpvConfig.confirmDeletePreset' => '确定要删除此预设吗?',
@@ -2399,6 +2507,7 @@ extension on TranslationsZh {
'profiles.pinExplain' => '切换个人资料需要 4 位 PIN。',
'profiles.continueButton' => '继续',
'profiles.pinsDontMatch' => 'PIN 不匹配',
'profiles.initializeServicesFailed' => '无法初始化个人资料服务',
'connections.sectionTitle' => '连接',
'connections.addConnection' => '添加连接',
'connections.addConnectionSubtitleNoProfile' => '使用 Plex 登录或连接 Jellyfin 服务器',
@@ -2427,6 +2536,7 @@ extension on TranslationsZh {
'discover.movie' => '电影',
'discover.tvShow' => '电视剧',
'discover.minutesLeft' => ({required Object minutes}) => '剩余 ${minutes} 分钟',
'discover.moreLikeThis' => '更多类似内容',
'errors.searchFailed' => ({required Object error}) => '搜索失败: ${error}',
'errors.connectionTimeout' => ({required Object context}) => '加载 ${context} 时连接超时',
'errors.connectionFailed' => '无法连接到媒体服务器',
@@ -2441,6 +2551,7 @@ extension on TranslationsZh {
'errors.failedToDeleteProfile' => ({required Object displayName}) => '无法删除 ${displayName}',
'errors.failedToRate' => '无法更新评分',
'libraries.title' => '媒体库',
'libraries.fallbackTitle' => '媒体库',
'libraries.scanLibraryFiles' => '扫描媒体库文件',
'libraries.scanLibrary' => '扫描媒体库',
'libraries.analyze' => '分析',
@@ -2541,6 +2652,12 @@ extension on TranslationsZh {
'liveTv.noChannels' => '没有可用的频道',
'liveTv.noDvr' => '没有服务器配置了DVR',
'liveTv.noPrograms' => '没有可用的节目数据',
'liveTv.liveStreamFailed' => '直播流失败',
'liveTv.unknownProgram' => '未知节目',
'liveTv.unknownHub' => '未知',
'liveTv.unknownError' => '未知错误',
'liveTv.channelNumber' => ({required Object number}) => '频道 ${number}',
'liveTv.unknownChannel' => '未知频道',
'liveTv.live' => '直播',
'liveTv.reloadGuide' => '重新加载节目指南',
'liveTv.now' => '现在',
@@ -2711,12 +2828,21 @@ extension on TranslationsZh {
'downloads.deleteDownload' => '删除下载',
'downloads.retryDownload' => '重试下载',
'downloads.downloadQueued' => '下载已排队',
'downloads.downloadResumed' => '下载已继续',
'downloads.serverErrorBitrate' => '服务器错误:文件可能超过远程比特率限制',
'downloads.episodesQueued' => ({required Object count}) => '${count} 集已加入下载队列',
'downloads.downloadDeleted' => '下载已删除',
'downloads.deleteConfirm' => ({required Object title}) => '要从此设备删除“${title}”吗?',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})',
'downloads.cancelledDownloadTitle' => '已取消的下载',
'downloads.cancelledDownloadMessage' => '此下载已取消。你想怎么做?',
'downloads.allEpisodesAlreadyDownloaded' => '所有剧集均已下载',
'downloads.resumeDownload' => '继续下载',
'downloads.cancelledDownload' => '已取消的下载',
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}(正在同步 ${status}',
'downloads.downloadedFileClickToComplete' => ({required Object file}) => '已下载 ${file} — 点击完成',
'downloads.partialDownloadClickToComplete' => '已部分下载 — 点击完成',
'downloads.deleting' => '正在删除...',
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})',
'downloads.queuedTooltip' => '已排队',
'downloads.queuedFilesTooltip' => ({required Object files}) => '已排队:${files}',
'downloads.downloadingTooltip' => '正在下载...',
@@ -2773,6 +2899,7 @@ extension on TranslationsZh {
'shaders.deleteShaderConfirm' => ({required Object name}) => '删除"${name}"',
'companionRemote.title' => '伴侣遥控',
'companionRemote.connectedTo' => ({required Object name}) => '已连接到 ${name}',
'companionRemote.unknownDevice' => '未知设备',
'companionRemote.session.startingServer' => '正在启动远程服务器...',
'companionRemote.session.failedToCreate' => '启动远程服务器失败:',
'companionRemote.session.hostAddress' => '主机地址',
@@ -2816,6 +2943,8 @@ extension on TranslationsZh {
'companionRemote.remote.tabSettings' => '设置',
'companionRemote.remote.previous' => '上一个',
'companionRemote.remote.playPause' => '播放/暂停',
_ => null,
} ?? switch (path) {
'companionRemote.remote.next' => '下一个',
'companionRemote.remote.seekBack' => '后退',
'companionRemote.remote.stop' => '停止',
@@ -2827,6 +2956,12 @@ extension on TranslationsZh {
'companionRemote.remote.subtitles' => '字幕',
'companionRemote.remote.audio' => '音频',
'companionRemote.remote.searchHint' => '在桌面上搜索...',
'companionRemote.errors.noNetworkInterface' => '未找到网络接口',
'companionRemote.errors.authenticationFailed' => '身份验证失败',
'companionRemote.errors.joinTimedOut' => '加入会话超时',
'companionRemote.errors.failedToConnectAnyAddress' => '无法连接到任何地址',
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => '${attempts} 次尝试后连接丢失',
'companionRemote.errors.connectionLost' => '连接丢失',
'videoSettings.playbackSpeed' => '播放速度',
'videoSettings.zoom' => '缩放',
'videoSettings.sleepTimer' => '睡眠定时器',
@@ -2837,6 +2972,40 @@ extension on TranslationsZh {
'videoSettings.performanceOverlay' => '性能监控',
'videoSettings.audioPassthrough' => '音频直通',
'videoSettings.audioNormalization' => '响度标准化',
'performanceOverlay.color' => '颜色',
'performanceOverlay.performance' => '性能',
'performanceOverlay.buffer' => '缓冲',
'performanceOverlay.app' => '应用',
'performanceOverlay.decoder' => '解码器',
'performanceOverlay.rawDecoder' => '原始解码器',
'performanceOverlay.tunneling' => '隧道',
'performanceOverlay.aspect' => '宽高比',
'performanceOverlay.rotation' => '旋转',
'performanceOverlay.dvSource' => 'DV 来源',
'performanceOverlay.dvPath' => 'DV 路径',
'performanceOverlay.p7Conversion' => 'P7 转换',
'performanceOverlay.sampleRate' => '采样率',
'performanceOverlay.pixelFormat' => '像素格式',
'performanceOverlay.hwFormat' => '硬件格式',
'performanceOverlay.matrix' => '矩阵',
'performanceOverlay.primaries' => '基色',
'performanceOverlay.transfer' => '传输',
'performanceOverlay.renderFps' => '渲染 FPS',
'performanceOverlay.displayFps' => '显示 FPS',
'performanceOverlay.avSync' => 'A/V 同步',
'performanceOverlay.dropped' => '丢帧',
'performanceOverlay.dvRpus' => 'DV RPU',
'performanceOverlay.dvRpuAverage' => 'DV RPU 平均',
'performanceOverlay.dvSampleAverage' => 'DV 采样平均',
'performanceOverlay.maxLuma' => '最大亮度',
'performanceOverlay.minLuma' => '最小亮度',
'performanceOverlay.maxCll' => 'MaxCLL',
'performanceOverlay.maxFall' => 'MaxFALL',
'performanceOverlay.cacheUsed' => '已用缓存',
'performanceOverlay.speed' => '速度',
'performanceOverlay.player' => '播放器',
'performanceOverlay.memory' => '内存',
'performanceOverlay.uiFps' => 'UI FPS',
'externalPlayer.title' => '外部播放器',
'externalPlayer.useExternalPlayer' => '使用外部播放器',
'externalPlayer.useExternalPlayerDescription' => '在其他应用中打开视频',
@@ -2845,12 +3014,11 @@ extension on TranslationsZh {
'externalPlayer.systemDefault' => '系统默认',
'externalPlayer.addCustomPlayer' => '添加自定义播放器',
'externalPlayer.playerName' => '播放器名称',
'externalPlayer.playerNameHint' => '我的播放器',
'externalPlayer.playerCommand' => '命令',
'externalPlayer.playerPackage' => '包名',
'externalPlayer.playerUrlScheme' => 'URL 方案',
'externalPlayer.off' => '关闭',
_ => null,
} ?? switch (path) {
'externalPlayer.launchFailed' => '无法打开外部播放器',
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} 未安装',
'externalPlayer.playInExternalPlayer' => '在外部播放器中播放',
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "Mer",
"mute": "Ljud av",
"ok": "OK",
"off": "Av",
"seasonNumber": "Säsong ${number}",
"chapterNumber": "Kapitel ${number}",
"reconnect": "Återanslut",
"exit": "Avsluta",
"viewAll": "Visa alla",
@@ -257,6 +260,10 @@
"dvConversionNative": "Inbyggt / inaktiverat",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Använd enhetens kapabilitetsdetektering och normalt reservbeteende",
"dvConversionNativeDescription": "Tvinga native DV7 och undertryck försök till DV-konvertering",
"dvConversionDv81Description": "Tvinga inline RPU-konvertering till Dolby Vision profil 8.1",
"dvConversionHevcStripDescription": "Ta bort Dolby Vision RPU/EL-lager och presentera vanlig HEVC",
"requireProfileSelectionOnOpen": "Fråga efter profil vid appstart",
"requireProfileSelectionOnOpenDescription": "Visa profilval varje gång appen öppnas",
"forceTvMode": "Tvinga TV-läge",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "Sätt genväg för ${actionName}",
"clearShortcut": "Rensa genväg",
"noShortcutSet": "Ingen genväg angiven",
"currentShortcut": "Aktuell genväg:",
"actions": {
"playPause": "Spela/Pausa",
"volumeUp": "Höj volym",
@@ -352,6 +361,7 @@
"goToSeries": "Gå till serie",
"goToSeason": "Gå till säsong",
"shufflePlay": "Blanda uppspelning",
"shuffleNotAvailableOffline": "Blandad uppspelning är inte tillgänglig offline",
"fileInfo": "Filinformation",
"deleteFromServer": "Ta bort från servern",
"confirmDelete": "Ta bort detta media och dess filer från din server?",
@@ -470,6 +480,10 @@
"searchSubtitles": "Sök undertexter",
"language": "Språk",
"noSubtitlesFound": "Inga undertexter hittades",
"downloadedSubtitle": "Nedladdad",
"noSubtitlesAvailable": "Inga undertexter tillgängliga",
"noAudioTracksAvailable": "Inga ljudspår tillgängliga",
"noTracksAvailable": "Inga spår tillgängliga",
"subtitleDownloaded": "Undertext nedladdad",
"subtitleDownloadFailed": "Kunde inte ladda ner undertext",
"searchLanguages": "Sök språk..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN-skydd (valfritt)",
"pinExplain": "4-siffrig PIN krävs för att byta profiler.",
"continueButton": "Fortsätt",
"pinsDontMatch": "PIN-koderna stämmer inte överens"
"pinsDontMatch": "PIN-koderna stämmer inte överens",
"initializeServicesFailed": "Kunde inte initiera profiltjänster"
},
"connections": {
"sectionTitle": "Anslutningar",
@@ -647,7 +662,8 @@
"rating": "Åldersgräns",
"movie": "Film",
"tvShow": "TV-serie",
"minutesLeft": "${minutes} min kvar"
"minutesLeft": "${minutes} min kvar",
"moreLikeThis": "Mer som detta"
},
"errors": {
"searchFailed": "Sökning misslyckades: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "Bibliotek",
"fallbackTitle": "Bibliotek",
"scanLibraryFiles": "Skanna biblioteksfiler",
"scanLibrary": "Skanna bibliotek",
"analyze": "Analysera",
@@ -788,6 +805,12 @@
"noChannels": "Inga kanaler tillgängliga",
"noDvr": "Ingen DVR konfigurerad på någon server",
"noPrograms": "Ingen programdata tillgänglig",
"liveStreamFailed": "Liveström misslyckades",
"unknownProgram": "Okänt program",
"unknownHub": "Okänt",
"unknownError": "Okänt fel",
"channelNumber": "Kanal ${number}",
"unknownChannel": "Okänd kanal",
"live": "LIVE",
"reloadGuide": "Ladda om programguide",
"now": "Nu",
@@ -966,12 +989,21 @@
"deleteDownload": "Ta bort nedladdning",
"retryDownload": "Försök igen",
"downloadQueued": "Nedladdning köad",
"downloadResumed": "Nedladdning återupptagen",
"serverErrorBitrate": "Serverfel: filen kan överskrida gränsen för fjärrbitrate",
"episodesQueued": "${count} avsnitt köade för nedladdning",
"downloadDeleted": "Nedladdning borttagen",
"deleteConfirm": "Ta bort \"${title}\" från den här enheten?",
"deletingWithProgress": "Tar bort ${title}... (${current} av ${total})",
"cancelledDownloadTitle": "Avbruten nedladdning",
"cancelledDownloadMessage": "Den här nedladdningen avbröts. Vad vill du göra?",
"allEpisodesAlreadyDownloaded": "Alla avsnitt är redan nedladdade",
"resumeDownload": "Återuppta nedladdning",
"cancelledDownload": "Avbruten nedladdning",
"syncingFile": "${file} (synkroniserar ${status})",
"downloadedFileClickToComplete": "${file} nedladdad klicka för att slutföra",
"partialDownloadClickToComplete": "Delvis nedladdad klicka för att slutföra",
"deleting": "Tar bort...",
"deletingWithProgress": "Tar bort ${title}... (${current} av ${total})",
"queuedTooltip": "I kö",
"queuedFilesTooltip": "I kö: ${files}",
"downloadingTooltip": "Laddar ned...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "Fjärrkontroll",
"connectedTo": "Ansluten till ${name}",
"unknownDevice": "Okänd enhet",
"session": {
"startingServer": "Startar fjärrserver...",
"failedToCreate": "Kunde inte starta fjärrserver:",
@@ -1091,6 +1124,14 @@
"subtitles": "Undertexter",
"audio": "Ljud",
"searchHint": "Sök på datorn..."
},
"errors": {
"noNetworkInterface": "Inget nätverksgränssnitt hittades",
"authenticationFailed": "Autentisering misslyckades",
"joinTimedOut": "Tidsgräns vid anslutning till session",
"failedToConnectAnyAddress": "Kunde inte ansluta till någon adress",
"connectionLostAfterAttempts": "Anslutning förlorad efter ${attempts} försök",
"connectionLost": "Anslutning förlorad"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "Ljudgenomkoppling",
"audioNormalization": "Normalisera ljudstyrka"
},
"performanceOverlay": {
"color": "Färg",
"performance": "Prestanda",
"buffer": "Buffert",
"app": "App",
"decoder": "Dekoder",
"rawDecoder": "Rå dekoder",
"tunneling": "Tunneling",
"aspect": "Bildformat",
"rotation": "Rotation",
"dvSource": "DV-källa",
"dvPath": "DV-sökväg",
"p7Conversion": "P7-konv.",
"sampleRate": "Samplingsfrekvens",
"pixelFormat": "Pixelformat",
"hwFormat": "HW-format",
"matrix": "Matris",
"primaries": "Primärfärger",
"transfer": "Transfer",
"renderFps": "Render-FPS",
"displayFps": "Skärm-FPS",
"avSync": "A/V-synk",
"dropped": "Tappade",
"dvRpus": "DV RPU:er",
"dvRpuAverage": "DV RPU snitt",
"dvSampleAverage": "DV-sample snitt",
"maxLuma": "Max luma",
"minLuma": "Min luma",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache använd",
"speed": "Hastighet",
"player": "Spelare",
"memory": "Minne",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "Extern spelare",
"useExternalPlayer": "Använd extern spelare",
@@ -1114,6 +1191,7 @@
"systemDefault": "Systemstandard",
"addCustomPlayer": "Lägg till anpassad spelare",
"playerName": "Spelarnamn",
"playerNameHint": "Min spelare",
"playerCommand": "Kommando",
"playerPackage": "Paketnamn",
"playerUrlScheme": "URL-schema",
+81 -3
View File
@@ -52,6 +52,9 @@
"settings": "设置",
"mute": "静音",
"ok": "确定",
"off": "关闭",
"seasonNumber": "第${number}季",
"chapterNumber": "章节 ${number}",
"reconnect": "重新连接",
"exit": "退出",
"viewAll": "查看全部",
@@ -257,6 +260,10 @@
"dvConversionNative": "原生 / 禁用",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "使用设备能力检测和正常回退行为",
"dvConversionNativeDescription": "强制原生 DV7 并抑制 DV 转换重试",
"dvConversionDv81Description": "强制内联 RPU 转换为 Dolby Vision Profile 8.1",
"dvConversionHevcStripDescription": "移除 Dolby Vision RPU/EL 层并呈现普通 HEVC",
"requireProfileSelectionOnOpen": "打开应用时询问配置文件",
"requireProfileSelectionOnOpenDescription": "每次打开应用时显示配置文件选择",
"forceTvMode": "强制 TV 模式",
@@ -290,6 +297,8 @@
"hotkeys": {
"setShortcutFor": "为 ${actionName} 设置快捷键",
"clearShortcut": "清除快捷键",
"noShortcutSet": "未设置快捷键",
"currentShortcut": "当前快捷键:",
"actions": {
"playPause": "播放/暂停",
"volumeUp": "增大音量",
@@ -352,6 +361,7 @@
"goToSeries": "转到系列",
"goToSeason": "转到季",
"shufflePlay": "随机播放",
"shuffleNotAvailableOffline": "离线时无法随机播放",
"fileInfo": "文件信息",
"deleteFromServer": "从服务器删除",
"confirmDelete": "要从服务器删除此媒体及其文件吗?",
@@ -470,6 +480,10 @@
"searchSubtitles": "搜索字幕",
"language": "语言",
"noSubtitlesFound": "未找到字幕",
"downloadedSubtitle": "已下载",
"noSubtitlesAvailable": "没有可用字幕",
"noAudioTracksAvailable": "没有可用音轨",
"noTracksAvailable": "没有可用轨道",
"subtitleDownloaded": "字幕已下载",
"subtitleDownloadFailed": "字幕下载失败",
"searchLanguages": "搜索语言..."
@@ -615,7 +629,8 @@
"pinProtectionOptional": "PIN 保护(可选)",
"pinExplain": "切换个人资料需要 4 位 PIN。",
"continueButton": "继续",
"pinsDontMatch": "PIN 不匹配"
"pinsDontMatch": "PIN 不匹配",
"initializeServicesFailed": "无法初始化个人资料服务"
},
"connections": {
"sectionTitle": "连接",
@@ -647,7 +662,8 @@
"rating": "年龄分级",
"movie": "电影",
"tvShow": "电视剧",
"minutesLeft": "剩余 ${minutes} 分钟"
"minutesLeft": "剩余 ${minutes} 分钟",
"moreLikeThis": "更多类似内容"
},
"errors": {
"searchFailed": "搜索失败: ${error}",
@@ -666,6 +682,7 @@
},
"libraries": {
"title": "媒体库",
"fallbackTitle": "媒体库",
"scanLibraryFiles": "扫描媒体库文件",
"scanLibrary": "扫描媒体库",
"analyze": "分析",
@@ -788,6 +805,12 @@
"noChannels": "没有可用的频道",
"noDvr": "没有服务器配置了DVR",
"noPrograms": "没有可用的节目数据",
"liveStreamFailed": "直播流失败",
"unknownProgram": "未知节目",
"unknownHub": "未知",
"unknownError": "未知错误",
"channelNumber": "频道 ${number}",
"unknownChannel": "未知频道",
"live": "直播",
"reloadGuide": "重新加载节目指南",
"now": "现在",
@@ -966,12 +989,21 @@
"deleteDownload": "删除下载",
"retryDownload": "重试下载",
"downloadQueued": "下载已排队",
"downloadResumed": "下载已继续",
"serverErrorBitrate": "服务器错误:文件可能超过远程比特率限制",
"episodesQueued": "${count} 集已加入下载队列",
"downloadDeleted": "下载已删除",
"deleteConfirm": "要从此设备删除“${title}”吗?",
"deletingWithProgress": "正在删除 ${title}... (${current}/${total})",
"cancelledDownloadTitle": "已取消的下载",
"cancelledDownloadMessage": "此下载已取消。你想怎么做?",
"allEpisodesAlreadyDownloaded": "所有剧集均已下载",
"resumeDownload": "继续下载",
"cancelledDownload": "已取消的下载",
"syncingFile": "${file}(正在同步 ${status}",
"downloadedFileClickToComplete": "已下载 ${file} — 点击完成",
"partialDownloadClickToComplete": "已部分下载 — 点击完成",
"deleting": "正在删除...",
"deletingWithProgress": "正在删除 ${title}... (${current}/${total})",
"queuedTooltip": "已排队",
"queuedFilesTooltip": "已排队:${files}",
"downloadingTooltip": "正在下载...",
@@ -1032,6 +1064,7 @@
"companionRemote": {
"title": "伴侣遥控",
"connectedTo": "已连接到 ${name}",
"unknownDevice": "未知设备",
"session": {
"startingServer": "正在启动远程服务器...",
"failedToCreate": "启动远程服务器失败:",
@@ -1091,6 +1124,14 @@
"subtitles": "字幕",
"audio": "音频",
"searchHint": "在桌面上搜索..."
},
"errors": {
"noNetworkInterface": "未找到网络接口",
"authenticationFailed": "身份验证失败",
"joinTimedOut": "加入会话超时",
"failedToConnectAnyAddress": "无法连接到任何地址",
"connectionLostAfterAttempts": "${attempts} 次尝试后连接丢失",
"connectionLost": "连接丢失"
}
},
"videoSettings": {
@@ -1105,6 +1146,42 @@
"audioPassthrough": "音频直通",
"audioNormalization": "响度标准化"
},
"performanceOverlay": {
"color": "颜色",
"performance": "性能",
"buffer": "缓冲",
"app": "应用",
"decoder": "解码器",
"rawDecoder": "原始解码器",
"tunneling": "隧道",
"aspect": "宽高比",
"rotation": "旋转",
"dvSource": "DV 来源",
"dvPath": "DV 路径",
"p7Conversion": "P7 转换",
"sampleRate": "采样率",
"pixelFormat": "像素格式",
"hwFormat": "硬件格式",
"matrix": "矩阵",
"primaries": "基色",
"transfer": "传输",
"renderFps": "渲染 FPS",
"displayFps": "显示 FPS",
"avSync": "A/V 同步",
"dropped": "丢帧",
"dvRpus": "DV RPU",
"dvRpuAverage": "DV RPU 平均",
"dvSampleAverage": "DV 采样平均",
"maxLuma": "最大亮度",
"minLuma": "最小亮度",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "已用缓存",
"speed": "速度",
"player": "播放器",
"memory": "内存",
"uiFps": "UI FPS"
},
"externalPlayer": {
"title": "外部播放器",
"useExternalPlayer": "使用外部播放器",
@@ -1114,6 +1191,7 @@
"systemDefault": "系统默认",
"addCustomPlayer": "添加自定义播放器",
"playerName": "播放器名称",
"playerNameHint": "我的播放器",
"playerCommand": "命令",
"playerPackage": "包名",
"playerUrlScheme": "URL 方案",
+2 -1
View File
@@ -1,3 +1,4 @@
import '../i18n/strings.g.dart';
import '../utils/codec_utils.dart';
import '../utils/track_label_builder.dart' show TrackLabelBuilder, buildTrackLabel;
import 'media_display_criteria.dart';
@@ -232,7 +233,7 @@ class MediaChapter {
return chapters;
}
String get label => title ?? 'Chapter ${(index ?? 0) + 1}';
String get label => title ?? t.common.chapterNumber(number: (index ?? 0) + 1);
Duration get startTime => Duration(milliseconds: startTimeOffset ?? 0);
Duration? get endTime => endTimeOffset != null ? Duration(milliseconds: endTimeOffset!) : null;
+2 -1
View File
@@ -1,5 +1,6 @@
import 'package:json_annotation/json_annotation.dart';
import '../i18n/strings.g.dart';
import '../utils/codec_utils.dart';
import '../utils/formatters.dart';
import '../utils/json_utils.dart';
@@ -88,7 +89,7 @@ class MediaVersion {
parts.add(container!.toUpperCase());
}
String label = parts.isNotEmpty ? parts.join(' ') : 'Unknown';
String label = parts.isNotEmpty ? parts.join(' ') : t.common.unknown;
if (bitrate != null && bitrate! > 0) {
label += ' (${ByteFormatter.formatBitrate(bitrate!)})';
+3 -1
View File
@@ -1,5 +1,6 @@
import 'package:json_annotation/json_annotation.dart';
import '../i18n/strings.g.dart';
import '../utils/json_utils.dart';
import 'mixins/multi_server_fields.dart';
@@ -133,7 +134,8 @@ class LiveTvChannel with MultiServerFields {
}
/// Display name: prefer callSign, fallback to title
String get displayName => callSign ?? title ?? 'Channel $number';
String get displayName =>
callSign ?? title ?? (number == null ? t.liveTv.unknownChannel : t.liveTv.channelNumber(number: number!));
}
/// A channel entry in the Plex cloud favorites list.
+2 -1
View File
@@ -1,3 +1,4 @@
import '../i18n/strings.g.dart';
import '../utils/json_utils.dart';
import '../media/ids.dart';
@@ -78,7 +79,7 @@ class LiveTvProgram {
key: json['key'] as String?,
ratingKey: json['ratingKey'] as String?,
guid: json['guid'] as String?,
title: json['title'] as String? ?? 'Unknown Program',
title: json['title'] as String? ?? t.liveTv.unknownProgram,
summary: json['summary'] as String?,
type: json['type'] as String?,
year: flexibleInt(json['year']),
+8 -4
View File
@@ -6,6 +6,7 @@ import 'package:device_info_plus/device_info_plus.dart';
import '../connection/connection.dart';
import '../connection/connection_registry.dart';
import '../i18n/strings.g.dart';
import '../models/companion_remote/remote_command.dart';
import '../models/companion_remote/remote_session.dart';
import '../models/plex/plex_home.dart';
@@ -29,7 +30,7 @@ class CompanionRemoteProvider with ChangeNotifier, DisposableChangeNotifierMixin
RemoteSession? _session;
CompanionRemotePeerService? _peerService;
LanDiscoveryService? _discoveryService;
String _deviceName = 'Unknown Device';
String _deviceName = t.companionRemote.unknownDevice;
String _platform = 'unknown';
bool _isPlayerActive = false;
@@ -99,7 +100,7 @@ class CompanionRemoteProvider with ChangeNotifier, DisposableChangeNotifierMixin
}
} catch (e) {
appLogger.e('CompanionRemote: Failed to get device info', error: e);
_deviceName = 'Unknown Device';
_deviceName = t.companionRemote.unknownDevice;
_platform = Platform.operatingSystem;
}
@@ -724,7 +725,7 @@ class CompanionRemoteProvider with ChangeNotifier, DisposableChangeNotifierMixin
appLogger.w('CompanionRemote: Max reconnect attempts reached');
_session = _session?.copyWith(
status: RemoteSessionStatus.error,
errorMessage: 'Connection lost after $_maxReconnectAttempts attempts',
errorMessage: t.companionRemote.errors.connectionLostAfterAttempts(attempts: _maxReconnectAttempts),
);
_reconnectAttempts = 0;
safeNotifyListeners();
@@ -742,7 +743,10 @@ class CompanionRemoteProvider with ChangeNotifier, DisposableChangeNotifierMixin
Future<void> _attemptReconnect() async {
if (_lastHostAddresses == null || !isCryptoReady) {
appLogger.w('CompanionRemote: No stored context for reconnect');
_session = _session?.copyWith(status: RemoteSessionStatus.error, errorMessage: 'Connection lost');
_session = _session?.copyWith(
status: RemoteSessionStatus.error,
errorMessage: t.companionRemote.errors.connectionLost,
);
safeNotifyListeners();
return;
}
+3 -2
View File
@@ -2,6 +2,7 @@ import 'dart:async';
import '../media/ids.dart';
import 'dart:io';
import 'package:flutter/foundation.dart';
import '../i18n/strings.g.dart';
import '../media/media_backend.dart';
import '../media/media_item.dart';
import '../media/media_item_types.dart';
@@ -527,7 +528,7 @@ class DownloadProvider extends ChangeNotifier with DisposableChangeNotifierMixin
id: showRatingKey,
backend: meta.backend,
kind: MediaKind.show,
title: meta.grandparentTitle ?? 'Unknown Show',
title: meta.grandparentTitle ?? t.common.unknown,
thumbPath: meta.grandparentThumbPath,
artPath: meta.grandparentArtPath,
serverId: meta.serverId,
@@ -1721,7 +1722,7 @@ class DownloadProvider extends ChangeNotifier with DisposableChangeNotifierMixin
/// Exception thrown when download is blocked due to cellular-only setting
class CellularDownloadBlockedException implements Exception {
final String message = 'Downloads are disabled on cellular data';
String get message => t.settings.cellularDownloadBlocked;
@override
String toString() => message;
+2 -1
View File
@@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart';
import '../connection/connection.dart';
import '../connection/connection_registry.dart';
import '../i18n/strings.g.dart';
import '../media/media_server_user_profile.dart';
import '../mixins/disposable_change_notifier_mixin.dart';
import '../profiles/active_profile_provider.dart';
@@ -133,7 +134,7 @@ class UserProfileProvider extends ChangeNotifier with DisposableChangeNotifierMi
_isInitialized = true;
} catch (e) {
appLogger.e('UserProfileProvider: critical initialization failure', error: e);
_setError('Failed to initialize profile services');
_setError(t.profiles.initializeServicesFailed);
_authService = null;
_storageService = null;
_isInitialized = false;
+2 -2
View File
@@ -833,7 +833,7 @@ class _DiscoverScreenState extends State<DiscoverScreen>
appLogger.e('Failed to load discover content', error: e);
if (!mounted) return;
setState(() {
_errorMessage = 'Failed to load content: $e';
_errorMessage = t.errors.failedToLoad(context: t.discover.title, error: e.toString());
_isLoading = false;
_areHubsLoading = false;
});
@@ -1258,7 +1258,7 @@ class _DiscoverScreenState extends State<DiscoverScreen>
context,
MaterialPageRoute(builder: (_) => const WatchTogetherScreen()),
),
tooltip: 'Watch Together',
tooltip: t.watchTogether.title,
),
if (watchTogether.isInSession && watchTogether.participantCount > 1)
Positioned(
+14 -11
View File
@@ -383,7 +383,7 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
final client = _getMediaClientForMetadata(context);
if (client == null) return;
await downloadProvider.resumeDownload(globalKey, client);
if (mounted) showAppSnackBar(context, 'Download resumed');
if (mounted) showAppSnackBar(context, t.downloads.downloadResumed);
return;
}
@@ -407,10 +407,10 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
if (progress?.status == DownloadStatus.cancelled) {
final retry = await showConfirmDialog(
context,
title: 'Cancelled Download',
message: 'This download was cancelled. What would you like to do?',
title: t.downloads.cancelledDownloadTitle,
message: t.downloads.cancelledDownloadMessage,
cancelText: t.common.delete,
confirmText: 'Retry',
confirmText: t.common.retry,
);
if (!retry && mounted) {
@@ -448,7 +448,7 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
final count = await downloadProvider.queueMissingEpisodes(metadata, client, versionConfig: versionConfig);
if (mounted) {
final message = count > 0 ? t.downloads.episodesQueued(count: count) : 'All episodes already downloaded';
final message = count > 0 ? t.downloads.episodesQueued(count: count) : t.downloads.allEpisodesAlreadyDownloaded;
showAppSnackBar(context, message);
}
return;
@@ -582,7 +582,7 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
return IconButton.filledTonal(
onPressed: () => unawaited(_handleDownloadButtonPressed(metadata)),
icon: const AppIcon(Symbols.pause_circle_outline_rounded, fill: 1),
tooltip: 'Resume download',
tooltip: t.downloads.resumeDownload,
iconSize: iconSize,
style: actionButtonStyle(foregroundColor: Colors.amber, showFocus: showFocus),
);
@@ -593,7 +593,7 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
return IconButton.filledTonal(
onPressed: () => unawaited(_handleDownloadButtonPressed(metadata)),
icon: const AppIcon(Symbols.error_outline_rounded, fill: 1),
tooltip: 'Retry download',
tooltip: t.downloads.retryDownload,
iconSize: iconSize,
style: actionButtonStyle(foregroundColor: Colors.red, showFocus: showFocus),
);
@@ -604,7 +604,7 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
return IconButton.filledTonal(
onPressed: () => unawaited(_handleDownloadButtonPressed(metadata)),
icon: const AppIcon(Symbols.cancel_rounded, fill: 1),
tooltip: 'Cancelled download',
tooltip: t.downloads.cancelledDownload,
iconSize: iconSize,
style: actionButtonStyle(foregroundColor: Colors.grey, showFocus: showFocus),
);
@@ -620,7 +620,10 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
final syncRule = downloadProvider.getSyncRule(ruleKey);
final isEnabled = syncRule?.enabled ?? true;
final tooltip = currentFile != null
? '$currentFile (syncing ${t.downloads.keepNUnwatched(count: syncRule?.episodeCount.toString() ?? '?')})'
? t.downloads.syncingFile(
file: currentFile,
status: t.downloads.keepNUnwatched(count: syncRule?.episodeCount.toString() ?? '?'),
)
: t.downloads.keepSynced;
return IconButton.filledTonal(
@@ -633,8 +636,8 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState {
}
final tooltip = currentFile != null
? 'Downloaded $currentFile - Click to complete'
: 'Partially downloaded - Click to complete';
? t.downloads.downloadedFileClickToComplete(file: currentFile)
: t.downloads.partialDownloadClickToComplete;
return IconButton.filledTonal(
onPressed: () => unawaited(_handleDownloadButtonPressed(metadata)),
+2 -2
View File
@@ -1666,7 +1666,7 @@ class _MediaDetailScreenState extends State<MediaDetailScreen>
id: seasonId,
backend: _metadata.backend,
kind: MediaKind.season,
title: firstEp.parentTitle ?? 'Season ${entry.key}',
title: firstEp.parentTitle ?? t.common.seasonNumber(number: entry.key),
index: entry.key,
leafCount: entry.value.length,
thumbPath: firstEp.parentThumbPath,
@@ -3010,7 +3010,7 @@ class _MediaDetailScreenState extends State<MediaDetailScreen>
Future<void> _handleShufflePlayWithQueue(BuildContext context, MediaItem metadata) async {
if (widget.isOffline) {
if (context.mounted) {
showErrorSnackBar(context, 'Shuffle not available offline');
showErrorSnackBar(context, t.mediaMenu.shuffleNotAvailableOffline);
}
return;
}
@@ -136,7 +136,7 @@ class _AddPlexAccountScreenState extends State<AddPlexAccountScreen> with AsyncF
},
);
if (mounted && completed != true) {
throw StateError(errorText ?? t.addServer.failedToRegisterAccount(error: 'Unknown error'));
throw StateError(errorText ?? t.addServer.failedToRegisterAccount(error: t.common.unknown));
}
}
@@ -187,7 +187,10 @@ class _AddCustomPlayerDialogState extends State<_AddCustomPlayerDialog> {
children: [
FocusableTextField(
controller: _nameController,
decoration: InputDecoration(labelText: t.externalPlayer.playerName, hintText: 'My Player'),
decoration: InputDecoration(
labelText: t.externalPlayer.playerName,
hintText: t.externalPlayer.playerNameHint,
),
autofocus: true,
textInputAction: TextInputAction.next,
onSubmitted: (_) => _valueFocusNode.requestFocus(),
@@ -43,7 +43,10 @@ class _HotKeyRecorderWidgetState extends State<HotKeyRecorderWidget> {
mainAxisSize: .min,
crossAxisAlignment: .start,
children: [
Text('Current shortcut:', style: Theme.of(context).textTheme.bodyMedium?.copyWith(fontWeight: .bold)),
Text(
t.hotkeys.currentShortcut,
style: Theme.of(context).textTheme.bodyMedium?.copyWith(fontWeight: .bold),
),
const SizedBox(height: 6),
Container(
width: double.infinity,
@@ -232,7 +232,9 @@ class _PlaybackSettingsScreenState extends State<PlaybackSettingsScreen> {
return SettingNavigationTile(
icon: Symbols.open_in_new_rounded,
title: t.externalPlayer.title,
subtitle: useExt ? player.name : t.externalPlayer.off,
subtitle: useExt
? (player.id == 'system_default' ? t.externalPlayer.systemDefault : player.name)
: t.externalPlayer.off,
destinationBuilder: (_) => const ExternalPlayerScreen(),
);
},
+4 -4
View File
@@ -99,7 +99,7 @@ extension _VideoPlayerLiveTvMethods on VideoPlayerScreenState {
final dvrKey = _liveDvrKey;
if (channels == null || channelIndex < 0 || channelIndex >= channels.length || dvrKey == null) {
appLogger.w('Cannot retry live stream — missing session info');
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? 'Live stream failed'));
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? t.liveTv.liveStreamFailed));
unawaited(_handleBackButton());
return;
}
@@ -109,7 +109,7 @@ extension _VideoPlayerLiveTvMethods on VideoPlayerScreenState {
// Re-tune to get a fresh capture session — the previous one is dead.
final tuneResult = await client.tuneChannel(dvrKey, channel.key);
if (tuneResult == null || !mounted) {
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? 'Live stream failed'));
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? t.liveTv.liveStreamFailed));
unawaited(_handleBackButton());
return;
}
@@ -126,7 +126,7 @@ extension _VideoPlayerLiveTvMethods on VideoPlayerScreenState {
directStreamAudio: dsa,
);
if (streamPath == null || !mounted) {
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? 'Live stream failed'));
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? t.liveTv.liveStreamFailed));
unawaited(_handleBackButton());
return;
}
@@ -154,7 +154,7 @@ extension _VideoPlayerLiveTvMethods on VideoPlayerScreenState {
}
appLogger.w('Cannot retry live stream — no compatible client/URL available');
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? 'Live stream failed'));
showGlobalErrorSnackBar(_redactPlayerError(_lastLogError ?? t.liveTv.liveStreamFailed));
unawaited(_handleBackButton());
}
+3 -3
View File
@@ -1060,9 +1060,9 @@ class VideoPlayerScreenState extends State<VideoPlayerScreen> with WidgetsBindin
if (_watchTogetherProvider != null && _watchTogetherProvider!.isInSession && !_watchTogetherProvider!.isHost) {
final confirmed = await showConfirmDialog(
context,
title: 'Leave Session?',
message: 'You will be removed from the session.',
confirmText: 'Leave',
title: t.watchTogether.leaveSessionQuestion,
message: t.watchTogether.leaveSessionConfirm,
confirmText: t.watchTogether.leave,
isDestructive: true,
);
@@ -6,6 +6,7 @@ import 'dart:math';
import 'package:web_socket_channel/io.dart';
import '../../utils/future_extensions.dart';
import '../../i18n/strings.g.dart';
import '../../models/companion_remote/remote_command.dart';
import '../../models/companion_remote/remote_session.dart';
import '../../utils/app_logger.dart';
@@ -97,7 +98,10 @@ class CompanionRemotePeerService with KeepaliveMixin {
final all = [...preferred, ...others];
if (all.isEmpty) {
throw const RemotePeerError(type: RemotePeerErrorType.networkError, message: 'No network interface found');
throw RemotePeerError(
type: RemotePeerErrorType.networkError,
message: t.companionRemote.errors.noNetworkInterface,
);
}
return all;
} catch (e) {
@@ -535,7 +539,10 @@ class CompanionRemotePeerService with KeepaliveMixin {
} else if (json['type'] == 'authFailed') {
if (!completer.isCompleted) {
completer.completeError(
const RemotePeerError(type: RemotePeerErrorType.authFailed, message: 'Authentication failed'),
RemotePeerError(
type: RemotePeerErrorType.authFailed,
message: t.companionRemote.errors.authenticationFailed,
),
);
}
}
@@ -636,11 +643,17 @@ class CompanionRemotePeerService with KeepaliveMixin {
appLogger.w('CompanionRemote: Authentication failed');
if (!completer.isCompleted) {
completer.completeError(
const RemotePeerError(type: RemotePeerErrorType.authFailed, message: 'Authentication failed'),
RemotePeerError(
type: RemotePeerErrorType.authFailed,
message: t.companionRemote.errors.authenticationFailed,
),
);
}
_errorController.add(
const RemotePeerError(type: RemotePeerErrorType.authFailed, message: 'Authentication failed'),
RemotePeerError(
type: RemotePeerErrorType.authFailed,
message: t.companionRemote.errors.authenticationFailed,
),
);
_connectionStateController.add(RemoteSessionStatus.error);
}
@@ -699,7 +712,7 @@ class CompanionRemotePeerService with KeepaliveMixin {
}
_channel = null;
}
throw const RemotePeerError(type: RemotePeerErrorType.timeout, message: 'Timed out joining session');
throw RemotePeerError(type: RemotePeerErrorType.timeout, message: t.companionRemote.errors.joinTimedOut);
},
);
}
@@ -809,9 +822,9 @@ class CompanionRemotePeerService with KeepaliveMixin {
}
if (channels.isEmpty) {
throw const RemotePeerError(
throw RemotePeerError(
type: RemotePeerErrorType.connectionFailed,
message: 'Failed to connect to any address',
message: t.companionRemote.errors.failedToConnectAnyAddress,
);
}
@@ -1209,7 +1209,7 @@ mixin _JellyfinBrowseMethods on MediaServerCacheMixin {
JellyfinMappers.syntheticHub(
mapItem: _mapItem,
identifier: 'item.$id.similar',
title: 'More Like This',
title: t.discover.moreLikeThis,
type: 'mixed',
items: _itemsArray(response.data),
serverId: serverId,
@@ -86,7 +86,7 @@ mixin _JellyfinLiveTvMethods on MediaServerCacheMixin {
key: id,
ratingKey: id,
guid: null,
title: json['Name'] as String? ?? 'Unknown Program',
title: json['Name'] as String? ?? t.liveTv.unknownProgram,
summary: json['Overview'] as String?,
type: 'episode',
year: (json['ProductionYear'] as num?)?.toInt(),
@@ -94,7 +94,7 @@ mixin _JellyfinPlaylistMethods on MediaServerCacheMixin {
return MediaPlaylist(
id: item.id,
backend: MediaBackend.jellyfin,
title: item.title ?? 'Playlist',
title: item.title ?? t.playlists.playlist,
summary: item.summary,
smart: false,
playlistType: _playlistMediaType(item),
@@ -230,7 +230,7 @@ mixin _JellyfinPlaylistMethods on MediaServerCacheMixin {
return MediaPlaylist(
id: id,
backend: MediaBackend.jellyfin,
title: json['Name'] as String? ?? 'Playlist',
title: json['Name'] as String? ?? t.playlists.playlist,
summary: json['Overview'] as String?,
smart: false,
playlistType: (json['MediaType'] as String?)?.toLowerCase() ?? 'video',
+2 -1
View File
@@ -8,6 +8,7 @@ import '../media/media_part.dart';
import '../media/media_role.dart';
import '../media/media_stream.dart';
import '../media/media_version.dart';
import '../i18n/strings.g.dart';
import '../utils/jellyfin_time.dart';
import '../utils/json_utils.dart';
import '../utils/resolution_label.dart';
@@ -237,7 +238,7 @@ class JellyfinMappers {
return MediaLibrary(
id: id,
backend: MediaBackend.jellyfin,
title: view['Name'] as String? ?? 'Library',
title: view['Name'] as String? ?? t.libraries.fallbackTitle,
kind: _libraryKindFromCollectionType(collectionType, view['Type'] as String?),
updatedAt: jellyfinIsoToEpochSeconds(view['DateLastSaved'] as String? ?? view['DateModified'] as String?),
createdAt: jellyfinIsoToEpochSeconds(view['DateCreated'] as String?),
+1 -1
View File
@@ -135,7 +135,7 @@ class KeyboardShortcutsService extends ChangeNotifier {
}
String formatHotkey(HotKey? hotKey) {
if (hotKey == null) return 'No shortcut set';
if (hotKey == null) return t.hotkeys.noShortcutSet;
final isMac = Platform.isMacOS;
+1 -1
View File
@@ -75,7 +75,7 @@ class PipService {
'not_supported' => t.videoControls.pipErrors.notSupported,
'vo_switch_failed' => t.videoControls.pipErrors.voSwitchFailed,
'failed' => t.videoControls.pipErrors.failed,
_ => t.videoControls.pipErrors.unknown(error: errorMessage ?? 'Unknown error'),
_ => t.videoControls.pipErrors.unknown(error: errorMessage ?? t.common.unknown),
};
}
}
+2 -2
View File
@@ -638,7 +638,7 @@ mixin _PlexLiveTvClientMethods on MediaServerCacheMixin {
if (entries.isEmpty) return null;
return LiveTvHubResult(
title: hubJson['title'] as String? ?? 'Unknown',
title: hubJson['title'] as String? ?? t.liveTv.unknownHub,
hubKey: hubJson['key'] as String? ?? '',
entries: entries,
);
@@ -825,7 +825,7 @@ mixin _PlexLiveTvClientMethods on MediaServerCacheMixin {
? int.tryParse(containerStatus)
: null;
if (statusInt != null && statusInt != 0 && statusInt != 200) {
final msg = container['message'] ?? 'Unknown error';
final msg = container['message'] ?? t.liveTv.unknownError;
appLogger.w('Tune channel error: $msg (status: $containerStatus)');
throw Exception(msg);
}
@@ -6,6 +6,7 @@ import 'package:uuid/uuid.dart';
import '../../utils/future_extensions.dart';
import 'package:web_socket_channel/web_socket_channel.dart';
import '../../i18n/strings.g.dart';
import '../../services/base_peer_service.dart';
import '../../utils/app_logger.dart';
import '../models/sync_message.dart';
@@ -214,7 +215,7 @@ class WatchTogetherPeerService with KeepaliveMixin {
case 'error':
final code = msg['code'] as String? ?? 'unknown';
final message = msg['message'] as String? ?? 'Unknown error';
final message = msg['message'] as String? ?? t.common.unknown;
appLogger.e('WatchTogether: Server error: $code - $message');
final error = PeerError(type: PeerErrorType.serverError, message: '$code: $message', serverCode: code);
_safeAdd(_errorController, error);
@@ -400,7 +401,7 @@ class WatchTogetherPeerService with KeepaliveMixin {
await completer.future.timeout(
const Duration(seconds: 10),
onTimeout: () {
throw const PeerError(type: PeerErrorType.timeout, message: 'Timed out joining session');
throw PeerError(type: PeerErrorType.timeout, message: t.watchTogether.failedToJoin);
},
);
+1 -1
View File
@@ -1017,7 +1017,7 @@ void _navigateToSeason(BuildContext context, MediaItem episode, {bool isOffline
id: episode.parentId!,
backend: episode.backend,
kind: MediaKind.season,
title: episode.parentTitle ?? 'Season ${episode.parentIndex ?? ''}',
title: episode.parentTitle ?? t.common.seasonNumber(number: episode.parentIndex ?? ''),
index: episode.parentIndex,
parentId: episode.grandparentId,
thumbPath: episode.parentThumbPath,
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:plezy/widgets/app_icon.dart';
import 'package:material_symbols_icons/symbols.dart';
import '../../../i18n/strings.g.dart';
import '../../../mpv/mpv.dart';
import '../../../widgets/focusable_list_tile.dart';
@@ -8,11 +9,11 @@ class TrackSelectionHelper {
/// Get the appropriate empty message based on track type
static String getEmptyMessage<T>() {
if (T == SubtitleTrack) {
return 'No subtitles available';
return t.videoControls.noSubtitlesAvailable;
} else if (T == AudioTrack) {
return 'No audio tracks available';
return t.videoControls.noAudioTracksAvailable;
}
return 'No tracks available';
return t.videoControls.noTracksAvailable;
}
static Widget buildEmptyState<T>() {
@@ -46,7 +47,7 @@ class TrackSelectionHelper {
return _buildSelectableTile(
context: context,
key: key,
label: 'Off',
label: t.common.off,
isSelected: isSelected,
onTap: onTap,
focusNode: focusNode,
@@ -121,7 +121,7 @@ extension _PlexVideoControlsNavigationMethods on _PlexVideoControlsState {
await widget.player.addSubtitleTrack(
uri: newUrl,
title: newTrack.displayTitle ?? newTrack.language ?? 'Downloaded',
title: newTrack.displayTitle ?? newTrack.language ?? t.videoControls.downloadedSubtitle,
language: newTrack.languageCode,
select: true,
);
@@ -270,7 +270,7 @@ class _SubtitleSearchSheetState extends State<SubtitleSearchSheet> with Controll
focusNode: _titleFocusNode,
decoration: pillInputDecoration(
context,
hintText: widget.mediaTitle ?? 'Title',
hintText: widget.mediaTitle ?? t.metadataEdit.title,
prefixIcon: const Icon(Symbols.search_rounded, size: 20),
),
onChanged: _onTitleChanged,
@@ -347,7 +347,7 @@ class _SubtitleSearchSheetState extends State<SubtitleSearchSheet> with Controll
return FocusableListTile(
focusNode: index == 0 ? _firstResultFocusNode : null,
title: Text(result.title ?? result.displayTitle ?? 'Unknown', maxLines: 1, overflow: .ellipsis),
title: Text(result.title ?? result.displayTitle ?? t.common.unknown, maxLines: 1, overflow: .ellipsis),
subtitle: Text(
result.displayTitle ?? '',
maxLines: 1,
@@ -376,10 +376,10 @@ class _VideoSettingsSheetState extends State<VideoSettingsSheet> {
String _formatDvConversionMode(String mode) {
return switch (_normalizeDvConversionMode(mode)) {
'disabled' => 'Native / Disabled',
'dv81' => 'P7 → P8.1',
'hevc_strip' => 'P7 → HEVC',
_ => 'Auto',
'disabled' => t.settings.dvConversionNative,
'dv81' => t.settings.dvConversionDv81,
'hevc_strip' => t.settings.dvConversionHevcStrip,
_ => t.settings.dvConversionAuto,
};
}
@@ -570,7 +570,9 @@ class _VideoSettingsSheetState extends State<VideoSettingsSheet> {
_SettingsMenuItem(
icon: Symbols.auto_fix_high_rounded,
title: t.shaders.title,
valueText: widget.shaderService!.currentPreset.name,
valueText: widget.shaderService!.currentPreset.id == ShaderPreset.none.id
? t.common.off
: widget.shaderService!.currentPreset.name,
isHighlighted: widget.shaderService!.currentPreset.isEnabled,
onTap: () => _navigateTo(_SettingsView.shader),
),
@@ -608,7 +610,7 @@ class _VideoSettingsSheetState extends State<VideoSettingsSheet> {
if (_showDebugDvConversionMode)
_SettingsMenuItem(
icon: Symbols.hdr_strong_rounded,
title: 'DV Conversion Mode',
title: t.settings.dvConversionMode,
valueText: _formatDvConversionMode(_dvConversionMode),
isHighlighted: _dvConversionMode != 'auto',
onTap: () => _navigateTo(_SettingsView.dvConversion),
@@ -642,11 +644,15 @@ class _VideoSettingsSheetState extends State<VideoSettingsSheet> {
}
Widget _buildDvConversionView() {
const modes = [
(value: 'auto', title: 'Auto', subtitle: 'Use device capability detection and normal fallback behavior'),
(value: 'disabled', title: 'Native / Disabled', subtitle: 'Force native DV7 and suppress DV conversion retry'),
(value: 'dv81', title: 'P7 → P8.1', subtitle: 'Force inline RPU conversion to Dolby Vision profile 8.1'),
(value: 'hevc_strip', title: 'P7 → HEVC', subtitle: 'Strip Dolby Vision RPU/EL layers and present plain HEVC'),
final modes = [
(value: 'auto', title: t.settings.dvConversionAuto, subtitle: t.settings.dvConversionAutoDescription),
(value: 'disabled', title: t.settings.dvConversionNative, subtitle: t.settings.dvConversionNativeDescription),
(value: 'dv81', title: t.settings.dvConversionDv81, subtitle: t.settings.dvConversionDv81Description),
(
value: 'hevc_strip',
title: t.settings.dvConversionHevcStrip,
subtitle: t.settings.dvConversionHevcStripDescription,
),
];
final primary = Theme.of(context).colorScheme.primary;
@@ -868,9 +874,10 @@ class _VideoSettingsSheetState extends State<VideoSettingsSheet> {
final preset = presets[index];
final isSelected = preset.id == currentPreset.id;
final isCustom = preset.type == ShaderPresetType.custom;
final presetName = preset.id == ShaderPreset.none.id ? t.common.off : preset.name;
return FocusableListTile(
title: Text(preset.name, style: TextStyle(color: isSelected ? Colors.amber : null)),
title: Text(presetName, style: TextStyle(color: isSelected ? Colors.amber : null)),
subtitle: _getShaderSubtitle(preset) != null
? Text(_getShaderSubtitle(preset)!, style: TextStyle(color: tokens(context).textMuted, fontSize: 12))
: null,
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:material_symbols_icons/symbols.dart';
import '../../../../i18n/strings.g.dart';
import '../../../../mpv/mpv.dart';
import '../../../../widgets/app_icon.dart';
import 'performance_stats.dart';
@@ -48,61 +49,64 @@ class _PlayerPerformanceOverlayState extends State<PlayerPerformanceOverlay> {
final isMpv = _stats.playerType == 'mpv';
final sections = <Widget>[
_buildSection(Symbols.videocam_rounded, 'Video', [
_metric('Codec', _stats.videoCodec ?? 'N/A'),
_metric('Resolution', _stats.resolution),
_buildSection(Symbols.videocam_rounded, t.fileInfo.video, [
_metric(t.fileInfo.codec, _stats.videoCodec ?? 'N/A'),
_metric(t.fileInfo.resolution, _stats.resolution),
if (_stats.hasValidVideoFps) _metric('FPS', _stats.videoFpsFormatted),
if (_stats.hasValidVideoBitrate) _metric('Bitrate', _stats.videoBitrateFormatted),
_metric('Decoder', _stats.hwdecFormatted),
if (!isMpv && _stats.videoDecoderName != null) _metric('Raw Decoder', _stats.videoDecoderRaw),
if (!isMpv) _metric('Tunneling', _stats.tunneledPlaybackFormatted),
if (_stats.aspectName != null && _stats.aspectName!.isNotEmpty) _metric('Aspect', _stats.aspectName!),
if (_stats.rotate != null && _stats.rotate != 0) _metric('Rotation', _stats.rotateFormatted),
if (_stats.dvSourceProfile != null) _metric('DV Source', _stats.dvSourceProfileFormatted),
if (_stats.dvPlaybackPath != null) _metric('DV Path', _stats.dvPlaybackPathFormatted),
if (_stats.dvConversionActive) _metric('P7 Conv', _stats.dvConversionFormatted),
if (_stats.hasValidVideoBitrate) _metric(t.fileInfo.bitrate, _stats.videoBitrateFormatted),
_metric(t.performanceOverlay.decoder, _stats.hwdecFormatted),
if (!isMpv && _stats.videoDecoderName != null) _metric(t.performanceOverlay.rawDecoder, _stats.videoDecoderRaw),
if (!isMpv) _metric(t.performanceOverlay.tunneling, _stats.tunneledPlaybackFormatted),
if (_stats.aspectName != null && _stats.aspectName!.isNotEmpty)
_metric(t.performanceOverlay.aspect, _stats.aspectName!),
if (_stats.rotate != null && _stats.rotate != 0) _metric(t.performanceOverlay.rotation, _stats.rotateFormatted),
if (_stats.dvSourceProfile != null) _metric(t.performanceOverlay.dvSource, _stats.dvSourceProfileFormatted),
if (_stats.dvPlaybackPath != null) _metric(t.performanceOverlay.dvPath, _stats.dvPlaybackPathFormatted),
if (_stats.dvConversionActive) _metric(t.performanceOverlay.p7Conversion, _stats.dvConversionFormatted),
]),
_buildSection(Symbols.volume_up_rounded, 'Audio', [
if (_stats.audioCodec != null) _metric('Codec', _stats.audioCodec!),
_metric('Sample Rate', _stats.sampleRateFormatted),
_metric('Channels', _stats.audioChannels ?? 'N/A'),
if (_stats.hasValidAudioBitrate) _metric('Bitrate', _stats.audioBitrateFormatted),
if (!isMpv && _stats.audioDecoderName != null) _metric('Decoder', _stats.audioDecoderFormatted),
_buildSection(Symbols.volume_up_rounded, t.fileInfo.audio, [
if (_stats.audioCodec != null) _metric(t.fileInfo.codec, _stats.audioCodec!),
_metric(t.performanceOverlay.sampleRate, _stats.sampleRateFormatted),
_metric(t.fileInfo.channels, _stats.audioChannels ?? 'N/A'),
if (_stats.hasValidAudioBitrate) _metric(t.fileInfo.bitrate, _stats.audioBitrateFormatted),
if (!isMpv && _stats.audioDecoderName != null)
_metric(t.performanceOverlay.decoder, _stats.audioDecoderFormatted),
]),
if (isMpv)
_buildSection(Symbols.palette_rounded, 'Color', [
_metric('Pixel Fmt', _stats.pixelformat ?? 'N/A'),
_buildSection(Symbols.palette_rounded, t.performanceOverlay.color, [
_metric(t.performanceOverlay.pixelFormat, _stats.pixelformat ?? 'N/A'),
if (_stats.hwPixelformat != null && _stats.hwPixelformat != _stats.pixelformat)
_metric('HW Fmt', _stats.hwPixelformat!),
_metric('Matrix', _stats.colormatrix ?? 'N/A'),
_metric('Primaries', _stats.primaries ?? 'N/A'),
_metric('Transfer', _stats.gamma ?? 'N/A'),
_metric(t.performanceOverlay.hwFormat, _stats.hwPixelformat!),
_metric(t.performanceOverlay.matrix, _stats.colormatrix ?? 'N/A'),
_metric(t.performanceOverlay.primaries, _stats.primaries ?? 'N/A'),
_metric(t.performanceOverlay.transfer, _stats.gamma ?? 'N/A'),
]),
_buildSection(Symbols.speed_rounded, 'Performance', [
if (isMpv) _metric('Render FPS', _stats.actualFpsFormatted),
if (isMpv) _metric('Display FPS', _stats.displayFpsFormatted),
if (isMpv) _metric('A/V Sync', _stats.avsyncFormatted),
_metric('Dropped', _stats.droppedFramesFormatted),
if (_stats.dvConversionActive) _metric('DV RPUs', _stats.dvRpuCountFormatted),
if (_stats.dvConversionActive) _metric('DV RPU Avg', _stats.dvAvgRpuConversionFormatted),
if (_stats.dvConversionActive) _metric('DV Sample Avg', _stats.dvAvgSampleProcessingFormatted),
_buildSection(Symbols.speed_rounded, t.performanceOverlay.performance, [
if (isMpv) _metric(t.performanceOverlay.renderFps, _stats.actualFpsFormatted),
if (isMpv) _metric(t.performanceOverlay.displayFps, _stats.displayFpsFormatted),
if (isMpv) _metric(t.performanceOverlay.avSync, _stats.avsyncFormatted),
_metric(t.performanceOverlay.dropped, _stats.droppedFramesFormatted),
if (_stats.dvConversionActive) _metric(t.performanceOverlay.dvRpus, _stats.dvRpuCountFormatted),
if (_stats.dvConversionActive) _metric(t.performanceOverlay.dvRpuAverage, _stats.dvAvgRpuConversionFormatted),
if (_stats.dvConversionActive)
_metric(t.performanceOverlay.dvSampleAverage, _stats.dvAvgSampleProcessingFormatted),
]),
if (_stats.hasHdrMetadata)
_buildSection(Symbols.hdr_on_rounded, 'HDR', [
if (_stats.maxLuma != null) _metric('Max Luma', _stats.maxLumaFormatted),
if (_stats.minLuma != null) _metric('Min Luma', _stats.minLumaFormatted),
if (_stats.maxCll != null) _metric('MaxCLL', _stats.maxCllFormatted),
if (_stats.maxFall != null) _metric('MaxFALL', _stats.maxFallFormatted),
if (_stats.maxLuma != null) _metric(t.performanceOverlay.maxLuma, _stats.maxLumaFormatted),
if (_stats.minLuma != null) _metric(t.performanceOverlay.minLuma, _stats.minLumaFormatted),
if (_stats.maxCll != null) _metric(t.performanceOverlay.maxCll, _stats.maxCllFormatted),
if (_stats.maxFall != null) _metric(t.performanceOverlay.maxFall, _stats.maxFallFormatted),
]),
_buildSection(Symbols.memory_rounded, 'Buffer', [
_metric('Duration', _stats.cacheDurationFormatted),
if (isMpv) _metric('Cache Used', _stats.cacheUsedFormatted),
if (isMpv) _metric('Speed', _stats.cacheSpeedFormatted),
_buildSection(Symbols.memory_rounded, t.performanceOverlay.buffer, [
_metric(t.fileInfo.duration, _stats.cacheDurationFormatted),
if (isMpv) _metric(t.performanceOverlay.cacheUsed, _stats.cacheUsedFormatted),
if (isMpv) _metric(t.performanceOverlay.speed, _stats.cacheSpeedFormatted),
]),
_buildSection(Symbols.apps_rounded, 'App', [
_metric('Player', _stats.playerTypeFormatted),
_metric('Memory', _stats.appMemoryFormatted),
_metric('UI FPS', _stats.uiFpsFormatted),
_buildSection(Symbols.apps_rounded, t.performanceOverlay.app, [
_metric(t.performanceOverlay.player, _stats.playerTypeFormatted),
_metric(t.performanceOverlay.memory, _stats.appMemoryFormatted),
_metric(t.performanceOverlay.uiFps, _stats.uiFpsFormatted),
]),
];