From f5e0e8c8b504f31fe54f5e77cdc0414ba2bf4d7e Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sun, 26 Apr 2026 12:52:21 +0200 Subject: [PATCH] feat(settings): add "Start in fullscreen" option on Windows/Linux close #923 --- lib/i18n/da.i18n.json | 3 +++ lib/i18n/de.i18n.json | 3 +++ lib/i18n/en.i18n.json | 3 +++ lib/i18n/es.i18n.json | 3 +++ lib/i18n/fr.i18n.json | 3 +++ lib/i18n/it.i18n.json | 3 +++ lib/i18n/ja.i18n.json | 3 +++ lib/i18n/ko.i18n.json | 3 +++ lib/i18n/nb.i18n.json | 3 +++ lib/i18n/nl.i18n.json | 3 +++ lib/i18n/pl.i18n.json | 3 +++ lib/i18n/pt.i18n.json | 3 +++ lib/i18n/ru.i18n.json | 3 +++ lib/i18n/strings.g.dart | 4 ++-- lib/i18n/strings_da.g.dart | 10 ++++++++-- lib/i18n/strings_de.g.dart | 10 ++++++++-- lib/i18n/strings_en.g.dart | 16 ++++++++++++++-- lib/i18n/strings_es.g.dart | 10 ++++++++-- lib/i18n/strings_fr.g.dart | 10 ++++++++-- lib/i18n/strings_it.g.dart | 10 ++++++++-- lib/i18n/strings_ja.g.dart | 10 ++++++++-- lib/i18n/strings_ko.g.dart | 10 ++++++++-- lib/i18n/strings_nb.g.dart | 10 ++++++++-- lib/i18n/strings_nl.g.dart | 10 ++++++++-- lib/i18n/strings_pl.g.dart | 10 ++++++++-- lib/i18n/strings_pt.g.dart | 10 ++++++++-- lib/i18n/strings_ru.g.dart | 10 ++++++++-- lib/i18n/strings_sv.g.dart | 10 ++++++++-- lib/i18n/strings_zh.g.dart | 10 ++++++++-- lib/i18n/sv.i18n.json | 3 +++ lib/i18n/zh.i18n.json | 3 +++ lib/main.dart | 7 +++++++ .../settings/appearance_settings_screen.dart | 13 +++++++++++++ lib/services/fullscreen_state_manager.dart | 15 +++++++++++++++ lib/services/settings_service.dart | 1 + 35 files changed, 209 insertions(+), 32 deletions(-) diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index d7121a51..eb6d630c 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen", "forceTvMode": "Gennemtving TV-tilstand", "forceTvModeDescription": "Brug TV-layoutet uanset automatisk registrering. Nyttigt på Android TV-enheder, der ikke rapporterer leanback-funktionen. Genstarter appen ved ændring.", + "startInFullscreen": "Start i fuldskærm", + "startInFullscreenDescription": "Åbn Plezy i fuldskærmstilstand ved opstart", "autoHidePerformanceOverlay": "Skjul ydelses-overlay automatisk", "autoHidePerformanceOverlayDescription": "Fade ydelses-overlayet med afspilningskontrollerne", "showNavBarLabels": "Vis navigationsbarlabels", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index e3b09c97..c04370bf 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Bestätigungsdialog anzeigen, wenn Zurück zum Beenden der App gedrückt wird", "forceTvMode": "TV-Modus erzwingen", "forceTvModeDescription": "TV-Layout unabhängig von der automatischen Erkennung verwenden. Nützlich für Android-TV-Geräte, die das Leanback-Feature nicht melden. Startet die App bei Änderung neu.", + "startInFullscreen": "Im Vollbildmodus starten", + "startInFullscreenDescription": "Plezy beim Start im Vollbildmodus öffnen", "autoHidePerformanceOverlay": "Leistungsoverlay automatisch ausblenden", "autoHidePerformanceOverlayDescription": "Leistungsoverlay mit den Wiedergabesteuerungen ein-/ausblenden", "showNavBarLabels": "Navigationsleisten-Beschriftungen anzeigen", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index d72b50bf..61a2db63 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Show a confirmation dialog when pressing back to exit the app", "forceTvMode": "Force TV mode", "forceTvModeDescription": "Use the TV layout regardless of auto-detection. Useful on Android TV devices that don't report the leanback feature. Restarts the app on change.", + "startInFullscreen": "Start in fullscreen", + "startInFullscreenDescription": "Open Plezy in fullscreen mode at launch", "autoHidePerformanceOverlay": "Auto-Hide Performance Overlay", "autoHidePerformanceOverlayDescription": "Fade the performance overlay with the playback controls", "showNavBarLabels": "Show Navigation Bar Labels", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index d1aa9f49..c5383fda 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Mostrar un diálogo de confirmación al presionar atrás para salir de la app", "forceTvMode": "Forzar modo TV", "forceTvModeDescription": "Usar el diseño de TV independientemente de la detección automática. Útil en dispositivos Android TV que no informan la característica leanback. Reinicia la app al cambiar.", + "startInFullscreen": "Iniciar en pantalla completa", + "startInFullscreenDescription": "Abrir Plezy en modo pantalla completa al iniciar", "autoHidePerformanceOverlay": "Ocultar superposición de rendimiento automáticamente", "autoHidePerformanceOverlayDescription": "Desvanecer la superposición de rendimiento con los controles de reproducción", "showNavBarLabels": "Mostrar etiquetas de la barra de navegación", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 55f6563f..713c99f5 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Afficher une boîte de dialogue de confirmation en appuyant sur retour pour quitter", "forceTvMode": "Forcer le mode TV", "forceTvModeDescription": "Utiliser la mise en page TV quelle que soit la détection automatique. Utile sur les appareils Android TV qui ne signalent pas la fonctionnalité leanback. Redémarre l'application lors du changement.", + "startInFullscreen": "Démarrer en plein écran", + "startInFullscreenDescription": "Ouvrir Plezy en mode plein écran au lancement", "autoHidePerformanceOverlay": "Masquer auto. superposition performances", "autoHidePerformanceOverlayDescription": "Faire apparaître/disparaître la superposition avec les contrôles de lecture", "showNavBarLabels": "Afficher les libellés de la barre de navigation", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 1d3573da..687e2668 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Mostra una finestra di conferma quando si preme indietro per uscire dall'app", "forceTvMode": "Forza modalità TV", "forceTvModeDescription": "Usa il layout TV indipendentemente dal rilevamento automatico. Utile sui dispositivi Android TV che non segnalano la funzionalità leanback. Riavvia l'app al cambiamento.", + "startInFullscreen": "Avvia a schermo intero", + "startInFullscreenDescription": "Apri Plezy a schermo intero all'avvio", "autoHidePerformanceOverlay": "Nascondi automaticamente overlay prestazioni", "autoHidePerformanceOverlayDescription": "Dissolvi l'overlay prestazioni con i controlli di riproduzione", "showNavBarLabels": "Mostra etichette barra di navigazione", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index 2cb224aa..22468960 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "戻るボタンでアプリを終了する際に確認ダイアログを表示", "forceTvMode": "TVモードを強制", "forceTvModeDescription": "自動検出に関係なくTVレイアウトを使用します。leanback機能を報告しないAndroid TVデバイスで便利です。変更するとアプリが再起動されます。", + "startInFullscreen": "全画面表示で起動", + "startInFullscreenDescription": "起動時にPlezyを全画面モードで開きます", "autoHidePerformanceOverlay": "パフォーマンスオーバーレイを自動非表示", "autoHidePerformanceOverlayDescription": "再生コントロールと一緒にパフォーマンスオーバーレイをフェードする", "showNavBarLabels": "ナビゲーションバーラベルを表示", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 48936acb..2c9b411e 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "뒤로 버튼을 눌러 앱을 종료할 때 확인 대화상자를 표시합니다", "forceTvMode": "TV 모드 강제 사용", "forceTvModeDescription": "자동 감지와 관계없이 TV 레이아웃을 사용합니다. leanback 기능을 보고하지 않는 Android TV 기기에 유용합니다. 변경 시 앱이 다시 시작됩니다.", + "startInFullscreen": "전체화면으로 시작", + "startInFullscreenDescription": "실행 시 Plezy를 전체화면 모드로 엽니다", "autoHidePerformanceOverlay": "성능 오버레이 자동 숨기기", "autoHidePerformanceOverlayDescription": "재생 컨트롤과 함께 성능 오버레이를 페이드 처리", "showNavBarLabels": "내비게이션 바 라벨 표시", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index 680bd41c..031fb5e2 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen", "forceTvMode": "Tving TV-modus", "forceTvModeDescription": "Bruk TV-oppsettet uavhengig av automatisk gjenkjenning. Nyttig på Android TV-enheter som ikke rapporterer leanback-funksjonen. Starter appen på nytt ved endring.", + "startInFullscreen": "Start i fullskjerm", + "startInFullscreenDescription": "Åpne Plezy i fullskjermmodus ved oppstart", "autoHidePerformanceOverlay": "Skjul ytelsesoverlegg automatisk", "autoHidePerformanceOverlayDescription": "Fade ytelsesoverlegget med avspillingskontrollene", "showNavBarLabels": "Vis navigasjonsfeltlabeler", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 26cda289..768c4487 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Toon een bevestigingsvenster bij het drukken op terug om de app af te sluiten", "forceTvMode": "TV-modus forceren", "forceTvModeDescription": "Gebruik de TV-indeling ongeacht automatische detectie. Handig op Android TV-apparaten die de leanback-functie niet melden. Start de app opnieuw bij wijziging.", + "startInFullscreen": "Starten in volledig scherm", + "startInFullscreenDescription": "Open Plezy bij het starten in volledig scherm", "autoHidePerformanceOverlay": "Prestatie-overlay automatisch verbergen", "autoHidePerformanceOverlayDescription": "Laat de prestatie-overlay meevervagen met de afspeelknoppen", "showNavBarLabels": "Navigatiebalk labels tonen", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index 13daa6bb..9f972e81 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji", "forceTvMode": "Wymuś tryb TV", "forceTvModeDescription": "Użyj układu TV niezależnie od automatycznego wykrywania. Przydatne na urządzeniach Android TV, które nie zgłaszają funkcji leanback. Po zmianie aplikacja zostanie zrestartowana.", + "startInFullscreen": "Uruchom na pełnym ekranie", + "startInFullscreenDescription": "Otwiera Plezy w trybie pełnoekranowym przy uruchomieniu", "autoHidePerformanceOverlay": "Automatycznie ukrywaj nakładkę wydajności", "autoHidePerformanceOverlayDescription": "Wygaszaj nakładkę wydajności wraz z kontrolkami odtwarzania", "showNavBarLabels": "Pokaż etykiety paska nawigacji", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index 1d69fb6f..f9ee3687 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Mostrar diálogo de confirmação ao pressionar voltar para sair do app", "forceTvMode": "Forçar modo TV", "forceTvModeDescription": "Usar o layout de TV independentemente da detecção automática. Útil em dispositivos Android TV que não reportam o recurso leanback. Reinicia o app ao alterar.", + "startInFullscreen": "Iniciar em tela cheia", + "startInFullscreenDescription": "Abrir o Plezy em modo de tela cheia ao iniciar", "autoHidePerformanceOverlay": "Ocultar overlay de desempenho automaticamente", "autoHidePerformanceOverlayDescription": "Desvanecer o overlay de desempenho com os controles de reprodução", "showNavBarLabels": "Mostrar Rótulos da Barra de Navegação", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index 22535041..d97bf7c8 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Показывать диалог подтверждения при нажатии «назад» для выхода из приложения", "forceTvMode": "Принудительный режим ТВ", "forceTvModeDescription": "Использовать макет ТВ независимо от автоматического определения. Полезно на устройствах Android TV, которые не сообщают о функции leanback. Приложение перезапустится при изменении.", + "startInFullscreen": "Запускать в полноэкранном режиме", + "startInFullscreenDescription": "Открывать Plezy в полноэкранном режиме при запуске", "autoHidePerformanceOverlay": "Автоскрытие оверлея производительности", "autoHidePerformanceOverlayDescription": "Скрывать оверлей производительности вместе с элементами управления воспроизведением", "showNavBarLabels": "Показывать подписи панели навигации", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 2931b21f..ab6e731d 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 15 -/// Strings: 14505 (967 per locale) +/// Strings: 14550 (970 per locale) /// -/// Built on 2026-04-25 at 01:00 UTC +/// Built on 2026-04-26 at 10:32 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 88e8878c..cb6bf2df 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsDa implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen'; @override String get forceTvMode => 'Gennemtving TV-tilstand'; @override String get forceTvModeDescription => 'Brug TV-layoutet uanset automatisk registrering. Nyttigt på Android TV-enheder, der ikke rapporterer leanback-funktionen. Genstarter appen ved ændring.'; + @override String get startInFullscreen => 'Start i fuldskærm'; + @override String get startInFullscreenDescription => 'Åbn Plezy i fuldskærmstilstand ved opstart'; @override String get autoHidePerformanceOverlay => 'Skjul ydelses-overlay automatisk'; @override String get autoHidePerformanceOverlayDescription => 'Fade ydelses-overlayet med afspilningskontrollerne'; @override String get showNavBarLabels => 'Vis navigationsbarlabels'; @@ -372,6 +374,7 @@ class _TranslationsSettingsDa implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsDa { 'settings.confirmExitOnBackDescription' => 'Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen', 'settings.forceTvMode' => 'Gennemtving TV-tilstand', 'settings.forceTvModeDescription' => 'Brug TV-layoutet uanset automatisk registrering. Nyttigt på Android TV-enheder, der ikke rapporterer leanback-funktionen. Genstarter appen ved ændring.', + 'settings.startInFullscreen' => 'Start i fuldskærm', + 'settings.startInFullscreenDescription' => 'Åbn Plezy i fuldskærmstilstand ved opstart', 'settings.autoHidePerformanceOverlay' => 'Skjul ydelses-overlay automatisk', 'settings.autoHidePerformanceOverlayDescription' => 'Fade ydelses-overlayet med afspilningskontrollerne', 'settings.showNavBarLabels' => 'Vis navigationsbarlabels', @@ -1774,6 +1779,7 @@ extension on TranslationsDa { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsDa { 'libraries.failedToAnalyze' => ({required Object error}) => 'Kunne ikke analysere bibliotek: ${error}', 'libraries.noLibrariesFound' => 'Ingen biblioteker fundet', 'libraries.allLibrariesHidden' => 'Alle biblioteker er skjult', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Skjulte biblioteker (${count})', 'libraries.thisLibraryIsEmpty' => 'Dette bibliotek er tomt', 'libraries.all' => 'Alle', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Ryd alle', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Er du sikker på, at du vil scanne "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Er du sikker på, at du vil analysere "${title}"?', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index da0e53f6..60955f0c 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Bestätigungsdialog anzeigen, wenn Zurück zum Beenden der App gedrückt wird'; @override String get forceTvMode => 'TV-Modus erzwingen'; @override String get forceTvModeDescription => 'TV-Layout unabhängig von der automatischen Erkennung verwenden. Nützlich für Android-TV-Geräte, die das Leanback-Feature nicht melden. Startet die App bei Änderung neu.'; + @override String get startInFullscreen => 'Im Vollbildmodus starten'; + @override String get startInFullscreenDescription => 'Plezy beim Start im Vollbildmodus öffnen'; @override String get autoHidePerformanceOverlay => 'Leistungsoverlay automatisch ausblenden'; @override String get autoHidePerformanceOverlayDescription => 'Leistungsoverlay mit den Wiedergabesteuerungen ein-/ausblenden'; @override String get showNavBarLabels => 'Navigationsleisten-Beschriftungen anzeigen'; @@ -372,6 +374,7 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsDe { 'settings.confirmExitOnBackDescription' => 'Bestätigungsdialog anzeigen, wenn Zurück zum Beenden der App gedrückt wird', 'settings.forceTvMode' => 'TV-Modus erzwingen', 'settings.forceTvModeDescription' => 'TV-Layout unabhängig von der automatischen Erkennung verwenden. Nützlich für Android-TV-Geräte, die das Leanback-Feature nicht melden. Startet die App bei Änderung neu.', + 'settings.startInFullscreen' => 'Im Vollbildmodus starten', + 'settings.startInFullscreenDescription' => 'Plezy beim Start im Vollbildmodus öffnen', 'settings.autoHidePerformanceOverlay' => 'Leistungsoverlay automatisch ausblenden', 'settings.autoHidePerformanceOverlayDescription' => 'Leistungsoverlay mit den Wiedergabesteuerungen ein-/ausblenden', 'settings.showNavBarLabels' => 'Navigationsleisten-Beschriftungen anzeigen', @@ -1774,6 +1779,7 @@ extension on TranslationsDe { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsDe { 'libraries.failedToAnalyze' => ({required Object error}) => 'Analyse der Mediathek fehlgeschlagen: ${error}', 'libraries.noLibrariesFound' => 'Keine Mediatheken gefunden', 'libraries.allLibrariesHidden' => 'Alle Mediatheken sind ausgeblendet', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Ausgeblendete Mediatheken (${count})', 'libraries.thisLibraryIsEmpty' => 'Diese Mediathek ist leer', 'libraries.all' => 'Alle', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Alle löschen', 'libraries.scanLibraryConfirm' => ({required Object title}) => '„${title}“ wirklich scannen?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '„${title}“ wirklich analysieren?', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 3905d057..0a86401a 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -829,6 +829,12 @@ class TranslationsSettingsEn { /// en: 'Use the TV layout regardless of auto-detection. Useful on Android TV devices that don't report the leanback feature. Restarts the app on change.' String get forceTvModeDescription => 'Use the TV layout regardless of auto-detection. Useful on Android TV devices that don\'t report the leanback feature. Restarts the app on change.'; + /// en: 'Start in fullscreen' + String get startInFullscreen => 'Start in fullscreen'; + + /// en: 'Open Plezy in fullscreen mode at launch' + String get startInFullscreenDescription => 'Open Plezy in fullscreen mode at launch'; + /// en: 'Auto-Hide Performance Overlay' String get autoHidePerformanceOverlay => 'Auto-Hide Performance Overlay'; @@ -856,6 +862,9 @@ class TranslationsSettingsEn { /// en: 'Navigation' String get navigation => 'Navigation'; + /// en: 'Window' + String get window => 'Window'; + /// en: 'Content' String get content => 'Content'; @@ -3707,6 +3716,8 @@ extension on Translations { 'settings.confirmExitOnBackDescription' => 'Show a confirmation dialog when pressing back to exit the app', 'settings.forceTvMode' => 'Force TV mode', 'settings.forceTvModeDescription' => 'Use the TV layout regardless of auto-detection. Useful on Android TV devices that don\'t report the leanback feature. Restarts the app on change.', + 'settings.startInFullscreen' => 'Start in fullscreen', + 'settings.startInFullscreenDescription' => 'Open Plezy in fullscreen mode at launch', 'settings.autoHidePerformanceOverlay' => 'Auto-Hide Performance Overlay', 'settings.autoHidePerformanceOverlayDescription' => 'Fade the performance overlay with the playback controls', 'settings.showNavBarLabels' => 'Show Navigation Bar Labels', @@ -3716,6 +3727,7 @@ extension on Translations { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -3985,11 +3997,11 @@ extension on Translations { 'libraries.failedToAnalyze' => ({required Object error}) => 'Failed to analyze library: ${error}', 'libraries.noLibrariesFound' => 'No libraries found', 'libraries.allLibrariesHidden' => 'All libraries are hidden', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Hidden libraries (${count})', 'libraries.thisLibraryIsEmpty' => 'This library is empty', 'libraries.all' => 'All', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Clear All', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Are you sure you want to scan "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Are you sure you want to analyze "${title}"?', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index a0ae8398..66b6ad6a 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Mostrar un diálogo de confirmación al presionar atrás para salir de la app'; @override String get forceTvMode => 'Forzar modo TV'; @override String get forceTvModeDescription => 'Usar el diseño de TV independientemente de la detección automática. Útil en dispositivos Android TV que no informan la característica leanback. Reinicia la app al cambiar.'; + @override String get startInFullscreen => 'Iniciar en pantalla completa'; + @override String get startInFullscreenDescription => 'Abrir Plezy en modo pantalla completa al iniciar'; @override String get autoHidePerformanceOverlay => 'Ocultar superposición de rendimiento automáticamente'; @override String get autoHidePerformanceOverlayDescription => 'Desvanecer la superposición de rendimiento con los controles de reproducción'; @override String get showNavBarLabels => 'Mostrar etiquetas de la barra de navegación'; @@ -372,6 +374,7 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsEs { 'settings.confirmExitOnBackDescription' => 'Mostrar un diálogo de confirmación al presionar atrás para salir de la app', 'settings.forceTvMode' => 'Forzar modo TV', 'settings.forceTvModeDescription' => 'Usar el diseño de TV independientemente de la detección automática. Útil en dispositivos Android TV que no informan la característica leanback. Reinicia la app al cambiar.', + 'settings.startInFullscreen' => 'Iniciar en pantalla completa', + 'settings.startInFullscreenDescription' => 'Abrir Plezy en modo pantalla completa al iniciar', 'settings.autoHidePerformanceOverlay' => 'Ocultar superposición de rendimiento automáticamente', 'settings.autoHidePerformanceOverlayDescription' => 'Desvanecer la superposición de rendimiento con los controles de reproducción', 'settings.showNavBarLabels' => 'Mostrar etiquetas de la barra de navegación', @@ -1774,6 +1779,7 @@ extension on TranslationsEs { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsEs { 'libraries.failedToAnalyze' => ({required Object error}) => 'Error al analizar la biblioteca: ${error}', 'libraries.noLibrariesFound' => 'No se encontraron bibliotecas', 'libraries.allLibrariesHidden' => 'Todas las bibliotecas están ocultas', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Bibliotecas ocultas (${count})', 'libraries.thisLibraryIsEmpty' => 'Esta biblioteca está vacía', 'libraries.all' => 'Todos', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Borrar Todo', 'libraries.scanLibraryConfirm' => ({required Object title}) => '¿Estás seguro de que quieres escanear "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '¿Estás seguro de que quieres analizar "${title}"?', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 2e73d743..7a08615b 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Afficher une boîte de dialogue de confirmation en appuyant sur retour pour quitter'; @override String get forceTvMode => 'Forcer le mode TV'; @override String get forceTvModeDescription => 'Utiliser la mise en page TV quelle que soit la détection automatique. Utile sur les appareils Android TV qui ne signalent pas la fonctionnalité leanback. Redémarre l\'application lors du changement.'; + @override String get startInFullscreen => 'Démarrer en plein écran'; + @override String get startInFullscreenDescription => 'Ouvrir Plezy en mode plein écran au lancement'; @override String get autoHidePerformanceOverlay => 'Masquer auto. superposition performances'; @override String get autoHidePerformanceOverlayDescription => 'Faire apparaître/disparaître la superposition avec les contrôles de lecture'; @override String get showNavBarLabels => 'Afficher les libellés de la barre de navigation'; @@ -372,6 +374,7 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsFr { 'settings.confirmExitOnBackDescription' => 'Afficher une boîte de dialogue de confirmation en appuyant sur retour pour quitter', 'settings.forceTvMode' => 'Forcer le mode TV', 'settings.forceTvModeDescription' => 'Utiliser la mise en page TV quelle que soit la détection automatique. Utile sur les appareils Android TV qui ne signalent pas la fonctionnalité leanback. Redémarre l\'application lors du changement.', + 'settings.startInFullscreen' => 'Démarrer en plein écran', + 'settings.startInFullscreenDescription' => 'Ouvrir Plezy en mode plein écran au lancement', 'settings.autoHidePerformanceOverlay' => 'Masquer auto. superposition performances', 'settings.autoHidePerformanceOverlayDescription' => 'Faire apparaître/disparaître la superposition avec les contrôles de lecture', 'settings.showNavBarLabels' => 'Afficher les libellés de la barre de navigation', @@ -1774,6 +1779,7 @@ extension on TranslationsFr { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsFr { 'libraries.failedToAnalyze' => ({required Object error}) => 'Échec de l\'analyse de la bibliothèque: ${error}', 'libraries.noLibrariesFound' => 'Aucune bibliothèque trouvée', 'libraries.allLibrariesHidden' => 'Toutes les bibliothèques sont masquées', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Bibliothèques masquées (${count})', 'libraries.thisLibraryIsEmpty' => 'Cette bibliothèque est vide', 'libraries.all' => 'Tout', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Tout effacer', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir lancer le scan de "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir analyser "${title}"?', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index f3d82934..6a730e69 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Mostra una finestra di conferma quando si preme indietro per uscire dall\'app'; @override String get forceTvMode => 'Forza modalità TV'; @override String get forceTvModeDescription => 'Usa il layout TV indipendentemente dal rilevamento automatico. Utile sui dispositivi Android TV che non segnalano la funzionalità leanback. Riavvia l\'app al cambiamento.'; + @override String get startInFullscreen => 'Avvia a schermo intero'; + @override String get startInFullscreenDescription => 'Apri Plezy a schermo intero all\'avvio'; @override String get autoHidePerformanceOverlay => 'Nascondi automaticamente overlay prestazioni'; @override String get autoHidePerformanceOverlayDescription => 'Dissolvi l\'overlay prestazioni con i controlli di riproduzione'; @override String get showNavBarLabels => 'Mostra etichette barra di navigazione'; @@ -372,6 +374,7 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsIt { 'settings.confirmExitOnBackDescription' => 'Mostra una finestra di conferma quando si preme indietro per uscire dall\'app', 'settings.forceTvMode' => 'Forza modalità TV', 'settings.forceTvModeDescription' => 'Usa il layout TV indipendentemente dal rilevamento automatico. Utile sui dispositivi Android TV che non segnalano la funzionalità leanback. Riavvia l\'app al cambiamento.', + 'settings.startInFullscreen' => 'Avvia a schermo intero', + 'settings.startInFullscreenDescription' => 'Apri Plezy a schermo intero all\'avvio', 'settings.autoHidePerformanceOverlay' => 'Nascondi automaticamente overlay prestazioni', 'settings.autoHidePerformanceOverlayDescription' => 'Dissolvi l\'overlay prestazioni con i controlli di riproduzione', 'settings.showNavBarLabels' => 'Mostra etichette barra di navigazione', @@ -1774,6 +1779,7 @@ extension on TranslationsIt { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsIt { 'libraries.failedToAnalyze' => ({required Object error}) => 'Impossibile analizzare libreria: ${error}', 'libraries.noLibrariesFound' => 'Nessuna libreria trovata', 'libraries.allLibrariesHidden' => 'Tutte le librerie sono nascoste', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Librerie nascoste (${count})', 'libraries.thisLibraryIsEmpty' => 'Questa libreria è vuota', 'libraries.all' => 'Tutto', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Cancella tutto', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Sei sicuro di voler scansionare "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Sei sicuro di voler analizzare "${title}"?', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index aea4a927..08a66490 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsJa implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => '戻るボタンでアプリを終了する際に確認ダイアログを表示'; @override String get forceTvMode => 'TVモードを強制'; @override String get forceTvModeDescription => '自動検出に関係なくTVレイアウトを使用します。leanback機能を報告しないAndroid TVデバイスで便利です。変更するとアプリが再起動されます。'; + @override String get startInFullscreen => '全画面表示で起動'; + @override String get startInFullscreenDescription => '起動時にPlezyを全画面モードで開きます'; @override String get autoHidePerformanceOverlay => 'パフォーマンスオーバーレイを自動非表示'; @override String get autoHidePerformanceOverlayDescription => '再生コントロールと一緒にパフォーマンスオーバーレイをフェードする'; @override String get showNavBarLabels => 'ナビゲーションバーラベルを表示'; @@ -372,6 +374,7 @@ class _TranslationsSettingsJa implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsJa { 'settings.confirmExitOnBackDescription' => '戻るボタンでアプリを終了する際に確認ダイアログを表示', 'settings.forceTvMode' => 'TVモードを強制', 'settings.forceTvModeDescription' => '自動検出に関係なくTVレイアウトを使用します。leanback機能を報告しないAndroid TVデバイスで便利です。変更するとアプリが再起動されます。', + 'settings.startInFullscreen' => '全画面表示で起動', + 'settings.startInFullscreenDescription' => '起動時にPlezyを全画面モードで開きます', 'settings.autoHidePerformanceOverlay' => 'パフォーマンスオーバーレイを自動非表示', 'settings.autoHidePerformanceOverlayDescription' => '再生コントロールと一緒にパフォーマンスオーバーレイをフェードする', 'settings.showNavBarLabels' => 'ナビゲーションバーラベルを表示', @@ -1774,6 +1779,7 @@ extension on TranslationsJa { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsJa { 'libraries.failedToAnalyze' => ({required Object error}) => 'ライブラリの解析に失敗しました: ${error}', 'libraries.noLibrariesFound' => 'ライブラリが見つかりません', 'libraries.allLibrariesHidden' => 'すべてのライブラリが非表示です', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => '非表示のライブラリ (${count})', 'libraries.thisLibraryIsEmpty' => 'このライブラリは空です', 'libraries.all' => 'すべて', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'すべてクリア', 'libraries.scanLibraryConfirm' => ({required Object title}) => '"${title}"をスキャンしてもよろしいですか?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '"${title}"を解析してもよろしいですか?', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index 1231b79e..dee71373 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => '뒤로 버튼을 눌러 앱을 종료할 때 확인 대화상자를 표시합니다'; @override String get forceTvMode => 'TV 모드 강제 사용'; @override String get forceTvModeDescription => '자동 감지와 관계없이 TV 레이아웃을 사용합니다. leanback 기능을 보고하지 않는 Android TV 기기에 유용합니다. 변경 시 앱이 다시 시작됩니다.'; + @override String get startInFullscreen => '전체화면으로 시작'; + @override String get startInFullscreenDescription => '실행 시 Plezy를 전체화면 모드로 엽니다'; @override String get autoHidePerformanceOverlay => '성능 오버레이 자동 숨기기'; @override String get autoHidePerformanceOverlayDescription => '재생 컨트롤과 함께 성능 오버레이를 페이드 처리'; @override String get showNavBarLabels => '내비게이션 바 라벨 표시'; @@ -372,6 +374,7 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsKo { 'settings.confirmExitOnBackDescription' => '뒤로 버튼을 눌러 앱을 종료할 때 확인 대화상자를 표시합니다', 'settings.forceTvMode' => 'TV 모드 강제 사용', 'settings.forceTvModeDescription' => '자동 감지와 관계없이 TV 레이아웃을 사용합니다. leanback 기능을 보고하지 않는 Android TV 기기에 유용합니다. 변경 시 앱이 다시 시작됩니다.', + 'settings.startInFullscreen' => '전체화면으로 시작', + 'settings.startInFullscreenDescription' => '실행 시 Plezy를 전체화면 모드로 엽니다', 'settings.autoHidePerformanceOverlay' => '성능 오버레이 자동 숨기기', 'settings.autoHidePerformanceOverlayDescription' => '재생 컨트롤과 함께 성능 오버레이를 페이드 처리', 'settings.showNavBarLabels' => '내비게이션 바 라벨 표시', @@ -1774,6 +1779,7 @@ extension on TranslationsKo { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsKo { 'libraries.failedToAnalyze' => ({required Object error}) => '미디어 라이브러리 분석 실패: ${error}', 'libraries.noLibrariesFound' => '미디어 라이브러리 없음', 'libraries.allLibrariesHidden' => '모든 라이브러리가 숨겨졌습니다', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => '숨겨진 라이브러리 (${count})', 'libraries.thisLibraryIsEmpty' => '이 미디어 라이브러리는 비어 있습니다', 'libraries.all' => '전체', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => '모두 삭제', 'libraries.scanLibraryConfirm' => ({required Object title}) => '「${title}」를 스캔 하시겠습니까?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '「${title}」를 분석 하시겠습니까?', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 2ac829d8..59329aa0 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsNb implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen'; @override String get forceTvMode => 'Tving TV-modus'; @override String get forceTvModeDescription => 'Bruk TV-oppsettet uavhengig av automatisk gjenkjenning. Nyttig på Android TV-enheter som ikke rapporterer leanback-funksjonen. Starter appen på nytt ved endring.'; + @override String get startInFullscreen => 'Start i fullskjerm'; + @override String get startInFullscreenDescription => 'Åpne Plezy i fullskjermmodus ved oppstart'; @override String get autoHidePerformanceOverlay => 'Skjul ytelsesoverlegg automatisk'; @override String get autoHidePerformanceOverlayDescription => 'Fade ytelsesoverlegget med avspillingskontrollene'; @override String get showNavBarLabels => 'Vis navigasjonsfeltlabeler'; @@ -372,6 +374,7 @@ class _TranslationsSettingsNb implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsNb { 'settings.confirmExitOnBackDescription' => 'Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen', 'settings.forceTvMode' => 'Tving TV-modus', 'settings.forceTvModeDescription' => 'Bruk TV-oppsettet uavhengig av automatisk gjenkjenning. Nyttig på Android TV-enheter som ikke rapporterer leanback-funksjonen. Starter appen på nytt ved endring.', + 'settings.startInFullscreen' => 'Start i fullskjerm', + 'settings.startInFullscreenDescription' => 'Åpne Plezy i fullskjermmodus ved oppstart', 'settings.autoHidePerformanceOverlay' => 'Skjul ytelsesoverlegg automatisk', 'settings.autoHidePerformanceOverlayDescription' => 'Fade ytelsesoverlegget med avspillingskontrollene', 'settings.showNavBarLabels' => 'Vis navigasjonsfeltlabeler', @@ -1774,6 +1779,7 @@ extension on TranslationsNb { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsNb { 'libraries.failedToAnalyze' => ({required Object error}) => 'Kunne ikke analysere bibliotek: ${error}', 'libraries.noLibrariesFound' => 'Ingen biblioteker funnet', 'libraries.allLibrariesHidden' => 'Alle biblioteker er skjult', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Skjulte biblioteker (${count})', 'libraries.thisLibraryIsEmpty' => 'Dette biblioteket er tomt', 'libraries.all' => 'Alle', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Tøm alle', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Er du sikker på at du vil skanne "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Er du sikker på at du vil analysere "${title}"?', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index b21f3e04..268ba4df 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Toon een bevestigingsvenster bij het drukken op terug om de app af te sluiten'; @override String get forceTvMode => 'TV-modus forceren'; @override String get forceTvModeDescription => 'Gebruik de TV-indeling ongeacht automatische detectie. Handig op Android TV-apparaten die de leanback-functie niet melden. Start de app opnieuw bij wijziging.'; + @override String get startInFullscreen => 'Starten in volledig scherm'; + @override String get startInFullscreenDescription => 'Open Plezy bij het starten in volledig scherm'; @override String get autoHidePerformanceOverlay => 'Prestatie-overlay automatisch verbergen'; @override String get autoHidePerformanceOverlayDescription => 'Laat de prestatie-overlay meevervagen met de afspeelknoppen'; @override String get showNavBarLabels => 'Navigatiebalk labels tonen'; @@ -372,6 +374,7 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsNl { 'settings.confirmExitOnBackDescription' => 'Toon een bevestigingsvenster bij het drukken op terug om de app af te sluiten', 'settings.forceTvMode' => 'TV-modus forceren', 'settings.forceTvModeDescription' => 'Gebruik de TV-indeling ongeacht automatische detectie. Handig op Android TV-apparaten die de leanback-functie niet melden. Start de app opnieuw bij wijziging.', + 'settings.startInFullscreen' => 'Starten in volledig scherm', + 'settings.startInFullscreenDescription' => 'Open Plezy bij het starten in volledig scherm', 'settings.autoHidePerformanceOverlay' => 'Prestatie-overlay automatisch verbergen', 'settings.autoHidePerformanceOverlayDescription' => 'Laat de prestatie-overlay meevervagen met de afspeelknoppen', 'settings.showNavBarLabels' => 'Navigatiebalk labels tonen', @@ -1774,6 +1779,7 @@ extension on TranslationsNl { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsNl { 'libraries.failedToAnalyze' => ({required Object error}) => 'Kon bibliotheek niet analyseren: ${error}', 'libraries.noLibrariesFound' => 'Geen bibliotheken gevonden', 'libraries.allLibrariesHidden' => 'Alle bibliotheken zijn verborgen', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Verborgen bibliotheken (${count})', 'libraries.thisLibraryIsEmpty' => 'Deze bibliotheek is leeg', 'libraries.all' => 'Alles', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Alles wissen', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Weet je zeker dat je "${title}" wilt scannen?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Weet je zeker dat je "${title}" wilt analyseren?', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index ad64d42f..f424a804 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsPl implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji'; @override String get forceTvMode => 'Wymuś tryb TV'; @override String get forceTvModeDescription => 'Użyj układu TV niezależnie od automatycznego wykrywania. Przydatne na urządzeniach Android TV, które nie zgłaszają funkcji leanback. Po zmianie aplikacja zostanie zrestartowana.'; + @override String get startInFullscreen => 'Uruchom na pełnym ekranie'; + @override String get startInFullscreenDescription => 'Otwiera Plezy w trybie pełnoekranowym przy uruchomieniu'; @override String get autoHidePerformanceOverlay => 'Automatycznie ukrywaj nakładkę wydajności'; @override String get autoHidePerformanceOverlayDescription => 'Wygaszaj nakładkę wydajności wraz z kontrolkami odtwarzania'; @override String get showNavBarLabels => 'Pokaż etykiety paska nawigacji'; @@ -372,6 +374,7 @@ class _TranslationsSettingsPl implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsPl { 'settings.confirmExitOnBackDescription' => 'Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji', 'settings.forceTvMode' => 'Wymuś tryb TV', 'settings.forceTvModeDescription' => 'Użyj układu TV niezależnie od automatycznego wykrywania. Przydatne na urządzeniach Android TV, które nie zgłaszają funkcji leanback. Po zmianie aplikacja zostanie zrestartowana.', + 'settings.startInFullscreen' => 'Uruchom na pełnym ekranie', + 'settings.startInFullscreenDescription' => 'Otwiera Plezy w trybie pełnoekranowym przy uruchomieniu', 'settings.autoHidePerformanceOverlay' => 'Automatycznie ukrywaj nakładkę wydajności', 'settings.autoHidePerformanceOverlayDescription' => 'Wygaszaj nakładkę wydajności wraz z kontrolkami odtwarzania', 'settings.showNavBarLabels' => 'Pokaż etykiety paska nawigacji', @@ -1774,6 +1779,7 @@ extension on TranslationsPl { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsPl { 'libraries.failedToAnalyze' => ({required Object error}) => 'Nie udało się przeanalizować biblioteki: ${error}', 'libraries.noLibrariesFound' => 'Nie znaleziono bibliotek', 'libraries.allLibrariesHidden' => 'Wszystkie biblioteki są ukryte', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Ukryte biblioteki (${count})', 'libraries.thisLibraryIsEmpty' => 'Ta biblioteka jest pusta', 'libraries.all' => 'Wszystkie', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Wyczyść wszystko', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Czy na pewno chcesz zeskanować "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Czy na pewno chcesz przeanalizować "${title}"?', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 1871a41f..43616687 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsPt implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Mostrar diálogo de confirmação ao pressionar voltar para sair do app'; @override String get forceTvMode => 'Forçar modo TV'; @override String get forceTvModeDescription => 'Usar o layout de TV independentemente da detecção automática. Útil em dispositivos Android TV que não reportam o recurso leanback. Reinicia o app ao alterar.'; + @override String get startInFullscreen => 'Iniciar em tela cheia'; + @override String get startInFullscreenDescription => 'Abrir o Plezy em modo de tela cheia ao iniciar'; @override String get autoHidePerformanceOverlay => 'Ocultar overlay de desempenho automaticamente'; @override String get autoHidePerformanceOverlayDescription => 'Desvanecer o overlay de desempenho com os controles de reprodução'; @override String get showNavBarLabels => 'Mostrar Rótulos da Barra de Navegação'; @@ -372,6 +374,7 @@ class _TranslationsSettingsPt implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsPt { 'settings.confirmExitOnBackDescription' => 'Mostrar diálogo de confirmação ao pressionar voltar para sair do app', 'settings.forceTvMode' => 'Forçar modo TV', 'settings.forceTvModeDescription' => 'Usar o layout de TV independentemente da detecção automática. Útil em dispositivos Android TV que não reportam o recurso leanback. Reinicia o app ao alterar.', + 'settings.startInFullscreen' => 'Iniciar em tela cheia', + 'settings.startInFullscreenDescription' => 'Abrir o Plezy em modo de tela cheia ao iniciar', 'settings.autoHidePerformanceOverlay' => 'Ocultar overlay de desempenho automaticamente', 'settings.autoHidePerformanceOverlayDescription' => 'Desvanecer o overlay de desempenho com os controles de reprodução', 'settings.showNavBarLabels' => 'Mostrar Rótulos da Barra de Navegação', @@ -1774,6 +1779,7 @@ extension on TranslationsPt { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsPt { 'libraries.failedToAnalyze' => ({required Object error}) => 'Falha ao analisar biblioteca: ${error}', 'libraries.noLibrariesFound' => 'Nenhuma biblioteca encontrada', 'libraries.allLibrariesHidden' => 'Todas as bibliotecas estão ocultas', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Bibliotecas ocultas (${count})', 'libraries.thisLibraryIsEmpty' => 'Esta biblioteca está vazia', 'libraries.all' => 'Todos', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Limpar Tudo', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Tem certeza que deseja escanear "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Tem certeza que deseja analisar "${title}"?', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index 622fd57d..9b0a764e 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsRu implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Показывать диалог подтверждения при нажатии «назад» для выхода из приложения'; @override String get forceTvMode => 'Принудительный режим ТВ'; @override String get forceTvModeDescription => 'Использовать макет ТВ независимо от автоматического определения. Полезно на устройствах Android TV, которые не сообщают о функции leanback. Приложение перезапустится при изменении.'; + @override String get startInFullscreen => 'Запускать в полноэкранном режиме'; + @override String get startInFullscreenDescription => 'Открывать Plezy в полноэкранном режиме при запуске'; @override String get autoHidePerformanceOverlay => 'Автоскрытие оверлея производительности'; @override String get autoHidePerformanceOverlayDescription => 'Скрывать оверлей производительности вместе с элементами управления воспроизведением'; @override String get showNavBarLabels => 'Показывать подписи панели навигации'; @@ -372,6 +374,7 @@ class _TranslationsSettingsRu implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsRu { 'settings.confirmExitOnBackDescription' => 'Показывать диалог подтверждения при нажатии «назад» для выхода из приложения', 'settings.forceTvMode' => 'Принудительный режим ТВ', 'settings.forceTvModeDescription' => 'Использовать макет ТВ независимо от автоматического определения. Полезно на устройствах Android TV, которые не сообщают о функции leanback. Приложение перезапустится при изменении.', + 'settings.startInFullscreen' => 'Запускать в полноэкранном режиме', + 'settings.startInFullscreenDescription' => 'Открывать Plezy в полноэкранном режиме при запуске', 'settings.autoHidePerformanceOverlay' => 'Автоскрытие оверлея производительности', 'settings.autoHidePerformanceOverlayDescription' => 'Скрывать оверлей производительности вместе с элементами управления воспроизведением', 'settings.showNavBarLabels' => 'Показывать подписи панели навигации', @@ -1774,6 +1779,7 @@ extension on TranslationsRu { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsRu { 'libraries.failedToAnalyze' => ({required Object error}) => 'Не удалось проанализировать библиотеку: ${error}', 'libraries.noLibrariesFound' => 'Библиотеки не найдены', 'libraries.allLibrariesHidden' => 'Все библиотеки скрыты', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Скрытые библиотеки (${count})', 'libraries.thisLibraryIsEmpty' => 'Эта библиотека пуста', 'libraries.all' => 'Все', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Очистить все', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Вы уверены, что хотите сканировать "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Вы уверены, что хотите проанализировать "${title}"?', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 7bf30d52..f9705a89 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => 'Visa en bekräftelsedialog när du trycker tillbaka för att avsluta appen'; @override String get forceTvMode => 'Tvinga TV-läge'; @override String get forceTvModeDescription => 'Använd TV-layouten oavsett automatisk identifiering. Användbart på Android TV-enheter som inte rapporterar leanback-funktionen. Startar om appen vid ändring.'; + @override String get startInFullscreen => 'Starta i helskärm'; + @override String get startInFullscreenDescription => 'Öppna Plezy i helskärm vid start'; @override String get autoHidePerformanceOverlay => 'Dölj prestandaöverlagring automatiskt'; @override String get autoHidePerformanceOverlayDescription => 'Tona prestandaöverlagringen med uppspelningskontrollerna'; @override String get showNavBarLabels => 'Visa navigeringsfältets etiketter'; @@ -372,6 +374,7 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsSv { 'settings.confirmExitOnBackDescription' => 'Visa en bekräftelsedialog när du trycker tillbaka för att avsluta appen', 'settings.forceTvMode' => 'Tvinga TV-läge', 'settings.forceTvModeDescription' => 'Använd TV-layouten oavsett automatisk identifiering. Användbart på Android TV-enheter som inte rapporterar leanback-funktionen. Startar om appen vid ändring.', + 'settings.startInFullscreen' => 'Starta i helskärm', + 'settings.startInFullscreenDescription' => 'Öppna Plezy i helskärm vid start', 'settings.autoHidePerformanceOverlay' => 'Dölj prestandaöverlagring automatiskt', 'settings.autoHidePerformanceOverlayDescription' => 'Tona prestandaöverlagringen med uppspelningskontrollerna', 'settings.showNavBarLabels' => 'Visa navigeringsfältets etiketter', @@ -1774,6 +1779,7 @@ extension on TranslationsSv { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsSv { 'libraries.failedToAnalyze' => ({required Object error}) => 'Misslyckades att analysera bibliotek: ${error}', 'libraries.noLibrariesFound' => 'Inga bibliotek hittades', 'libraries.allLibrariesHidden' => 'Alla bibliotek är dolda', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Dolda bibliotek (${count})', 'libraries.thisLibraryIsEmpty' => 'Detta bibliotek är tomt', 'libraries.all' => 'Alla', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => 'Rensa alla', 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Är du säker på att du vill skanna "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Är du säker på att du vill analysera "${title}"?', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index ff2683c5..53e298cf 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -363,6 +363,8 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn { @override String get confirmExitOnBackDescription => '按返回键退出应用时显示确认对话框'; @override String get forceTvMode => '强制 TV 模式'; @override String get forceTvModeDescription => '无论自动检测结果如何都使用 TV 布局。适用于未报告 leanback 功能的 Android TV 设备。更改后将重启应用。'; + @override String get startInFullscreen => '以全屏模式启动'; + @override String get startInFullscreenDescription => '启动时以全屏模式打开 Plezy'; @override String get autoHidePerformanceOverlay => '自动隐藏性能叠加层'; @override String get autoHidePerformanceOverlayDescription => '性能叠加层随播放控件一起淡入淡出'; @override String get showNavBarLabels => '显示导航栏标签'; @@ -372,6 +374,7 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn { @override String get display => 'Display'; @override String get homeScreen => 'Home Screen'; @override String get navigation => 'Navigation'; + @override String get window => 'Window'; @override String get content => 'Content'; @override String get player => 'Player'; @override String get subtitlesAndConfig => 'Subtitles & Configuration'; @@ -1765,6 +1768,8 @@ extension on TranslationsZh { 'settings.confirmExitOnBackDescription' => '按返回键退出应用时显示确认对话框', 'settings.forceTvMode' => '强制 TV 模式', 'settings.forceTvModeDescription' => '无论自动检测结果如何都使用 TV 布局。适用于未报告 leanback 功能的 Android TV 设备。更改后将重启应用。', + 'settings.startInFullscreen' => '以全屏模式启动', + 'settings.startInFullscreenDescription' => '启动时以全屏模式打开 Plezy', 'settings.autoHidePerformanceOverlay' => '自动隐藏性能叠加层', 'settings.autoHidePerformanceOverlayDescription' => '性能叠加层随播放控件一起淡入淡出', 'settings.showNavBarLabels' => '显示导航栏标签', @@ -1774,6 +1779,7 @@ extension on TranslationsZh { 'settings.display' => 'Display', 'settings.homeScreen' => 'Home Screen', 'settings.navigation' => 'Navigation', + 'settings.window' => 'Window', 'settings.content' => 'Content', 'settings.player' => 'Player', 'settings.subtitlesAndConfig' => 'Subtitles & Configuration', @@ -2043,11 +2049,11 @@ extension on TranslationsZh { 'libraries.failedToAnalyze' => ({required Object error}) => '无法分析媒体库: ${error}', 'libraries.noLibrariesFound' => '未找到媒体库', 'libraries.allLibrariesHidden' => '所有媒体库已隐藏', + _ => null, + } ?? switch (path) { 'libraries.hiddenLibrariesCount' => ({required Object count}) => '已隐藏的媒体库 (${count})', 'libraries.thisLibraryIsEmpty' => '此媒体库为空', 'libraries.all' => '全部', - _ => null, - } ?? switch (path) { 'libraries.clearAll' => '全部清除', 'libraries.scanLibraryConfirm' => ({required Object title}) => '确定要扫描 “${title}” 吗?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '确定要分析 “${title}” 吗?', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 2f484303..d143516a 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "Visa en bekräftelsedialog när du trycker tillbaka för att avsluta appen", "forceTvMode": "Tvinga TV-läge", "forceTvModeDescription": "Använd TV-layouten oavsett automatisk identifiering. Användbart på Android TV-enheter som inte rapporterar leanback-funktionen. Startar om appen vid ändring.", + "startInFullscreen": "Starta i helskärm", + "startInFullscreenDescription": "Öppna Plezy i helskärm vid start", "autoHidePerformanceOverlay": "Dölj prestandaöverlagring automatiskt", "autoHidePerformanceOverlayDescription": "Tona prestandaöverlagringen med uppspelningskontrollerna", "showNavBarLabels": "Visa navigeringsfältets etiketter", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index ff12bf64..425f4bb3 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -241,6 +241,8 @@ "confirmExitOnBackDescription": "按返回键退出应用时显示确认对话框", "forceTvMode": "强制 TV 模式", "forceTvModeDescription": "无论自动检测结果如何都使用 TV 布局。适用于未报告 leanback 功能的 Android TV 设备。更改后将重启应用。", + "startInFullscreen": "以全屏模式启动", + "startInFullscreenDescription": "启动时以全屏模式打开 Plezy", "autoHidePerformanceOverlay": "自动隐藏性能叠加层", "autoHidePerformanceOverlayDescription": "性能叠加层随播放控件一起淡入淡出", "showNavBarLabels": "显示导航栏标签", @@ -250,6 +252,7 @@ "display": "Display", "homeScreen": "Home Screen", "navigation": "Navigation", + "window": "Window", "content": "Content", "player": "Player", "subtitlesAndConfig": "Subtitles & Configuration", diff --git a/lib/main.dart b/lib/main.dart index e471f877..531e73fe 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -207,6 +207,13 @@ Future _bootstrapApp() async { // Start global fullscreen state monitoring FullscreenStateManager().startMonitoring(); + // Apply "start in fullscreen" preference on Windows/Linux. macOS is + // excluded — its native fullscreen animation is awkward at launch and + // the OS already restores window state. + if ((Platform.isWindows || Platform.isLinux) && settings.read(SettingsService.startInFullscreen)) { + unawaited(FullscreenStateManager().enterFullscreen()); + } + // Initialize gamepad service (all platforms — universal_gamepad auto-registers // and intercepts input events, so we must listen to re-dispatch them) GamepadService.instance.start(); diff --git a/lib/screens/settings/appearance_settings_screen.dart b/lib/screens/settings/appearance_settings_screen.dart index 3fc8b0d6..8d8cbfd1 100644 --- a/lib/screens/settings/appearance_settings_screen.dart +++ b/lib/screens/settings/appearance_settings_screen.dart @@ -77,6 +77,12 @@ class _AppearanceSettingsScreenState extends State { if (!PlatformDetector.shouldUseSideNavigation(context)) _buildShowNavBarLabels(), _buildShowUnwatchedCount(), + // --- Window (Windows/Linux only) --- + if (Platform.isWindows || Platform.isLinux) ...[ + SettingsSectionHeader(t.settings.window), + _buildStartInFullscreen(), + ], + // --- Content --- SettingsSectionHeader(t.settings.content), _buildLiveTvDefaultFavorites(), @@ -343,6 +349,13 @@ class _AppearanceSettingsScreenState extends State { pref: settings.SettingsService.confirmExitOnBack, ); + Widget _buildStartInFullscreen() => _buildListenableSwitch( + icon: Symbols.fullscreen_rounded, + title: t.settings.startInFullscreen, + subtitle: t.settings.startInFullscreenDescription, + pref: settings.SettingsService.startInFullscreen, + ); + Widget _buildForceTvMode() => _buildListenableSwitch( icon: Symbols.tv_rounded, title: t.settings.forceTvMode, diff --git a/lib/services/fullscreen_state_manager.dart b/lib/services/fullscreen_state_manager.dart index 306fb64c..942980b8 100644 --- a/lib/services/fullscreen_state_manager.dart +++ b/lib/services/fullscreen_state_manager.dart @@ -61,6 +61,21 @@ class FullscreenStateManager extends ChangeNotifier with WindowListener { } } + /// Enter fullscreen, preserving maximized state on Windows/Linux for restoration on exit. + Future enterFullscreen() async { + if (Platform.isMacOS) { + await MacOSWindowService.enterFullscreen(); + } else if (Platform.isWindows) { + await NativeWindowService.setFullScreen(true); + } else { + _wasMaximized = await windowManager.isMaximized(); + if (_wasMaximized) { + await windowManager.unmaximize(); + } + await windowManager.setFullScreen(true); + } + } + /// Exit fullscreen, restoring maximized state if needed Future exitFullscreen() async { if (Platform.isMacOS) { diff --git a/lib/services/settings_service.dart b/lib/services/settings_service.dart index caf079cb..7e4314d8 100644 --- a/lib/services/settings_service.dart +++ b/lib/services/settings_service.dart @@ -354,6 +354,7 @@ class SettingsService extends BaseSharedPreferencesService { 'enable_companion_remote_server', defaultValue: PlatformDetector.isDesktopOS(), ); + static const startInFullscreen = BoolPref('start_in_fullscreen'); static const bufferSize = _BufferSizePref(); static const libraryDensity = _LibraryDensityPref();