From 62abd3c30aa826a5ff3109d016adffcb8586b447 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Fri, 12 Jun 2026 02:43:15 +0200 Subject: [PATCH] feat(jellyfin): simpler, code-first Quick Connect screen --- lib/i18n/bg.i18n.json | 10 +- lib/i18n/da.i18n.json | 10 +- lib/i18n/de.i18n.json | 10 +- lib/i18n/en.i18n.json | 10 +- lib/i18n/es.i18n.json | 10 +- lib/i18n/fr.i18n.json | 10 +- lib/i18n/it.i18n.json | 10 +- lib/i18n/ja.i18n.json | 10 +- lib/i18n/ko.i18n.json | 10 +- lib/i18n/nb.i18n.json | 10 +- lib/i18n/nl.i18n.json | 10 +- lib/i18n/pl.i18n.json | 10 +- lib/i18n/pt.i18n.json | 10 +- lib/i18n/ru.i18n.json | 10 +- lib/i18n/strings.g.dart | 2 +- lib/i18n/strings_bg.g.dart | 24 +-- lib/i18n/strings_da.g.dart | 24 +-- lib/i18n/strings_de.g.dart | 24 +-- lib/i18n/strings_en.g.dart | 44 +---- lib/i18n/strings_es.g.dart | 24 +-- lib/i18n/strings_fr.g.dart | 24 +-- lib/i18n/strings_it.g.dart | 24 +-- lib/i18n/strings_ja.g.dart | 24 +-- lib/i18n/strings_ko.g.dart | 24 +-- lib/i18n/strings_nb.g.dart | 24 +-- lib/i18n/strings_nl.g.dart | 24 +-- lib/i18n/strings_pl.g.dart | 24 +-- lib/i18n/strings_pt.g.dart | 24 +-- lib/i18n/strings_ru.g.dart | 24 +-- lib/i18n/strings_sv.g.dart | 24 +-- lib/i18n/strings_zh.g.dart | 24 +-- lib/i18n/sv.i18n.json | 10 +- lib/i18n/zh.i18n.json | 10 +- lib/screens/auth/plex_pin_auth_flow.dart | 24 ++- lib/screens/auth_screen.dart | 29 ++-- .../settings/add_connection_screen.dart | 6 - lib/screens/settings/add_jellyfin_screen.dart | 161 +++++++++--------- .../settings/add_plex_account_screen.dart | 87 +++++----- .../settings/add_jellyfin_screen_test.dart | 54 ++++++ 39 files changed, 293 insertions(+), 634 deletions(-) diff --git a/lib/i18n/bg.i18n.json b/lib/i18n/bg.i18n.json index 2211e1a5..6c71dd54 100644 --- a/lib/i18n/bg.i18n.json +++ b/lib/i18n/bg.i18n.json @@ -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 акаунт. Домашните потребители стават профили.", diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index a23b3bb0..241b6885 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -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.", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index 33a8b6fb..fd6cb07d 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -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.", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index b0086eed..17d37e9b 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -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.", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 10e027c6..c49de2a6 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -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.", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 9b9c50f6..c89ddba2 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -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.", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 1946eb2e..f08bdf75 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -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.", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index ec8a0b01..4ae713a6 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -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ユーザーはプロフィールになります。", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index daaa567c..1aedea28 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -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 사용자는 프로필이 됩니다.", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index 6e484fe2..4b993119 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -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.", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index fe55ae05..b4ae51db 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -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.", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index cccb482a..1a009208 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -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.", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index 39c7b5f5..93586fd4 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -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.", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index 6b005d7a..a61eb0fd 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -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 станут профилями.", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 1a74b274..ca025913 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -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 diff --git a/lib/i18n/strings_bg.g.dart b/lib/i18n/strings_bg.g.dart index 78066151..3bf93b47 100644 --- a/lib/i18n/strings_bg.g.dart +++ b/lib/i18n/strings_bg.g.dart @@ -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 акаунт. Домашните потребители стават профили.', diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 34e3f68b..f5c83c9b 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -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.', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index e409b5cc..910a4352 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -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.', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 84e06e6a..408eb8d7 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -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.', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index 23cd18dd..0a14a041 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -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.', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 9f95b20e..6e81351e 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -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.', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index d725bc86..aec8fb7d 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -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.', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index b1b2dc55..df2ea151 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -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ユーザーはプロフィールになります。', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index 815350b7..bc92f250 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -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 사용자는 프로필이 됩니다.', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 6c947ea8..1ffba3b5 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -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.', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index 8736a7cc..6cc2c336 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -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.', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index 4d29e529..d3b3723d 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -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.', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 8a617077..513a6f6f 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -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.', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index 2d9532c2..8d3bc89b 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -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 станут профилями.', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index f3523bcb..655b356e 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -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.', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index df019311..26b1575e 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -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 用户会成为个人资料。', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 4c892852..82d53e68 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -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.", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index a9ba5705..e70ba6d7 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -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 用户会成为个人资料。", diff --git a/lib/screens/auth/plex_pin_auth_flow.dart b/lib/screens/auth/plex_pin_auth_flow.dart index 158975c6..392ca766 100644 --- a/lib/screens/auth/plex_pin_auth_flow.dart +++ b/lib/screens/auth/plex_pin_auth_flow.dart @@ -253,17 +253,23 @@ class _PlexPinAuthFlowState extends State { 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 { 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( diff --git a/lib/screens/auth_screen.dart b/lib/screens/auth_screen.dart index 26d2f6b7..002a9529 100644 --- a/lib/screens/auth_screen.dart +++ b/lib/screens/auth_screen.dart @@ -287,7 +287,9 @@ class _AuthScreenState extends State { 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 { ], ), 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( diff --git a/lib/screens/settings/add_connection_screen.dart b/lib/screens/settings/add_connection_screen.dart index 71b98767..b897c170 100644 --- a/lib/screens/settings/add_connection_screen.dart +++ b/lib/screens/settings/add_connection_screen.dart @@ -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( diff --git a/lib/screens/settings/add_jellyfin_screen.dart b/lib/screens/settings/add_jellyfin_screen.dart index 1d11dd68..237a90da 100644 --- a/lib/screens/settings/add_jellyfin_screen.dart +++ b/lib/screens/settings/add_jellyfin_screen.dart @@ -441,32 +441,30 @@ class _AddJellyfinScreenState extends State 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 _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 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 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 with AsyncFormSta ]; } - List _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), - ), - ), - ]; + ); } } diff --git a/lib/screens/settings/add_plex_account_screen.dart b/lib/screens/settings/add_plex_account_screen.dart index 63821a23..73a303cd 100644 --- a/lib/screens/settings/add_plex_account_screen.dart +++ b/lib/screens/settings/add_plex_account_screen.dart @@ -162,51 +162,56 @@ class _AddPlexAccountScreenState extends State 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, - ), - ], - ], + ), ), ), ), diff --git a/test/screens/settings/add_jellyfin_screen_test.dart b/test/screens/settings/add_jellyfin_screen_test.dart index 40dc172f..6275edcd 100644 --- a/test/screens/settings/add_jellyfin_screen_test.dart +++ b/test/screens/settings/add_jellyfin_screen_test.dart @@ -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(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(