feat(jellyfin): simpler, code-first Quick Connect screen

This commit is contained in:
edde746
2026-06-12 03:16:58 +02:00
parent 97ba02f45e
commit 62abd3c30a
39 changed files with 293 additions and 634 deletions
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "или",
"connectToJellyfin": "Свързване с Jellyfin",
"useQuickConnect": "Използвай Quick Connect",
"quickConnectCode": "Quick Connect код",
"quickConnectInstructions": "Отворете Quick Connect в Jellyfin и въведете този код.",
"quickConnectWaiting": "Изчакване на одобрение…",
"quickConnectCancel": "Отказ",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Добави Jellyfin сървър",
"jellyfinUrlIntro": "Въведете URL адреса на сървъра, напр. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Въведете един или повече URL адреси на сървъра, разделени със запетаи. Plezy ще използва достъпния URL адрес с най-ниска латентност.",
"serverUrl": "URL адрес на сървъра",
"serverUrls": "URL адреси на сървъра",
"serverUrlsHelper": "Позволени са няколко URL адреса, разделени със запетаи.",
"findServer": "Намери сървър",
"searchingLocalServers": "Търсене на локални Jellyfin сървъри...",
"localServers": "Локални Jellyfin сървъри",
@@ -1373,17 +1370,12 @@
"signInFailed": "Входът е неуспешен: ${error}",
"quickConnectFailed": "Quick Connect е неуспешен: ${error}",
"addPlexTitle": "Вход с Plex",
"plexAuthIntro": "Влезте с браузър или QR код.",
"plexQRPrompt": "Сканирайте този QR код, за да влезете.",
"waitingForPlexConfirmation": "Изчакване plex.tv да потвърди вашия вход…",
"pinExpired": "PIN-ът изтече преди вход. Моля, опитайте отново.",
"duplicatePlexAccount": "Вече сте влезли в Plex. Излезте, за да смените акаунта.",
"failedToRegisterAccount": "Неуспешна регистрация на акаунт: ${error}",
"enterJellyfinUrlError": "Въведете URL адреса на вашия Jellyfin сървър",
"addConnectionTitle": "Добави връзка",
"addConnectionTitleScoped": "Добави към ${name}",
"addConnectionIntroGlobal": "Добавете друг медиен сървър. Plex и Jellyfin се показват заедно на началния екран.",
"addConnectionIntroScoped": "Добавете нов сървър или използвайте такъв от друг профил.",
"signInWithPlexCard": "Вход с Plex",
"signInWithPlexCardSubtitle": "Удостоверете това устройство. Споделените сървъри се добавят.",
"signInWithPlexCardSubtitleScoped": "Удостоверете Plex акаунт. Домашните потребители стават профили.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "eller",
"connectToJellyfin": "Forbind til Jellyfin",
"useQuickConnect": "Brug Quick Connect",
"quickConnectCode": "Quick Connect-kode",
"quickConnectInstructions": "Åbn Quick Connect i Jellyfin, og indtast denne kode.",
"quickConnectWaiting": "Venter på godkendelse…",
"quickConnectCancel": "Annullér",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Tilføj Jellyfin-server",
"jellyfinUrlIntro": "Indtast server-URL'en, f.eks. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Indtast en eller flere server-URL'er, adskilt med kommaer. Plezy bruger den tilgængelige URL med lavest latenstid.",
"serverUrl": "Server-URL",
"serverUrls": "Server-URL'er",
"serverUrlsHelper": "Flere URL'er er tilladt, adskilt med kommaer.",
"findServer": "Find server",
"searchingLocalServers": "Søger efter lokale Jellyfin-servere...",
"localServers": "Lokale Jellyfin-servere",
@@ -1373,17 +1370,12 @@
"signInFailed": "Login mislykkedes: ${error}",
"quickConnectFailed": "Quick Connect mislykkedes: ${error}",
"addPlexTitle": "Log ind med Plex",
"plexAuthIntro": "Log ind med en browser eller QR-kode.",
"plexQRPrompt": "Scan denne QR-kode for at logge ind.",
"waitingForPlexConfirmation": "Venter på at plex.tv bekræfter login…",
"pinExpired": "PIN udløb før login. Prøv igen.",
"duplicatePlexAccount": "Allerede logget ind på Plex. Log ud for at skifte konto.",
"failedToRegisterAccount": "Kunne ikke registrere kontoen: ${error}",
"enterJellyfinUrlError": "Angiv URL'en til din Jellyfin-server",
"addConnectionTitle": "Tilføj forbindelse",
"addConnectionTitleScoped": "Tilføj til ${name}",
"addConnectionIntroGlobal": "Tilføj en anden medieserver. Plex og Jellyfin vises sammen på Hjem.",
"addConnectionIntroScoped": "Tilføj en ny server, eller lån en fra en anden profil.",
"signInWithPlexCard": "Log ind med Plex",
"signInWithPlexCardSubtitle": "Godkend denne enhed. Delte servere tilføjes.",
"signInWithPlexCardSubtitleScoped": "Godkend en Plex-konto. Home-brugere bliver profiler.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "oder",
"connectToJellyfin": "Mit Jellyfin verbinden",
"useQuickConnect": "Quick Connect verwenden",
"quickConnectCode": "Quick Connect-Code",
"quickConnectInstructions": "Öffne Quick Connect in Jellyfin und gib diesen Code ein.",
"quickConnectWaiting": "Warte auf Bestätigung…",
"quickConnectCancel": "Abbrechen",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Jellyfin-Server hinzufügen",
"jellyfinUrlIntro": "Gib die Server-URL ein, z. B. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Gib eine oder mehrere Server-URLs ein, getrennt durch Kommas. Plezy verwendet die erreichbare URL mit der geringsten Latenz.",
"serverUrl": "Server-URL",
"serverUrls": "Server-URLs",
"serverUrlsHelper": "Mehrere URLs möglich, durch Kommas getrennt.",
"findServer": "Server finden",
"searchingLocalServers": "Suche nach lokalen Jellyfin-Servern...",
"localServers": "Lokale Jellyfin-Server",
@@ -1373,17 +1370,12 @@
"signInFailed": "Anmeldung fehlgeschlagen: ${error}",
"quickConnectFailed": "Quick Connect fehlgeschlagen: ${error}",
"addPlexTitle": "Mit Plex anmelden",
"plexAuthIntro": "Melde dich mit Browser oder QR-Code an.",
"plexQRPrompt": "Scanne diesen QR-Code zum Anmelden.",
"waitingForPlexConfirmation": "Warte auf Bestätigung durch plex.tv…",
"pinExpired": "PIN ist vor der Anmeldung abgelaufen. Bitte erneut versuchen.",
"duplicatePlexAccount": "Bereits bei Plex angemeldet. Melde dich ab, um Konten zu wechseln.",
"failedToRegisterAccount": "Konto konnte nicht registriert werden: ${error}",
"enterJellyfinUrlError": "Gib die URL deines Jellyfin-Servers ein",
"addConnectionTitle": "Verbindung hinzufügen",
"addConnectionTitleScoped": "Zu ${name} hinzufügen",
"addConnectionIntroGlobal": "Füge einen weiteren Medienserver hinzu. Plex und Jellyfin erscheinen zusammen auf der Startseite.",
"addConnectionIntroScoped": "Füge einen neuen Server hinzu oder leihe einen von einem anderen Profil aus.",
"signInWithPlexCard": "Mit Plex anmelden",
"signInWithPlexCardSubtitle": "Dieses Gerät autorisieren. Geteilte Server werden hinzugefügt.",
"signInWithPlexCardSubtitleScoped": "Ein Plex-Konto autorisieren. Home-Benutzer werden zu Profilen.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "or",
"connectToJellyfin": "Connect to Jellyfin",
"useQuickConnect": "Use Quick Connect",
"quickConnectCode": "Quick Connect code",
"quickConnectInstructions": "Open Quick Connect in Jellyfin and enter this code.",
"quickConnectWaiting": "Waiting for approval…",
"quickConnectCancel": "Cancel",
@@ -1360,10 +1359,8 @@
},
"addServer": {
"addJellyfinTitle": "Add Jellyfin server",
"jellyfinUrlIntro": "Enter the server URL, e.g. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Enter one or more server URLs, separated by commas. Plezy will use the reachable URL with the lowest latency.",
"serverUrl": "Server URL",
"serverUrls": "Server URLs",
"serverUrlsHelper": "Multiple URLs allowed, separated by commas.",
"findServer": "Find server",
"searchingLocalServers": "Looking for local Jellyfin servers...",
"localServers": "Local Jellyfin servers",
@@ -1376,17 +1373,12 @@
"signInFailed": "Sign-in failed: ${error}",
"quickConnectFailed": "Quick Connect failed: ${error}",
"addPlexTitle": "Sign in with Plex",
"plexAuthIntro": "Sign in with a browser or QR code.",
"plexQRPrompt": "Scan this QR code to sign in.",
"waitingForPlexConfirmation": "Waiting for plex.tv to confirm your sign-in…",
"pinExpired": "PIN expired before sign-in. Please try again.",
"duplicatePlexAccount": "Already signed in to Plex. Sign out to switch accounts.",
"failedToRegisterAccount": "Failed to register account: ${error}",
"enterJellyfinUrlError": "Enter your Jellyfin server URL",
"addConnectionTitle": "Add connection",
"addConnectionTitleScoped": "Add to ${name}",
"addConnectionIntroGlobal": "Add another media server. Plex and Jellyfin appear together on Home.",
"addConnectionIntroScoped": "Add a new server, or borrow one from another profile.",
"signInWithPlexCard": "Sign in with Plex",
"signInWithPlexCardSubtitle": "Authorize this device. Shared servers are added.",
"signInWithPlexCardSubtitleScoped": "Authorize a Plex account. Home users become profiles.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "o",
"connectToJellyfin": "Conectar a Jellyfin",
"useQuickConnect": "Usar Quick Connect",
"quickConnectCode": "Código de Quick Connect",
"quickConnectInstructions": "Abre Quick Connect en Jellyfin e introduce este código.",
"quickConnectWaiting": "Esperando aprobación…",
"quickConnectCancel": "Cancelar",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Añadir servidor Jellyfin",
"jellyfinUrlIntro": "Introduce la URL del servidor, p. ej. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Introduce una o más URL del servidor, separadas por comas. Plezy usará la URL accesible con menor latencia.",
"serverUrl": "URL del servidor",
"serverUrls": "URL del servidor",
"serverUrlsHelper": "Se permiten varias URL, separadas por comas.",
"findServer": "Buscar servidor",
"searchingLocalServers": "Buscando servidores Jellyfin locales...",
"localServers": "Servidores Jellyfin locales",
@@ -1373,17 +1370,12 @@
"signInFailed": "Error al iniciar sesión: ${error}",
"quickConnectFailed": "Quick Connect ha fallado: ${error}",
"addPlexTitle": "Iniciar sesión con Plex",
"plexAuthIntro": "Inicia sesión con un navegador o código QR.",
"plexQRPrompt": "Escanea este código QR para iniciar sesión.",
"waitingForPlexConfirmation": "Esperando que plex.tv confirme tu inicio de sesión…",
"pinExpired": "El PIN caducó antes de iniciar sesión. Inténtalo de nuevo.",
"duplicatePlexAccount": "Ya iniciaste sesión en Plex. Cierra sesión para cambiar de cuenta.",
"failedToRegisterAccount": "No se pudo registrar la cuenta: ${error}",
"enterJellyfinUrlError": "Introduce la URL de tu servidor Jellyfin",
"addConnectionTitle": "Añadir conexión",
"addConnectionTitleScoped": "Añadir a ${name}",
"addConnectionIntroGlobal": "Añade otro servidor multimedia. Plex y Jellyfin aparecen juntos en Inicio.",
"addConnectionIntroScoped": "Añade un servidor nuevo o toma prestado uno de otro perfil.",
"signInWithPlexCard": "Iniciar sesión con Plex",
"signInWithPlexCardSubtitle": "Autoriza este dispositivo. Se añaden servidores compartidos.",
"signInWithPlexCardSubtitleScoped": "Autoriza una cuenta Plex. Los usuarios de Home se convierten en perfiles.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "ou",
"connectToJellyfin": "Se connecter à Jellyfin",
"useQuickConnect": "Utiliser Quick Connect",
"quickConnectCode": "Code Quick Connect",
"quickConnectInstructions": "Ouvrez Quick Connect dans Jellyfin et saisissez ce code.",
"quickConnectWaiting": "En attente d'approbation…",
"quickConnectCancel": "Annuler",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Ajouter un serveur Jellyfin",
"jellyfinUrlIntro": "Saisissez l'URL du serveur, par ex. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Saisissez une ou plusieurs URL de serveur, séparées par des virgules. Plezy utilisera l'URL joignable avec la latence la plus faible.",
"serverUrl": "URL du serveur",
"serverUrls": "URL du serveur",
"serverUrlsHelper": "Plusieurs URL possibles, séparées par des virgules.",
"findServer": "Rechercher un serveur",
"searchingLocalServers": "Recherche de serveurs Jellyfin locaux...",
"localServers": "Serveurs Jellyfin locaux",
@@ -1373,17 +1370,12 @@
"signInFailed": "Échec de la connexion : ${error}",
"quickConnectFailed": "Échec de Quick Connect : ${error}",
"addPlexTitle": "Se connecter avec Plex",
"plexAuthIntro": "Connectez-vous avec un navigateur ou un code QR.",
"plexQRPrompt": "Scannez ce QR code pour vous connecter.",
"waitingForPlexConfirmation": "En attente de la confirmation de plex.tv…",
"pinExpired": "Le PIN a expiré avant la connexion. Veuillez réessayer.",
"duplicatePlexAccount": "Déjà connecté à Plex. Déconnectez-vous pour changer de compte.",
"failedToRegisterAccount": "Échec de l'enregistrement du compte : ${error}",
"enterJellyfinUrlError": "Saisissez l'URL de votre serveur Jellyfin",
"addConnectionTitle": "Ajouter une connexion",
"addConnectionTitleScoped": "Ajouter à ${name}",
"addConnectionIntroGlobal": "Ajoutez un autre serveur multimédia. Plex et Jellyfin apparaissent ensemble sur Accueil.",
"addConnectionIntroScoped": "Ajoutez un nouveau serveur, ou empruntez-en un à un autre profil.",
"signInWithPlexCard": "Se connecter avec Plex",
"signInWithPlexCardSubtitle": "Autorisez cet appareil. Les serveurs partagés sont ajoutés.",
"signInWithPlexCardSubtitleScoped": "Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "o",
"connectToJellyfin": "Connetti a Jellyfin",
"useQuickConnect": "Usa Quick Connect",
"quickConnectCode": "Codice Quick Connect",
"quickConnectInstructions": "Apri Quick Connect in Jellyfin e inserisci questo codice.",
"quickConnectWaiting": "In attesa di approvazione…",
"quickConnectCancel": "Annulla",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Aggiungi server Jellyfin",
"jellyfinUrlIntro": "Inserisci l'URL del server, es. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Inserisci uno o più URL del server, separati da virgole. Plezy userà l'URL raggiungibile con la latenza più bassa.",
"serverUrl": "URL del server",
"serverUrls": "URL del server",
"serverUrlsHelper": "Sono consentiti più URL, separati da virgole.",
"findServer": "Trova server",
"searchingLocalServers": "Ricerca server Jellyfin locali...",
"localServers": "Server Jellyfin locali",
@@ -1373,17 +1370,12 @@
"signInFailed": "Accesso non riuscito: ${error}",
"quickConnectFailed": "Quick Connect non riuscito: ${error}",
"addPlexTitle": "Accedi con Plex",
"plexAuthIntro": "Accedi con un browser o un codice QR.",
"plexQRPrompt": "Scansiona questo QR code per accedere.",
"waitingForPlexConfirmation": "In attesa della conferma da plex.tv…",
"pinExpired": "PIN scaduto prima dell'accesso. Riprova.",
"duplicatePlexAccount": "Accesso a Plex già effettuato. Esci per cambiare account.",
"failedToRegisterAccount": "Registrazione account non riuscita: ${error}",
"enterJellyfinUrlError": "Inserisci l'URL del tuo server Jellyfin",
"addConnectionTitle": "Aggiungi connessione",
"addConnectionTitleScoped": "Aggiungi a ${name}",
"addConnectionIntroGlobal": "Aggiungi un altro server multimediale. Plex e Jellyfin appaiono insieme in Home.",
"addConnectionIntroScoped": "Aggiungi un nuovo server, o prendine in prestito uno da un altro profilo.",
"signInWithPlexCard": "Accedi con Plex",
"signInWithPlexCardSubtitle": "Autorizza questo dispositivo. I server condivisi vengono aggiunti.",
"signInWithPlexCardSubtitleScoped": "Autorizza un account Plex. Gli utenti Home diventano profili.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "または",
"connectToJellyfin": "Jellyfinに接続",
"useQuickConnect": "Quick Connect を使う",
"quickConnectCode": "Quick Connect コード",
"quickConnectInstructions": "JellyfinでQuick Connectを開き、このコードを入力してください。",
"quickConnectWaiting": "承認を待っています…",
"quickConnectCancel": "キャンセル",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Jellyfinサーバーを追加",
"jellyfinUrlIntro": "サーバーURLを入力してください。例: `https://jellyfin.example.com`。",
"jellyfinUrlsIntro": "サーバーURLを1つ以上、カンマで区切って入力してください。Plezyは到達可能なURLのうち最も低遅延のものを使用します。",
"serverUrl": "サーバーURL",
"serverUrls": "サーバーURL",
"serverUrlsHelper": "複数のURLをカンマ区切りで入力できます。",
"findServer": "サーバーを検索",
"searchingLocalServers": "ローカル Jellyfin サーバーを検索中...",
"localServers": "ローカル Jellyfin サーバー",
@@ -1373,17 +1370,12 @@
"signInFailed": "サインインに失敗しました: ${error}",
"quickConnectFailed": "Quick Connectに失敗しました: ${error}",
"addPlexTitle": "Plexでサインイン",
"plexAuthIntro": "ブラウザまたはQRコードでサインインします。",
"plexQRPrompt": "このQRコードをスキャンしてサインインしてください。",
"waitingForPlexConfirmation": "plex.tvがサインインを確認するのを待っています…",
"pinExpired": "サインイン前にPINの有効期限が切れました。もう一度お試しください。",
"duplicatePlexAccount": "すでにPlexにサインインしています。アカウントを切り替えるにはサインアウトしてください。",
"failedToRegisterAccount": "アカウントの登録に失敗しました: ${error}",
"enterJellyfinUrlError": "JellyfinサーバーのURLを入力してください",
"addConnectionTitle": "接続を追加",
"addConnectionTitleScoped": "${name}に追加",
"addConnectionIntroGlobal": "別のメディアサーバーを追加します。PlexとJellyfinはホームに一緒に表示されます。",
"addConnectionIntroScoped": "新しいサーバーを追加するか、別のプロファイルから借りてください。",
"signInWithPlexCard": "Plexでサインイン",
"signInWithPlexCardSubtitle": "このデバイスを承認します。共有サーバーが追加されます。",
"signInWithPlexCardSubtitleScoped": "Plexアカウントを承認します。Homeユーザーはプロフィールになります。",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "또는",
"connectToJellyfin": "Jellyfin에 연결",
"useQuickConnect": "Quick Connect 사용",
"quickConnectCode": "Quick Connect 코드",
"quickConnectInstructions": "Jellyfin에서 Quick Connect를 열고 이 코드를 입력하세요.",
"quickConnectWaiting": "승인 대기 중…",
"quickConnectCancel": "취소",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Jellyfin 서버 추가",
"jellyfinUrlIntro": "서버 URL을 입력하세요. 예: `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "서버 URL을 하나 이상 쉼표로 구분해 입력하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다.",
"serverUrl": "서버 URL",
"serverUrls": "서버 URL",
"serverUrlsHelper": "쉼표로 구분하여 여러 URL을 입력할 수 있습니다.",
"findServer": "서버 찾기",
"searchingLocalServers": "로컬 Jellyfin 서버 검색 중...",
"localServers": "로컬 Jellyfin 서버",
@@ -1373,17 +1370,12 @@
"signInFailed": "로그인 실패: ${error}",
"quickConnectFailed": "Quick Connect 실패: ${error}",
"addPlexTitle": "Plex로 로그인",
"plexAuthIntro": "브라우저 또는 QR 코드로 로그인하세요.",
"plexQRPrompt": "이 QR 코드를 스캔하여 로그인하세요.",
"waitingForPlexConfirmation": "plex.tv에서 로그인을 확인하는 중…",
"pinExpired": "로그인 전에 PIN이 만료되었습니다. 다시 시도하세요.",
"duplicatePlexAccount": "이미 Plex에 로그인되어 있습니다. 계정을 전환하려면 로그아웃하세요.",
"failedToRegisterAccount": "계정 등록 실패: ${error}",
"enterJellyfinUrlError": "Jellyfin 서버 URL을 입력하세요",
"addConnectionTitle": "연결 추가",
"addConnectionTitleScoped": "${name}에 추가",
"addConnectionIntroGlobal": "다른 미디어 서버를 추가합니다. Plex와 Jellyfin이 홈에 함께 표시됩니다.",
"addConnectionIntroScoped": "새 서버를 추가하거나 다른 프로필에서 빌리세요.",
"signInWithPlexCard": "Plex로 로그인",
"signInWithPlexCardSubtitle": "이 기기를 승인합니다. 공유 서버가 추가됩니다.",
"signInWithPlexCardSubtitleScoped": "Plex 계정을 승인합니다. Home 사용자는 프로필이 됩니다.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "eller",
"connectToJellyfin": "Koble til Jellyfin",
"useQuickConnect": "Bruk Quick Connect",
"quickConnectCode": "Quick Connect-kode",
"quickConnectInstructions": "Åpne Quick Connect i Jellyfin og skriv inn denne koden.",
"quickConnectWaiting": "Venter på godkjenning…",
"quickConnectCancel": "Avbryt",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Legg til Jellyfin-server",
"jellyfinUrlIntro": "Skriv inn server-URL-en, f.eks. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Skriv inn én eller flere server-URL-er, adskilt med kommaer. Plezy bruker den tilgjengelige URL-en med lavest forsinkelse.",
"serverUrl": "Server-URL",
"serverUrls": "Server-URL-er",
"serverUrlsHelper": "Flere URL-er er tillatt, atskilt med komma.",
"findServer": "Finn server",
"searchingLocalServers": "Søker etter lokale Jellyfin-servere...",
"localServers": "Lokale Jellyfin-servere",
@@ -1373,17 +1370,12 @@
"signInFailed": "Pålogging mislyktes: ${error}",
"quickConnectFailed": "Quick Connect mislyktes: ${error}",
"addPlexTitle": "Logg på med Plex",
"plexAuthIntro": "Logg inn med en nettleser eller QR-kode.",
"plexQRPrompt": "Skann denne QR-koden for å logge på.",
"waitingForPlexConfirmation": "Venter på at plex.tv bekrefter påloggingen…",
"pinExpired": "PIN-koden gikk ut før pålogging. Prøv igjen.",
"duplicatePlexAccount": "Allerede logget inn på Plex. Logg ut for å bytte konto.",
"failedToRegisterAccount": "Kunne ikke registrere kontoen: ${error}",
"enterJellyfinUrlError": "Oppgi URL-en til Jellyfin-serveren din",
"addConnectionTitle": "Legg til tilkobling",
"addConnectionTitleScoped": "Legg til i ${name}",
"addConnectionIntroGlobal": "Legg til en annen medieserver. Plex og Jellyfin vises sammen på Hjem.",
"addConnectionIntroScoped": "Legg til en ny server, eller lån en fra en annen profil.",
"signInWithPlexCard": "Logg på med Plex",
"signInWithPlexCardSubtitle": "Autoriser denne enheten. Delte servere legges til.",
"signInWithPlexCardSubtitleScoped": "Autoriser en Plex-konto. Home-brukere blir profiler.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "of",
"connectToJellyfin": "Verbinden met Jellyfin",
"useQuickConnect": "Quick Connect gebruiken",
"quickConnectCode": "Quick Connect-code",
"quickConnectInstructions": "Open Quick Connect in Jellyfin en voer deze code in.",
"quickConnectWaiting": "Wachten op goedkeuring…",
"quickConnectCancel": "Annuleren",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Jellyfin-server toevoegen",
"jellyfinUrlIntro": "Voer de server-URL in, bijv. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Voer een of meer server-URL's in, gescheiden door komma's. Plezy gebruikt de bereikbare URL met de laagste latentie.",
"serverUrl": "Server-URL",
"serverUrls": "Server-URL's",
"serverUrlsHelper": "Meerdere URL's toegestaan, gescheiden door komma's.",
"findServer": "Server zoeken",
"searchingLocalServers": "Lokale Jellyfin-servers zoeken...",
"localServers": "Lokale Jellyfin-servers",
@@ -1373,17 +1370,12 @@
"signInFailed": "Inloggen mislukt: ${error}",
"quickConnectFailed": "Quick Connect mislukt: ${error}",
"addPlexTitle": "Inloggen met Plex",
"plexAuthIntro": "Meld je aan met een browser of QR-code.",
"plexQRPrompt": "Scan deze QR-code om in te loggen.",
"waitingForPlexConfirmation": "Wachten tot plex.tv je inloggen bevestigt…",
"pinExpired": "PIN verlopen vóór inloggen. Probeer opnieuw.",
"duplicatePlexAccount": "Al aangemeld bij Plex. Meld je af om van account te wisselen.",
"failedToRegisterAccount": "Account registreren mislukt: ${error}",
"enterJellyfinUrlError": "Voer de URL van je Jellyfin-server in",
"addConnectionTitle": "Verbinding toevoegen",
"addConnectionTitleScoped": "Toevoegen aan ${name}",
"addConnectionIntroGlobal": "Voeg een andere mediaserver toe. Plex en Jellyfin verschijnen samen op Home.",
"addConnectionIntroScoped": "Voeg een nieuwe server toe, of leen er een van een ander profiel.",
"signInWithPlexCard": "Inloggen met Plex",
"signInWithPlexCardSubtitle": "Autoriseer dit apparaat. Gedeelde servers worden toegevoegd.",
"signInWithPlexCardSubtitleScoped": "Autoriseer een Plex-account. Home-gebruikers worden profielen.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "lub",
"connectToJellyfin": "Połącz z Jellyfin",
"useQuickConnect": "Użyj Quick Connect",
"quickConnectCode": "Kod Quick Connect",
"quickConnectInstructions": "Otwórz Quick Connect w Jellyfin i wpisz ten kod.",
"quickConnectWaiting": "Oczekiwanie na zatwierdzenie…",
"quickConnectCancel": "Anuluj",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Dodaj serwer Jellyfin",
"jellyfinUrlIntro": "Wpisz URL serwera, np. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Wpisz co najmniej jeden URL serwera, oddzielając je przecinkami. Plezy użyje osiągalnego URL-a o najniższym opóźnieniu.",
"serverUrl": "URL serwera",
"serverUrls": "URL-e serwera",
"serverUrlsHelper": "Można podać wiele adresów URL, rozdzielonych przecinkami.",
"findServer": "Znajdź serwer",
"searchingLocalServers": "Szukanie lokalnych serwerów Jellyfin...",
"localServers": "Lokalne serwery Jellyfin",
@@ -1373,17 +1370,12 @@
"signInFailed": "Logowanie nie powiodło się: ${error}",
"quickConnectFailed": "Quick Connect nie powiodło się: ${error}",
"addPlexTitle": "Zaloguj się przez Plex",
"plexAuthIntro": "Zaloguj się przez przeglądarkę lub kod QR.",
"plexQRPrompt": "Zeskanuj ten kod QR, aby się zalogować.",
"waitingForPlexConfirmation": "Czekam na potwierdzenie logowania przez plex.tv…",
"pinExpired": "PIN wygasł przed zalogowaniem. Spróbuj ponownie.",
"duplicatePlexAccount": "Już zalogowano do Plex. Wyloguj się, aby zmienić konto.",
"failedToRegisterAccount": "Nie udało się zarejestrować konta: ${error}",
"enterJellyfinUrlError": "Podaj URL serwera Jellyfin",
"addConnectionTitle": "Dodaj połączenie",
"addConnectionTitleScoped": "Dodaj do ${name}",
"addConnectionIntroGlobal": "Dodaj kolejny serwer multimediów. Plex i Jellyfin pojawią się razem na ekranie głównym.",
"addConnectionIntroScoped": "Dodaj nowy serwer lub pożycz z innego profilu.",
"signInWithPlexCard": "Zaloguj się przez Plex",
"signInWithPlexCardSubtitle": "Autoryzuj to urządzenie. Serwery udostępnione zostaną dodane.",
"signInWithPlexCardSubtitleScoped": "Autoryzuj konto Plex. Użytkownicy Home staną się profilami.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "ou",
"connectToJellyfin": "Conectar ao Jellyfin",
"useQuickConnect": "Usar Quick Connect",
"quickConnectCode": "Código do Quick Connect",
"quickConnectInstructions": "Abra o Quick Connect no Jellyfin e insira este código.",
"quickConnectWaiting": "A aguardar aprovação…",
"quickConnectCancel": "Cancelar",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Adicionar servidor Jellyfin",
"jellyfinUrlIntro": "Insira a URL do servidor, ex. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Insira uma ou mais URLs do servidor, separadas por vírgulas. O Plezy usará a URL acessível com a menor latência.",
"serverUrl": "URL do servidor",
"serverUrls": "URLs do servidor",
"serverUrlsHelper": "Vários URLs permitidos, separados por vírgulas.",
"findServer": "Encontrar servidor",
"searchingLocalServers": "A procurar servidores Jellyfin locais...",
"localServers": "Servidores Jellyfin locais",
@@ -1373,17 +1370,12 @@
"signInFailed": "Falha ao entrar: ${error}",
"quickConnectFailed": "Quick Connect falhou: ${error}",
"addPlexTitle": "Entrar com Plex",
"plexAuthIntro": "Entre com um navegador ou código QR.",
"plexQRPrompt": "Escaneie este código QR para entrar.",
"waitingForPlexConfirmation": "Aguardando o plex.tv confirmar o login…",
"pinExpired": "O PIN expirou antes do login. Tente novamente.",
"duplicatePlexAccount": "Você já entrou no Plex. Saia para trocar de conta.",
"failedToRegisterAccount": "Falha ao registrar a conta: ${error}",
"enterJellyfinUrlError": "Insira a URL do seu servidor Jellyfin",
"addConnectionTitle": "Adicionar conexão",
"addConnectionTitleScoped": "Adicionar a ${name}",
"addConnectionIntroGlobal": "Adicione outro servidor de mídia. Plex e Jellyfin aparecem juntos no Início.",
"addConnectionIntroScoped": "Adicione um novo servidor ou pegue um emprestado de outro perfil.",
"signInWithPlexCard": "Entrar com Plex",
"signInWithPlexCardSubtitle": "Autorize este dispositivo. Servidores compartilhados são adicionados.",
"signInWithPlexCardSubtitleScoped": "Autorize uma conta Plex. Usuários Home viram perfis.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "или",
"connectToJellyfin": "Подключиться к Jellyfin",
"useQuickConnect": "Использовать Quick Connect",
"quickConnectCode": "Код Quick Connect",
"quickConnectInstructions": "Откройте Quick Connect в Jellyfin и введите этот код.",
"quickConnectWaiting": "Ожидание подтверждения…",
"quickConnectCancel": "Отмена",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Добавить сервер Jellyfin",
"jellyfinUrlIntro": "Введите URL сервера, например `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Введите один или несколько URL сервера, разделяя их запятыми. Plezy будет использовать доступный URL с минимальной задержкой.",
"serverUrl": "URL сервера",
"serverUrls": "URL сервера",
"serverUrlsHelper": "Можно указать несколько URL через запятую.",
"findServer": "Найти сервер",
"searchingLocalServers": "Поиск локальных серверов Jellyfin...",
"localServers": "Локальные серверы Jellyfin",
@@ -1373,17 +1370,12 @@
"signInFailed": "Не удалось войти: ${error}",
"quickConnectFailed": "Quick Connect не удался: ${error}",
"addPlexTitle": "Войти через Plex",
"plexAuthIntro": "Войдите через браузер или QR-код.",
"plexQRPrompt": "Отсканируйте этот QR-код, чтобы войти.",
"waitingForPlexConfirmation": "Ожидание подтверждения от plex.tv…",
"pinExpired": "Срок действия PIN истёк до входа. Попробуйте снова.",
"duplicatePlexAccount": "В Plex уже выполнен вход. Выйдите, чтобы сменить аккаунт.",
"failedToRegisterAccount": "Не удалось зарегистрировать учётную запись: ${error}",
"enterJellyfinUrlError": "Введите URL вашего сервера Jellyfin",
"addConnectionTitle": "Добавить подключение",
"addConnectionTitleScoped": "Добавить в ${name}",
"addConnectionIntroGlobal": "Добавьте еще один медиасервер. Plex и Jellyfin появятся вместе на главной.",
"addConnectionIntroScoped": "Добавьте новый сервер или одолжите из другого профиля.",
"signInWithPlexCard": "Войти через Plex",
"signInWithPlexCardSubtitle": "Авторизуйте это устройство. Общие серверы будут добавлены.",
"signInWithPlexCardSubtitleScoped": "Авторизуйте аккаунт Plex. Пользователи Home станут профилями.",
+1 -1
View File
@@ -4,7 +4,7 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 16
/// Strings: 20387 (1274 per locale)
/// Strings: 20259 (1266 per locale)
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthBg extends TranslationsAuthEn {
@override String get or => 'или';
@override String get connectToJellyfin => 'Свързване с Jellyfin';
@override String get useQuickConnect => 'Използвай Quick Connect';
@override String get quickConnectCode => 'Quick Connect код';
@override String get quickConnectInstructions => 'Отворете Quick Connect в Jellyfin и въведете този код.';
@override String get quickConnectWaiting => 'Изчакване на одобрение…';
@override String get quickConnectCancel => 'Отказ';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerBg extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Добави Jellyfin сървър';
@override String get jellyfinUrlIntro => 'Въведете URL адреса на сървъра, напр. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Въведете един или повече URL адреси на сървъра, разделени със запетаи. Plezy ще използва достъпния URL адрес с най-ниска латентност.';
@override String get serverUrl => 'URL адрес на сървъра';
@override String get serverUrls => 'URL адреси на сървъра';
@override String get serverUrlsHelper => 'Позволени са няколко URL адреса, разделени със запетаи.';
@override String get findServer => 'Намери сървър';
@override String get searchingLocalServers => 'Търсене на локални Jellyfin сървъри...';
@override String get localServers => 'Локални Jellyfin сървъри';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerBg extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Входът е неуспешен: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect е неуспешен: ${error}';
@override String get addPlexTitle => 'Вход с Plex';
@override String get plexAuthIntro => 'Влезте с браузър или QR код.';
@override String get plexQRPrompt => 'Сканирайте този QR код, за да влезете.';
@override String get waitingForPlexConfirmation => 'Изчакване plex.tv да потвърди вашия вход…';
@override String get pinExpired => 'PIN-ът изтече преди вход. Моля, опитайте отново.';
@override String get duplicatePlexAccount => 'Вече сте влезли в Plex. Излезте, за да смените акаунта.';
@override String failedToRegisterAccount({required Object error}) => 'Неуспешна регистрация на акаунт: ${error}';
@override String get enterJellyfinUrlError => 'Въведете URL адреса на вашия Jellyfin сървър';
@override String get addConnectionTitle => 'Добави връзка';
@override String addConnectionTitleScoped({required Object name}) => 'Добави към ${name}';
@override String get addConnectionIntroGlobal => 'Добавете друг медиен сървър. Plex и Jellyfin се показват заедно на началния екран.';
@override String get addConnectionIntroScoped => 'Добавете нов сървър или използвайте такъв от друг профил.';
@override String get signInWithPlexCard => 'Вход с Plex';
@override String get signInWithPlexCardSubtitle => 'Удостоверете това устройство. Споделените сървъри се добавят.';
@override String get signInWithPlexCardSubtitleScoped => 'Удостоверете Plex акаунт. Домашните потребители стават профили.';
@@ -1935,7 +1927,6 @@ extension on TranslationsBg {
'auth.or' => 'или',
'auth.connectToJellyfin' => 'Свързване с Jellyfin',
'auth.useQuickConnect' => 'Използвай Quick Connect',
'auth.quickConnectCode' => 'Quick Connect код',
'auth.quickConnectInstructions' => 'Отворете Quick Connect в Jellyfin и въведете този код.',
'auth.quickConnectWaiting' => 'Изчакване на одобрение…',
'auth.quickConnectCancel' => 'Отказ',
@@ -2435,9 +2426,9 @@ extension on TranslationsBg {
'subtitlingStyling.border' => 'Рамка',
'subtitlingStyling.background' => 'Фон',
'subtitlingStyling.fontSize' => 'Размер на шрифта',
'subtitlingStyling.textColor' => 'Цвят на текста',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Цвят на текста',
'subtitlingStyling.borderSize' => 'Размер на рамката',
'subtitlingStyling.borderColor' => 'Цвят на рамката',
'subtitlingStyling.backgroundOpacity' => 'Прозрачност на фона',
@@ -2949,9 +2940,9 @@ extension on TranslationsBg {
'companionRemote.remote.menu' => 'Меню',
'companionRemote.remote.tabNavigation' => 'Навигация с Tab',
'companionRemote.remote.tabDiscover' => 'Открий',
'companionRemote.remote.tabLibraries' => 'Библиотеки',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Библиотеки',
'companionRemote.remote.tabSearch' => 'Търсене',
'companionRemote.remote.tabDownloads' => 'Изтегляния',
'companionRemote.remote.tabSettings' => 'Настройки',
@@ -3166,10 +3157,8 @@ extension on TranslationsBg {
'trackers.libraryFilter.libraries' => 'Библиотеки',
'trackers.libraryFilter.noLibraries' => 'Няма налични библиотеки',
'addServer.addJellyfinTitle' => 'Добави Jellyfin сървър',
'addServer.jellyfinUrlIntro' => 'Въведете URL адреса на сървъра, напр. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Въведете един или повече URL адреси на сървъра, разделени със запетаи. Plezy ще използва достъпния URL адрес с най-ниска латентност.',
'addServer.serverUrl' => 'URL адрес на сървъра',
'addServer.serverUrls' => 'URL адреси на сървъра',
'addServer.serverUrlsHelper' => 'Позволени са няколко URL адреса, разделени със запетаи.',
'addServer.findServer' => 'Намери сървър',
'addServer.searchingLocalServers' => 'Търсене на локални Jellyfin сървъри...',
'addServer.localServers' => 'Локални Jellyfin сървъри',
@@ -3182,17 +3171,12 @@ extension on TranslationsBg {
'addServer.signInFailed' => ({required Object error}) => 'Входът е неуспешен: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect е неуспешен: ${error}',
'addServer.addPlexTitle' => 'Вход с Plex',
'addServer.plexAuthIntro' => 'Влезте с браузър или QR код.',
'addServer.plexQRPrompt' => 'Сканирайте този QR код, за да влезете.',
'addServer.waitingForPlexConfirmation' => 'Изчакване plex.tv да потвърди вашия вход…',
'addServer.pinExpired' => 'PIN-ът изтече преди вход. Моля, опитайте отново.',
'addServer.duplicatePlexAccount' => 'Вече сте влезли в Plex. Излезте, за да смените акаунта.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Неуспешна регистрация на акаунт: ${error}',
'addServer.enterJellyfinUrlError' => 'Въведете URL адреса на вашия Jellyfin сървър',
'addServer.addConnectionTitle' => 'Добави връзка',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Добави към ${name}',
'addServer.addConnectionIntroGlobal' => 'Добавете друг медиен сървър. Plex и Jellyfin се показват заедно на началния екран.',
'addServer.addConnectionIntroScoped' => 'Добавете нов сървър или използвайте такъв от друг профил.',
'addServer.signInWithPlexCard' => 'Вход с Plex',
'addServer.signInWithPlexCardSubtitle' => 'Удостоверете това устройство. Споделените сървъри се добавят.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Удостоверете Plex акаунт. Домашните потребители стават профили.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthDa extends TranslationsAuthEn {
@override String get or => 'eller';
@override String get connectToJellyfin => 'Forbind til Jellyfin';
@override String get useQuickConnect => 'Brug Quick Connect';
@override String get quickConnectCode => 'Quick Connect-kode';
@override String get quickConnectInstructions => 'Åbn Quick Connect i Jellyfin, og indtast denne kode.';
@override String get quickConnectWaiting => 'Venter på godkendelse…';
@override String get quickConnectCancel => 'Annullér';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerDa extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Tilføj Jellyfin-server';
@override String get jellyfinUrlIntro => 'Indtast server-URL\'en, f.eks. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Indtast en eller flere server-URL\'er, adskilt med kommaer. Plezy bruger den tilgængelige URL med lavest latenstid.';
@override String get serverUrl => 'Server-URL';
@override String get serverUrls => 'Server-URL\'er';
@override String get serverUrlsHelper => 'Flere URL\'er er tilladt, adskilt med kommaer.';
@override String get findServer => 'Find server';
@override String get searchingLocalServers => 'Søger efter lokale Jellyfin-servere...';
@override String get localServers => 'Lokale Jellyfin-servere';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerDa extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Login mislykkedes: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect mislykkedes: ${error}';
@override String get addPlexTitle => 'Log ind med Plex';
@override String get plexAuthIntro => 'Log ind med en browser eller QR-kode.';
@override String get plexQRPrompt => 'Scan denne QR-kode for at logge ind.';
@override String get waitingForPlexConfirmation => 'Venter på at plex.tv bekræfter login…';
@override String get pinExpired => 'PIN udløb før login. Prøv igen.';
@override String get duplicatePlexAccount => 'Allerede logget ind på Plex. Log ud for at skifte konto.';
@override String failedToRegisterAccount({required Object error}) => 'Kunne ikke registrere kontoen: ${error}';
@override String get enterJellyfinUrlError => 'Angiv URL\'en til din Jellyfin-server';
@override String get addConnectionTitle => 'Tilføj forbindelse';
@override String addConnectionTitleScoped({required Object name}) => 'Tilføj til ${name}';
@override String get addConnectionIntroGlobal => 'Tilføj en anden medieserver. Plex og Jellyfin vises sammen på Hjem.';
@override String get addConnectionIntroScoped => 'Tilføj en ny server, eller lån en fra en anden profil.';
@override String get signInWithPlexCard => 'Log ind med Plex';
@override String get signInWithPlexCardSubtitle => 'Godkend denne enhed. Delte servere tilføjes.';
@override String get signInWithPlexCardSubtitleScoped => 'Godkend en Plex-konto. Home-brugere bliver profiler.';
@@ -1935,7 +1927,6 @@ extension on TranslationsDa {
'auth.or' => 'eller',
'auth.connectToJellyfin' => 'Forbind til Jellyfin',
'auth.useQuickConnect' => 'Brug Quick Connect',
'auth.quickConnectCode' => 'Quick Connect-kode',
'auth.quickConnectInstructions' => 'Åbn Quick Connect i Jellyfin, og indtast denne kode.',
'auth.quickConnectWaiting' => 'Venter på godkendelse…',
'auth.quickConnectCancel' => 'Annullér',
@@ -2435,9 +2426,9 @@ extension on TranslationsDa {
'subtitlingStyling.border' => 'Kant',
'subtitlingStyling.background' => 'Baggrund',
'subtitlingStyling.fontSize' => 'Skriftstørrelse',
'subtitlingStyling.textColor' => 'Tekstfarve',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Tekstfarve',
'subtitlingStyling.borderSize' => 'Kantstørrelse',
'subtitlingStyling.borderColor' => 'Kantfarve',
'subtitlingStyling.backgroundOpacity' => 'Baggrundsgennemsigtighed',
@@ -2949,9 +2940,9 @@ extension on TranslationsDa {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Fanenavigation',
'companionRemote.remote.tabDiscover' => 'Opdag',
'companionRemote.remote.tabLibraries' => 'Biblioteker',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Biblioteker',
'companionRemote.remote.tabSearch' => 'Søg',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Indstillinger',
@@ -3166,10 +3157,8 @@ extension on TranslationsDa {
'trackers.libraryFilter.libraries' => 'Biblioteker',
'trackers.libraryFilter.noLibraries' => 'Ingen biblioteker tilgængelige',
'addServer.addJellyfinTitle' => 'Tilføj Jellyfin-server',
'addServer.jellyfinUrlIntro' => 'Indtast server-URL\'en, f.eks. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Indtast en eller flere server-URL\'er, adskilt med kommaer. Plezy bruger den tilgængelige URL med lavest latenstid.',
'addServer.serverUrl' => 'Server-URL',
'addServer.serverUrls' => 'Server-URL\'er',
'addServer.serverUrlsHelper' => 'Flere URL\'er er tilladt, adskilt med kommaer.',
'addServer.findServer' => 'Find server',
'addServer.searchingLocalServers' => 'Søger efter lokale Jellyfin-servere...',
'addServer.localServers' => 'Lokale Jellyfin-servere',
@@ -3182,17 +3171,12 @@ extension on TranslationsDa {
'addServer.signInFailed' => ({required Object error}) => 'Login mislykkedes: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect mislykkedes: ${error}',
'addServer.addPlexTitle' => 'Log ind med Plex',
'addServer.plexAuthIntro' => 'Log ind med en browser eller QR-kode.',
'addServer.plexQRPrompt' => 'Scan denne QR-kode for at logge ind.',
'addServer.waitingForPlexConfirmation' => 'Venter på at plex.tv bekræfter login…',
'addServer.pinExpired' => 'PIN udløb før login. Prøv igen.',
'addServer.duplicatePlexAccount' => 'Allerede logget ind på Plex. Log ud for at skifte konto.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Kunne ikke registrere kontoen: ${error}',
'addServer.enterJellyfinUrlError' => 'Angiv URL\'en til din Jellyfin-server',
'addServer.addConnectionTitle' => 'Tilføj forbindelse',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Tilføj til ${name}',
'addServer.addConnectionIntroGlobal' => 'Tilføj en anden medieserver. Plex og Jellyfin vises sammen på Hjem.',
'addServer.addConnectionIntroScoped' => 'Tilføj en ny server, eller lån en fra en anden profil.',
'addServer.signInWithPlexCard' => 'Log ind med Plex',
'addServer.signInWithPlexCardSubtitle' => 'Godkend denne enhed. Delte servere tilføjes.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Godkend en Plex-konto. Home-brugere bliver profiler.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthDe extends TranslationsAuthEn {
@override String get or => 'oder';
@override String get connectToJellyfin => 'Mit Jellyfin verbinden';
@override String get useQuickConnect => 'Quick Connect verwenden';
@override String get quickConnectCode => 'Quick Connect-Code';
@override String get quickConnectInstructions => 'Öffne Quick Connect in Jellyfin und gib diesen Code ein.';
@override String get quickConnectWaiting => 'Warte auf Bestätigung…';
@override String get quickConnectCancel => 'Abbrechen';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerDe extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Jellyfin-Server hinzufügen';
@override String get jellyfinUrlIntro => 'Gib die Server-URL ein, z. B. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Gib eine oder mehrere Server-URLs ein, getrennt durch Kommas. Plezy verwendet die erreichbare URL mit der geringsten Latenz.';
@override String get serverUrl => 'Server-URL';
@override String get serverUrls => 'Server-URLs';
@override String get serverUrlsHelper => 'Mehrere URLs möglich, durch Kommas getrennt.';
@override String get findServer => 'Server finden';
@override String get searchingLocalServers => 'Suche nach lokalen Jellyfin-Servern...';
@override String get localServers => 'Lokale Jellyfin-Server';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerDe extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Anmeldung fehlgeschlagen: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect fehlgeschlagen: ${error}';
@override String get addPlexTitle => 'Mit Plex anmelden';
@override String get plexAuthIntro => 'Melde dich mit Browser oder QR-Code an.';
@override String get plexQRPrompt => 'Scanne diesen QR-Code zum Anmelden.';
@override String get waitingForPlexConfirmation => 'Warte auf Bestätigung durch plex.tv…';
@override String get pinExpired => 'PIN ist vor der Anmeldung abgelaufen. Bitte erneut versuchen.';
@override String get duplicatePlexAccount => 'Bereits bei Plex angemeldet. Melde dich ab, um Konten zu wechseln.';
@override String failedToRegisterAccount({required Object error}) => 'Konto konnte nicht registriert werden: ${error}';
@override String get enterJellyfinUrlError => 'Gib die URL deines Jellyfin-Servers ein';
@override String get addConnectionTitle => 'Verbindung hinzufügen';
@override String addConnectionTitleScoped({required Object name}) => 'Zu ${name} hinzufügen';
@override String get addConnectionIntroGlobal => 'Füge einen weiteren Medienserver hinzu. Plex und Jellyfin erscheinen zusammen auf der Startseite.';
@override String get addConnectionIntroScoped => 'Füge einen neuen Server hinzu oder leihe einen von einem anderen Profil aus.';
@override String get signInWithPlexCard => 'Mit Plex anmelden';
@override String get signInWithPlexCardSubtitle => 'Dieses Gerät autorisieren. Geteilte Server werden hinzugefügt.';
@override String get signInWithPlexCardSubtitleScoped => 'Ein Plex-Konto autorisieren. Home-Benutzer werden zu Profilen.';
@@ -1935,7 +1927,6 @@ extension on TranslationsDe {
'auth.or' => 'oder',
'auth.connectToJellyfin' => 'Mit Jellyfin verbinden',
'auth.useQuickConnect' => 'Quick Connect verwenden',
'auth.quickConnectCode' => 'Quick Connect-Code',
'auth.quickConnectInstructions' => 'Öffne Quick Connect in Jellyfin und gib diesen Code ein.',
'auth.quickConnectWaiting' => 'Warte auf Bestätigung…',
'auth.quickConnectCancel' => 'Abbrechen',
@@ -2435,9 +2426,9 @@ extension on TranslationsDe {
'subtitlingStyling.border' => 'Rahmen',
'subtitlingStyling.background' => 'Hintergrund',
'subtitlingStyling.fontSize' => 'Schriftgröße',
'subtitlingStyling.textColor' => 'Textfarbe',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Textfarbe',
'subtitlingStyling.borderSize' => 'Rahmengröße',
'subtitlingStyling.borderColor' => 'Rahmenfarbe',
'subtitlingStyling.backgroundOpacity' => 'Hintergrunddeckkraft',
@@ -2949,9 +2940,9 @@ extension on TranslationsDe {
'companionRemote.remote.menu' => 'Menü',
'companionRemote.remote.tabNavigation' => 'Tab-Navigation',
'companionRemote.remote.tabDiscover' => 'Entdecken',
'companionRemote.remote.tabLibraries' => 'Mediatheken',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Mediatheken',
'companionRemote.remote.tabSearch' => 'Suche',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Einstellungen',
@@ -3166,10 +3157,8 @@ extension on TranslationsDe {
'trackers.libraryFilter.libraries' => 'Bibliotheken',
'trackers.libraryFilter.noLibraries' => 'Keine Bibliotheken verfügbar',
'addServer.addJellyfinTitle' => 'Jellyfin-Server hinzufügen',
'addServer.jellyfinUrlIntro' => 'Gib die Server-URL ein, z. B. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Gib eine oder mehrere Server-URLs ein, getrennt durch Kommas. Plezy verwendet die erreichbare URL mit der geringsten Latenz.',
'addServer.serverUrl' => 'Server-URL',
'addServer.serverUrls' => 'Server-URLs',
'addServer.serverUrlsHelper' => 'Mehrere URLs möglich, durch Kommas getrennt.',
'addServer.findServer' => 'Server finden',
'addServer.searchingLocalServers' => 'Suche nach lokalen Jellyfin-Servern...',
'addServer.localServers' => 'Lokale Jellyfin-Server',
@@ -3182,17 +3171,12 @@ extension on TranslationsDe {
'addServer.signInFailed' => ({required Object error}) => 'Anmeldung fehlgeschlagen: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect fehlgeschlagen: ${error}',
'addServer.addPlexTitle' => 'Mit Plex anmelden',
'addServer.plexAuthIntro' => 'Melde dich mit Browser oder QR-Code an.',
'addServer.plexQRPrompt' => 'Scanne diesen QR-Code zum Anmelden.',
'addServer.waitingForPlexConfirmation' => 'Warte auf Bestätigung durch plex.tv…',
'addServer.pinExpired' => 'PIN ist vor der Anmeldung abgelaufen. Bitte erneut versuchen.',
'addServer.duplicatePlexAccount' => 'Bereits bei Plex angemeldet. Melde dich ab, um Konten zu wechseln.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Konto konnte nicht registriert werden: ${error}',
'addServer.enterJellyfinUrlError' => 'Gib die URL deines Jellyfin-Servers ein',
'addServer.addConnectionTitle' => 'Verbindung hinzufügen',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Zu ${name} hinzufügen',
'addServer.addConnectionIntroGlobal' => 'Füge einen weiteren Medienserver hinzu. Plex und Jellyfin erscheinen zusammen auf der Startseite.',
'addServer.addConnectionIntroScoped' => 'Füge einen neuen Server hinzu oder leihe einen von einem anderen Profil aus.',
'addServer.signInWithPlexCard' => 'Mit Plex anmelden',
'addServer.signInWithPlexCardSubtitle' => 'Dieses Gerät autorisieren. Geteilte Server werden hinzugefügt.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Ein Plex-Konto autorisieren. Home-Benutzer werden zu Profilen.',
+6 -38
View File
@@ -141,9 +141,6 @@ class TranslationsAuthEn {
/// en: 'Use Quick Connect'
String get useQuickConnect => 'Use Quick Connect';
/// en: 'Quick Connect code'
String get quickConnectCode => 'Quick Connect code';
/// en: 'Open Quick Connect in Jellyfin and enter this code.'
String get quickConnectInstructions => 'Open Quick Connect in Jellyfin and enter this code.';
@@ -3790,18 +3787,12 @@ class TranslationsAddServerEn {
/// en: 'Add Jellyfin server'
String get addJellyfinTitle => 'Add Jellyfin server';
/// en: 'Enter the server URL, e.g. `https://jellyfin.example.com`.'
String get jellyfinUrlIntro => 'Enter the server URL, e.g. `https://jellyfin.example.com`.';
/// en: 'Enter one or more server URLs, separated by commas. Plezy will use the reachable URL with the lowest latency.'
String get jellyfinUrlsIntro => 'Enter one or more server URLs, separated by commas. Plezy will use the reachable URL with the lowest latency.';
/// en: 'Server URL'
String get serverUrl => 'Server URL';
/// en: 'Server URLs'
String get serverUrls => 'Server URLs';
/// en: 'Multiple URLs allowed, separated by commas.'
String get serverUrlsHelper => 'Multiple URLs allowed, separated by commas.';
/// en: 'Find server'
String get findServer => 'Find server';
@@ -3838,15 +3829,6 @@ class TranslationsAddServerEn {
/// en: 'Sign in with Plex'
String get addPlexTitle => 'Sign in with Plex';
/// en: 'Sign in with a browser or QR code.'
String get plexAuthIntro => 'Sign in with a browser or QR code.';
/// en: 'Scan this QR code to sign in.'
String get plexQRPrompt => 'Scan this QR code to sign in.';
/// en: 'Waiting for plex.tv to confirm your sign-in…'
String get waitingForPlexConfirmation => 'Waiting for plex.tv to confirm your sign-in…';
/// en: 'PIN expired before sign-in. Please try again.'
String get pinExpired => 'PIN expired before sign-in. Please try again.';
@@ -3865,12 +3847,6 @@ class TranslationsAddServerEn {
/// en: 'Add to ${name}'
String addConnectionTitleScoped({required Object name}) => 'Add to ${name}';
/// en: 'Add another media server. Plex and Jellyfin appear together on Home.'
String get addConnectionIntroGlobal => 'Add another media server. Plex and Jellyfin appear together on Home.';
/// en: 'Add a new server, or borrow one from another profile.'
String get addConnectionIntroScoped => 'Add a new server, or borrow one from another profile.';
/// en: 'Sign in with Plex'
String get signInWithPlexCard => 'Sign in with Plex';
@@ -4498,7 +4474,6 @@ extension on Translations {
'auth.or' => 'or',
'auth.connectToJellyfin' => 'Connect to Jellyfin',
'auth.useQuickConnect' => 'Use Quick Connect',
'auth.quickConnectCode' => 'Quick Connect code',
'auth.quickConnectInstructions' => 'Open Quick Connect in Jellyfin and enter this code.',
'auth.quickConnectWaiting' => 'Waiting for approval…',
'auth.quickConnectCancel' => 'Cancel',
@@ -4998,9 +4973,9 @@ extension on Translations {
'subtitlingStyling.border' => 'Border',
'subtitlingStyling.background' => 'Background',
'subtitlingStyling.fontSize' => 'Font Size',
'subtitlingStyling.textColor' => 'Text Color',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Text Color',
'subtitlingStyling.borderSize' => 'Border Size',
'subtitlingStyling.borderColor' => 'Border Color',
'subtitlingStyling.backgroundOpacity' => 'Background Opacity',
@@ -5512,9 +5487,9 @@ extension on Translations {
'companionRemote.remote.tabRemote' => 'Remote',
'companionRemote.remote.tabPlay' => 'Play',
'companionRemote.remote.tabMore' => 'More',
'companionRemote.remote.menu' => 'Menu',
_ => null,
} ?? switch (path) {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Tab Navigation',
'companionRemote.remote.tabDiscover' => 'Discover',
'companionRemote.remote.tabLibraries' => 'Libraries',
@@ -5732,10 +5707,8 @@ extension on Translations {
'trackers.libraryFilter.libraries' => 'Libraries',
'trackers.libraryFilter.noLibraries' => 'No libraries available',
'addServer.addJellyfinTitle' => 'Add Jellyfin server',
'addServer.jellyfinUrlIntro' => 'Enter the server URL, e.g. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Enter one or more server URLs, separated by commas. Plezy will use the reachable URL with the lowest latency.',
'addServer.serverUrl' => 'Server URL',
'addServer.serverUrls' => 'Server URLs',
'addServer.serverUrlsHelper' => 'Multiple URLs allowed, separated by commas.',
'addServer.findServer' => 'Find server',
'addServer.searchingLocalServers' => 'Looking for local Jellyfin servers...',
'addServer.localServers' => 'Local Jellyfin servers',
@@ -5748,17 +5721,12 @@ extension on Translations {
'addServer.signInFailed' => ({required Object error}) => 'Sign-in failed: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect failed: ${error}',
'addServer.addPlexTitle' => 'Sign in with Plex',
'addServer.plexAuthIntro' => 'Sign in with a browser or QR code.',
'addServer.plexQRPrompt' => 'Scan this QR code to sign in.',
'addServer.waitingForPlexConfirmation' => 'Waiting for plex.tv to confirm your sign-in…',
'addServer.pinExpired' => 'PIN expired before sign-in. Please try again.',
'addServer.duplicatePlexAccount' => 'Already signed in to Plex. Sign out to switch accounts.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Failed to register account: ${error}',
'addServer.enterJellyfinUrlError' => 'Enter your Jellyfin server URL',
'addServer.addConnectionTitle' => 'Add connection',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Add to ${name}',
'addServer.addConnectionIntroGlobal' => 'Add another media server. Plex and Jellyfin appear together on Home.',
'addServer.addConnectionIntroScoped' => 'Add a new server, or borrow one from another profile.',
'addServer.signInWithPlexCard' => 'Sign in with Plex',
'addServer.signInWithPlexCardSubtitle' => 'Authorize this device. Shared servers are added.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Authorize a Plex account. Home users become profiles.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthEs extends TranslationsAuthEn {
@override String get or => 'o';
@override String get connectToJellyfin => 'Conectar a Jellyfin';
@override String get useQuickConnect => 'Usar Quick Connect';
@override String get quickConnectCode => 'Código de Quick Connect';
@override String get quickConnectInstructions => 'Abre Quick Connect en Jellyfin e introduce este código.';
@override String get quickConnectWaiting => 'Esperando aprobación…';
@override String get quickConnectCancel => 'Cancelar';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerEs extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Añadir servidor Jellyfin';
@override String get jellyfinUrlIntro => 'Introduce la URL del servidor, p. ej. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Introduce una o más URL del servidor, separadas por comas. Plezy usará la URL accesible con menor latencia.';
@override String get serverUrl => 'URL del servidor';
@override String get serverUrls => 'URL del servidor';
@override String get serverUrlsHelper => 'Se permiten varias URL, separadas por comas.';
@override String get findServer => 'Buscar servidor';
@override String get searchingLocalServers => 'Buscando servidores Jellyfin locales...';
@override String get localServers => 'Servidores Jellyfin locales';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerEs extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Error al iniciar sesión: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect ha fallado: ${error}';
@override String get addPlexTitle => 'Iniciar sesión con Plex';
@override String get plexAuthIntro => 'Inicia sesión con un navegador o código QR.';
@override String get plexQRPrompt => 'Escanea este código QR para iniciar sesión.';
@override String get waitingForPlexConfirmation => 'Esperando que plex.tv confirme tu inicio de sesión…';
@override String get pinExpired => 'El PIN caducó antes de iniciar sesión. Inténtalo de nuevo.';
@override String get duplicatePlexAccount => 'Ya iniciaste sesión en Plex. Cierra sesión para cambiar de cuenta.';
@override String failedToRegisterAccount({required Object error}) => 'No se pudo registrar la cuenta: ${error}';
@override String get enterJellyfinUrlError => 'Introduce la URL de tu servidor Jellyfin';
@override String get addConnectionTitle => 'Añadir conexión';
@override String addConnectionTitleScoped({required Object name}) => 'Añadir a ${name}';
@override String get addConnectionIntroGlobal => 'Añade otro servidor multimedia. Plex y Jellyfin aparecen juntos en Inicio.';
@override String get addConnectionIntroScoped => 'Añade un servidor nuevo o toma prestado uno de otro perfil.';
@override String get signInWithPlexCard => 'Iniciar sesión con Plex';
@override String get signInWithPlexCardSubtitle => 'Autoriza este dispositivo. Se añaden servidores compartidos.';
@override String get signInWithPlexCardSubtitleScoped => 'Autoriza una cuenta Plex. Los usuarios de Home se convierten en perfiles.';
@@ -1935,7 +1927,6 @@ extension on TranslationsEs {
'auth.or' => 'o',
'auth.connectToJellyfin' => 'Conectar a Jellyfin',
'auth.useQuickConnect' => 'Usar Quick Connect',
'auth.quickConnectCode' => 'Código de Quick Connect',
'auth.quickConnectInstructions' => 'Abre Quick Connect en Jellyfin e introduce este código.',
'auth.quickConnectWaiting' => 'Esperando aprobación…',
'auth.quickConnectCancel' => 'Cancelar',
@@ -2435,9 +2426,9 @@ extension on TranslationsEs {
'subtitlingStyling.border' => 'Borde',
'subtitlingStyling.background' => 'Fondo',
'subtitlingStyling.fontSize' => 'Tamaño de Fuente',
'subtitlingStyling.textColor' => 'Color de Texto',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Color de Texto',
'subtitlingStyling.borderSize' => 'Tamaño de Borde',
'subtitlingStyling.borderColor' => 'Color de Borde',
'subtitlingStyling.backgroundOpacity' => 'Opacidad de Fondo',
@@ -2949,9 +2940,9 @@ extension on TranslationsEs {
'companionRemote.remote.menu' => 'Menú',
'companionRemote.remote.tabNavigation' => 'Navegación por pestañas',
'companionRemote.remote.tabDiscover' => 'Descubrir',
'companionRemote.remote.tabLibraries' => 'Bibliotecas',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Bibliotecas',
'companionRemote.remote.tabSearch' => 'Buscar',
'companionRemote.remote.tabDownloads' => 'Descargas',
'companionRemote.remote.tabSettings' => 'Configuración',
@@ -3166,10 +3157,8 @@ extension on TranslationsEs {
'trackers.libraryFilter.libraries' => 'Bibliotecas',
'trackers.libraryFilter.noLibraries' => 'No hay bibliotecas disponibles',
'addServer.addJellyfinTitle' => 'Añadir servidor Jellyfin',
'addServer.jellyfinUrlIntro' => 'Introduce la URL del servidor, p. ej. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Introduce una o más URL del servidor, separadas por comas. Plezy usará la URL accesible con menor latencia.',
'addServer.serverUrl' => 'URL del servidor',
'addServer.serverUrls' => 'URL del servidor',
'addServer.serverUrlsHelper' => 'Se permiten varias URL, separadas por comas.',
'addServer.findServer' => 'Buscar servidor',
'addServer.searchingLocalServers' => 'Buscando servidores Jellyfin locales...',
'addServer.localServers' => 'Servidores Jellyfin locales',
@@ -3182,17 +3171,12 @@ extension on TranslationsEs {
'addServer.signInFailed' => ({required Object error}) => 'Error al iniciar sesión: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect ha fallado: ${error}',
'addServer.addPlexTitle' => 'Iniciar sesión con Plex',
'addServer.plexAuthIntro' => 'Inicia sesión con un navegador o código QR.',
'addServer.plexQRPrompt' => 'Escanea este código QR para iniciar sesión.',
'addServer.waitingForPlexConfirmation' => 'Esperando que plex.tv confirme tu inicio de sesión…',
'addServer.pinExpired' => 'El PIN caducó antes de iniciar sesión. Inténtalo de nuevo.',
'addServer.duplicatePlexAccount' => 'Ya iniciaste sesión en Plex. Cierra sesión para cambiar de cuenta.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'No se pudo registrar la cuenta: ${error}',
'addServer.enterJellyfinUrlError' => 'Introduce la URL de tu servidor Jellyfin',
'addServer.addConnectionTitle' => 'Añadir conexión',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Añadir a ${name}',
'addServer.addConnectionIntroGlobal' => 'Añade otro servidor multimedia. Plex y Jellyfin aparecen juntos en Inicio.',
'addServer.addConnectionIntroScoped' => 'Añade un servidor nuevo o toma prestado uno de otro perfil.',
'addServer.signInWithPlexCard' => 'Iniciar sesión con Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autoriza este dispositivo. Se añaden servidores compartidos.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autoriza una cuenta Plex. Los usuarios de Home se convierten en perfiles.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthFr extends TranslationsAuthEn {
@override String get or => 'ou';
@override String get connectToJellyfin => 'Se connecter à Jellyfin';
@override String get useQuickConnect => 'Utiliser Quick Connect';
@override String get quickConnectCode => 'Code Quick Connect';
@override String get quickConnectInstructions => 'Ouvrez Quick Connect dans Jellyfin et saisissez ce code.';
@override String get quickConnectWaiting => 'En attente d\'approbation…';
@override String get quickConnectCancel => 'Annuler';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerFr extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Ajouter un serveur Jellyfin';
@override String get jellyfinUrlIntro => 'Saisissez l\'URL du serveur, par ex. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Saisissez une ou plusieurs URL de serveur, séparées par des virgules. Plezy utilisera l\'URL joignable avec la latence la plus faible.';
@override String get serverUrl => 'URL du serveur';
@override String get serverUrls => 'URL du serveur';
@override String get serverUrlsHelper => 'Plusieurs URL possibles, séparées par des virgules.';
@override String get findServer => 'Rechercher un serveur';
@override String get searchingLocalServers => 'Recherche de serveurs Jellyfin locaux...';
@override String get localServers => 'Serveurs Jellyfin locaux';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerFr extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Échec de la connexion : ${error}';
@override String quickConnectFailed({required Object error}) => 'Échec de Quick Connect : ${error}';
@override String get addPlexTitle => 'Se connecter avec Plex';
@override String get plexAuthIntro => 'Connectez-vous avec un navigateur ou un code QR.';
@override String get plexQRPrompt => 'Scannez ce QR code pour vous connecter.';
@override String get waitingForPlexConfirmation => 'En attente de la confirmation de plex.tv…';
@override String get pinExpired => 'Le PIN a expiré avant la connexion. Veuillez réessayer.';
@override String get duplicatePlexAccount => 'Déjà connecté à Plex. Déconnectez-vous pour changer de compte.';
@override String failedToRegisterAccount({required Object error}) => 'Échec de l\'enregistrement du compte : ${error}';
@override String get enterJellyfinUrlError => 'Saisissez l\'URL de votre serveur Jellyfin';
@override String get addConnectionTitle => 'Ajouter une connexion';
@override String addConnectionTitleScoped({required Object name}) => 'Ajouter à ${name}';
@override String get addConnectionIntroGlobal => 'Ajoutez un autre serveur multimédia. Plex et Jellyfin apparaissent ensemble sur Accueil.';
@override String get addConnectionIntroScoped => 'Ajoutez un nouveau serveur, ou empruntez-en un à un autre profil.';
@override String get signInWithPlexCard => 'Se connecter avec Plex';
@override String get signInWithPlexCardSubtitle => 'Autorisez cet appareil. Les serveurs partagés sont ajoutés.';
@override String get signInWithPlexCardSubtitleScoped => 'Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.';
@@ -1935,7 +1927,6 @@ extension on TranslationsFr {
'auth.or' => 'ou',
'auth.connectToJellyfin' => 'Se connecter à Jellyfin',
'auth.useQuickConnect' => 'Utiliser Quick Connect',
'auth.quickConnectCode' => 'Code Quick Connect',
'auth.quickConnectInstructions' => 'Ouvrez Quick Connect dans Jellyfin et saisissez ce code.',
'auth.quickConnectWaiting' => 'En attente d\'approbation…',
'auth.quickConnectCancel' => 'Annuler',
@@ -2435,9 +2426,9 @@ extension on TranslationsFr {
'subtitlingStyling.border' => 'Bordure',
'subtitlingStyling.background' => 'Arrière-plan',
'subtitlingStyling.fontSize' => 'Taille de la police',
'subtitlingStyling.textColor' => 'Couleur du texte',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Couleur du texte',
'subtitlingStyling.borderSize' => 'Taille de la bordure',
'subtitlingStyling.borderColor' => 'Couleur de la bordure',
'subtitlingStyling.backgroundOpacity' => 'Opacité d\'arrière-plan',
@@ -2949,9 +2940,9 @@ extension on TranslationsFr {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Navigation par onglets',
'companionRemote.remote.tabDiscover' => 'Découvrir',
'companionRemote.remote.tabLibraries' => 'Bibliothèques',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Bibliothèques',
'companionRemote.remote.tabSearch' => 'Rechercher',
'companionRemote.remote.tabDownloads' => 'Téléchargements',
'companionRemote.remote.tabSettings' => 'Paramètres',
@@ -3166,10 +3157,8 @@ extension on TranslationsFr {
'trackers.libraryFilter.libraries' => 'Bibliothèques',
'trackers.libraryFilter.noLibraries' => 'Aucune bibliothèque disponible',
'addServer.addJellyfinTitle' => 'Ajouter un serveur Jellyfin',
'addServer.jellyfinUrlIntro' => 'Saisissez l\'URL du serveur, par ex. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Saisissez une ou plusieurs URL de serveur, séparées par des virgules. Plezy utilisera l\'URL joignable avec la latence la plus faible.',
'addServer.serverUrl' => 'URL du serveur',
'addServer.serverUrls' => 'URL du serveur',
'addServer.serverUrlsHelper' => 'Plusieurs URL possibles, séparées par des virgules.',
'addServer.findServer' => 'Rechercher un serveur',
'addServer.searchingLocalServers' => 'Recherche de serveurs Jellyfin locaux...',
'addServer.localServers' => 'Serveurs Jellyfin locaux',
@@ -3182,17 +3171,12 @@ extension on TranslationsFr {
'addServer.signInFailed' => ({required Object error}) => 'Échec de la connexion : ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Échec de Quick Connect : ${error}',
'addServer.addPlexTitle' => 'Se connecter avec Plex',
'addServer.plexAuthIntro' => 'Connectez-vous avec un navigateur ou un code QR.',
'addServer.plexQRPrompt' => 'Scannez ce QR code pour vous connecter.',
'addServer.waitingForPlexConfirmation' => 'En attente de la confirmation de plex.tv…',
'addServer.pinExpired' => 'Le PIN a expiré avant la connexion. Veuillez réessayer.',
'addServer.duplicatePlexAccount' => 'Déjà connecté à Plex. Déconnectez-vous pour changer de compte.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Échec de l\'enregistrement du compte : ${error}',
'addServer.enterJellyfinUrlError' => 'Saisissez l\'URL de votre serveur Jellyfin',
'addServer.addConnectionTitle' => 'Ajouter une connexion',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Ajouter à ${name}',
'addServer.addConnectionIntroGlobal' => 'Ajoutez un autre serveur multimédia. Plex et Jellyfin apparaissent ensemble sur Accueil.',
'addServer.addConnectionIntroScoped' => 'Ajoutez un nouveau serveur, ou empruntez-en un à un autre profil.',
'addServer.signInWithPlexCard' => 'Se connecter avec Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autorisez cet appareil. Les serveurs partagés sont ajoutés.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthIt extends TranslationsAuthEn {
@override String get or => 'o';
@override String get connectToJellyfin => 'Connetti a Jellyfin';
@override String get useQuickConnect => 'Usa Quick Connect';
@override String get quickConnectCode => 'Codice Quick Connect';
@override String get quickConnectInstructions => 'Apri Quick Connect in Jellyfin e inserisci questo codice.';
@override String get quickConnectWaiting => 'In attesa di approvazione…';
@override String get quickConnectCancel => 'Annulla';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerIt extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Aggiungi server Jellyfin';
@override String get jellyfinUrlIntro => 'Inserisci l\'URL del server, es. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Inserisci uno o più URL del server, separati da virgole. Plezy userà l\'URL raggiungibile con la latenza più bassa.';
@override String get serverUrl => 'URL del server';
@override String get serverUrls => 'URL del server';
@override String get serverUrlsHelper => 'Sono consentiti più URL, separati da virgole.';
@override String get findServer => 'Trova server';
@override String get searchingLocalServers => 'Ricerca server Jellyfin locali...';
@override String get localServers => 'Server Jellyfin locali';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerIt extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Accesso non riuscito: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect non riuscito: ${error}';
@override String get addPlexTitle => 'Accedi con Plex';
@override String get plexAuthIntro => 'Accedi con un browser o un codice QR.';
@override String get plexQRPrompt => 'Scansiona questo QR code per accedere.';
@override String get waitingForPlexConfirmation => 'In attesa della conferma da plex.tv…';
@override String get pinExpired => 'PIN scaduto prima dell\'accesso. Riprova.';
@override String get duplicatePlexAccount => 'Accesso a Plex già effettuato. Esci per cambiare account.';
@override String failedToRegisterAccount({required Object error}) => 'Registrazione account non riuscita: ${error}';
@override String get enterJellyfinUrlError => 'Inserisci l\'URL del tuo server Jellyfin';
@override String get addConnectionTitle => 'Aggiungi connessione';
@override String addConnectionTitleScoped({required Object name}) => 'Aggiungi a ${name}';
@override String get addConnectionIntroGlobal => 'Aggiungi un altro server multimediale. Plex e Jellyfin appaiono insieme in Home.';
@override String get addConnectionIntroScoped => 'Aggiungi un nuovo server, o prendine in prestito uno da un altro profilo.';
@override String get signInWithPlexCard => 'Accedi con Plex';
@override String get signInWithPlexCardSubtitle => 'Autorizza questo dispositivo. I server condivisi vengono aggiunti.';
@override String get signInWithPlexCardSubtitleScoped => 'Autorizza un account Plex. Gli utenti Home diventano profili.';
@@ -1935,7 +1927,6 @@ extension on TranslationsIt {
'auth.or' => 'o',
'auth.connectToJellyfin' => 'Connetti a Jellyfin',
'auth.useQuickConnect' => 'Usa Quick Connect',
'auth.quickConnectCode' => 'Codice Quick Connect',
'auth.quickConnectInstructions' => 'Apri Quick Connect in Jellyfin e inserisci questo codice.',
'auth.quickConnectWaiting' => 'In attesa di approvazione…',
'auth.quickConnectCancel' => 'Annulla',
@@ -2435,9 +2426,9 @@ extension on TranslationsIt {
'subtitlingStyling.border' => 'Bordo',
'subtitlingStyling.background' => 'Sfondo',
'subtitlingStyling.fontSize' => 'Dimensione',
'subtitlingStyling.textColor' => 'Colore testo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Colore testo',
'subtitlingStyling.borderSize' => 'Dimensione bordo',
'subtitlingStyling.borderColor' => 'Colore bordo',
'subtitlingStyling.backgroundOpacity' => 'Opacità sfondo',
@@ -2949,9 +2940,9 @@ extension on TranslationsIt {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Navigazione schede',
'companionRemote.remote.tabDiscover' => 'Esplora',
'companionRemote.remote.tabLibraries' => 'Librerie',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Librerie',
'companionRemote.remote.tabSearch' => 'Cerca',
'companionRemote.remote.tabDownloads' => 'Download',
'companionRemote.remote.tabSettings' => 'Impostazioni',
@@ -3166,10 +3157,8 @@ extension on TranslationsIt {
'trackers.libraryFilter.libraries' => 'Librerie',
'trackers.libraryFilter.noLibraries' => 'Nessuna libreria disponibile',
'addServer.addJellyfinTitle' => 'Aggiungi server Jellyfin',
'addServer.jellyfinUrlIntro' => 'Inserisci l\'URL del server, es. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Inserisci uno o più URL del server, separati da virgole. Plezy userà l\'URL raggiungibile con la latenza più bassa.',
'addServer.serverUrl' => 'URL del server',
'addServer.serverUrls' => 'URL del server',
'addServer.serverUrlsHelper' => 'Sono consentiti più URL, separati da virgole.',
'addServer.findServer' => 'Trova server',
'addServer.searchingLocalServers' => 'Ricerca server Jellyfin locali...',
'addServer.localServers' => 'Server Jellyfin locali',
@@ -3182,17 +3171,12 @@ extension on TranslationsIt {
'addServer.signInFailed' => ({required Object error}) => 'Accesso non riuscito: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect non riuscito: ${error}',
'addServer.addPlexTitle' => 'Accedi con Plex',
'addServer.plexAuthIntro' => 'Accedi con un browser o un codice QR.',
'addServer.plexQRPrompt' => 'Scansiona questo QR code per accedere.',
'addServer.waitingForPlexConfirmation' => 'In attesa della conferma da plex.tv…',
'addServer.pinExpired' => 'PIN scaduto prima dell\'accesso. Riprova.',
'addServer.duplicatePlexAccount' => 'Accesso a Plex già effettuato. Esci per cambiare account.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Registrazione account non riuscita: ${error}',
'addServer.enterJellyfinUrlError' => 'Inserisci l\'URL del tuo server Jellyfin',
'addServer.addConnectionTitle' => 'Aggiungi connessione',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Aggiungi a ${name}',
'addServer.addConnectionIntroGlobal' => 'Aggiungi un altro server multimediale. Plex e Jellyfin appaiono insieme in Home.',
'addServer.addConnectionIntroScoped' => 'Aggiungi un nuovo server, o prendine in prestito uno da un altro profilo.',
'addServer.signInWithPlexCard' => 'Accedi con Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autorizza questo dispositivo. I server condivisi vengono aggiunti.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autorizza un account Plex. Gli utenti Home diventano profili.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthJa extends TranslationsAuthEn {
@override String get or => 'または';
@override String get connectToJellyfin => 'Jellyfinに接続';
@override String get useQuickConnect => 'Quick Connect を使う';
@override String get quickConnectCode => 'Quick Connect コード';
@override String get quickConnectInstructions => 'JellyfinでQuick Connectを開き、このコードを入力してください。';
@override String get quickConnectWaiting => '承認を待っています…';
@override String get quickConnectCancel => 'キャンセル';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerJa extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Jellyfinサーバーを追加';
@override String get jellyfinUrlIntro => 'サーバーURLを入力してください。例: `https://jellyfin.example.com`。';
@override String get jellyfinUrlsIntro => 'サーバーURLを1つ以上、カンマで区切って入力してください。Plezyは到達可能なURLのうち最も低遅延のものを使用します。';
@override String get serverUrl => 'サーバーURL';
@override String get serverUrls => 'サーバーURL';
@override String get serverUrlsHelper => '複数のURLをカンマ区切りで入力できます。';
@override String get findServer => 'サーバーを検索';
@override String get searchingLocalServers => 'ローカル Jellyfin サーバーを検索中...';
@override String get localServers => 'ローカル Jellyfin サーバー';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerJa extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'サインインに失敗しました: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connectに失敗しました: ${error}';
@override String get addPlexTitle => 'Plexでサインイン';
@override String get plexAuthIntro => 'ブラウザまたはQRコードでサインインします。';
@override String get plexQRPrompt => 'このQRコードをスキャンしてサインインしてください。';
@override String get waitingForPlexConfirmation => 'plex.tvがサインインを確認するのを待っています…';
@override String get pinExpired => 'サインイン前にPINの有効期限が切れました。もう一度お試しください。';
@override String get duplicatePlexAccount => 'すでにPlexにサインインしています。アカウントを切り替えるにはサインアウトしてください。';
@override String failedToRegisterAccount({required Object error}) => 'アカウントの登録に失敗しました: ${error}';
@override String get enterJellyfinUrlError => 'JellyfinサーバーのURLを入力してください';
@override String get addConnectionTitle => '接続を追加';
@override String addConnectionTitleScoped({required Object name}) => '${name}に追加';
@override String get addConnectionIntroGlobal => '別のメディアサーバーを追加します。PlexとJellyfinはホームに一緒に表示されます。';
@override String get addConnectionIntroScoped => '新しいサーバーを追加するか、別のプロファイルから借りてください。';
@override String get signInWithPlexCard => 'Plexでサインイン';
@override String get signInWithPlexCardSubtitle => 'このデバイスを承認します。共有サーバーが追加されます。';
@override String get signInWithPlexCardSubtitleScoped => 'Plexアカウントを承認します。Homeユーザーはプロフィールになります。';
@@ -1935,7 +1927,6 @@ extension on TranslationsJa {
'auth.or' => 'または',
'auth.connectToJellyfin' => 'Jellyfinに接続',
'auth.useQuickConnect' => 'Quick Connect を使う',
'auth.quickConnectCode' => 'Quick Connect コード',
'auth.quickConnectInstructions' => 'JellyfinでQuick Connectを開き、このコードを入力してください。',
'auth.quickConnectWaiting' => '承認を待っています…',
'auth.quickConnectCancel' => 'キャンセル',
@@ -2435,9 +2426,9 @@ extension on TranslationsJa {
'subtitlingStyling.border' => '枠線',
'subtitlingStyling.background' => '背景',
'subtitlingStyling.fontSize' => 'フォントサイズ',
'subtitlingStyling.textColor' => 'テキストの色',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'テキストの色',
'subtitlingStyling.borderSize' => '枠線サイズ',
'subtitlingStyling.borderColor' => '枠線の色',
'subtitlingStyling.backgroundOpacity' => '背景の不透明度',
@@ -2949,9 +2940,9 @@ extension on TranslationsJa {
'companionRemote.remote.menu' => 'メニュー',
'companionRemote.remote.tabNavigation' => 'タブナビゲーション',
'companionRemote.remote.tabDiscover' => '探す',
'companionRemote.remote.tabLibraries' => 'ライブラリ',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'ライブラリ',
'companionRemote.remote.tabSearch' => '検索',
'companionRemote.remote.tabDownloads' => 'ダウンロード',
'companionRemote.remote.tabSettings' => '設定',
@@ -3166,10 +3157,8 @@ extension on TranslationsJa {
'trackers.libraryFilter.libraries' => 'ライブラリ',
'trackers.libraryFilter.noLibraries' => '利用できるライブラリがありません',
'addServer.addJellyfinTitle' => 'Jellyfinサーバーを追加',
'addServer.jellyfinUrlIntro' => 'サーバーURLを入力してください。例: `https://jellyfin.example.com`。',
'addServer.jellyfinUrlsIntro' => 'サーバーURLを1つ以上、カンマで区切って入力してください。Plezyは到達可能なURLのうち最も低遅延のものを使用します。',
'addServer.serverUrl' => 'サーバーURL',
'addServer.serverUrls' => 'サーバーURL',
'addServer.serverUrlsHelper' => '複数のURLをカンマ区切りで入力できます。',
'addServer.findServer' => 'サーバーを検索',
'addServer.searchingLocalServers' => 'ローカル Jellyfin サーバーを検索中...',
'addServer.localServers' => 'ローカル Jellyfin サーバー',
@@ -3182,17 +3171,12 @@ extension on TranslationsJa {
'addServer.signInFailed' => ({required Object error}) => 'サインインに失敗しました: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connectに失敗しました: ${error}',
'addServer.addPlexTitle' => 'Plexでサインイン',
'addServer.plexAuthIntro' => 'ブラウザまたはQRコードでサインインします。',
'addServer.plexQRPrompt' => 'このQRコードをスキャンしてサインインしてください。',
'addServer.waitingForPlexConfirmation' => 'plex.tvがサインインを確認するのを待っています…',
'addServer.pinExpired' => 'サインイン前にPINの有効期限が切れました。もう一度お試しください。',
'addServer.duplicatePlexAccount' => 'すでにPlexにサインインしています。アカウントを切り替えるにはサインアウトしてください。',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'アカウントの登録に失敗しました: ${error}',
'addServer.enterJellyfinUrlError' => 'JellyfinサーバーのURLを入力してください',
'addServer.addConnectionTitle' => '接続を追加',
'addServer.addConnectionTitleScoped' => ({required Object name}) => '${name}に追加',
'addServer.addConnectionIntroGlobal' => '別のメディアサーバーを追加します。PlexとJellyfinはホームに一緒に表示されます。',
'addServer.addConnectionIntroScoped' => '新しいサーバーを追加するか、別のプロファイルから借りてください。',
'addServer.signInWithPlexCard' => 'Plexでサインイン',
'addServer.signInWithPlexCardSubtitle' => 'このデバイスを承認します。共有サーバーが追加されます。',
'addServer.signInWithPlexCardSubtitleScoped' => 'Plexアカウントを承認します。Homeユーザーはプロフィールになります。',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthKo extends TranslationsAuthEn {
@override String get or => '또는';
@override String get connectToJellyfin => 'Jellyfin에 연결';
@override String get useQuickConnect => 'Quick Connect 사용';
@override String get quickConnectCode => 'Quick Connect 코드';
@override String get quickConnectInstructions => 'Jellyfin에서 Quick Connect를 열고 이 코드를 입력하세요.';
@override String get quickConnectWaiting => '승인 대기 중…';
@override String get quickConnectCancel => '취소';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerKo extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Jellyfin 서버 추가';
@override String get jellyfinUrlIntro => '서버 URL을 입력하세요. 예: `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => '서버 URL을 하나 이상 쉼표로 구분해 입력하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다.';
@override String get serverUrl => '서버 URL';
@override String get serverUrls => '서버 URL';
@override String get serverUrlsHelper => '쉼표로 구분하여 여러 URL을 입력할 수 있습니다.';
@override String get findServer => '서버 찾기';
@override String get searchingLocalServers => '로컬 Jellyfin 서버 검색 중...';
@override String get localServers => '로컬 Jellyfin 서버';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerKo extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => '로그인 실패: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect 실패: ${error}';
@override String get addPlexTitle => 'Plex로 로그인';
@override String get plexAuthIntro => '브라우저 또는 QR 코드로 로그인하세요.';
@override String get plexQRPrompt => '이 QR 코드를 스캔하여 로그인하세요.';
@override String get waitingForPlexConfirmation => 'plex.tv에서 로그인을 확인하는 중…';
@override String get pinExpired => '로그인 전에 PIN이 만료되었습니다. 다시 시도하세요.';
@override String get duplicatePlexAccount => '이미 Plex에 로그인되어 있습니다. 계정을 전환하려면 로그아웃하세요.';
@override String failedToRegisterAccount({required Object error}) => '계정 등록 실패: ${error}';
@override String get enterJellyfinUrlError => 'Jellyfin 서버 URL을 입력하세요';
@override String get addConnectionTitle => '연결 추가';
@override String addConnectionTitleScoped({required Object name}) => '${name}에 추가';
@override String get addConnectionIntroGlobal => '다른 미디어 서버를 추가합니다. Plex와 Jellyfin이 홈에 함께 표시됩니다.';
@override String get addConnectionIntroScoped => '새 서버를 추가하거나 다른 프로필에서 빌리세요.';
@override String get signInWithPlexCard => 'Plex로 로그인';
@override String get signInWithPlexCardSubtitle => '이 기기를 승인합니다. 공유 서버가 추가됩니다.';
@override String get signInWithPlexCardSubtitleScoped => 'Plex 계정을 승인합니다. Home 사용자는 프로필이 됩니다.';
@@ -1935,7 +1927,6 @@ extension on TranslationsKo {
'auth.or' => '또는',
'auth.connectToJellyfin' => 'Jellyfin에 연결',
'auth.useQuickConnect' => 'Quick Connect 사용',
'auth.quickConnectCode' => 'Quick Connect 코드',
'auth.quickConnectInstructions' => 'Jellyfin에서 Quick Connect를 열고 이 코드를 입력하세요.',
'auth.quickConnectWaiting' => '승인 대기 중…',
'auth.quickConnectCancel' => '취소',
@@ -2435,9 +2426,9 @@ extension on TranslationsKo {
'subtitlingStyling.border' => '테두리',
'subtitlingStyling.background' => '배경',
'subtitlingStyling.fontSize' => '글자 크기',
'subtitlingStyling.textColor' => '텍스트 색상',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => '텍스트 색상',
'subtitlingStyling.borderSize' => '테두리 크기',
'subtitlingStyling.borderColor' => '테두리 색상',
'subtitlingStyling.backgroundOpacity' => '배경 불투명도',
@@ -2949,9 +2940,9 @@ extension on TranslationsKo {
'companionRemote.remote.menu' => '메뉴',
'companionRemote.remote.tabNavigation' => '탭 탐색',
'companionRemote.remote.tabDiscover' => '발견',
'companionRemote.remote.tabLibraries' => '미디어 라이브러리',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => '미디어 라이브러리',
'companionRemote.remote.tabSearch' => '검색',
'companionRemote.remote.tabDownloads' => '다운로드',
'companionRemote.remote.tabSettings' => '설정',
@@ -3166,10 +3157,8 @@ extension on TranslationsKo {
'trackers.libraryFilter.libraries' => '라이브러리',
'trackers.libraryFilter.noLibraries' => '사용 가능한 라이브러리가 없습니다',
'addServer.addJellyfinTitle' => 'Jellyfin 서버 추가',
'addServer.jellyfinUrlIntro' => '서버 URL을 입력하세요. 예: `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => '서버 URL을 하나 이상 쉼표로 구분해 입력하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다.',
'addServer.serverUrl' => '서버 URL',
'addServer.serverUrls' => '서버 URL',
'addServer.serverUrlsHelper' => '쉼표로 구분하여 여러 URL을 입력할 수 있습니다.',
'addServer.findServer' => '서버 찾기',
'addServer.searchingLocalServers' => '로컬 Jellyfin 서버 검색 중...',
'addServer.localServers' => '로컬 Jellyfin 서버',
@@ -3182,17 +3171,12 @@ extension on TranslationsKo {
'addServer.signInFailed' => ({required Object error}) => '로그인 실패: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect 실패: ${error}',
'addServer.addPlexTitle' => 'Plex로 로그인',
'addServer.plexAuthIntro' => '브라우저 또는 QR 코드로 로그인하세요.',
'addServer.plexQRPrompt' => '이 QR 코드를 스캔하여 로그인하세요.',
'addServer.waitingForPlexConfirmation' => 'plex.tv에서 로그인을 확인하는 중…',
'addServer.pinExpired' => '로그인 전에 PIN이 만료되었습니다. 다시 시도하세요.',
'addServer.duplicatePlexAccount' => '이미 Plex에 로그인되어 있습니다. 계정을 전환하려면 로그아웃하세요.',
'addServer.failedToRegisterAccount' => ({required Object error}) => '계정 등록 실패: ${error}',
'addServer.enterJellyfinUrlError' => 'Jellyfin 서버 URL을 입력하세요',
'addServer.addConnectionTitle' => '연결 추가',
'addServer.addConnectionTitleScoped' => ({required Object name}) => '${name}에 추가',
'addServer.addConnectionIntroGlobal' => '다른 미디어 서버를 추가합니다. Plex와 Jellyfin이 홈에 함께 표시됩니다.',
'addServer.addConnectionIntroScoped' => '새 서버를 추가하거나 다른 프로필에서 빌리세요.',
'addServer.signInWithPlexCard' => 'Plex로 로그인',
'addServer.signInWithPlexCardSubtitle' => '이 기기를 승인합니다. 공유 서버가 추가됩니다.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Plex 계정을 승인합니다. Home 사용자는 프로필이 됩니다.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthNb extends TranslationsAuthEn {
@override String get or => 'eller';
@override String get connectToJellyfin => 'Koble til Jellyfin';
@override String get useQuickConnect => 'Bruk Quick Connect';
@override String get quickConnectCode => 'Quick Connect-kode';
@override String get quickConnectInstructions => 'Åpne Quick Connect i Jellyfin og skriv inn denne koden.';
@override String get quickConnectWaiting => 'Venter på godkjenning…';
@override String get quickConnectCancel => 'Avbryt';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerNb extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Legg til Jellyfin-server';
@override String get jellyfinUrlIntro => 'Skriv inn server-URL-en, f.eks. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Skriv inn én eller flere server-URL-er, adskilt med kommaer. Plezy bruker den tilgjengelige URL-en med lavest forsinkelse.';
@override String get serverUrl => 'Server-URL';
@override String get serverUrls => 'Server-URL-er';
@override String get serverUrlsHelper => 'Flere URL-er er tillatt, atskilt med komma.';
@override String get findServer => 'Finn server';
@override String get searchingLocalServers => 'Søker etter lokale Jellyfin-servere...';
@override String get localServers => 'Lokale Jellyfin-servere';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerNb extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Pålogging mislyktes: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect mislyktes: ${error}';
@override String get addPlexTitle => 'Logg på med Plex';
@override String get plexAuthIntro => 'Logg inn med en nettleser eller QR-kode.';
@override String get plexQRPrompt => 'Skann denne QR-koden for å logge på.';
@override String get waitingForPlexConfirmation => 'Venter på at plex.tv bekrefter påloggingen…';
@override String get pinExpired => 'PIN-koden gikk ut før pålogging. Prøv igjen.';
@override String get duplicatePlexAccount => 'Allerede logget inn på Plex. Logg ut for å bytte konto.';
@override String failedToRegisterAccount({required Object error}) => 'Kunne ikke registrere kontoen: ${error}';
@override String get enterJellyfinUrlError => 'Oppgi URL-en til Jellyfin-serveren din';
@override String get addConnectionTitle => 'Legg til tilkobling';
@override String addConnectionTitleScoped({required Object name}) => 'Legg til i ${name}';
@override String get addConnectionIntroGlobal => 'Legg til en annen medieserver. Plex og Jellyfin vises sammen på Hjem.';
@override String get addConnectionIntroScoped => 'Legg til en ny server, eller lån en fra en annen profil.';
@override String get signInWithPlexCard => 'Logg på med Plex';
@override String get signInWithPlexCardSubtitle => 'Autoriser denne enheten. Delte servere legges til.';
@override String get signInWithPlexCardSubtitleScoped => 'Autoriser en Plex-konto. Home-brukere blir profiler.';
@@ -1935,7 +1927,6 @@ extension on TranslationsNb {
'auth.or' => 'eller',
'auth.connectToJellyfin' => 'Koble til Jellyfin',
'auth.useQuickConnect' => 'Bruk Quick Connect',
'auth.quickConnectCode' => 'Quick Connect-kode',
'auth.quickConnectInstructions' => 'Åpne Quick Connect i Jellyfin og skriv inn denne koden.',
'auth.quickConnectWaiting' => 'Venter på godkjenning…',
'auth.quickConnectCancel' => 'Avbryt',
@@ -2435,9 +2426,9 @@ extension on TranslationsNb {
'subtitlingStyling.border' => 'Kantlinje',
'subtitlingStyling.background' => 'Bakgrunn',
'subtitlingStyling.fontSize' => 'Skriftstørrelse',
'subtitlingStyling.textColor' => 'Tekstfarge',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Tekstfarge',
'subtitlingStyling.borderSize' => 'Kantstørrelse',
'subtitlingStyling.borderColor' => 'Kantfarge',
'subtitlingStyling.backgroundOpacity' => 'Bakgrunnsopasitet',
@@ -2949,9 +2940,9 @@ extension on TranslationsNb {
'companionRemote.remote.menu' => 'Meny',
'companionRemote.remote.tabNavigation' => 'Fanenavigering',
'companionRemote.remote.tabDiscover' => 'Oppdag',
'companionRemote.remote.tabLibraries' => 'Biblioteker',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Biblioteker',
'companionRemote.remote.tabSearch' => 'Søk',
'companionRemote.remote.tabDownloads' => 'Nedlastinger',
'companionRemote.remote.tabSettings' => 'Innstillinger',
@@ -3166,10 +3157,8 @@ extension on TranslationsNb {
'trackers.libraryFilter.libraries' => 'Biblioteker',
'trackers.libraryFilter.noLibraries' => 'Ingen biblioteker tilgjengelige',
'addServer.addJellyfinTitle' => 'Legg til Jellyfin-server',
'addServer.jellyfinUrlIntro' => 'Skriv inn server-URL-en, f.eks. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Skriv inn én eller flere server-URL-er, adskilt med kommaer. Plezy bruker den tilgjengelige URL-en med lavest forsinkelse.',
'addServer.serverUrl' => 'Server-URL',
'addServer.serverUrls' => 'Server-URL-er',
'addServer.serverUrlsHelper' => 'Flere URL-er er tillatt, atskilt med komma.',
'addServer.findServer' => 'Finn server',
'addServer.searchingLocalServers' => 'Søker etter lokale Jellyfin-servere...',
'addServer.localServers' => 'Lokale Jellyfin-servere',
@@ -3182,17 +3171,12 @@ extension on TranslationsNb {
'addServer.signInFailed' => ({required Object error}) => 'Pålogging mislyktes: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect mislyktes: ${error}',
'addServer.addPlexTitle' => 'Logg på med Plex',
'addServer.plexAuthIntro' => 'Logg inn med en nettleser eller QR-kode.',
'addServer.plexQRPrompt' => 'Skann denne QR-koden for å logge på.',
'addServer.waitingForPlexConfirmation' => 'Venter på at plex.tv bekrefter påloggingen…',
'addServer.pinExpired' => 'PIN-koden gikk ut før pålogging. Prøv igjen.',
'addServer.duplicatePlexAccount' => 'Allerede logget inn på Plex. Logg ut for å bytte konto.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Kunne ikke registrere kontoen: ${error}',
'addServer.enterJellyfinUrlError' => 'Oppgi URL-en til Jellyfin-serveren din',
'addServer.addConnectionTitle' => 'Legg til tilkobling',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Legg til i ${name}',
'addServer.addConnectionIntroGlobal' => 'Legg til en annen medieserver. Plex og Jellyfin vises sammen på Hjem.',
'addServer.addConnectionIntroScoped' => 'Legg til en ny server, eller lån en fra en annen profil.',
'addServer.signInWithPlexCard' => 'Logg på med Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autoriser denne enheten. Delte servere legges til.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autoriser en Plex-konto. Home-brukere blir profiler.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthNl extends TranslationsAuthEn {
@override String get or => 'of';
@override String get connectToJellyfin => 'Verbinden met Jellyfin';
@override String get useQuickConnect => 'Quick Connect gebruiken';
@override String get quickConnectCode => 'Quick Connect-code';
@override String get quickConnectInstructions => 'Open Quick Connect in Jellyfin en voer deze code in.';
@override String get quickConnectWaiting => 'Wachten op goedkeuring…';
@override String get quickConnectCancel => 'Annuleren';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerNl extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Jellyfin-server toevoegen';
@override String get jellyfinUrlIntro => 'Voer de server-URL in, bijv. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Voer een of meer server-URL\'s in, gescheiden door komma\'s. Plezy gebruikt de bereikbare URL met de laagste latentie.';
@override String get serverUrl => 'Server-URL';
@override String get serverUrls => 'Server-URL\'s';
@override String get serverUrlsHelper => 'Meerdere URL\'s toegestaan, gescheiden door komma\'s.';
@override String get findServer => 'Server zoeken';
@override String get searchingLocalServers => 'Lokale Jellyfin-servers zoeken...';
@override String get localServers => 'Lokale Jellyfin-servers';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerNl extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Inloggen mislukt: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect mislukt: ${error}';
@override String get addPlexTitle => 'Inloggen met Plex';
@override String get plexAuthIntro => 'Meld je aan met een browser of QR-code.';
@override String get plexQRPrompt => 'Scan deze QR-code om in te loggen.';
@override String get waitingForPlexConfirmation => 'Wachten tot plex.tv je inloggen bevestigt…';
@override String get pinExpired => 'PIN verlopen vóór inloggen. Probeer opnieuw.';
@override String get duplicatePlexAccount => 'Al aangemeld bij Plex. Meld je af om van account te wisselen.';
@override String failedToRegisterAccount({required Object error}) => 'Account registreren mislukt: ${error}';
@override String get enterJellyfinUrlError => 'Voer de URL van je Jellyfin-server in';
@override String get addConnectionTitle => 'Verbinding toevoegen';
@override String addConnectionTitleScoped({required Object name}) => 'Toevoegen aan ${name}';
@override String get addConnectionIntroGlobal => 'Voeg een andere mediaserver toe. Plex en Jellyfin verschijnen samen op Home.';
@override String get addConnectionIntroScoped => 'Voeg een nieuwe server toe, of leen er een van een ander profiel.';
@override String get signInWithPlexCard => 'Inloggen met Plex';
@override String get signInWithPlexCardSubtitle => 'Autoriseer dit apparaat. Gedeelde servers worden toegevoegd.';
@override String get signInWithPlexCardSubtitleScoped => 'Autoriseer een Plex-account. Home-gebruikers worden profielen.';
@@ -1935,7 +1927,6 @@ extension on TranslationsNl {
'auth.or' => 'of',
'auth.connectToJellyfin' => 'Verbinden met Jellyfin',
'auth.useQuickConnect' => 'Quick Connect gebruiken',
'auth.quickConnectCode' => 'Quick Connect-code',
'auth.quickConnectInstructions' => 'Open Quick Connect in Jellyfin en voer deze code in.',
'auth.quickConnectWaiting' => 'Wachten op goedkeuring…',
'auth.quickConnectCancel' => 'Annuleren',
@@ -2435,9 +2426,9 @@ extension on TranslationsNl {
'subtitlingStyling.border' => 'Rand',
'subtitlingStyling.background' => 'Achtergrond',
'subtitlingStyling.fontSize' => 'Lettergrootte',
'subtitlingStyling.textColor' => 'Tekstkleur',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Tekstkleur',
'subtitlingStyling.borderSize' => 'Rand grootte',
'subtitlingStyling.borderColor' => 'Randkleur',
'subtitlingStyling.backgroundOpacity' => 'Achtergrond transparantie',
@@ -2949,9 +2940,9 @@ extension on TranslationsNl {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Tabnavigatie',
'companionRemote.remote.tabDiscover' => 'Ontdekken',
'companionRemote.remote.tabLibraries' => 'Bibliotheken',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Bibliotheken',
'companionRemote.remote.tabSearch' => 'Zoeken',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Instellingen',
@@ -3166,10 +3157,8 @@ extension on TranslationsNl {
'trackers.libraryFilter.libraries' => 'Bibliotheken',
'trackers.libraryFilter.noLibraries' => 'Geen bibliotheken beschikbaar',
'addServer.addJellyfinTitle' => 'Jellyfin-server toevoegen',
'addServer.jellyfinUrlIntro' => 'Voer de server-URL in, bijv. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Voer een of meer server-URL\'s in, gescheiden door komma\'s. Plezy gebruikt de bereikbare URL met de laagste latentie.',
'addServer.serverUrl' => 'Server-URL',
'addServer.serverUrls' => 'Server-URL\'s',
'addServer.serverUrlsHelper' => 'Meerdere URL\'s toegestaan, gescheiden door komma\'s.',
'addServer.findServer' => 'Server zoeken',
'addServer.searchingLocalServers' => 'Lokale Jellyfin-servers zoeken...',
'addServer.localServers' => 'Lokale Jellyfin-servers',
@@ -3182,17 +3171,12 @@ extension on TranslationsNl {
'addServer.signInFailed' => ({required Object error}) => 'Inloggen mislukt: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect mislukt: ${error}',
'addServer.addPlexTitle' => 'Inloggen met Plex',
'addServer.plexAuthIntro' => 'Meld je aan met een browser of QR-code.',
'addServer.plexQRPrompt' => 'Scan deze QR-code om in te loggen.',
'addServer.waitingForPlexConfirmation' => 'Wachten tot plex.tv je inloggen bevestigt…',
'addServer.pinExpired' => 'PIN verlopen vóór inloggen. Probeer opnieuw.',
'addServer.duplicatePlexAccount' => 'Al aangemeld bij Plex. Meld je af om van account te wisselen.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Account registreren mislukt: ${error}',
'addServer.enterJellyfinUrlError' => 'Voer de URL van je Jellyfin-server in',
'addServer.addConnectionTitle' => 'Verbinding toevoegen',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Toevoegen aan ${name}',
'addServer.addConnectionIntroGlobal' => 'Voeg een andere mediaserver toe. Plex en Jellyfin verschijnen samen op Home.',
'addServer.addConnectionIntroScoped' => 'Voeg een nieuwe server toe, of leen er een van een ander profiel.',
'addServer.signInWithPlexCard' => 'Inloggen met Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autoriseer dit apparaat. Gedeelde servers worden toegevoegd.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autoriseer een Plex-account. Home-gebruikers worden profielen.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthPl extends TranslationsAuthEn {
@override String get or => 'lub';
@override String get connectToJellyfin => 'Połącz z Jellyfin';
@override String get useQuickConnect => 'Użyj Quick Connect';
@override String get quickConnectCode => 'Kod Quick Connect';
@override String get quickConnectInstructions => 'Otwórz Quick Connect w Jellyfin i wpisz ten kod.';
@override String get quickConnectWaiting => 'Oczekiwanie na zatwierdzenie…';
@override String get quickConnectCancel => 'Anuluj';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerPl extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Dodaj serwer Jellyfin';
@override String get jellyfinUrlIntro => 'Wpisz URL serwera, np. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Wpisz co najmniej jeden URL serwera, oddzielając je przecinkami. Plezy użyje osiągalnego URL-a o najniższym opóźnieniu.';
@override String get serverUrl => 'URL serwera';
@override String get serverUrls => 'URL-e serwera';
@override String get serverUrlsHelper => 'Można podać wiele adresów URL, rozdzielonych przecinkami.';
@override String get findServer => 'Znajdź serwer';
@override String get searchingLocalServers => 'Szukanie lokalnych serwerów Jellyfin...';
@override String get localServers => 'Lokalne serwery Jellyfin';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerPl extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Logowanie nie powiodło się: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect nie powiodło się: ${error}';
@override String get addPlexTitle => 'Zaloguj się przez Plex';
@override String get plexAuthIntro => 'Zaloguj się przez przeglądarkę lub kod QR.';
@override String get plexQRPrompt => 'Zeskanuj ten kod QR, aby się zalogować.';
@override String get waitingForPlexConfirmation => 'Czekam na potwierdzenie logowania przez plex.tv…';
@override String get pinExpired => 'PIN wygasł przed zalogowaniem. Spróbuj ponownie.';
@override String get duplicatePlexAccount => 'Już zalogowano do Plex. Wyloguj się, aby zmienić konto.';
@override String failedToRegisterAccount({required Object error}) => 'Nie udało się zarejestrować konta: ${error}';
@override String get enterJellyfinUrlError => 'Podaj URL serwera Jellyfin';
@override String get addConnectionTitle => 'Dodaj połączenie';
@override String addConnectionTitleScoped({required Object name}) => 'Dodaj do ${name}';
@override String get addConnectionIntroGlobal => 'Dodaj kolejny serwer multimediów. Plex i Jellyfin pojawią się razem na ekranie głównym.';
@override String get addConnectionIntroScoped => 'Dodaj nowy serwer lub pożycz z innego profilu.';
@override String get signInWithPlexCard => 'Zaloguj się przez Plex';
@override String get signInWithPlexCardSubtitle => 'Autoryzuj to urządzenie. Serwery udostępnione zostaną dodane.';
@override String get signInWithPlexCardSubtitleScoped => 'Autoryzuj konto Plex. Użytkownicy Home staną się profilami.';
@@ -1935,7 +1927,6 @@ extension on TranslationsPl {
'auth.or' => 'lub',
'auth.connectToJellyfin' => 'Połącz z Jellyfin',
'auth.useQuickConnect' => 'Użyj Quick Connect',
'auth.quickConnectCode' => 'Kod Quick Connect',
'auth.quickConnectInstructions' => 'Otwórz Quick Connect w Jellyfin i wpisz ten kod.',
'auth.quickConnectWaiting' => 'Oczekiwanie na zatwierdzenie…',
'auth.quickConnectCancel' => 'Anuluj',
@@ -2435,9 +2426,9 @@ extension on TranslationsPl {
'subtitlingStyling.border' => 'Obramowanie',
'subtitlingStyling.background' => 'Tło',
'subtitlingStyling.fontSize' => 'Rozmiar czcionki',
'subtitlingStyling.textColor' => 'Kolor tekstu',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Kolor tekstu',
'subtitlingStyling.borderSize' => 'Rozmiar obramowania',
'subtitlingStyling.borderColor' => 'Kolor obramowania',
'subtitlingStyling.backgroundOpacity' => 'Przezroczystość tła',
@@ -2949,9 +2940,9 @@ extension on TranslationsPl {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Nawigacja',
'companionRemote.remote.tabDiscover' => 'Odkryj',
'companionRemote.remote.tabLibraries' => 'Biblioteki',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Biblioteki',
'companionRemote.remote.tabSearch' => 'Szukaj',
'companionRemote.remote.tabDownloads' => 'Pobrania',
'companionRemote.remote.tabSettings' => 'Ustawienia',
@@ -3166,10 +3157,8 @@ extension on TranslationsPl {
'trackers.libraryFilter.libraries' => 'Biblioteki',
'trackers.libraryFilter.noLibraries' => 'Brak dostępnych bibliotek',
'addServer.addJellyfinTitle' => 'Dodaj serwer Jellyfin',
'addServer.jellyfinUrlIntro' => 'Wpisz URL serwera, np. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Wpisz co najmniej jeden URL serwera, oddzielając je przecinkami. Plezy użyje osiągalnego URL-a o najniższym opóźnieniu.',
'addServer.serverUrl' => 'URL serwera',
'addServer.serverUrls' => 'URL-e serwera',
'addServer.serverUrlsHelper' => 'Można podać wiele adresów URL, rozdzielonych przecinkami.',
'addServer.findServer' => 'Znajdź serwer',
'addServer.searchingLocalServers' => 'Szukanie lokalnych serwerów Jellyfin...',
'addServer.localServers' => 'Lokalne serwery Jellyfin',
@@ -3182,17 +3171,12 @@ extension on TranslationsPl {
'addServer.signInFailed' => ({required Object error}) => 'Logowanie nie powiodło się: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect nie powiodło się: ${error}',
'addServer.addPlexTitle' => 'Zaloguj się przez Plex',
'addServer.plexAuthIntro' => 'Zaloguj się przez przeglądarkę lub kod QR.',
'addServer.plexQRPrompt' => 'Zeskanuj ten kod QR, aby się zalogować.',
'addServer.waitingForPlexConfirmation' => 'Czekam na potwierdzenie logowania przez plex.tv…',
'addServer.pinExpired' => 'PIN wygasł przed zalogowaniem. Spróbuj ponownie.',
'addServer.duplicatePlexAccount' => 'Już zalogowano do Plex. Wyloguj się, aby zmienić konto.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Nie udało się zarejestrować konta: ${error}',
'addServer.enterJellyfinUrlError' => 'Podaj URL serwera Jellyfin',
'addServer.addConnectionTitle' => 'Dodaj połączenie',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Dodaj do ${name}',
'addServer.addConnectionIntroGlobal' => 'Dodaj kolejny serwer multimediów. Plex i Jellyfin pojawią się razem na ekranie głównym.',
'addServer.addConnectionIntroScoped' => 'Dodaj nowy serwer lub pożycz z innego profilu.',
'addServer.signInWithPlexCard' => 'Zaloguj się przez Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autoryzuj to urządzenie. Serwery udostępnione zostaną dodane.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autoryzuj konto Plex. Użytkownicy Home staną się profilami.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthPt extends TranslationsAuthEn {
@override String get or => 'ou';
@override String get connectToJellyfin => 'Conectar ao Jellyfin';
@override String get useQuickConnect => 'Usar Quick Connect';
@override String get quickConnectCode => 'Código do Quick Connect';
@override String get quickConnectInstructions => 'Abra o Quick Connect no Jellyfin e insira este código.';
@override String get quickConnectWaiting => 'A aguardar aprovação…';
@override String get quickConnectCancel => 'Cancelar';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerPt extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Adicionar servidor Jellyfin';
@override String get jellyfinUrlIntro => 'Insira a URL do servidor, ex. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Insira uma ou mais URLs do servidor, separadas por vírgulas. O Plezy usará a URL acessível com a menor latência.';
@override String get serverUrl => 'URL do servidor';
@override String get serverUrls => 'URLs do servidor';
@override String get serverUrlsHelper => 'Vários URLs permitidos, separados por vírgulas.';
@override String get findServer => 'Encontrar servidor';
@override String get searchingLocalServers => 'A procurar servidores Jellyfin locais...';
@override String get localServers => 'Servidores Jellyfin locais';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerPt extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Falha ao entrar: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect falhou: ${error}';
@override String get addPlexTitle => 'Entrar com Plex';
@override String get plexAuthIntro => 'Entre com um navegador ou código QR.';
@override String get plexQRPrompt => 'Escaneie este código QR para entrar.';
@override String get waitingForPlexConfirmation => 'Aguardando o plex.tv confirmar o login…';
@override String get pinExpired => 'O PIN expirou antes do login. Tente novamente.';
@override String get duplicatePlexAccount => 'Você já entrou no Plex. Saia para trocar de conta.';
@override String failedToRegisterAccount({required Object error}) => 'Falha ao registrar a conta: ${error}';
@override String get enterJellyfinUrlError => 'Insira a URL do seu servidor Jellyfin';
@override String get addConnectionTitle => 'Adicionar conexão';
@override String addConnectionTitleScoped({required Object name}) => 'Adicionar a ${name}';
@override String get addConnectionIntroGlobal => 'Adicione outro servidor de mídia. Plex e Jellyfin aparecem juntos no Início.';
@override String get addConnectionIntroScoped => 'Adicione um novo servidor ou pegue um emprestado de outro perfil.';
@override String get signInWithPlexCard => 'Entrar com Plex';
@override String get signInWithPlexCardSubtitle => 'Autorize este dispositivo. Servidores compartilhados são adicionados.';
@override String get signInWithPlexCardSubtitleScoped => 'Autorize uma conta Plex. Usuários Home viram perfis.';
@@ -1935,7 +1927,6 @@ extension on TranslationsPt {
'auth.or' => 'ou',
'auth.connectToJellyfin' => 'Conectar ao Jellyfin',
'auth.useQuickConnect' => 'Usar Quick Connect',
'auth.quickConnectCode' => 'Código do Quick Connect',
'auth.quickConnectInstructions' => 'Abra o Quick Connect no Jellyfin e insira este código.',
'auth.quickConnectWaiting' => 'A aguardar aprovação…',
'auth.quickConnectCancel' => 'Cancelar',
@@ -2435,9 +2426,9 @@ extension on TranslationsPt {
'subtitlingStyling.border' => 'Borda',
'subtitlingStyling.background' => 'Fundo',
'subtitlingStyling.fontSize' => 'Tamanho da Fonte',
'subtitlingStyling.textColor' => 'Cor do Texto',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Cor do Texto',
'subtitlingStyling.borderSize' => 'Tamanho da Borda',
'subtitlingStyling.borderColor' => 'Cor da Borda',
'subtitlingStyling.backgroundOpacity' => 'Opacidade do Fundo',
@@ -2949,9 +2940,9 @@ extension on TranslationsPt {
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Navegação',
'companionRemote.remote.tabDiscover' => 'Descobrir',
'companionRemote.remote.tabLibraries' => 'Bibliotecas',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Bibliotecas',
'companionRemote.remote.tabSearch' => 'Buscar',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Configurações',
@@ -3166,10 +3157,8 @@ extension on TranslationsPt {
'trackers.libraryFilter.libraries' => 'Bibliotecas',
'trackers.libraryFilter.noLibraries' => 'Nenhuma biblioteca disponível',
'addServer.addJellyfinTitle' => 'Adicionar servidor Jellyfin',
'addServer.jellyfinUrlIntro' => 'Insira a URL do servidor, ex. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Insira uma ou mais URLs do servidor, separadas por vírgulas. O Plezy usará a URL acessível com a menor latência.',
'addServer.serverUrl' => 'URL do servidor',
'addServer.serverUrls' => 'URLs do servidor',
'addServer.serverUrlsHelper' => 'Vários URLs permitidos, separados por vírgulas.',
'addServer.findServer' => 'Encontrar servidor',
'addServer.searchingLocalServers' => 'A procurar servidores Jellyfin locais...',
'addServer.localServers' => 'Servidores Jellyfin locais',
@@ -3182,17 +3171,12 @@ extension on TranslationsPt {
'addServer.signInFailed' => ({required Object error}) => 'Falha ao entrar: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect falhou: ${error}',
'addServer.addPlexTitle' => 'Entrar com Plex',
'addServer.plexAuthIntro' => 'Entre com um navegador ou código QR.',
'addServer.plexQRPrompt' => 'Escaneie este código QR para entrar.',
'addServer.waitingForPlexConfirmation' => 'Aguardando o plex.tv confirmar o login…',
'addServer.pinExpired' => 'O PIN expirou antes do login. Tente novamente.',
'addServer.duplicatePlexAccount' => 'Você já entrou no Plex. Saia para trocar de conta.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Falha ao registrar a conta: ${error}',
'addServer.enterJellyfinUrlError' => 'Insira a URL do seu servidor Jellyfin',
'addServer.addConnectionTitle' => 'Adicionar conexão',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Adicionar a ${name}',
'addServer.addConnectionIntroGlobal' => 'Adicione outro servidor de mídia. Plex e Jellyfin aparecem juntos no Início.',
'addServer.addConnectionIntroScoped' => 'Adicione um novo servidor ou pegue um emprestado de outro perfil.',
'addServer.signInWithPlexCard' => 'Entrar com Plex',
'addServer.signInWithPlexCardSubtitle' => 'Autorize este dispositivo. Servidores compartilhados são adicionados.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Autorize uma conta Plex. Usuários Home viram perfis.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthRu extends TranslationsAuthEn {
@override String get or => 'или';
@override String get connectToJellyfin => 'Подключиться к Jellyfin';
@override String get useQuickConnect => 'Использовать Quick Connect';
@override String get quickConnectCode => 'Код Quick Connect';
@override String get quickConnectInstructions => 'Откройте Quick Connect в Jellyfin и введите этот код.';
@override String get quickConnectWaiting => 'Ожидание подтверждения…';
@override String get quickConnectCancel => 'Отмена';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerRu extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Добавить сервер Jellyfin';
@override String get jellyfinUrlIntro => 'Введите URL сервера, например `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Введите один или несколько URL сервера, разделяя их запятыми. Plezy будет использовать доступный URL с минимальной задержкой.';
@override String get serverUrl => 'URL сервера';
@override String get serverUrls => 'URL сервера';
@override String get serverUrlsHelper => 'Можно указать несколько URL через запятую.';
@override String get findServer => 'Найти сервер';
@override String get searchingLocalServers => 'Поиск локальных серверов Jellyfin...';
@override String get localServers => 'Локальные серверы Jellyfin';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerRu extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Не удалось войти: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect не удался: ${error}';
@override String get addPlexTitle => 'Войти через Plex';
@override String get plexAuthIntro => 'Войдите через браузер или QR-код.';
@override String get plexQRPrompt => 'Отсканируйте этот QR-код, чтобы войти.';
@override String get waitingForPlexConfirmation => 'Ожидание подтверждения от plex.tv…';
@override String get pinExpired => 'Срок действия PIN истёк до входа. Попробуйте снова.';
@override String get duplicatePlexAccount => 'В Plex уже выполнен вход. Выйдите, чтобы сменить аккаунт.';
@override String failedToRegisterAccount({required Object error}) => 'Не удалось зарегистрировать учётную запись: ${error}';
@override String get enterJellyfinUrlError => 'Введите URL вашего сервера Jellyfin';
@override String get addConnectionTitle => 'Добавить подключение';
@override String addConnectionTitleScoped({required Object name}) => 'Добавить в ${name}';
@override String get addConnectionIntroGlobal => 'Добавьте еще один медиасервер. Plex и Jellyfin появятся вместе на главной.';
@override String get addConnectionIntroScoped => 'Добавьте новый сервер или одолжите из другого профиля.';
@override String get signInWithPlexCard => 'Войти через Plex';
@override String get signInWithPlexCardSubtitle => 'Авторизуйте это устройство. Общие серверы будут добавлены.';
@override String get signInWithPlexCardSubtitleScoped => 'Авторизуйте аккаунт Plex. Пользователи Home станут профилями.';
@@ -1935,7 +1927,6 @@ extension on TranslationsRu {
'auth.or' => 'или',
'auth.connectToJellyfin' => 'Подключиться к Jellyfin',
'auth.useQuickConnect' => 'Использовать Quick Connect',
'auth.quickConnectCode' => 'Код Quick Connect',
'auth.quickConnectInstructions' => 'Откройте Quick Connect в Jellyfin и введите этот код.',
'auth.quickConnectWaiting' => 'Ожидание подтверждения…',
'auth.quickConnectCancel' => 'Отмена',
@@ -2435,9 +2426,9 @@ extension on TranslationsRu {
'subtitlingStyling.border' => 'Обводка',
'subtitlingStyling.background' => 'Фон',
'subtitlingStyling.fontSize' => 'Размер шрифта',
'subtitlingStyling.textColor' => 'Цвет текста',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Цвет текста',
'subtitlingStyling.borderSize' => 'Размер обводки',
'subtitlingStyling.borderColor' => 'Цвет обводки',
'subtitlingStyling.backgroundOpacity' => 'Прозрачность фона',
@@ -2949,9 +2940,9 @@ extension on TranslationsRu {
'companionRemote.remote.menu' => 'Меню',
'companionRemote.remote.tabNavigation' => 'Навигация',
'companionRemote.remote.tabDiscover' => 'Обзор',
'companionRemote.remote.tabLibraries' => 'Библиотеки',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Библиотеки',
'companionRemote.remote.tabSearch' => 'Поиск',
'companionRemote.remote.tabDownloads' => 'Загрузки',
'companionRemote.remote.tabSettings' => 'Настройки',
@@ -3166,10 +3157,8 @@ extension on TranslationsRu {
'trackers.libraryFilter.libraries' => 'Библиотеки',
'trackers.libraryFilter.noLibraries' => 'Библиотеки недоступны',
'addServer.addJellyfinTitle' => 'Добавить сервер Jellyfin',
'addServer.jellyfinUrlIntro' => 'Введите URL сервера, например `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Введите один или несколько URL сервера, разделяя их запятыми. Plezy будет использовать доступный URL с минимальной задержкой.',
'addServer.serverUrl' => 'URL сервера',
'addServer.serverUrls' => 'URL сервера',
'addServer.serverUrlsHelper' => 'Можно указать несколько URL через запятую.',
'addServer.findServer' => 'Найти сервер',
'addServer.searchingLocalServers' => 'Поиск локальных серверов Jellyfin...',
'addServer.localServers' => 'Локальные серверы Jellyfin',
@@ -3182,17 +3171,12 @@ extension on TranslationsRu {
'addServer.signInFailed' => ({required Object error}) => 'Не удалось войти: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect не удался: ${error}',
'addServer.addPlexTitle' => 'Войти через Plex',
'addServer.plexAuthIntro' => 'Войдите через браузер или QR-код.',
'addServer.plexQRPrompt' => 'Отсканируйте этот QR-код, чтобы войти.',
'addServer.waitingForPlexConfirmation' => 'Ожидание подтверждения от plex.tv…',
'addServer.pinExpired' => 'Срок действия PIN истёк до входа. Попробуйте снова.',
'addServer.duplicatePlexAccount' => 'В Plex уже выполнен вход. Выйдите, чтобы сменить аккаунт.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Не удалось зарегистрировать учётную запись: ${error}',
'addServer.enterJellyfinUrlError' => 'Введите URL вашего сервера Jellyfin',
'addServer.addConnectionTitle' => 'Добавить подключение',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Добавить в ${name}',
'addServer.addConnectionIntroGlobal' => 'Добавьте еще один медиасервер. Plex и Jellyfin появятся вместе на главной.',
'addServer.addConnectionIntroScoped' => 'Добавьте новый сервер или одолжите из другого профиля.',
'addServer.signInWithPlexCard' => 'Войти через Plex',
'addServer.signInWithPlexCardSubtitle' => 'Авторизуйте это устройство. Общие серверы будут добавлены.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Авторизуйте аккаунт Plex. Пользователи Home станут профилями.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthSv extends TranslationsAuthEn {
@override String get or => 'eller';
@override String get connectToJellyfin => 'Anslut till Jellyfin';
@override String get useQuickConnect => 'Använd Quick Connect';
@override String get quickConnectCode => 'Quick Connect-kod';
@override String get quickConnectInstructions => 'Öppna Quick Connect i Jellyfin och ange den här koden.';
@override String get quickConnectWaiting => 'Väntar på godkännande…';
@override String get quickConnectCancel => 'Avbryt';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerSv extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => 'Lägg till Jellyfin-server';
@override String get jellyfinUrlIntro => 'Ange server-URL, t.ex. `https://jellyfin.example.com`.';
@override String get jellyfinUrlsIntro => 'Ange en eller flera server-URL:er, separerade med kommatecken. Plezy använder den nåbara URL:en med lägst latens.';
@override String get serverUrl => 'Server-URL';
@override String get serverUrls => 'Server-URL:er';
@override String get serverUrlsHelper => 'Flera URL:er tillåtna, separerade med kommatecken.';
@override String get findServer => 'Hitta server';
@override String get searchingLocalServers => 'Söker efter lokala Jellyfin-servrar...';
@override String get localServers => 'Lokala Jellyfin-servrar';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerSv extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => 'Inloggning misslyckades: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect misslyckades: ${error}';
@override String get addPlexTitle => 'Logga in med Plex';
@override String get plexAuthIntro => 'Logga in med en webbläsare eller QR-kod.';
@override String get plexQRPrompt => 'Skanna denna QR-kod för att logga in.';
@override String get waitingForPlexConfirmation => 'Väntar på att plex.tv ska bekräfta inloggningen…';
@override String get pinExpired => 'PIN-koden gick ut innan inloggning. Försök igen.';
@override String get duplicatePlexAccount => 'Redan inloggad på Plex. Logga ut för att byta konto.';
@override String failedToRegisterAccount({required Object error}) => 'Kunde inte registrera kontot: ${error}';
@override String get enterJellyfinUrlError => 'Ange URL till din Jellyfin-server';
@override String get addConnectionTitle => 'Lägg till anslutning';
@override String addConnectionTitleScoped({required Object name}) => 'Lägg till i ${name}';
@override String get addConnectionIntroGlobal => 'Lägg till en annan medieserver. Plex och Jellyfin visas tillsammans på Hem.';
@override String get addConnectionIntroScoped => 'Lägg till en ny server, eller låna en från en annan profil.';
@override String get signInWithPlexCard => 'Logga in med Plex';
@override String get signInWithPlexCardSubtitle => 'Auktorisera den här enheten. Delade servrar läggs till.';
@override String get signInWithPlexCardSubtitleScoped => 'Auktorisera ett Plex-konto. Home-användare blir profiler.';
@@ -1935,7 +1927,6 @@ extension on TranslationsSv {
'auth.or' => 'eller',
'auth.connectToJellyfin' => 'Anslut till Jellyfin',
'auth.useQuickConnect' => 'Använd Quick Connect',
'auth.quickConnectCode' => 'Quick Connect-kod',
'auth.quickConnectInstructions' => 'Öppna Quick Connect i Jellyfin och ange den här koden.',
'auth.quickConnectWaiting' => 'Väntar på godkännande…',
'auth.quickConnectCancel' => 'Avbryt',
@@ -2435,9 +2426,9 @@ extension on TranslationsSv {
'subtitlingStyling.border' => 'Kantlinje',
'subtitlingStyling.background' => 'Bakgrund',
'subtitlingStyling.fontSize' => 'Teckenstorlek',
'subtitlingStyling.textColor' => 'Textfärg',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => 'Textfärg',
'subtitlingStyling.borderSize' => 'Kantstorlek',
'subtitlingStyling.borderColor' => 'Kantfärg',
'subtitlingStyling.backgroundOpacity' => 'Bakgrundsopacitet',
@@ -2949,9 +2940,9 @@ extension on TranslationsSv {
'companionRemote.remote.menu' => 'Meny',
'companionRemote.remote.tabNavigation' => 'Fliknavigering',
'companionRemote.remote.tabDiscover' => 'Upptäck',
'companionRemote.remote.tabLibraries' => 'Bibliotek',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => 'Bibliotek',
'companionRemote.remote.tabSearch' => 'Sök',
'companionRemote.remote.tabDownloads' => 'Nedladdningar',
'companionRemote.remote.tabSettings' => 'Inställningar',
@@ -3166,10 +3157,8 @@ extension on TranslationsSv {
'trackers.libraryFilter.libraries' => 'Bibliotek',
'trackers.libraryFilter.noLibraries' => 'Inga bibliotek tillgängliga',
'addServer.addJellyfinTitle' => 'Lägg till Jellyfin-server',
'addServer.jellyfinUrlIntro' => 'Ange server-URL, t.ex. `https://jellyfin.example.com`.',
'addServer.jellyfinUrlsIntro' => 'Ange en eller flera server-URL:er, separerade med kommatecken. Plezy använder den nåbara URL:en med lägst latens.',
'addServer.serverUrl' => 'Server-URL',
'addServer.serverUrls' => 'Server-URL:er',
'addServer.serverUrlsHelper' => 'Flera URL:er tillåtna, separerade med kommatecken.',
'addServer.findServer' => 'Hitta server',
'addServer.searchingLocalServers' => 'Söker efter lokala Jellyfin-servrar...',
'addServer.localServers' => 'Lokala Jellyfin-servrar',
@@ -3182,17 +3171,12 @@ extension on TranslationsSv {
'addServer.signInFailed' => ({required Object error}) => 'Inloggning misslyckades: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect misslyckades: ${error}',
'addServer.addPlexTitle' => 'Logga in med Plex',
'addServer.plexAuthIntro' => 'Logga in med en webbläsare eller QR-kod.',
'addServer.plexQRPrompt' => 'Skanna denna QR-kod för att logga in.',
'addServer.waitingForPlexConfirmation' => 'Väntar på att plex.tv ska bekräfta inloggningen…',
'addServer.pinExpired' => 'PIN-koden gick ut innan inloggning. Försök igen.',
'addServer.duplicatePlexAccount' => 'Redan inloggad på Plex. Logga ut för att byta konto.',
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Kunde inte registrera kontot: ${error}',
'addServer.enterJellyfinUrlError' => 'Ange URL till din Jellyfin-server',
'addServer.addConnectionTitle' => 'Lägg till anslutning',
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Lägg till i ${name}',
'addServer.addConnectionIntroGlobal' => 'Lägg till en annan medieserver. Plex och Jellyfin visas tillsammans på Hem.',
'addServer.addConnectionIntroScoped' => 'Lägg till en ny server, eller låna en från en annan profil.',
'addServer.signInWithPlexCard' => 'Logga in med Plex',
'addServer.signInWithPlexCardSubtitle' => 'Auktorisera den här enheten. Delade servrar läggs till.',
'addServer.signInWithPlexCardSubtitleScoped' => 'Auktorisera ett Plex-konto. Home-användare blir profiler.',
+4 -20
View File
@@ -115,7 +115,6 @@ class _TranslationsAuthZh extends TranslationsAuthEn {
@override String get or => '';
@override String get connectToJellyfin => '连接到 Jellyfin';
@override String get useQuickConnect => '使用 Quick Connect';
@override String get quickConnectCode => 'Quick Connect 代码';
@override String get quickConnectInstructions => '在 Jellyfin 中打开 Quick Connect 并输入此代码。';
@override String get quickConnectWaiting => '等待批准…';
@override String get quickConnectCancel => '取消';
@@ -1600,10 +1599,8 @@ class _TranslationsAddServerZh extends TranslationsAddServerEn {
// Translations
@override String get addJellyfinTitle => '添加 Jellyfin 服务器';
@override String get jellyfinUrlIntro => '输入服务器 URL,例如 `https://jellyfin.example.com`。';
@override String get jellyfinUrlsIntro => '输入一个或多个服务器 URL,用逗号分隔。Plezy 会使用可访问且延迟最低的 URL。';
@override String get serverUrl => '服务器 URL';
@override String get serverUrls => '服务器 URL';
@override String get serverUrlsHelper => '可输入多个 URL,以逗号分隔。';
@override String get findServer => '查找服务器';
@override String get searchingLocalServers => '正在查找本地 Jellyfin 服务器...';
@override String get localServers => '本地 Jellyfin 服务器';
@@ -1616,17 +1613,12 @@ class _TranslationsAddServerZh extends TranslationsAddServerEn {
@override String signInFailed({required Object error}) => '登录失败: ${error}';
@override String quickConnectFailed({required Object error}) => 'Quick Connect 失败: ${error}';
@override String get addPlexTitle => '使用 Plex 登录';
@override String get plexAuthIntro => '使用浏览器或二维码登录。';
@override String get plexQRPrompt => '扫描此 QR 码以登录。';
@override String get waitingForPlexConfirmation => '等待 plex.tv 确认登录…';
@override String get pinExpired => 'PIN 在登录前已过期。请重试。';
@override String get duplicatePlexAccount => '已登录 Plex。请退出登录以切换账号。';
@override String failedToRegisterAccount({required Object error}) => '注册帐户失败: ${error}';
@override String get enterJellyfinUrlError => '输入你的 Jellyfin 服务器 URL';
@override String get addConnectionTitle => '添加连接';
@override String addConnectionTitleScoped({required Object name}) => '添加到 ${name}';
@override String get addConnectionIntroGlobal => '添加另一个媒体服务器。Plex 和 Jellyfin 会一起显示在主页。';
@override String get addConnectionIntroScoped => '添加新服务器,或从另一个配置文件借用。';
@override String get signInWithPlexCard => '使用 Plex 登录';
@override String get signInWithPlexCardSubtitle => '授权此设备。共享服务器会被添加。';
@override String get signInWithPlexCardSubtitleScoped => '授权一个 Plex 账号。Home 用户会成为个人资料。';
@@ -1935,7 +1927,6 @@ extension on TranslationsZh {
'auth.or' => '',
'auth.connectToJellyfin' => '连接到 Jellyfin',
'auth.useQuickConnect' => '使用 Quick Connect',
'auth.quickConnectCode' => 'Quick Connect 代码',
'auth.quickConnectInstructions' => '在 Jellyfin 中打开 Quick Connect 并输入此代码。',
'auth.quickConnectWaiting' => '等待批准…',
'auth.quickConnectCancel' => '取消',
@@ -2435,9 +2426,9 @@ extension on TranslationsZh {
'subtitlingStyling.border' => '边框',
'subtitlingStyling.background' => '背景',
'subtitlingStyling.fontSize' => '字号',
'subtitlingStyling.textColor' => '文本颜色',
_ => null,
} ?? switch (path) {
'subtitlingStyling.textColor' => '文本颜色',
'subtitlingStyling.borderSize' => '边框大小',
'subtitlingStyling.borderColor' => '边框颜色',
'subtitlingStyling.backgroundOpacity' => '背景不透明度',
@@ -2949,9 +2940,9 @@ extension on TranslationsZh {
'companionRemote.remote.menu' => '菜单',
'companionRemote.remote.tabNavigation' => '标签导航',
'companionRemote.remote.tabDiscover' => '发现',
'companionRemote.remote.tabLibraries' => '媒体库',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabLibraries' => '媒体库',
'companionRemote.remote.tabSearch' => '搜索',
'companionRemote.remote.tabDownloads' => '下载',
'companionRemote.remote.tabSettings' => '设置',
@@ -3166,10 +3157,8 @@ extension on TranslationsZh {
'trackers.libraryFilter.libraries' => '媒体库',
'trackers.libraryFilter.noLibraries' => '没有可用的媒体库',
'addServer.addJellyfinTitle' => '添加 Jellyfin 服务器',
'addServer.jellyfinUrlIntro' => '输入服务器 URL,例如 `https://jellyfin.example.com`。',
'addServer.jellyfinUrlsIntro' => '输入一个或多个服务器 URL,用逗号分隔。Plezy 会使用可访问且延迟最低的 URL。',
'addServer.serverUrl' => '服务器 URL',
'addServer.serverUrls' => '服务器 URL',
'addServer.serverUrlsHelper' => '可输入多个 URL,以逗号分隔。',
'addServer.findServer' => '查找服务器',
'addServer.searchingLocalServers' => '正在查找本地 Jellyfin 服务器...',
'addServer.localServers' => '本地 Jellyfin 服务器',
@@ -3182,17 +3171,12 @@ extension on TranslationsZh {
'addServer.signInFailed' => ({required Object error}) => '登录失败: ${error}',
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect 失败: ${error}',
'addServer.addPlexTitle' => '使用 Plex 登录',
'addServer.plexAuthIntro' => '使用浏览器或二维码登录。',
'addServer.plexQRPrompt' => '扫描此 QR 码以登录。',
'addServer.waitingForPlexConfirmation' => '等待 plex.tv 确认登录…',
'addServer.pinExpired' => 'PIN 在登录前已过期。请重试。',
'addServer.duplicatePlexAccount' => '已登录 Plex。请退出登录以切换账号。',
'addServer.failedToRegisterAccount' => ({required Object error}) => '注册帐户失败: ${error}',
'addServer.enterJellyfinUrlError' => '输入你的 Jellyfin 服务器 URL',
'addServer.addConnectionTitle' => '添加连接',
'addServer.addConnectionTitleScoped' => ({required Object name}) => '添加到 ${name}',
'addServer.addConnectionIntroGlobal' => '添加另一个媒体服务器。Plex 和 Jellyfin 会一起显示在主页。',
'addServer.addConnectionIntroScoped' => '添加新服务器,或从另一个配置文件借用。',
'addServer.signInWithPlexCard' => '使用 Plex 登录',
'addServer.signInWithPlexCardSubtitle' => '授权此设备。共享服务器会被添加。',
'addServer.signInWithPlexCardSubtitleScoped' => '授权一个 Plex 账号。Home 用户会成为个人资料。',
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "eller",
"connectToJellyfin": "Anslut till Jellyfin",
"useQuickConnect": "Använd Quick Connect",
"quickConnectCode": "Quick Connect-kod",
"quickConnectInstructions": "Öppna Quick Connect i Jellyfin och ange den här koden.",
"quickConnectWaiting": "Väntar på godkännande…",
"quickConnectCancel": "Avbryt",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "Lägg till Jellyfin-server",
"jellyfinUrlIntro": "Ange server-URL, t.ex. `https://jellyfin.example.com`.",
"jellyfinUrlsIntro": "Ange en eller flera server-URL:er, separerade med kommatecken. Plezy använder den nåbara URL:en med lägst latens.",
"serverUrl": "Server-URL",
"serverUrls": "Server-URL:er",
"serverUrlsHelper": "Flera URL:er tillåtna, separerade med kommatecken.",
"findServer": "Hitta server",
"searchingLocalServers": "Söker efter lokala Jellyfin-servrar...",
"localServers": "Lokala Jellyfin-servrar",
@@ -1373,17 +1370,12 @@
"signInFailed": "Inloggning misslyckades: ${error}",
"quickConnectFailed": "Quick Connect misslyckades: ${error}",
"addPlexTitle": "Logga in med Plex",
"plexAuthIntro": "Logga in med en webbläsare eller QR-kod.",
"plexQRPrompt": "Skanna denna QR-kod för att logga in.",
"waitingForPlexConfirmation": "Väntar på att plex.tv ska bekräfta inloggningen…",
"pinExpired": "PIN-koden gick ut innan inloggning. Försök igen.",
"duplicatePlexAccount": "Redan inloggad på Plex. Logga ut för att byta konto.",
"failedToRegisterAccount": "Kunde inte registrera kontot: ${error}",
"enterJellyfinUrlError": "Ange URL till din Jellyfin-server",
"addConnectionTitle": "Lägg till anslutning",
"addConnectionTitleScoped": "Lägg till i ${name}",
"addConnectionIntroGlobal": "Lägg till en annan medieserver. Plex och Jellyfin visas tillsammans på Hem.",
"addConnectionIntroScoped": "Lägg till en ny server, eller låna en från en annan profil.",
"signInWithPlexCard": "Logga in med Plex",
"signInWithPlexCardSubtitle": "Auktorisera den här enheten. Delade servrar läggs till.",
"signInWithPlexCardSubtitleScoped": "Auktorisera ett Plex-konto. Home-användare blir profiler.",
+1 -9
View File
@@ -14,7 +14,6 @@
"or": "或",
"connectToJellyfin": "连接到 Jellyfin",
"useQuickConnect": "使用 Quick Connect",
"quickConnectCode": "Quick Connect 代码",
"quickConnectInstructions": "在 Jellyfin 中打开 Quick Connect 并输入此代码。",
"quickConnectWaiting": "等待批准…",
"quickConnectCancel": "取消",
@@ -1357,10 +1356,8 @@
},
"addServer": {
"addJellyfinTitle": "添加 Jellyfin 服务器",
"jellyfinUrlIntro": "输入服务器 URL,例如 `https://jellyfin.example.com`。",
"jellyfinUrlsIntro": "输入一个或多个服务器 URL,用逗号分隔。Plezy 会使用可访问且延迟最低的 URL。",
"serverUrl": "服务器 URL",
"serverUrls": "服务器 URL",
"serverUrlsHelper": "可输入多个 URL,以逗号分隔。",
"findServer": "查找服务器",
"searchingLocalServers": "正在查找本地 Jellyfin 服务器...",
"localServers": "本地 Jellyfin 服务器",
@@ -1373,17 +1370,12 @@
"signInFailed": "登录失败: ${error}",
"quickConnectFailed": "Quick Connect 失败: ${error}",
"addPlexTitle": "使用 Plex 登录",
"plexAuthIntro": "使用浏览器或二维码登录。",
"plexQRPrompt": "扫描此 QR 码以登录。",
"waitingForPlexConfirmation": "等待 plex.tv 确认登录…",
"pinExpired": "PIN 在登录前已过期。请重试。",
"duplicatePlexAccount": "已登录 Plex。请退出登录以切换账号。",
"failedToRegisterAccount": "注册帐户失败: ${error}",
"enterJellyfinUrlError": "输入你的 Jellyfin 服务器 URL",
"addConnectionTitle": "添加连接",
"addConnectionTitleScoped": "添加到 ${name}",
"addConnectionIntroGlobal": "添加另一个媒体服务器。Plex 和 Jellyfin 会一起显示在主页。",
"addConnectionIntroScoped": "添加新服务器,或从另一个配置文件借用。",
"signInWithPlexCard": "使用 Plex 登录",
"signInWithPlexCardSubtitle": "授权此设备。共享服务器会被添加。",
"signInWithPlexCardSubtitleScoped": "授权一个 Plex 账号。Home 用户会成为个人资料。",
+15 -9
View File
@@ -253,17 +253,23 @@ class _PlexPinAuthFlowState extends State<PlexPinAuthFlow> {
Text(
t.auth.scanQRToSignIn,
textAlign: TextAlign.center,
style: const TextStyle(color: Colors.grey),
style: theme.textTheme.bodyLarge?.copyWith(color: theme.colorScheme.onSurface.withValues(alpha: 0.7)),
),
const SizedBox(height: 24),
Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(tokens(context).radiusMd),
child: QrImageView(
data: _qrAuthUrl!,
size: qrSize,
version: QrVersions.auto,
backgroundColor: Colors.white,
// Tight SizedBox so ancestors that measure intrinsics (e.g.
// SliverFillRemaining with hasScrollBody: false) never recurse into
// QrImageView's internal LayoutBuilder, which doesn't support them.
child: SizedBox.square(
dimension: qrSize,
child: ClipRRect(
borderRadius: BorderRadius.circular(tokens(context).radiusMd),
child: QrImageView(
data: _qrAuthUrl!,
size: qrSize,
version: QrVersions.auto,
backgroundColor: Colors.white,
),
),
),
),
@@ -297,7 +303,7 @@ class _PlexPinAuthFlowState extends State<PlexPinAuthFlow> {
Text(
t.auth.waitingForAuth,
textAlign: TextAlign.center,
style: const TextStyle(color: Colors.grey),
style: theme.textTheme.bodyMedium?.copyWith(color: theme.colorScheme.onSurface.withValues(alpha: 0.7)),
),
const SizedBox(height: 16),
FocusableButton(
+10 -19
View File
@@ -287,7 +287,9 @@ class _AuthScreenState extends State<AuthScreen> {
Text(
t.auth.waitingForAuth,
textAlign: TextAlign.center,
style: const TextStyle(color: Colors.grey),
style: Theme.of(
context,
).textTheme.bodyMedium?.copyWith(color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.7)),
),
],
);
@@ -372,26 +374,15 @@ class _AuthScreenState extends State<AuthScreen> {
],
),
const SizedBox(height: 12),
if (isTV)
FocusableButton(
FocusableButton(
onPressed: _connectToJellyfin,
child: OutlinedButton.icon(
onPressed: _connectToJellyfin,
child: OutlinedButton.icon(
onPressed: _connectToJellyfin,
style: OutlinedButton.styleFrom(padding: const EdgeInsets.symmetric(vertical: 16)),
icon: const BackendBadge(backend: MediaBackend.jellyfin, size: 18),
label: Text(t.auth.connectToJellyfin),
),
)
else
FocusableButton(
onPressed: _connectToJellyfin,
child: OutlinedButton.icon(
onPressed: _connectToJellyfin,
style: OutlinedButton.styleFrom(padding: const EdgeInsets.symmetric(vertical: 16)),
icon: const BackendBadge(backend: MediaBackend.jellyfin, size: 18),
label: Text(t.auth.connectToJellyfin),
),
style: OutlinedButton.styleFrom(padding: const EdgeInsets.symmetric(vertical: 16)),
icon: const BackendBadge(backend: MediaBackend.jellyfin, size: 18),
label: Text(t.auth.connectToJellyfin),
),
),
if (kDebugMode) ...[
const SizedBox(height: 12),
FocusableButton(
@@ -29,7 +29,6 @@ class AddConnectionScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final scoped = targetProfile != null;
final options = <_BackendOption>[
_BackendOption(
@@ -58,11 +57,6 @@ class AddConnectionScreen extends StatelessWidget {
padding: const EdgeInsets.all(16),
sliver: SliverList(
delegate: SliverChildListDelegate([
Text(
scoped ? t.addServer.addConnectionIntroScoped : t.addServer.addConnectionIntroGlobal,
style: theme.textTheme.bodyMedium,
),
const SizedBox(height: 16),
for (var i = 0; i < options.length; i++) ...[
if (i > 0) const SizedBox(height: 12),
_BackendCard(
+85 -76
View File
@@ -441,32 +441,30 @@ class _AddJellyfinScreenState extends State<AddJellyfinScreen> with AsyncFormSta
return FocusedScrollScaffold(
title: Text(t.addServer.addJellyfinTitle),
slivers: [
SliverPadding(
padding: const EdgeInsets.all(16),
sliver: SliverToBoxAdapter(
child: Form(
key: _formKey,
child: Column(crossAxisAlignment: .stretch, children: _buildBodyChildren(theme)),
if (_qcInitiation != null)
SliverFillRemaining(
hasScrollBody: false,
child: Padding(
padding: const EdgeInsets.all(24),
child: Center(child: _buildQuickConnectPanel(theme)),
),
)
else
SliverPadding(
padding: const EdgeInsets.all(16),
sliver: SliverToBoxAdapter(
child: Form(
key: _formKey,
child: Column(crossAxisAlignment: .stretch, children: _buildBodyChildren(theme)),
),
),
),
),
],
);
}
List<Widget> _buildBodyChildren(ThemeData theme) {
if (_qcInitiation != null) {
return [
..._buildQuickConnectPanel(theme),
if (errorText != null) ...[
const SizedBox(height: 12),
Text(errorText!, style: theme.textTheme.bodySmall?.copyWith(color: theme.colorScheme.error)),
],
];
}
return [
Text(t.addServer.jellyfinUrlsIntro, style: theme.textTheme.bodyMedium),
const SizedBox(height: 16),
FocusableTextFormField(
controller: _urlController,
focusNode: _urlFocus,
@@ -491,6 +489,9 @@ class _AddJellyfinScreenState extends State<AddJellyfinScreen> with AsyncFormSta
onFieldSubmitted: busy ? null : (_) => _probe(),
decoration: InputDecoration(
labelText: t.addServer.serverUrls,
// URL example — intentionally not localized.
hintText: 'https://jellyfin.example.com',
helperText: _serverInfo == null ? t.addServer.serverUrlsHelper : null,
prefixIcon: const AppIcon(Symbols.link_rounded, fill: 1),
),
validator: (_) => _enteredUrls().isEmpty ? t.addServer.required : null,
@@ -626,19 +627,17 @@ class _AddJellyfinScreenState extends State<AddJellyfinScreen> with AsyncFormSta
if (_isDiscoveringLocalServers) {
return [
const SizedBox(height: 16),
Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: theme.colorScheme.surfaceContainerHighest,
borderRadius: BorderRadius.circular(8),
),
child: Row(
children: [
const LoadingIndicatorBox(size: 20),
const SizedBox(width: 12),
Expanded(child: Text(t.addServer.searchingLocalServers, style: theme.textTheme.bodyMedium)),
],
),
Row(
children: [
const LoadingIndicatorBox(size: 16),
const SizedBox(width: 10),
Expanded(
child: Text(
t.addServer.searchingLocalServers,
style: theme.textTheme.bodyMedium?.copyWith(color: theme.colorScheme.onSurface.withValues(alpha: 0.7)),
),
),
],
),
];
}
@@ -675,57 +674,67 @@ class _AddJellyfinScreenState extends State<AddJellyfinScreen> with AsyncFormSta
];
}
List<Widget> _buildQuickConnectPanel(ThemeData theme) {
Widget _buildQuickConnectPanel(ThemeData theme) {
final code = _qcInitiation!.code;
return [
Container(
padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 16),
decoration: BoxDecoration(
color: theme.colorScheme.surfaceContainerHighest,
borderRadius: BorderRadius.circular(8),
),
child: Column(
children: [
Text(
t.auth.quickConnectCode,
style: theme.textTheme.bodyMedium?.copyWith(color: theme.colorScheme.onSurface.withValues(alpha: 0.7)),
),
const SizedBox(height: 12),
Text(
code,
textAlign: TextAlign.center,
style: theme.textTheme.displayMedium?.copyWith(
fontFamily: 'monospace',
fontWeight: .bold,
letterSpacing: 8,
final muted = theme.colorScheme.onSurface.withValues(alpha: 0.7);
return ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 420),
child: Column(
mainAxisSize: .min,
children: [
Text(
t.auth.quickConnectInstructions,
textAlign: TextAlign.center,
style: theme.textTheme.bodyLarge?.copyWith(color: muted),
),
const SizedBox(height: 32),
FittedBox(
fit: BoxFit.scaleDown,
child: Padding(
// letterSpacing adds a trailing gap after the last glyph;
// matching left padding keeps the code optically centered.
padding: const EdgeInsets.only(left: 12),
child: Text(
code,
style: theme.textTheme.displayLarge?.copyWith(
fontFamily: 'monospace',
fontWeight: .bold,
letterSpacing: 12,
),
),
),
),
const SizedBox(height: 32),
Row(
mainAxisSize: .min,
children: [
const LoadingIndicatorBox(size: 16),
const SizedBox(width: 10),
Text(t.auth.quickConnectWaiting, style: theme.textTheme.bodyMedium?.copyWith(color: muted)),
],
),
const SizedBox(height: 32),
FocusableButton(
focusNode: _cancelQuickConnectFocus,
useBackgroundFocus: true,
onPressed: _cancelQuickConnect,
child: OutlinedButton.icon(
onPressed: _cancelQuickConnect,
icon: const AppIcon(Symbols.close_rounded, fill: 1),
label: Text(t.auth.quickConnectCancel),
),
),
if (errorText != null) ...[
const SizedBox(height: 16),
Text(
errorText!,
textAlign: TextAlign.center,
style: theme.textTheme.bodySmall?.copyWith(color: theme.colorScheme.error),
),
],
),
),
const SizedBox(height: 16),
Text(t.auth.quickConnectInstructions, style: theme.textTheme.bodyMedium),
const SizedBox(height: 20),
Row(
mainAxisAlignment: .center,
children: [
const LoadingIndicatorBox(),
const SizedBox(width: 12),
Text(t.auth.quickConnectWaiting, style: theme.textTheme.bodyMedium),
],
),
const SizedBox(height: 20),
FocusableButton(
focusNode: _cancelQuickConnectFocus,
useBackgroundFocus: true,
onPressed: _cancelQuickConnect,
child: OutlinedButton.icon(
onPressed: _cancelQuickConnect,
icon: const AppIcon(Symbols.close_rounded, fill: 1),
label: Text(t.auth.quickConnectCancel),
),
),
];
);
}
}
@@ -162,51 +162,56 @@ class _AddPlexAccountScreenState extends State<AddPlexAccountScreen> with AsyncF
return FocusedScrollScaffold(
title: Text(t.addServer.addPlexTitle),
slivers: [
SliverPadding(
padding: const EdgeInsets.all(24),
sliver: SliverToBoxAdapter(
child: Column(
crossAxisAlignment: .stretch,
children: [
Text(t.addServer.plexAuthIntro, style: theme.textTheme.bodyMedium),
const SizedBox(height: 24),
PlexPinAuthFlow(
onTokenReceived: _onTokenReceived,
initialButtonsBuilder: (context, browser, qr, busy) => Column(
mainAxisSize: .min,
crossAxisAlignment: .stretch,
children: [
FocusableButton(
useBackgroundFocus: true,
onPressed: busy || this.busy ? null : browser,
child: FilledButton.icon(
onPressed: busy || this.busy ? null : browser,
icon: const BackendBadge(backend: MediaBackend.plex, size: 18),
label: Text(t.auth.signInWithPlex),
),
SliverFillRemaining(
hasScrollBody: false,
child: Padding(
padding: const EdgeInsets.all(24),
child: Center(
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 420),
child: Column(
mainAxisSize: .min,
crossAxisAlignment: .stretch,
children: [
PlexPinAuthFlow(
onTokenReceived: _onTokenReceived,
initialButtonsBuilder: (context, browser, qr, busy) => Column(
mainAxisSize: .min,
crossAxisAlignment: .stretch,
children: [
FocusableButton(
useBackgroundFocus: true,
onPressed: busy || this.busy ? null : browser,
child: FilledButton.icon(
onPressed: busy || this.busy ? null : browser,
icon: const BackendBadge(backend: MediaBackend.plex, size: 18),
label: Text(t.auth.signInWithPlex),
),
),
const SizedBox(height: 12),
FocusableButton(
useBackgroundFocus: true,
onPressed: busy || this.busy ? null : qr,
child: OutlinedButton.icon(
onPressed: busy || this.busy ? null : qr,
icon: const AppIcon(Symbols.qr_code_rounded, fill: 1),
label: Text(t.auth.showQRCode),
),
),
],
),
const SizedBox(height: 12),
FocusableButton(
useBackgroundFocus: true,
onPressed: busy || this.busy ? null : qr,
child: OutlinedButton.icon(
onPressed: busy || this.busy ? null : qr,
icon: const AppIcon(Symbols.qr_code_rounded, fill: 1),
label: Text(t.auth.showQRCode),
),
),
if (errorText != null) ...[
const SizedBox(height: 16),
Text(
errorText!,
style: theme.textTheme.bodySmall?.copyWith(color: theme.colorScheme.error),
textAlign: TextAlign.center,
),
],
),
],
),
if (errorText != null) ...[
const SizedBox(height: 16),
Text(
errorText!,
style: theme.textTheme.bodySmall?.copyWith(color: theme.colorScheme.error),
textAlign: TextAlign.center,
),
],
],
),
),
),
),
@@ -12,6 +12,8 @@ import 'package:plezy/services/jellyfin_auth_service.dart';
import 'package:plezy/services/jellyfin_lan_discovery_service.dart';
import 'package:plezy/utils/platform_detector.dart';
import '../../test_helpers/prefs.dart';
Profile _profile(String id) =>
Profile.local(id: id, displayName: id, sortOrder: 0, createdAt: DateTime.fromMillisecondsSinceEpoch(0));
@@ -30,6 +32,19 @@ JellyfinConnectionAuthService _jellyfinAuthService({bool quickConnectEnabled = f
);
case '/QuickConnect/Enabled':
return http.Response(jsonEncode(quickConnectEnabled), 200, headers: {'content-type': 'application/json'});
case '/QuickConnect/Initiate':
return http.Response(
jsonEncode({'Code': '123456', 'Secret': 'qc-secret'}),
200,
headers: {'content-type': 'application/json'},
);
case '/QuickConnect/Connect':
// Never approved — the panel stays in its waiting state.
return http.Response(
jsonEncode({'Authenticated': false}),
200,
headers: {'content-type': 'application/json'},
);
}
return http.Response('', 404);
}),
@@ -213,6 +228,45 @@ void main() {
expect(find.text('Home'), findsOneWidget);
});
testWidgets('Quick Connect shows the code prominently and cancel returns to the form', (tester) async {
resetSharedPreferencesForTest();
await tester.pumpWidget(
MaterialApp(
home: AddJellyfinScreen(
authServiceFactory: () => _jellyfinAuthService(quickConnectEnabled: true),
localDiscoveryFactory: _noLocalServers,
),
),
);
await tester.pump();
await tester.enterText(find.byType(TextField).first, 'https://jf.example.com');
await tester.testTextInput.receiveAction(TextInputAction.go);
await tester.pumpAndSettle();
await tester.tap(find.text('Use Quick Connect'));
// The waiting panel hosts a perpetual spinner, so pumpAndSettle would
// never settle — pump a few bounded frames instead.
await tester.pump();
await tester.pump(const Duration(milliseconds: 50));
await tester.pump(const Duration(milliseconds: 50));
// Code replaces the form as the centered hero element.
expect(find.text('123456'), findsOneWidget);
expect(find.byType(TextField), findsNothing);
final codeStyle = tester.widget<Text>(find.text('123456')).style;
expect(codeStyle?.fontSize, Theme.of(tester.element(find.text('123456'))).textTheme.displayLarge?.fontSize);
await tester.tap(find.text('Cancel'));
await tester.pump();
expect(find.text('123456'), findsNothing);
expect(find.byType(TextField), findsWidgets);
// Let the cancelled poll's backoff timer fire so the test ends clean.
await tester.pump(const Duration(seconds: 6));
});
testWidgets('selecting a discovered Jellyfin server probes that address', (tester) async {
await tester.pumpWidget(
MaterialApp(