feat: add episode action setting

close #1351
This commit is contained in:
edde746
2026-06-18 11:16:38 +02:00
parent 075e4aeb32
commit 94f2daa22e
38 changed files with 317 additions and 75 deletions
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Действие за продължаване на гледането",
"continueWatchingPlay": "Пусни",
"continueWatchingDetails": "Отвори подробности",
"episodeAction": "Действие за епизод",
"episodePlay": "Пусни",
"episodeDetails": "Отвори подробности",
"useGlobalHubs": "Използвай начално оформление",
"useGlobalHubsDescription": "Показвай обединени начални хъбове. В противен случай използвай препоръките на библиотеката.",
"showServerNameOnHubs": "Показвай името на сървъра в хъбовете",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Handling for Fortsæt med at se",
"continueWatchingPlay": "Afspil",
"continueWatchingDetails": "Åbn detaljer",
"episodeAction": "Handling for afsnit",
"episodePlay": "Afspil",
"episodeDetails": "Åbn detaljer",
"useGlobalHubs": "Brug startlayout",
"useGlobalHubsDescription": "Vis samlet startsideindhold. Brug ellers biblioteksanbefalinger.",
"showServerNameOnHubs": "Vis servernavn på hubbe",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Aktion für Weiterschauen",
"continueWatchingPlay": "Abspielen",
"continueWatchingDetails": "Details öffnen",
"episodeAction": "Episodenaktion",
"episodePlay": "Abspielen",
"episodeDetails": "Details öffnen",
"useGlobalHubs": "Startlayout verwenden",
"useGlobalHubsDescription": "Einheitliche Start-Hubs anzeigen. Sonst Bibliotheksempfehlungen verwenden.",
"showServerNameOnHubs": "Servername bei Hubs anzeigen",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Continue Watching Action",
"continueWatchingPlay": "Play",
"continueWatchingDetails": "Open Details",
"episodeAction": "Episode Action",
"episodePlay": "Play",
"episodeDetails": "Open Details",
"useGlobalHubs": "Use Home Layout",
"useGlobalHubsDescription": "Show unified home hubs. Otherwise use library recommendations.",
"showServerNameOnHubs": "Show Server Name on Hubs",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Acción de Seguir viendo",
"continueWatchingPlay": "Reproducir",
"continueWatchingDetails": "Abrir detalles",
"episodeAction": "Acción de episodio",
"episodePlay": "Reproducir",
"episodeDetails": "Abrir detalles",
"useGlobalHubs": "Usar diseño de inicio",
"useGlobalHubsDescription": "Mostrar hubs de inicio unificados. Si no, usar recomendaciones de biblioteca.",
"showServerNameOnHubs": "Mostrar Nombre del Servidor en los Hubs",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Action Continuer à regarder",
"continueWatchingPlay": "Lire",
"continueWatchingDetails": "Ouvrir les détails",
"episodeAction": "Action des épisodes",
"episodePlay": "Lire",
"episodeDetails": "Ouvrir les détails",
"useGlobalHubs": "Utiliser la mise en page d'accueil",
"useGlobalHubsDescription": "Afficher des hubs d'accueil unifiés. Sinon, utiliser les recommandations de bibliothèque.",
"showServerNameOnHubs": "Afficher le nom du serveur sur les hubs",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Azione Continua a guardare",
"continueWatchingPlay": "Riproduci",
"continueWatchingDetails": "Apri dettagli",
"episodeAction": "Azione episodio",
"episodePlay": "Riproduci",
"episodeDetails": "Apri dettagli",
"useGlobalHubs": "Usa layout home",
"useGlobalHubsDescription": "Mostra hub Home unificati. Altrimenti usa i consigli della libreria.",
"showServerNameOnHubs": "Mostra nome server sugli hub",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "視聴中の操作",
"continueWatchingPlay": "再生",
"continueWatchingDetails": "詳細を開く",
"episodeAction": "エピソードの操作",
"episodePlay": "再生",
"episodeDetails": "詳細を開く",
"useGlobalHubs": "ホームレイアウトを使用",
"useGlobalHubsDescription": "統合ホームハブを表示します。オフの場合はライブラリのおすすめを使用します。",
"showServerNameOnHubs": "ハブにサーバー名を表示",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "계속 보기 동작",
"continueWatchingPlay": "재생",
"continueWatchingDetails": "상세 정보 열기",
"episodeAction": "에피소드 동작",
"episodePlay": "재생",
"episodeDetails": "상세 정보 열기",
"useGlobalHubs": "홈 레이아웃 사용",
"useGlobalHubsDescription": "통합 홈 허브를 표시합니다. 끄면 라이브러리 추천을 사용합니다.",
"showServerNameOnHubs": "허브에 서버 이름 표시",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Handling for Fortsett å se",
"continueWatchingPlay": "Spill av",
"continueWatchingDetails": "Åpne detaljer",
"episodeAction": "Handling for episoder",
"episodePlay": "Spill av",
"episodeDetails": "Åpne detaljer",
"useGlobalHubs": "Bruk startoppsett",
"useGlobalHubsDescription": "Vis samlet startinnhold. Ellers brukes bibliotekanbefalinger.",
"showServerNameOnHubs": "Vis servernavn på huber",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Actie voor Doorgaan met kijken",
"continueWatchingPlay": "Afspelen",
"continueWatchingDetails": "Details openen",
"episodeAction": "Afleveringsactie",
"episodePlay": "Afspelen",
"episodeDetails": "Details openen",
"useGlobalHubs": "Startlayout gebruiken",
"useGlobalHubsDescription": "Toon gecombineerde home-hubs. Anders bibliotheekaanbevelingen gebruiken.",
"showServerNameOnHubs": "Servernaam tonen bij hubs",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Akcja Kontynuuj oglądanie",
"continueWatchingPlay": "Odtwórz",
"continueWatchingDetails": "Otwórz szczegóły",
"episodeAction": "Akcja odcinka",
"episodePlay": "Odtwórz",
"episodeDetails": "Otwórz szczegóły",
"useGlobalHubs": "Użyj układu strony głównej",
"useGlobalHubsDescription": "Pokaż ujednolicone huby ekranu głównego. W przeciwnym razie użyj rekomendacji bibliotek.",
"showServerNameOnHubs": "Pokaż nazwę serwera w hubach",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Ação de Continuar Assistindo",
"continueWatchingPlay": "Reproduzir",
"continueWatchingDetails": "Abrir detalhes",
"episodeAction": "Ação de Episódio",
"episodePlay": "Reproduzir",
"episodeDetails": "Abrir detalhes",
"useGlobalHubs": "Usar layout inicial",
"useGlobalHubsDescription": "Mostrar hubs iniciais unificados. Caso contrário, usar recomendações da biblioteca.",
"showServerNameOnHubs": "Mostrar Nome do Servidor nos Hubs",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Действие для «Продолжить просмотр»",
"continueWatchingPlay": "Воспроизвести",
"continueWatchingDetails": "Открыть сведения",
"episodeAction": "Действие для эпизодов",
"episodePlay": "Воспроизвести",
"episodeDetails": "Открыть сведения",
"useGlobalHubs": "Использовать макет главной",
"useGlobalHubsDescription": "Показывать единые разделы главной. Иначе использовать рекомендации библиотек.",
"showServerNameOnHubs": "Показывать имя сервера в хабах",
+1 -1
View File
@@ -4,7 +4,7 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 16
/// Strings: 20361 (1272 per locale)
/// Strings: 20409 (1275 per locale)
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsBg extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Действие за продължаване на гледането';
@override String get continueWatchingPlay => 'Пусни';
@override String get continueWatchingDetails => 'Отвори подробности';
@override String get episodeAction => 'Действие за епизод';
@override String get episodePlay => 'Пусни';
@override String get episodeDetails => 'Отвори подробности';
@override String get useGlobalHubs => 'Използвай начално оформление';
@override String get useGlobalHubsDescription => 'Показвай обединени начални хъбове. В противен случай използвай препоръките на библиотеката.';
@override String get showServerNameOnHubs => 'Показвай името на сървъра в хъбовете';
@@ -2029,6 +2032,9 @@ extension on TranslationsBg {
'settings.continueWatchingAction' => 'Действие за продължаване на гледането',
'settings.continueWatchingPlay' => 'Пусни',
'settings.continueWatchingDetails' => 'Отвори подробности',
'settings.episodeAction' => 'Действие за епизод',
'settings.episodePlay' => 'Пусни',
'settings.episodeDetails' => 'Отвори подробности',
'settings.useGlobalHubs' => 'Използвай начално оформление',
'settings.useGlobalHubsDescription' => 'Показвай обединени начални хъбове. В противен случай използвай препоръките на библиотеката.',
'settings.showServerNameOnHubs' => 'Показвай името на сървъра в хъбовете',
@@ -2430,11 +2436,11 @@ extension on TranslationsBg {
'messages.logsUploaded' => 'Логовете са качени',
'messages.logsUploadFailed' => 'Неуспешно качване на логовете',
'messages.logId' => 'ID на лога',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Текст',
'subtitlingStyling.border' => 'Рамка',
'subtitlingStyling.background' => 'Фон',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Размер на шрифта',
'subtitlingStyling.textColor' => 'Цвят на текста',
'subtitlingStyling.borderSize' => 'Размер на рамката',
@@ -2944,11 +2950,11 @@ extension on TranslationsBg {
'companionRemote.remote.disconnectConfirm' => 'Искате ли да прекъснете връзката с дистанционната сесия?',
'companionRemote.remote.reconnecting' => 'Повторно свързване...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Опит ${current} от 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Опитай сега',
'companionRemote.remote.tabRemote' => 'Дистанционно',
'companionRemote.remote.tabPlay' => 'Пускане',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Още',
'companionRemote.remote.menu' => 'Меню',
'companionRemote.remote.tabNavigation' => 'Навигация с Tab',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsDa extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Handling for Fortsæt med at se';
@override String get continueWatchingPlay => 'Afspil';
@override String get continueWatchingDetails => 'Åbn detaljer';
@override String get episodeAction => 'Handling for afsnit';
@override String get episodePlay => 'Afspil';
@override String get episodeDetails => 'Åbn detaljer';
@override String get useGlobalHubs => 'Brug startlayout';
@override String get useGlobalHubsDescription => 'Vis samlet startsideindhold. Brug ellers biblioteksanbefalinger.';
@override String get showServerNameOnHubs => 'Vis servernavn på hubbe';
@@ -2029,6 +2032,9 @@ extension on TranslationsDa {
'settings.continueWatchingAction' => 'Handling for Fortsæt med at se',
'settings.continueWatchingPlay' => 'Afspil',
'settings.continueWatchingDetails' => 'Åbn detaljer',
'settings.episodeAction' => 'Handling for afsnit',
'settings.episodePlay' => 'Afspil',
'settings.episodeDetails' => 'Åbn detaljer',
'settings.useGlobalHubs' => 'Brug startlayout',
'settings.useGlobalHubsDescription' => 'Vis samlet startsideindhold. Brug ellers biblioteksanbefalinger.',
'settings.showServerNameOnHubs' => 'Vis servernavn på hubbe',
@@ -2430,11 +2436,11 @@ extension on TranslationsDa {
'messages.logsUploaded' => 'Logs uploadet',
'messages.logsUploadFailed' => 'Kunne ikke uploade logs',
'messages.logId' => 'Log-ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Tekst',
'subtitlingStyling.border' => 'Kant',
'subtitlingStyling.background' => 'Baggrund',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Skriftstørrelse',
'subtitlingStyling.textColor' => 'Tekstfarve',
'subtitlingStyling.borderSize' => 'Kantstørrelse',
@@ -2944,11 +2950,11 @@ extension on TranslationsDa {
'companionRemote.remote.disconnectConfirm' => 'Vil du afbryde fra fjernsessionen?',
'companionRemote.remote.reconnecting' => 'Genopretter forbindelse...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Forsøg ${current} af 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Prøv igen nu',
'companionRemote.remote.tabRemote' => 'Fjernbetjening',
'companionRemote.remote.tabPlay' => 'Afspil',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Mere',
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Fanenavigation',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsDe extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Aktion für Weiterschauen';
@override String get continueWatchingPlay => 'Abspielen';
@override String get continueWatchingDetails => 'Details öffnen';
@override String get episodeAction => 'Episodenaktion';
@override String get episodePlay => 'Abspielen';
@override String get episodeDetails => 'Details öffnen';
@override String get useGlobalHubs => 'Startlayout verwenden';
@override String get useGlobalHubsDescription => 'Einheitliche Start-Hubs anzeigen. Sonst Bibliotheksempfehlungen verwenden.';
@override String get showServerNameOnHubs => 'Servername bei Hubs anzeigen';
@@ -2029,6 +2032,9 @@ extension on TranslationsDe {
'settings.continueWatchingAction' => 'Aktion für Weiterschauen',
'settings.continueWatchingPlay' => 'Abspielen',
'settings.continueWatchingDetails' => 'Details öffnen',
'settings.episodeAction' => 'Episodenaktion',
'settings.episodePlay' => 'Abspielen',
'settings.episodeDetails' => 'Details öffnen',
'settings.useGlobalHubs' => 'Startlayout verwenden',
'settings.useGlobalHubsDescription' => 'Einheitliche Start-Hubs anzeigen. Sonst Bibliotheksempfehlungen verwenden.',
'settings.showServerNameOnHubs' => 'Servername bei Hubs anzeigen',
@@ -2430,11 +2436,11 @@ extension on TranslationsDe {
'messages.logsUploaded' => 'Protokolle hochgeladen',
'messages.logsUploadFailed' => 'Protokolle konnten nicht hochgeladen werden',
'messages.logId' => 'Protokoll-ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Text',
'subtitlingStyling.border' => 'Rahmen',
'subtitlingStyling.background' => 'Hintergrund',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Schriftgröße',
'subtitlingStyling.textColor' => 'Textfarbe',
'subtitlingStyling.borderSize' => 'Rahmengröße',
@@ -2944,11 +2950,11 @@ extension on TranslationsDe {
'companionRemote.remote.disconnectConfirm' => 'Möchtest du die Verbindung zur Fernsteuerungssitzung trennen?',
'companionRemote.remote.reconnecting' => 'Verbindung wird wiederhergestellt...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Versuch ${current} von 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Jetzt wiederholen',
'companionRemote.remote.tabRemote' => 'Fernbedienung',
'companionRemote.remote.tabPlay' => 'Wiedergabe',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Mehr',
'companionRemote.remote.menu' => 'Menü',
'companionRemote.remote.tabNavigation' => 'Tab-Navigation',
+16 -4
View File
@@ -465,6 +465,15 @@ class TranslationsSettingsEn {
/// en: 'Open Details'
String get continueWatchingDetails => 'Open Details';
/// en: 'Episode Action'
String get episodeAction => 'Episode Action';
/// en: 'Play'
String get episodePlay => 'Play';
/// en: 'Open Details'
String get episodeDetails => 'Open Details';
/// en: 'Use Home Layout'
String get useGlobalHubs => 'Use Home Layout';
@@ -4606,6 +4615,9 @@ extension on Translations {
'settings.continueWatchingAction' => 'Continue Watching Action',
'settings.continueWatchingPlay' => 'Play',
'settings.continueWatchingDetails' => 'Open Details',
'settings.episodeAction' => 'Episode Action',
'settings.episodePlay' => 'Play',
'settings.episodeDetails' => 'Open Details',
'settings.useGlobalHubs' => 'Use Home Layout',
'settings.useGlobalHubsDescription' => 'Show unified home hubs. Otherwise use library recommendations.',
'settings.showServerNameOnHubs' => 'Show Server Name on Hubs',
@@ -5007,11 +5019,11 @@ extension on Translations {
'messages.noItemsAvailable' => 'No items available',
'messages.failedToCreatePlayQueueNoItems' => 'Failed to create play queue - no items',
'messages.failedPlayback' => ({required Object action, required Object error}) => 'Failed to ${action}: ${error}',
_ => null,
} ?? switch (path) {
'messages.switchingToCompatiblePlayer' => 'Switching to compatible player...',
'messages.serverLimitTitle' => 'Playback failed',
'messages.serverLimitBody' => 'Server error (HTTP 500). A bandwidth/transcoding limit likely rejected this session. Ask the owner to adjust it.',
_ => null,
} ?? switch (path) {
'messages.logsUploaded' => 'Logs uploaded',
'messages.logsUploadFailed' => 'Failed to upload logs',
'messages.logId' => 'Log ID',
@@ -5521,11 +5533,11 @@ extension on Translations {
'companionRemote.pairing.availableDevices' => 'Available Devices',
'companionRemote.pairing.manualConnection' => 'Manual Connection',
'companionRemote.pairing.cryptoInitFailed' => 'Couldn\'t start secure connection. Sign in to Plex first.',
_ => null,
} ?? switch (path) {
'companionRemote.pairing.validationHostRequired' => 'Please enter host address',
'companionRemote.pairing.validationHostFormat' => 'Format must be IP:port (e.g., 192.168.1.100:48632)',
'companionRemote.pairing.connectionTimedOut' => 'Connection timed out. Use the same network on both devices.',
_ => null,
} ?? switch (path) {
'companionRemote.pairing.sessionNotFound' => 'Device not found. Make sure Plezy is running on the host.',
'companionRemote.pairing.authFailed' => 'Authentication failed. Both devices need the same Plex account.',
'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Failed to connect: ${error}',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsEs extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Acción de Seguir viendo';
@override String get continueWatchingPlay => 'Reproducir';
@override String get continueWatchingDetails => 'Abrir detalles';
@override String get episodeAction => 'Acción de episodio';
@override String get episodePlay => 'Reproducir';
@override String get episodeDetails => 'Abrir detalles';
@override String get useGlobalHubs => 'Usar diseño de inicio';
@override String get useGlobalHubsDescription => 'Mostrar hubs de inicio unificados. Si no, usar recomendaciones de biblioteca.';
@override String get showServerNameOnHubs => 'Mostrar Nombre del Servidor en los Hubs';
@@ -2029,6 +2032,9 @@ extension on TranslationsEs {
'settings.continueWatchingAction' => 'Acción de Seguir viendo',
'settings.continueWatchingPlay' => 'Reproducir',
'settings.continueWatchingDetails' => 'Abrir detalles',
'settings.episodeAction' => 'Acción de episodio',
'settings.episodePlay' => 'Reproducir',
'settings.episodeDetails' => 'Abrir detalles',
'settings.useGlobalHubs' => 'Usar diseño de inicio',
'settings.useGlobalHubsDescription' => 'Mostrar hubs de inicio unificados. Si no, usar recomendaciones de biblioteca.',
'settings.showServerNameOnHubs' => 'Mostrar Nombre del Servidor en los Hubs',
@@ -2430,11 +2436,11 @@ extension on TranslationsEs {
'messages.logsUploaded' => 'Registros subidos',
'messages.logsUploadFailed' => 'Error al subir registros',
'messages.logId' => 'ID de registro',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Texto',
'subtitlingStyling.border' => 'Borde',
'subtitlingStyling.background' => 'Fondo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Tamaño de Fuente',
'subtitlingStyling.textColor' => 'Color de Texto',
'subtitlingStyling.borderSize' => 'Tamaño de Borde',
@@ -2944,11 +2950,11 @@ extension on TranslationsEs {
'companionRemote.remote.disconnectConfirm' => '¿Quieres desconectarte de la sesión remota?',
'companionRemote.remote.reconnecting' => 'Reconectando...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Intento ${current} de 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Reintentar ahora',
'companionRemote.remote.tabRemote' => 'Remoto',
'companionRemote.remote.tabPlay' => 'Reproducir',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Más',
'companionRemote.remote.menu' => 'Menú',
'companionRemote.remote.tabNavigation' => 'Navegación por pestañas',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsFr extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Action Continuer à regarder';
@override String get continueWatchingPlay => 'Lire';
@override String get continueWatchingDetails => 'Ouvrir les détails';
@override String get episodeAction => 'Action des épisodes';
@override String get episodePlay => 'Lire';
@override String get episodeDetails => 'Ouvrir les détails';
@override String get useGlobalHubs => 'Utiliser la mise en page d\'accueil';
@override String get useGlobalHubsDescription => 'Afficher des hubs d\'accueil unifiés. Sinon, utiliser les recommandations de bibliothèque.';
@override String get showServerNameOnHubs => 'Afficher le nom du serveur sur les hubs';
@@ -2029,6 +2032,9 @@ extension on TranslationsFr {
'settings.continueWatchingAction' => 'Action Continuer à regarder',
'settings.continueWatchingPlay' => 'Lire',
'settings.continueWatchingDetails' => 'Ouvrir les détails',
'settings.episodeAction' => 'Action des épisodes',
'settings.episodePlay' => 'Lire',
'settings.episodeDetails' => 'Ouvrir les détails',
'settings.useGlobalHubs' => 'Utiliser la mise en page d\'accueil',
'settings.useGlobalHubsDescription' => 'Afficher des hubs d\'accueil unifiés. Sinon, utiliser les recommandations de bibliothèque.',
'settings.showServerNameOnHubs' => 'Afficher le nom du serveur sur les hubs',
@@ -2430,11 +2436,11 @@ extension on TranslationsFr {
'messages.logsUploaded' => 'Logs envoyés',
'messages.logsUploadFailed' => 'Échec de l\'envoi des logs',
'messages.logId' => 'ID du log',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Texte',
'subtitlingStyling.border' => 'Bordure',
'subtitlingStyling.background' => 'Arrière-plan',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Taille de la police',
'subtitlingStyling.textColor' => 'Couleur du texte',
'subtitlingStyling.borderSize' => 'Taille de la bordure',
@@ -2944,11 +2950,11 @@ extension on TranslationsFr {
'companionRemote.remote.disconnectConfirm' => 'Voulez-vous vous déconnecter de la session distante ?',
'companionRemote.remote.reconnecting' => 'Reconnexion...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Tentative ${current} sur 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Réessayer maintenant',
'companionRemote.remote.tabRemote' => 'Télécommande',
'companionRemote.remote.tabPlay' => 'Lecture',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Plus',
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Navigation par onglets',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsIt extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Azione Continua a guardare';
@override String get continueWatchingPlay => 'Riproduci';
@override String get continueWatchingDetails => 'Apri dettagli';
@override String get episodeAction => 'Azione episodio';
@override String get episodePlay => 'Riproduci';
@override String get episodeDetails => 'Apri dettagli';
@override String get useGlobalHubs => 'Usa layout home';
@override String get useGlobalHubsDescription => 'Mostra hub Home unificati. Altrimenti usa i consigli della libreria.';
@override String get showServerNameOnHubs => 'Mostra nome server sugli hub';
@@ -2029,6 +2032,9 @@ extension on TranslationsIt {
'settings.continueWatchingAction' => 'Azione Continua a guardare',
'settings.continueWatchingPlay' => 'Riproduci',
'settings.continueWatchingDetails' => 'Apri dettagli',
'settings.episodeAction' => 'Azione episodio',
'settings.episodePlay' => 'Riproduci',
'settings.episodeDetails' => 'Apri dettagli',
'settings.useGlobalHubs' => 'Usa layout home',
'settings.useGlobalHubsDescription' => 'Mostra hub Home unificati. Altrimenti usa i consigli della libreria.',
'settings.showServerNameOnHubs' => 'Mostra nome server sugli hub',
@@ -2430,11 +2436,11 @@ extension on TranslationsIt {
'messages.logsUploaded' => 'Log caricati',
'messages.logsUploadFailed' => 'Caricamento log fallito',
'messages.logId' => 'ID log',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Testo',
'subtitlingStyling.border' => 'Bordo',
'subtitlingStyling.background' => 'Sfondo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Dimensione',
'subtitlingStyling.textColor' => 'Colore testo',
'subtitlingStyling.borderSize' => 'Dimensione bordo',
@@ -2944,11 +2950,11 @@ extension on TranslationsIt {
'companionRemote.remote.disconnectConfirm' => 'Vuoi disconnetterti dalla sessione remota?',
'companionRemote.remote.reconnecting' => 'Riconnessione...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Tentativo ${current} di 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Riprova ora',
'companionRemote.remote.tabRemote' => 'Telecomando',
'companionRemote.remote.tabPlay' => 'Riproduci',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Altro',
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Navigazione schede',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsJa extends TranslationsSettingsEn {
@override String get continueWatchingAction => '視聴中の操作';
@override String get continueWatchingPlay => '再生';
@override String get continueWatchingDetails => '詳細を開く';
@override String get episodeAction => 'エピソードの操作';
@override String get episodePlay => '再生';
@override String get episodeDetails => '詳細を開く';
@override String get useGlobalHubs => 'ホームレイアウトを使用';
@override String get useGlobalHubsDescription => '統合ホームハブを表示します。オフの場合はライブラリのおすすめを使用します。';
@override String get showServerNameOnHubs => 'ハブにサーバー名を表示';
@@ -2029,6 +2032,9 @@ extension on TranslationsJa {
'settings.continueWatchingAction' => '視聴中の操作',
'settings.continueWatchingPlay' => '再生',
'settings.continueWatchingDetails' => '詳細を開く',
'settings.episodeAction' => 'エピソードの操作',
'settings.episodePlay' => '再生',
'settings.episodeDetails' => '詳細を開く',
'settings.useGlobalHubs' => 'ホームレイアウトを使用',
'settings.useGlobalHubsDescription' => '統合ホームハブを表示します。オフの場合はライブラリのおすすめを使用します。',
'settings.showServerNameOnHubs' => 'ハブにサーバー名を表示',
@@ -2430,11 +2436,11 @@ extension on TranslationsJa {
'messages.logsUploaded' => 'ログをアップロードしました',
'messages.logsUploadFailed' => 'ログのアップロードに失敗しました',
'messages.logId' => 'ログID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'テキスト',
'subtitlingStyling.border' => '枠線',
'subtitlingStyling.background' => '背景',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'フォントサイズ',
'subtitlingStyling.textColor' => 'テキストの色',
'subtitlingStyling.borderSize' => '枠線サイズ',
@@ -2944,11 +2950,11 @@ extension on TranslationsJa {
'companionRemote.remote.disconnectConfirm' => 'リモートセッションから切断しますか?',
'companionRemote.remote.reconnecting' => '再接続中...',
'companionRemote.remote.attemptOf' => ({required Object current}) => '試行 ${current}/5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => '今すぐ再試行',
'companionRemote.remote.tabRemote' => 'リモート',
'companionRemote.remote.tabPlay' => '再生',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'その他',
'companionRemote.remote.menu' => 'メニュー',
'companionRemote.remote.tabNavigation' => 'タブナビゲーション',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsKo extends TranslationsSettingsEn {
@override String get continueWatchingAction => '계속 보기 동작';
@override String get continueWatchingPlay => '재생';
@override String get continueWatchingDetails => '상세 정보 열기';
@override String get episodeAction => '에피소드 동작';
@override String get episodePlay => '재생';
@override String get episodeDetails => '상세 정보 열기';
@override String get useGlobalHubs => '홈 레이아웃 사용';
@override String get useGlobalHubsDescription => '통합 홈 허브를 표시합니다. 끄면 라이브러리 추천을 사용합니다.';
@override String get showServerNameOnHubs => '허브에 서버 이름 표시';
@@ -2029,6 +2032,9 @@ extension on TranslationsKo {
'settings.continueWatchingAction' => '계속 보기 동작',
'settings.continueWatchingPlay' => '재생',
'settings.continueWatchingDetails' => '상세 정보 열기',
'settings.episodeAction' => '에피소드 동작',
'settings.episodePlay' => '재생',
'settings.episodeDetails' => '상세 정보 열기',
'settings.useGlobalHubs' => '홈 레이아웃 사용',
'settings.useGlobalHubsDescription' => '통합 홈 허브를 표시합니다. 끄면 라이브러리 추천을 사용합니다.',
'settings.showServerNameOnHubs' => '허브에 서버 이름 표시',
@@ -2430,11 +2436,11 @@ extension on TranslationsKo {
'messages.logsUploaded' => '로그 업로드 완료',
'messages.logsUploadFailed' => '로그 업로드 실패',
'messages.logId' => '로그 ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => '텍스트',
'subtitlingStyling.border' => '테두리',
'subtitlingStyling.background' => '배경',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => '글자 크기',
'subtitlingStyling.textColor' => '텍스트 색상',
'subtitlingStyling.borderSize' => '테두리 크기',
@@ -2944,11 +2950,11 @@ extension on TranslationsKo {
'companionRemote.remote.disconnectConfirm' => '원격 세션 연결을 해제하시겠습니까?',
'companionRemote.remote.reconnecting' => '재연결 중...',
'companionRemote.remote.attemptOf' => ({required Object current}) => '${current}/5 시도 중',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => '지금 재시도',
'companionRemote.remote.tabRemote' => '리모컨',
'companionRemote.remote.tabPlay' => '재생',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => '더 보기',
'companionRemote.remote.menu' => '메뉴',
'companionRemote.remote.tabNavigation' => '탭 탐색',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsNb extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Handling for Fortsett å se';
@override String get continueWatchingPlay => 'Spill av';
@override String get continueWatchingDetails => 'Åpne detaljer';
@override String get episodeAction => 'Handling for episoder';
@override String get episodePlay => 'Spill av';
@override String get episodeDetails => 'Åpne detaljer';
@override String get useGlobalHubs => 'Bruk startoppsett';
@override String get useGlobalHubsDescription => 'Vis samlet startinnhold. Ellers brukes bibliotekanbefalinger.';
@override String get showServerNameOnHubs => 'Vis servernavn på huber';
@@ -2029,6 +2032,9 @@ extension on TranslationsNb {
'settings.continueWatchingAction' => 'Handling for Fortsett å se',
'settings.continueWatchingPlay' => 'Spill av',
'settings.continueWatchingDetails' => 'Åpne detaljer',
'settings.episodeAction' => 'Handling for episoder',
'settings.episodePlay' => 'Spill av',
'settings.episodeDetails' => 'Åpne detaljer',
'settings.useGlobalHubs' => 'Bruk startoppsett',
'settings.useGlobalHubsDescription' => 'Vis samlet startinnhold. Ellers brukes bibliotekanbefalinger.',
'settings.showServerNameOnHubs' => 'Vis servernavn på huber',
@@ -2430,11 +2436,11 @@ extension on TranslationsNb {
'messages.logsUploaded' => 'Logger lastet opp',
'messages.logsUploadFailed' => 'Kunne ikke laste opp logger',
'messages.logId' => 'Logg-ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Tekst',
'subtitlingStyling.border' => 'Kantlinje',
'subtitlingStyling.background' => 'Bakgrunn',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Skriftstørrelse',
'subtitlingStyling.textColor' => 'Tekstfarge',
'subtitlingStyling.borderSize' => 'Kantstørrelse',
@@ -2944,11 +2950,11 @@ extension on TranslationsNb {
'companionRemote.remote.disconnectConfirm' => 'Vil du koble fra fjernøkten?',
'companionRemote.remote.reconnecting' => 'Kobler til på nytt...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Forsøk ${current} av 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Prøv nå',
'companionRemote.remote.tabRemote' => 'Fjernkontroll',
'companionRemote.remote.tabPlay' => 'Spill av',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Mer',
'companionRemote.remote.menu' => 'Meny',
'companionRemote.remote.tabNavigation' => 'Fanenavigering',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsNl extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Actie voor Doorgaan met kijken';
@override String get continueWatchingPlay => 'Afspelen';
@override String get continueWatchingDetails => 'Details openen';
@override String get episodeAction => 'Afleveringsactie';
@override String get episodePlay => 'Afspelen';
@override String get episodeDetails => 'Details openen';
@override String get useGlobalHubs => 'Startlayout gebruiken';
@override String get useGlobalHubsDescription => 'Toon gecombineerde home-hubs. Anders bibliotheekaanbevelingen gebruiken.';
@override String get showServerNameOnHubs => 'Servernaam tonen bij hubs';
@@ -2029,6 +2032,9 @@ extension on TranslationsNl {
'settings.continueWatchingAction' => 'Actie voor Doorgaan met kijken',
'settings.continueWatchingPlay' => 'Afspelen',
'settings.continueWatchingDetails' => 'Details openen',
'settings.episodeAction' => 'Afleveringsactie',
'settings.episodePlay' => 'Afspelen',
'settings.episodeDetails' => 'Details openen',
'settings.useGlobalHubs' => 'Startlayout gebruiken',
'settings.useGlobalHubsDescription' => 'Toon gecombineerde home-hubs. Anders bibliotheekaanbevelingen gebruiken.',
'settings.showServerNameOnHubs' => 'Servernaam tonen bij hubs',
@@ -2430,11 +2436,11 @@ extension on TranslationsNl {
'messages.logsUploaded' => 'Logs geüpload',
'messages.logsUploadFailed' => 'Uploaden van logs mislukt',
'messages.logId' => 'Log-ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Tekst',
'subtitlingStyling.border' => 'Rand',
'subtitlingStyling.background' => 'Achtergrond',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Lettergrootte',
'subtitlingStyling.textColor' => 'Tekstkleur',
'subtitlingStyling.borderSize' => 'Rand grootte',
@@ -2944,11 +2950,11 @@ extension on TranslationsNl {
'companionRemote.remote.disconnectConfirm' => 'Wil je de verbinding met de externe sessie verbreken?',
'companionRemote.remote.reconnecting' => 'Opnieuw verbinden...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Poging ${current} van 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Nu opnieuw proberen',
'companionRemote.remote.tabRemote' => 'Afstandsbediening',
'companionRemote.remote.tabPlay' => 'Afspelen',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Meer',
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Tabnavigatie',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsPl extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Akcja Kontynuuj oglądanie';
@override String get continueWatchingPlay => 'Odtwórz';
@override String get continueWatchingDetails => 'Otwórz szczegóły';
@override String get episodeAction => 'Akcja odcinka';
@override String get episodePlay => 'Odtwórz';
@override String get episodeDetails => 'Otwórz szczegóły';
@override String get useGlobalHubs => 'Użyj układu strony głównej';
@override String get useGlobalHubsDescription => 'Pokaż ujednolicone huby ekranu głównego. W przeciwnym razie użyj rekomendacji bibliotek.';
@override String get showServerNameOnHubs => 'Pokaż nazwę serwera w hubach';
@@ -2029,6 +2032,9 @@ extension on TranslationsPl {
'settings.continueWatchingAction' => 'Akcja Kontynuuj oglądanie',
'settings.continueWatchingPlay' => 'Odtwórz',
'settings.continueWatchingDetails' => 'Otwórz szczegóły',
'settings.episodeAction' => 'Akcja odcinka',
'settings.episodePlay' => 'Odtwórz',
'settings.episodeDetails' => 'Otwórz szczegóły',
'settings.useGlobalHubs' => 'Użyj układu strony głównej',
'settings.useGlobalHubsDescription' => 'Pokaż ujednolicone huby ekranu głównego. W przeciwnym razie użyj rekomendacji bibliotek.',
'settings.showServerNameOnHubs' => 'Pokaż nazwę serwera w hubach',
@@ -2430,11 +2436,11 @@ extension on TranslationsPl {
'messages.logsUploaded' => 'Logi przesłane',
'messages.logsUploadFailed' => 'Nie udało się przesłać logów',
'messages.logId' => 'ID logu',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Tekst',
'subtitlingStyling.border' => 'Obramowanie',
'subtitlingStyling.background' => 'Tło',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Rozmiar czcionki',
'subtitlingStyling.textColor' => 'Kolor tekstu',
'subtitlingStyling.borderSize' => 'Rozmiar obramowania',
@@ -2944,11 +2950,11 @@ extension on TranslationsPl {
'companionRemote.remote.disconnectConfirm' => 'Czy chcesz się rozłączyć od sesji zdalnej?',
'companionRemote.remote.reconnecting' => 'Ponowne łączenie...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Próba ${current} z 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Ponów teraz',
'companionRemote.remote.tabRemote' => 'Pilot',
'companionRemote.remote.tabPlay' => 'Odtwórz',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Więcej',
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Nawigacja',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsPt extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Ação de Continuar Assistindo';
@override String get continueWatchingPlay => 'Reproduzir';
@override String get continueWatchingDetails => 'Abrir detalhes';
@override String get episodeAction => 'Ação de Episódio';
@override String get episodePlay => 'Reproduzir';
@override String get episodeDetails => 'Abrir detalhes';
@override String get useGlobalHubs => 'Usar layout inicial';
@override String get useGlobalHubsDescription => 'Mostrar hubs iniciais unificados. Caso contrário, usar recomendações da biblioteca.';
@override String get showServerNameOnHubs => 'Mostrar Nome do Servidor nos Hubs';
@@ -2029,6 +2032,9 @@ extension on TranslationsPt {
'settings.continueWatchingAction' => 'Ação de Continuar Assistindo',
'settings.continueWatchingPlay' => 'Reproduzir',
'settings.continueWatchingDetails' => 'Abrir detalhes',
'settings.episodeAction' => 'Ação de Episódio',
'settings.episodePlay' => 'Reproduzir',
'settings.episodeDetails' => 'Abrir detalhes',
'settings.useGlobalHubs' => 'Usar layout inicial',
'settings.useGlobalHubsDescription' => 'Mostrar hubs iniciais unificados. Caso contrário, usar recomendações da biblioteca.',
'settings.showServerNameOnHubs' => 'Mostrar Nome do Servidor nos Hubs',
@@ -2430,11 +2436,11 @@ extension on TranslationsPt {
'messages.logsUploaded' => 'Logs enviados',
'messages.logsUploadFailed' => 'Falha ao enviar logs',
'messages.logId' => 'ID do Log',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Texto',
'subtitlingStyling.border' => 'Borda',
'subtitlingStyling.background' => 'Fundo',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Tamanho da Fonte',
'subtitlingStyling.textColor' => 'Cor do Texto',
'subtitlingStyling.borderSize' => 'Tamanho da Borda',
@@ -2944,11 +2950,11 @@ extension on TranslationsPt {
'companionRemote.remote.disconnectConfirm' => 'Deseja desconectar da sessão remota?',
'companionRemote.remote.reconnecting' => 'Reconectando...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Tentativa ${current} de 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Tentar Agora',
'companionRemote.remote.tabRemote' => 'Remoto',
'companionRemote.remote.tabPlay' => 'Reproduzir',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Mais',
'companionRemote.remote.menu' => 'Menu',
'companionRemote.remote.tabNavigation' => 'Navegação',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsRu extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Действие для «Продолжить просмотр»';
@override String get continueWatchingPlay => 'Воспроизвести';
@override String get continueWatchingDetails => 'Открыть сведения';
@override String get episodeAction => 'Действие для эпизодов';
@override String get episodePlay => 'Воспроизвести';
@override String get episodeDetails => 'Открыть сведения';
@override String get useGlobalHubs => 'Использовать макет главной';
@override String get useGlobalHubsDescription => 'Показывать единые разделы главной. Иначе использовать рекомендации библиотек.';
@override String get showServerNameOnHubs => 'Показывать имя сервера в хабах';
@@ -2029,6 +2032,9 @@ extension on TranslationsRu {
'settings.continueWatchingAction' => 'Действие для «Продолжить просмотр»',
'settings.continueWatchingPlay' => 'Воспроизвести',
'settings.continueWatchingDetails' => 'Открыть сведения',
'settings.episodeAction' => 'Действие для эпизодов',
'settings.episodePlay' => 'Воспроизвести',
'settings.episodeDetails' => 'Открыть сведения',
'settings.useGlobalHubs' => 'Использовать макет главной',
'settings.useGlobalHubsDescription' => 'Показывать единые разделы главной. Иначе использовать рекомендации библиотек.',
'settings.showServerNameOnHubs' => 'Показывать имя сервера в хабах',
@@ -2430,11 +2436,11 @@ extension on TranslationsRu {
'messages.logsUploaded' => 'Логи загружены',
'messages.logsUploadFailed' => 'Не удалось загрузить логи',
'messages.logId' => 'ID лога',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Текст',
'subtitlingStyling.border' => 'Обводка',
'subtitlingStyling.background' => 'Фон',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Размер шрифта',
'subtitlingStyling.textColor' => 'Цвет текста',
'subtitlingStyling.borderSize' => 'Размер обводки',
@@ -2944,11 +2950,11 @@ extension on TranslationsRu {
'companionRemote.remote.disconnectConfirm' => 'Отключиться от удалённой сессии?',
'companionRemote.remote.reconnecting' => 'Переподключение...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Попытка ${current} из 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Повторить сейчас',
'companionRemote.remote.tabRemote' => 'Пульт',
'companionRemote.remote.tabPlay' => 'Воспроизведение',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Ещё',
'companionRemote.remote.menu' => 'Меню',
'companionRemote.remote.tabNavigation' => 'Навигация',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsSv extends TranslationsSettingsEn {
@override String get continueWatchingAction => 'Åtgärd för Fortsätt titta';
@override String get continueWatchingPlay => 'Spela';
@override String get continueWatchingDetails => 'Öppna detaljer';
@override String get episodeAction => 'Åtgärd för avsnitt';
@override String get episodePlay => 'Spela';
@override String get episodeDetails => 'Öppna detaljer';
@override String get useGlobalHubs => 'Använd startlayout';
@override String get useGlobalHubsDescription => 'Visa enhetliga startsideshubbar. Annars används biblioteksrekommendationer.';
@override String get showServerNameOnHubs => 'Visa servernamn på hubbar';
@@ -2029,6 +2032,9 @@ extension on TranslationsSv {
'settings.continueWatchingAction' => 'Åtgärd för Fortsätt titta',
'settings.continueWatchingPlay' => 'Spela',
'settings.continueWatchingDetails' => 'Öppna detaljer',
'settings.episodeAction' => 'Åtgärd för avsnitt',
'settings.episodePlay' => 'Spela',
'settings.episodeDetails' => 'Öppna detaljer',
'settings.useGlobalHubs' => 'Använd startlayout',
'settings.useGlobalHubsDescription' => 'Visa enhetliga startsideshubbar. Annars används biblioteksrekommendationer.',
'settings.showServerNameOnHubs' => 'Visa servernamn på hubbar',
@@ -2430,11 +2436,11 @@ extension on TranslationsSv {
'messages.logsUploaded' => 'Loggar uppladdade',
'messages.logsUploadFailed' => 'Uppladdning av loggar misslyckades',
'messages.logId' => 'Logg-ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => 'Text',
'subtitlingStyling.border' => 'Kantlinje',
'subtitlingStyling.background' => 'Bakgrund',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => 'Teckenstorlek',
'subtitlingStyling.textColor' => 'Textfärg',
'subtitlingStyling.borderSize' => 'Kantstorlek',
@@ -2944,11 +2950,11 @@ extension on TranslationsSv {
'companionRemote.remote.disconnectConfirm' => 'Vill du koppla från fjärrsessionen?',
'companionRemote.remote.reconnecting' => 'Återansluter...',
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Försök ${current} av 5',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => 'Försök nu',
'companionRemote.remote.tabRemote' => 'Fjärrkontroll',
'companionRemote.remote.tabPlay' => 'Spela',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => 'Mer',
'companionRemote.remote.menu' => 'Meny',
'companionRemote.remote.tabNavigation' => 'Fliknavigering',
+10 -4
View File
@@ -247,6 +247,9 @@ class _TranslationsSettingsZh extends TranslationsSettingsEn {
@override String get continueWatchingAction => '继续观看操作';
@override String get continueWatchingPlay => '播放';
@override String get continueWatchingDetails => '打开详情';
@override String get episodeAction => '剧集操作';
@override String get episodePlay => '播放';
@override String get episodeDetails => '打开详情';
@override String get useGlobalHubs => '使用主页布局';
@override String get useGlobalHubsDescription => '显示统一主页中心。否则使用资料库推荐。';
@override String get showServerNameOnHubs => '在推荐栏显示服务器名称';
@@ -2029,6 +2032,9 @@ extension on TranslationsZh {
'settings.continueWatchingAction' => '继续观看操作',
'settings.continueWatchingPlay' => '播放',
'settings.continueWatchingDetails' => '打开详情',
'settings.episodeAction' => '剧集操作',
'settings.episodePlay' => '播放',
'settings.episodeDetails' => '打开详情',
'settings.useGlobalHubs' => '使用主页布局',
'settings.useGlobalHubsDescription' => '显示统一主页中心。否则使用资料库推荐。',
'settings.showServerNameOnHubs' => '在推荐栏显示服务器名称',
@@ -2430,11 +2436,11 @@ extension on TranslationsZh {
'messages.logsUploaded' => '日志已上传',
'messages.logsUploadFailed' => '上传日志失败',
'messages.logId' => '日志 ID',
_ => null,
} ?? switch (path) {
'subtitlingStyling.text' => '文本',
'subtitlingStyling.border' => '边框',
'subtitlingStyling.background' => '背景',
_ => null,
} ?? switch (path) {
'subtitlingStyling.fontSize' => '字号',
'subtitlingStyling.textColor' => '文本颜色',
'subtitlingStyling.borderSize' => '边框大小',
@@ -2944,11 +2950,11 @@ extension on TranslationsZh {
'companionRemote.remote.disconnectConfirm' => '是否要断开远程会话的连接?',
'companionRemote.remote.reconnecting' => '重新连接中...',
'companionRemote.remote.attemptOf' => ({required Object current}) => '${current} 次尝试,共 5 次',
_ => null,
} ?? switch (path) {
'companionRemote.remote.retryNow' => '立即重试',
'companionRemote.remote.tabRemote' => '遥控',
'companionRemote.remote.tabPlay' => '播放',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabMore' => '更多',
'companionRemote.remote.menu' => '菜单',
'companionRemote.remote.tabNavigation' => '标签导航',
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "Åtgärd för Fortsätt titta",
"continueWatchingPlay": "Spela",
"continueWatchingDetails": "Öppna detaljer",
"episodeAction": "Åtgärd för avsnitt",
"episodePlay": "Spela",
"episodeDetails": "Öppna detaljer",
"useGlobalHubs": "Använd startlayout",
"useGlobalHubsDescription": "Visa enhetliga startsideshubbar. Annars används biblioteksrekommendationer.",
"showServerNameOnHubs": "Visa servernamn på hubbar",
+3
View File
@@ -118,6 +118,9 @@
"continueWatchingAction": "继续观看操作",
"continueWatchingPlay": "播放",
"continueWatchingDetails": "打开详情",
"episodeAction": "剧集操作",
"episodePlay": "播放",
"episodeDetails": "打开详情",
"useGlobalHubs": "使用主页布局",
"useGlobalHubsDescription": "显示统一主页中心。否则使用资料库推荐。",
"showServerNameOnHubs": "在推荐栏显示服务器名称",
@@ -157,6 +157,7 @@ class AppearanceSettingsScreen extends StatelessWidget {
title: t.settings.hideSpoilers,
subtitle: t.settings.hideSpoilersDescription,
),
_episodeActionSelector(),
_requireProfileSelection(),
SettingSwitchTile(
pref: SettingsService.autoHidePerformanceOverlay,
@@ -278,6 +279,18 @@ class AppearanceSettingsScreen extends StatelessWidget {
encode: (v) => v,
);
Widget _episodeActionSelector() => SettingSegmentedTile<EpisodeAction, EpisodeAction>(
pref: SettingsService.episodeAction,
icon: Symbols.tv_rounded,
title: t.settings.episodeAction,
segments: [
ButtonSegment(value: EpisodeAction.play, label: Text(t.settings.episodePlay)),
ButtonSegment(value: EpisodeAction.details, label: Text(t.settings.episodeDetails)),
],
decode: (v) => v,
encode: (v) => v,
);
// Sections offered as a startup destination, in display order. Live TV is
// always listed; if no server provides it, startup falls back to Home.
static const _startupSectionOptions = [
+8
View File
@@ -38,6 +38,8 @@ enum EpisodePosterMode { seriesPoster, seasonPoster, episodeThumbnail }
enum ContinueWatchingAction { play, details }
enum EpisodeAction { play, details }
enum SubAssOverride { no, yes, scale, force, strip }
/// Resolution ASS/image subtitles are rasterized at on the avfoundation VO
@@ -458,6 +460,11 @@ class SettingsService extends BaseSharedPreferencesService {
values: ContinueWatchingAction.values,
defaultValue: ContinueWatchingAction.play,
);
static const episodeAction = EnumPref<EpisodeAction>(
'episode_action',
values: EpisodeAction.values,
defaultValue: EpisodeAction.play,
);
static const mpvConfigText = _MpvConfigTextPref();
static final keyboardShortcuts = JsonPref<Map<String, String>>(
@@ -755,6 +762,7 @@ class SettingsService extends BaseSharedPreferencesService {
viewMode,
showHeroSection,
continueWatchingAction,
episodeAction,
seekTimeSmall,
seekTimeLarge,
sleepTimerDuration,
+24 -10
View File
@@ -111,13 +111,22 @@ MediaDetailNavigationTarget mediaDetailNavigationTargetFor(MediaItem item, {Medi
return MediaDetailNavigationTarget(metadata: metadataOverride ?? item);
}
bool shouldOpenEpisodeDetailsForActivation({
required bool playDirectly,
required ContinueWatchingAction continueWatchingAction,
required EpisodeAction episodeAction,
}) {
if (playDirectly) return continueWatchingAction == ContinueWatchingAction.details;
return episodeAction == EpisodeAction.details;
}
/// Navigates to the appropriate screen based on the item type.
///
/// Accepts a [MediaItem] or a [MediaPlaylist] (typed as [Object] because Dart
/// has no nominal union type).
///
/// For episodes, starts playback directly via video player unless [playDirectly]
/// is paired with the Continue Watching details setting.
/// For episodes, normal card activation follows the Episode Action setting;
/// [playDirectly] surfaces instead follow the Continue Watching action setting.
/// For movies, starts playback directly if [playDirectly] is true and the
/// Continue Watching details setting is disabled; otherwise navigates to media
/// detail screen.
@@ -132,9 +141,9 @@ MediaDetailNavigationTarget mediaDetailNavigationTargetFor(MediaItem item, {Medi
///
/// Set [isOffline] to true for downloaded content without server access.
///
/// Set [playDirectly] to true for Continue Watching activation; the user's
/// Continue Watching action setting decides whether resumable movies/episodes
/// play immediately or open details first.
/// Set [playDirectly] to true for Continue Watching / Next Up / On Deck
/// activation; those surfaces use the Continue Watching action setting instead
/// of the normal Episode Action setting.
///
/// Returns a [MediaNavigationResult] indicating what action was taken:
/// - [MediaNavigationResult.navigated]: Navigation completed, item refresh handled
@@ -156,10 +165,15 @@ Future<MediaNavigationResult> navigateToMediaItem(
return MediaNavigationResult.unsupported;
}
final mi = item;
final shouldOpenContinueWatchingDetails =
playDirectly &&
(SettingsService.instanceOrNull?.read(SettingsService.continueWatchingAction) ?? ContinueWatchingAction.play) ==
ContinueWatchingAction.details;
final settings = SettingsService.instanceOrNull;
final continueWatchingAction = settings?.read(SettingsService.continueWatchingAction) ?? ContinueWatchingAction.play;
final episodeAction = settings?.read(SettingsService.episodeAction) ?? EpisodeAction.play;
final shouldOpenContinueWatchingDetails = playDirectly && continueWatchingAction == ContinueWatchingAction.details;
final shouldOpenEpisodeDetails = shouldOpenEpisodeDetailsForActivation(
playDirectly: playDirectly,
continueWatchingAction: continueWatchingAction,
episodeAction: episodeAction,
);
// Handle library section items (shared whole-library entries) — Plex-only;
// [PlexLibrarySection.isLibrarySection] reads the stashed `key` from `raw`.
@@ -193,7 +207,7 @@ Future<MediaNavigationResult> navigateToMediaItem(
case MediaKind.clip:
case MediaKind.episode:
if (shouldOpenContinueWatchingDetails && mi.kind == MediaKind.episode) {
if (mi.kind == MediaKind.episode && shouldOpenEpisodeDetails) {
return navigateToMediaItemDetails(context, mi, onRefresh: onRefresh, isOffline: isOffline);
}
final result = await navigateToVideoPlayer(context, metadata: mi, isOffline: isOffline);
+14
View File
@@ -87,6 +87,20 @@ void main() {
});
});
group('SettingsService episode action', () {
test('defaults to play and resets to play', () async {
final settings = await SettingsService.getInstance();
expect(settings.read(SettingsService.episodeAction), EpisodeAction.play);
await settings.write(SettingsService.episodeAction, EpisodeAction.details);
expect(settings.read(SettingsService.episodeAction), EpisodeAction.details);
await settings.resetAllSettings();
expect(settings.read(SettingsService.episodeAction), EpisodeAction.play);
});
});
group('SettingsService platform gates', () {
test('audio passthrough stays available on desktop but not Apple TV', () {
expect(PlatformDetector.supportsAudioPassthrough(), isTrue);
@@ -2,6 +2,7 @@ import 'package:flutter_test/flutter_test.dart';
import 'package:plezy/media/media_backend.dart';
import 'package:plezy/media/media_item.dart';
import 'package:plezy/media/media_kind.dart';
import 'package:plezy/services/settings_service.dart';
import 'package:plezy/utils/media_navigation_helper.dart';
void main() {
@@ -57,4 +58,46 @@ void main() {
expect(target.initialSeasonId, isNull);
expect(target.initialEpisodeId, isNull);
});
group('episode activation details decision', () {
test('normal activation uses the episode action setting', () {
expect(
shouldOpenEpisodeDetailsForActivation(
playDirectly: false,
continueWatchingAction: ContinueWatchingAction.details,
episodeAction: EpisodeAction.play,
),
isFalse,
);
expect(
shouldOpenEpisodeDetailsForActivation(
playDirectly: false,
continueWatchingAction: ContinueWatchingAction.play,
episodeAction: EpisodeAction.details,
),
isTrue,
);
});
test('play-direct activation uses only the continue watching action setting', () {
expect(
shouldOpenEpisodeDetailsForActivation(
playDirectly: true,
continueWatchingAction: ContinueWatchingAction.play,
episodeAction: EpisodeAction.details,
),
isFalse,
);
expect(
shouldOpenEpisodeDetailsForActivation(
playDirectly: true,
continueWatchingAction: ContinueWatchingAction.details,
episodeAction: EpisodeAction.play,
),
isTrue,
);
});
});
}