feat: toggle episode number on cards

This commit is contained in:
edde746
2026-04-22 21:35:03 +02:00
parent c10cf55f2d
commit 1e54344ec3
35 changed files with 168 additions and 39 deletions
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig",
"showUnwatchedCount": "Vis antal usete",
"showUnwatchedCountDescription": "Vis antal usete episoder på serier og sæsoner",
"showEpisodeNumberOnCards": "Vis episodenummer på kort",
"showEpisodeNumberOnCardsDescription": "Vis episodenummer ved siden af sæsonen (f.eks. S2 E3) på episodekort",
"hideSpoilers": "Skjul spoilere for usete episoder",
"hideSpoilersDescription": "Slør miniaturebilleder og skjul beskrivelser for episoder, du ikke har set endnu",
"playerBackend": "Afspillerbackend",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Seitenleiste bleibt erweitert und Inhaltsbereich passt sich an",
"showUnwatchedCount": "Anzahl nicht gesehener Folgen anzeigen",
"showUnwatchedCountDescription": "Zeigt die Anzahl nicht gesehener Episoden bei Serien und Staffeln an",
"showEpisodeNumberOnCards": "Episodennummer auf Karten anzeigen",
"showEpisodeNumberOnCardsDescription": "Episodennummer neben der Staffel (z. B. S2 E3) auf Episodenkarten anzeigen",
"hideSpoilers": "Spoiler für nicht gesehene Episoden verbergen",
"hideSpoilersDescription": "Vorschaubilder unscharf machen und Beschreibungen für noch nicht gesehene Episoden ausblenden",
"playerBackend": "Player-Backend",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Sidebar stays expanded and content area adjusts to fit",
"showUnwatchedCount": "Show Unwatched Count",
"showUnwatchedCountDescription": "Display unwatched episode count on shows and seasons",
"showEpisodeNumberOnCards": "Show Episode Number on Cards",
"showEpisodeNumberOnCardsDescription": "Show episode number alongside the season (e.g. S2 E3) on episode cards",
"hideSpoilers": "Hide Spoilers for Unwatched Episodes",
"hideSpoilersDescription": "Blur thumbnails and hide descriptions for episodes you haven't watched yet",
"playerBackend": "Player Backend",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "La barra lateral permanece expandida y el área de contenido se ajusta para adaptarse",
"showUnwatchedCount": "Mostrar conteo de no vistos",
"showUnwatchedCountDescription": "Mostrar el conteo de episodios no vistos en series y temporadas",
"showEpisodeNumberOnCards": "Mostrar número de episodio en las tarjetas",
"showEpisodeNumberOnCardsDescription": "Muestra el número de episodio junto a la temporada (p. ej. S2 E3) en las tarjetas de episodios",
"hideSpoilers": "Ocultar spoilers de episodios no vistos",
"hideSpoilersDescription": "Difuminar miniaturas y ocultar descripciones de episodios que aún no has visto",
"playerBackend": "Reproductor",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "La barre latérale reste étendue et la zone de contenu s'adapte",
"showUnwatchedCount": "Afficher le nombre non visionné",
"showUnwatchedCountDescription": "Afficher le nombre d'épisodes non visionnés pour les séries et saisons",
"showEpisodeNumberOnCards": "Afficher le numéro d'épisode sur les cartes",
"showEpisodeNumberOnCardsDescription": "Afficher le numéro d'épisode à côté de la saison (ex. S2 E3) sur les cartes d'épisodes",
"hideSpoilers": "Masquer les spoilers des épisodes non vus",
"hideSpoilersDescription": "Flouter les miniatures et masquer les descriptions des épisodes que vous n'avez pas encore regardés",
"playerBackend": "Moteur de lecture",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "La barra laterale rimane espansa e l'area del contenuto si adatta",
"showUnwatchedCount": "Mostra conteggio non visti",
"showUnwatchedCountDescription": "Mostra il numero di episodi non visti per serie e stagioni",
"showEpisodeNumberOnCards": "Mostra numero episodio sulle schede",
"showEpisodeNumberOnCardsDescription": "Mostra il numero dell'episodio accanto alla stagione (es. S2 E3) sulle schede degli episodi",
"hideSpoilers": "Nascondi spoiler per episodi non visti",
"hideSpoilersDescription": "Sfoca le miniature e nascondi le descrizioni degli episodi che non hai ancora guardato",
"playerBackend": "Motore di riproduzione",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "サイドバーを展開したまま、コンテンツ領域が調整される",
"showUnwatchedCount": "未視聴数を表示",
"showUnwatchedCountDescription": "番組とシーズンに未視聴エピソード数を表示",
"showEpisodeNumberOnCards": "カードにエピソード番号を表示",
"showEpisodeNumberOnCardsDescription": "エピソードカードにシーズンと並べてエピソード番号(例: S2 E3)を表示",
"hideSpoilers": "未視聴エピソードのネタバレを非表示",
"hideSpoilersDescription": "まだ視聴していないエピソードのサムネイルをぼかし、説明を非表示",
"playerBackend": "プレーヤーバックエンド",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "사이드바가 확장된 상태로 유지되고 콘텐츠 영역이 맞춰집니다",
"showUnwatchedCount": "미시청 수 표시",
"showUnwatchedCountDescription": "시리즈 및 시즌에 미시청 에피소드 수 표시",
"showEpisodeNumberOnCards": "카드에 에피소드 번호 표시",
"showEpisodeNumberOnCardsDescription": "에피소드 카드에 시즌과 함께 에피소드 번호(예: S2 E3)를 표시합니다",
"hideSpoilers": "미시청 에피소드 스포일러 숨기기",
"hideSpoilersDescription": "아직 시청하지 않은 에피소드의 썸네일을 흐리게 하고 설명을 숨깁니다",
"playerBackend": "플레이어 백엔드",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Sidefeltet forblir utvidet og innholdsområdet tilpasser seg",
"showUnwatchedCount": "Vis antall usette",
"showUnwatchedCountDescription": "Vis antall usette episoder på serier og sesonger",
"showEpisodeNumberOnCards": "Vis episodenummer på kort",
"showEpisodeNumberOnCardsDescription": "Vis episodenummer ved siden av sesongen (f.eks. S2 E3) på episodekort",
"hideSpoilers": "Skjul spoilere for usette episoder",
"hideSpoilersDescription": "Slør miniatyrbilder og skjul beskrivelser for episoder du ikke har sett ennå",
"playerBackend": "Spillermotor",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Zijbalk blijft uitgevouwen en inhoudsgebied past zich aan",
"showUnwatchedCount": "Aantal ongekeken tonen",
"showUnwatchedCountDescription": "Toon aantal ongekeken afleveringen bij series en seizoenen",
"showEpisodeNumberOnCards": "Afleveringsnummer op kaarten tonen",
"showEpisodeNumberOnCardsDescription": "Toon het afleveringsnummer naast het seizoen (bijv. S2 E3) op afleveringskaarten",
"hideSpoilers": "Spoilers voor ongekeken afleveringen verbergen",
"hideSpoilersDescription": "Miniaturen vervagen en beschrijvingen verbergen voor afleveringen die je nog niet hebt gezien",
"playerBackend": "Speler backend",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Panel boczny jest rozwinięty, a obszar treści dostosowuje się",
"showUnwatchedCount": "Pokaż liczbę nieobejrzanych",
"showUnwatchedCountDescription": "Wyświetl liczbę nieobejrzanych odcinków w serialach i sezonach",
"showEpisodeNumberOnCards": "Pokaż numer odcinka na kartach",
"showEpisodeNumberOnCardsDescription": "Wyświetla numer odcinka obok sezonu (np. S2 E3) na kartach odcinków",
"hideSpoilers": "Ukryj spoilery nieobejrzanych odcinków",
"hideSpoilersDescription": "Rozmyj miniatury i ukryj opisy odcinków, których jeszcze nie obejrzałeś",
"playerBackend": "Backend odtwarzacza",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "A barra lateral fica expandida e a área de conteúdo se ajusta",
"showUnwatchedCount": "Mostrar Contagem de Não Assistidos",
"showUnwatchedCountDescription": "Exibir contagem de episódios não assistidos em séries e temporadas",
"showEpisodeNumberOnCards": "Mostrar Número do Episódio nos Cards",
"showEpisodeNumberOnCardsDescription": "Mostrar o número do episódio ao lado da temporada (ex. S2 E3) nos cards de episódios",
"hideSpoilers": "Ocultar Spoilers de Episódios Não Assistidos",
"hideSpoilersDescription": "Desfocar miniaturas e ocultar descrições de episódios que você ainda não assistiu",
"playerBackend": "Backend do Player",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Боковая панель остаётся развёрнутой, область контента подстраивается",
"showUnwatchedCount": "Показывать количество непросмотренных",
"showUnwatchedCountDescription": "Отображать количество непросмотренных эпизодов для сериалов и сезонов",
"showEpisodeNumberOnCards": "Показывать номер эпизода на карточках",
"showEpisodeNumberOnCardsDescription": "Отображать номер эпизода рядом с сезоном (напр. S2 E3) на карточках эпизодов",
"hideSpoilers": "Скрыть спойлеры непросмотренных эпизодов",
"hideSpoilersDescription": "Размывать миниатюры и скрывать описания эпизодов, которые вы ещё не смотрели",
"playerBackend": "Бэкенд плеера",
+2 -2
View File
@@ -4,9 +4,9 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 15
/// Strings: 13665 (911 per locale)
/// Strings: 13695 (913 per locale)
///
/// Built on 2026-04-22 at 19:06 UTC
/// Built on 2026-04-22 at 19:30 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsDa implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig';
@override String get showUnwatchedCount => 'Vis antal usete';
@override String get showUnwatchedCountDescription => 'Vis antal usete episoder på serier og sæsoner';
@override String get showEpisodeNumberOnCards => 'Vis episodenummer på kort';
@override String get showEpisodeNumberOnCardsDescription => 'Vis episodenummer ved siden af sæsonen (f.eks. S2 E3) på episodekort';
@override String get hideSpoilers => 'Skjul spoilere for usete episoder';
@override String get hideSpoilersDescription => 'Slør miniaturebilleder og skjul beskrivelser for episoder, du ikke har set endnu';
@override String get playerBackend => 'Afspillerbackend';
@@ -1518,6 +1520,8 @@ extension on TranslationsDa {
'settings.alwaysKeepSidebarOpenDescription' => 'Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig',
'settings.showUnwatchedCount' => 'Vis antal usete',
'settings.showUnwatchedCountDescription' => 'Vis antal usete episoder på serier og sæsoner',
'settings.showEpisodeNumberOnCards' => 'Vis episodenummer på kort',
'settings.showEpisodeNumberOnCardsDescription' => 'Vis episodenummer ved siden af sæsonen (f.eks. S2 E3) på episodekort',
'settings.hideSpoilers' => 'Skjul spoilere for usete episoder',
'settings.hideSpoilersDescription' => 'Slør miniaturebilleder og skjul beskrivelser for episoder, du ikke har set endnu',
'settings.playerBackend' => 'Afspillerbackend',
@@ -1928,10 +1932,10 @@ extension on TranslationsDa {
'libraries.sortBy' => 'Sortér efter',
'libraries.filters' => 'Filtre',
'libraries.confirmActionMessage' => 'Er du sikker på, at du vil udføre denne handling?',
'libraries.showLibrary' => 'Vis bibliotek',
'libraries.hideLibrary' => 'Skjul bibliotek',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Vis bibliotek',
'libraries.hideLibrary' => 'Skjul bibliotek',
'libraries.libraryOptions' => 'Biblioteksindstillinger',
'libraries.content' => 'biblioteksindhold',
'libraries.selectLibrary' => 'Vælg bibliotek',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Seitenleiste bleibt erweitert und Inhaltsbereich passt sich an';
@override String get showUnwatchedCount => 'Anzahl nicht gesehener Folgen anzeigen';
@override String get showUnwatchedCountDescription => 'Zeigt die Anzahl nicht gesehener Episoden bei Serien und Staffeln an';
@override String get showEpisodeNumberOnCards => 'Episodennummer auf Karten anzeigen';
@override String get showEpisodeNumberOnCardsDescription => 'Episodennummer neben der Staffel (z. B. S2 E3) auf Episodenkarten anzeigen';
@override String get hideSpoilers => 'Spoiler für nicht gesehene Episoden verbergen';
@override String get hideSpoilersDescription => 'Vorschaubilder unscharf machen und Beschreibungen für noch nicht gesehene Episoden ausblenden';
@override String get playerBackend => 'Player-Backend';
@@ -1518,6 +1520,8 @@ extension on TranslationsDe {
'settings.alwaysKeepSidebarOpenDescription' => 'Seitenleiste bleibt erweitert und Inhaltsbereich passt sich an',
'settings.showUnwatchedCount' => 'Anzahl nicht gesehener Folgen anzeigen',
'settings.showUnwatchedCountDescription' => 'Zeigt die Anzahl nicht gesehener Episoden bei Serien und Staffeln an',
'settings.showEpisodeNumberOnCards' => 'Episodennummer auf Karten anzeigen',
'settings.showEpisodeNumberOnCardsDescription' => 'Episodennummer neben der Staffel (z. B. S2 E3) auf Episodenkarten anzeigen',
'settings.hideSpoilers' => 'Spoiler für nicht gesehene Episoden verbergen',
'settings.hideSpoilersDescription' => 'Vorschaubilder unscharf machen und Beschreibungen für noch nicht gesehene Episoden ausblenden',
'settings.playerBackend' => 'Player-Backend',
@@ -1928,10 +1932,10 @@ extension on TranslationsDe {
'libraries.sortBy' => 'Sortieren nach',
'libraries.filters' => 'Filter',
'libraries.confirmActionMessage' => 'Aktion wirklich durchführen?',
'libraries.showLibrary' => 'Mediathek anzeigen',
'libraries.hideLibrary' => 'Mediathek ausblenden',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Mediathek anzeigen',
'libraries.hideLibrary' => 'Mediathek ausblenden',
'libraries.libraryOptions' => 'Mediatheksoptionen',
'libraries.content' => 'Bibliotheksinhalt',
'libraries.selectLibrary' => 'Bibliothek auswählen',
+10 -2
View File
@@ -434,6 +434,12 @@ class TranslationsSettingsEn {
/// en: 'Display unwatched episode count on shows and seasons'
String get showUnwatchedCountDescription => 'Display unwatched episode count on shows and seasons';
/// en: 'Show Episode Number on Cards'
String get showEpisodeNumberOnCards => 'Show Episode Number on Cards';
/// en: 'Show episode number alongside the season (e.g. S2 E3) on episode cards'
String get showEpisodeNumberOnCardsDescription => 'Show episode number alongside the season (e.g. S2 E3) on episode cards';
/// en: 'Hide Spoilers for Unwatched Episodes'
String get hideSpoilers => 'Hide Spoilers for Unwatched Episodes';
@@ -3347,6 +3353,8 @@ extension on Translations {
'settings.alwaysKeepSidebarOpenDescription' => 'Sidebar stays expanded and content area adjusts to fit',
'settings.showUnwatchedCount' => 'Show Unwatched Count',
'settings.showUnwatchedCountDescription' => 'Display unwatched episode count on shows and seasons',
'settings.showEpisodeNumberOnCards' => 'Show Episode Number on Cards',
'settings.showEpisodeNumberOnCardsDescription' => 'Show episode number alongside the season (e.g. S2 E3) on episode cards',
'settings.hideSpoilers' => 'Hide Spoilers for Unwatched Episodes',
'settings.hideSpoilersDescription' => 'Blur thumbnails and hide descriptions for episodes you haven\'t watched yet',
'settings.playerBackend' => 'Player Backend',
@@ -3757,10 +3765,10 @@ extension on Translations {
'libraries.sortBy' => 'Sort By',
'libraries.filters' => 'Filters',
'libraries.confirmActionMessage' => 'Are you sure you want to perform this action?',
'libraries.showLibrary' => 'Show library',
'libraries.hideLibrary' => 'Hide library',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Show library',
'libraries.hideLibrary' => 'Hide library',
'libraries.libraryOptions' => 'Library options',
'libraries.content' => 'library content',
'libraries.selectLibrary' => 'Select library',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'La barra lateral permanece expandida y el área de contenido se ajusta para adaptarse';
@override String get showUnwatchedCount => 'Mostrar conteo de no vistos';
@override String get showUnwatchedCountDescription => 'Mostrar el conteo de episodios no vistos en series y temporadas';
@override String get showEpisodeNumberOnCards => 'Mostrar número de episodio en las tarjetas';
@override String get showEpisodeNumberOnCardsDescription => 'Muestra el número de episodio junto a la temporada (p. ej. S2 E3) en las tarjetas de episodios';
@override String get hideSpoilers => 'Ocultar spoilers de episodios no vistos';
@override String get hideSpoilersDescription => 'Difuminar miniaturas y ocultar descripciones de episodios que aún no has visto';
@override String get playerBackend => 'Reproductor';
@@ -1518,6 +1520,8 @@ extension on TranslationsEs {
'settings.alwaysKeepSidebarOpenDescription' => 'La barra lateral permanece expandida y el área de contenido se ajusta para adaptarse',
'settings.showUnwatchedCount' => 'Mostrar conteo de no vistos',
'settings.showUnwatchedCountDescription' => 'Mostrar el conteo de episodios no vistos en series y temporadas',
'settings.showEpisodeNumberOnCards' => 'Mostrar número de episodio en las tarjetas',
'settings.showEpisodeNumberOnCardsDescription' => 'Muestra el número de episodio junto a la temporada (p. ej. S2 E3) en las tarjetas de episodios',
'settings.hideSpoilers' => 'Ocultar spoilers de episodios no vistos',
'settings.hideSpoilersDescription' => 'Difuminar miniaturas y ocultar descripciones de episodios que aún no has visto',
'settings.playerBackend' => 'Reproductor',
@@ -1928,10 +1932,10 @@ extension on TranslationsEs {
'libraries.sortBy' => 'Ordenar por',
'libraries.filters' => 'Filtros',
'libraries.confirmActionMessage' => '¿Estás seguro de que quieres realizar esta acción?',
'libraries.showLibrary' => 'Mostrar biblioteca',
'libraries.hideLibrary' => 'Ocultar biblioteca',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Mostrar biblioteca',
'libraries.hideLibrary' => 'Ocultar biblioteca',
'libraries.libraryOptions' => 'Opciones de biblioteca',
'libraries.content' => 'contenido de la biblioteca',
'libraries.selectLibrary' => 'Seleccionar biblioteca',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'La barre latérale reste étendue et la zone de contenu s\'adapte';
@override String get showUnwatchedCount => 'Afficher le nombre non visionné';
@override String get showUnwatchedCountDescription => 'Afficher le nombre d\'épisodes non visionnés pour les séries et saisons';
@override String get showEpisodeNumberOnCards => 'Afficher le numéro d\'épisode sur les cartes';
@override String get showEpisodeNumberOnCardsDescription => 'Afficher le numéro d\'épisode à côté de la saison (ex. S2 E3) sur les cartes d\'épisodes';
@override String get hideSpoilers => 'Masquer les spoilers des épisodes non vus';
@override String get hideSpoilersDescription => 'Flouter les miniatures et masquer les descriptions des épisodes que vous n\'avez pas encore regardés';
@override String get playerBackend => 'Moteur de lecture';
@@ -1518,6 +1520,8 @@ extension on TranslationsFr {
'settings.alwaysKeepSidebarOpenDescription' => 'La barre latérale reste étendue et la zone de contenu s\'adapte',
'settings.showUnwatchedCount' => 'Afficher le nombre non visionné',
'settings.showUnwatchedCountDescription' => 'Afficher le nombre d\'épisodes non visionnés pour les séries et saisons',
'settings.showEpisodeNumberOnCards' => 'Afficher le numéro d\'épisode sur les cartes',
'settings.showEpisodeNumberOnCardsDescription' => 'Afficher le numéro d\'épisode à côté de la saison (ex. S2 E3) sur les cartes d\'épisodes',
'settings.hideSpoilers' => 'Masquer les spoilers des épisodes non vus',
'settings.hideSpoilersDescription' => 'Flouter les miniatures et masquer les descriptions des épisodes que vous n\'avez pas encore regardés',
'settings.playerBackend' => 'Moteur de lecture',
@@ -1928,10 +1932,10 @@ extension on TranslationsFr {
'libraries.sortBy' => 'Trier par',
'libraries.filters' => 'Filtres',
'libraries.confirmActionMessage' => 'Êtes-vous sûr de vouloir effectuer cette action ?',
'libraries.showLibrary' => 'Afficher la bibliothèque',
'libraries.hideLibrary' => 'Masquer la bibliothèque',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Afficher la bibliothèque',
'libraries.hideLibrary' => 'Masquer la bibliothèque',
'libraries.libraryOptions' => 'Options de bibliothèque',
'libraries.content' => 'contenu de la bibliothèque',
'libraries.selectLibrary' => 'Sélectionner la bibliothèque',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'La barra laterale rimane espansa e l\'area del contenuto si adatta';
@override String get showUnwatchedCount => 'Mostra conteggio non visti';
@override String get showUnwatchedCountDescription => 'Mostra il numero di episodi non visti per serie e stagioni';
@override String get showEpisodeNumberOnCards => 'Mostra numero episodio sulle schede';
@override String get showEpisodeNumberOnCardsDescription => 'Mostra il numero dell\'episodio accanto alla stagione (es. S2 E3) sulle schede degli episodi';
@override String get hideSpoilers => 'Nascondi spoiler per episodi non visti';
@override String get hideSpoilersDescription => 'Sfoca le miniature e nascondi le descrizioni degli episodi che non hai ancora guardato';
@override String get playerBackend => 'Motore di riproduzione';
@@ -1518,6 +1520,8 @@ extension on TranslationsIt {
'settings.alwaysKeepSidebarOpenDescription' => 'La barra laterale rimane espansa e l\'area del contenuto si adatta',
'settings.showUnwatchedCount' => 'Mostra conteggio non visti',
'settings.showUnwatchedCountDescription' => 'Mostra il numero di episodi non visti per serie e stagioni',
'settings.showEpisodeNumberOnCards' => 'Mostra numero episodio sulle schede',
'settings.showEpisodeNumberOnCardsDescription' => 'Mostra il numero dell\'episodio accanto alla stagione (es. S2 E3) sulle schede degli episodi',
'settings.hideSpoilers' => 'Nascondi spoiler per episodi non visti',
'settings.hideSpoilersDescription' => 'Sfoca le miniature e nascondi le descrizioni degli episodi che non hai ancora guardato',
'settings.playerBackend' => 'Motore di riproduzione',
@@ -1928,10 +1932,10 @@ extension on TranslationsIt {
'libraries.sortBy' => 'Ordina per',
'libraries.filters' => 'Filtri',
'libraries.confirmActionMessage' => 'Sei sicuro di voler eseguire questa azione?',
'libraries.showLibrary' => 'Mostra libreria',
'libraries.hideLibrary' => 'Nascondi libreria',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Mostra libreria',
'libraries.hideLibrary' => 'Nascondi libreria',
'libraries.libraryOptions' => 'Opzioni libreria',
'libraries.content' => 'contenuto della libreria',
'libraries.selectLibrary' => 'Seleziona libreria',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsJa implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'サイドバーを展開したまま、コンテンツ領域が調整される';
@override String get showUnwatchedCount => '未視聴数を表示';
@override String get showUnwatchedCountDescription => '番組とシーズンに未視聴エピソード数を表示';
@override String get showEpisodeNumberOnCards => 'カードにエピソード番号を表示';
@override String get showEpisodeNumberOnCardsDescription => 'エピソードカードにシーズンと並べてエピソード番号(例: S2 E3)を表示';
@override String get hideSpoilers => '未視聴エピソードのネタバレを非表示';
@override String get hideSpoilersDescription => 'まだ視聴していないエピソードのサムネイルをぼかし、説明を非表示';
@override String get playerBackend => 'プレーヤーバックエンド';
@@ -1518,6 +1520,8 @@ extension on TranslationsJa {
'settings.alwaysKeepSidebarOpenDescription' => 'サイドバーを展開したまま、コンテンツ領域が調整される',
'settings.showUnwatchedCount' => '未視聴数を表示',
'settings.showUnwatchedCountDescription' => '番組とシーズンに未視聴エピソード数を表示',
'settings.showEpisodeNumberOnCards' => 'カードにエピソード番号を表示',
'settings.showEpisodeNumberOnCardsDescription' => 'エピソードカードにシーズンと並べてエピソード番号(例: S2 E3)を表示',
'settings.hideSpoilers' => '未視聴エピソードのネタバレを非表示',
'settings.hideSpoilersDescription' => 'まだ視聴していないエピソードのサムネイルをぼかし、説明を非表示',
'settings.playerBackend' => 'プレーヤーバックエンド',
@@ -1928,10 +1932,10 @@ extension on TranslationsJa {
'libraries.sortBy' => '並べ替え順',
'libraries.filters' => 'フィルター',
'libraries.confirmActionMessage' => 'この操作を実行してもよろしいですか?',
'libraries.showLibrary' => 'ライブラリを表示',
'libraries.hideLibrary' => 'ライブラリを非表示',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'ライブラリを表示',
'libraries.hideLibrary' => 'ライブラリを非表示',
'libraries.libraryOptions' => 'ライブラリオプション',
'libraries.content' => 'ライブラリコンテンツ',
'libraries.selectLibrary' => 'ライブラリを選択',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => '사이드바가 확장된 상태로 유지되고 콘텐츠 영역이 맞춰집니다';
@override String get showUnwatchedCount => '미시청 수 표시';
@override String get showUnwatchedCountDescription => '시리즈 및 시즌에 미시청 에피소드 수 표시';
@override String get showEpisodeNumberOnCards => '카드에 에피소드 번호 표시';
@override String get showEpisodeNumberOnCardsDescription => '에피소드 카드에 시즌과 함께 에피소드 번호(예: S2 E3)를 표시합니다';
@override String get hideSpoilers => '미시청 에피소드 스포일러 숨기기';
@override String get hideSpoilersDescription => '아직 시청하지 않은 에피소드의 썸네일을 흐리게 하고 설명을 숨깁니다';
@override String get playerBackend => '플레이어 백엔드';
@@ -1518,6 +1520,8 @@ extension on TranslationsKo {
'settings.alwaysKeepSidebarOpenDescription' => '사이드바가 확장된 상태로 유지되고 콘텐츠 영역이 맞춰집니다',
'settings.showUnwatchedCount' => '미시청 수 표시',
'settings.showUnwatchedCountDescription' => '시리즈 및 시즌에 미시청 에피소드 수 표시',
'settings.showEpisodeNumberOnCards' => '카드에 에피소드 번호 표시',
'settings.showEpisodeNumberOnCardsDescription' => '에피소드 카드에 시즌과 함께 에피소드 번호(예: S2 E3)를 표시합니다',
'settings.hideSpoilers' => '미시청 에피소드 스포일러 숨기기',
'settings.hideSpoilersDescription' => '아직 시청하지 않은 에피소드의 썸네일을 흐리게 하고 설명을 숨깁니다',
'settings.playerBackend' => '플레이어 백엔드',
@@ -1928,10 +1932,10 @@ extension on TranslationsKo {
'libraries.sortBy' => '정렬 기준',
'libraries.filters' => '필터',
'libraries.confirmActionMessage' => '이 작업을 실행 하시겠습니까?',
'libraries.showLibrary' => '미디어 라이브러리 표시',
'libraries.hideLibrary' => '미디어 라이브러리 숨기기',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => '미디어 라이브러리 표시',
'libraries.hideLibrary' => '미디어 라이브러리 숨기기',
'libraries.libraryOptions' => '미디어 라이브러리 옵션',
'libraries.content' => '미디어 라이브러리 콘텐츠',
'libraries.selectLibrary' => '미디어 라이브러리 선택',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsNb implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Sidefeltet forblir utvidet og innholdsområdet tilpasser seg';
@override String get showUnwatchedCount => 'Vis antall usette';
@override String get showUnwatchedCountDescription => 'Vis antall usette episoder på serier og sesonger';
@override String get showEpisodeNumberOnCards => 'Vis episodenummer på kort';
@override String get showEpisodeNumberOnCardsDescription => 'Vis episodenummer ved siden av sesongen (f.eks. S2 E3) på episodekort';
@override String get hideSpoilers => 'Skjul spoilere for usette episoder';
@override String get hideSpoilersDescription => 'Slør miniatyrbilder og skjul beskrivelser for episoder du ikke har sett ennå';
@override String get playerBackend => 'Spillermotor';
@@ -1518,6 +1520,8 @@ extension on TranslationsNb {
'settings.alwaysKeepSidebarOpenDescription' => 'Sidefeltet forblir utvidet og innholdsområdet tilpasser seg',
'settings.showUnwatchedCount' => 'Vis antall usette',
'settings.showUnwatchedCountDescription' => 'Vis antall usette episoder på serier og sesonger',
'settings.showEpisodeNumberOnCards' => 'Vis episodenummer på kort',
'settings.showEpisodeNumberOnCardsDescription' => 'Vis episodenummer ved siden av sesongen (f.eks. S2 E3) på episodekort',
'settings.hideSpoilers' => 'Skjul spoilere for usette episoder',
'settings.hideSpoilersDescription' => 'Slør miniatyrbilder og skjul beskrivelser for episoder du ikke har sett ennå',
'settings.playerBackend' => 'Spillermotor',
@@ -1928,10 +1932,10 @@ extension on TranslationsNb {
'libraries.sortBy' => 'Sorter etter',
'libraries.filters' => 'Filtre',
'libraries.confirmActionMessage' => 'Er du sikker på at du vil utføre denne handlingen?',
'libraries.showLibrary' => 'Vis bibliotek',
'libraries.hideLibrary' => 'Skjul bibliotek',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Vis bibliotek',
'libraries.hideLibrary' => 'Skjul bibliotek',
'libraries.libraryOptions' => 'Bibliotekalternativer',
'libraries.content' => 'bibliotekinnhold',
'libraries.selectLibrary' => 'Velg bibliotek',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Zijbalk blijft uitgevouwen en inhoudsgebied past zich aan';
@override String get showUnwatchedCount => 'Aantal ongekeken tonen';
@override String get showUnwatchedCountDescription => 'Toon aantal ongekeken afleveringen bij series en seizoenen';
@override String get showEpisodeNumberOnCards => 'Afleveringsnummer op kaarten tonen';
@override String get showEpisodeNumberOnCardsDescription => 'Toon het afleveringsnummer naast het seizoen (bijv. S2 E3) op afleveringskaarten';
@override String get hideSpoilers => 'Spoilers voor ongekeken afleveringen verbergen';
@override String get hideSpoilersDescription => 'Miniaturen vervagen en beschrijvingen verbergen voor afleveringen die je nog niet hebt gezien';
@override String get playerBackend => 'Speler backend';
@@ -1518,6 +1520,8 @@ extension on TranslationsNl {
'settings.alwaysKeepSidebarOpenDescription' => 'Zijbalk blijft uitgevouwen en inhoudsgebied past zich aan',
'settings.showUnwatchedCount' => 'Aantal ongekeken tonen',
'settings.showUnwatchedCountDescription' => 'Toon aantal ongekeken afleveringen bij series en seizoenen',
'settings.showEpisodeNumberOnCards' => 'Afleveringsnummer op kaarten tonen',
'settings.showEpisodeNumberOnCardsDescription' => 'Toon het afleveringsnummer naast het seizoen (bijv. S2 E3) op afleveringskaarten',
'settings.hideSpoilers' => 'Spoilers voor ongekeken afleveringen verbergen',
'settings.hideSpoilersDescription' => 'Miniaturen vervagen en beschrijvingen verbergen voor afleveringen die je nog niet hebt gezien',
'settings.playerBackend' => 'Speler backend',
@@ -1928,10 +1932,10 @@ extension on TranslationsNl {
'libraries.sortBy' => 'Sorteer op',
'libraries.filters' => 'Filters',
'libraries.confirmActionMessage' => 'Weet je zeker dat je deze actie wilt uitvoeren?',
'libraries.showLibrary' => 'Toon bibliotheek',
'libraries.hideLibrary' => 'Verberg bibliotheek',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Toon bibliotheek',
'libraries.hideLibrary' => 'Verberg bibliotheek',
'libraries.libraryOptions' => 'Bibliotheek opties',
'libraries.content' => 'bibliotheekinhoud',
'libraries.selectLibrary' => 'Bibliotheek kiezen',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsPl implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Panel boczny jest rozwinięty, a obszar treści dostosowuje się';
@override String get showUnwatchedCount => 'Pokaż liczbę nieobejrzanych';
@override String get showUnwatchedCountDescription => 'Wyświetl liczbę nieobejrzanych odcinków w serialach i sezonach';
@override String get showEpisodeNumberOnCards => 'Pokaż numer odcinka na kartach';
@override String get showEpisodeNumberOnCardsDescription => 'Wyświetla numer odcinka obok sezonu (np. S2 E3) na kartach odcinków';
@override String get hideSpoilers => 'Ukryj spoilery nieobejrzanych odcinków';
@override String get hideSpoilersDescription => 'Rozmyj miniatury i ukryj opisy odcinków, których jeszcze nie obejrzałeś';
@override String get playerBackend => 'Backend odtwarzacza';
@@ -1518,6 +1520,8 @@ extension on TranslationsPl {
'settings.alwaysKeepSidebarOpenDescription' => 'Panel boczny jest rozwinięty, a obszar treści dostosowuje się',
'settings.showUnwatchedCount' => 'Pokaż liczbę nieobejrzanych',
'settings.showUnwatchedCountDescription' => 'Wyświetl liczbę nieobejrzanych odcinków w serialach i sezonach',
'settings.showEpisodeNumberOnCards' => 'Pokaż numer odcinka na kartach',
'settings.showEpisodeNumberOnCardsDescription' => 'Wyświetla numer odcinka obok sezonu (np. S2 E3) na kartach odcinków',
'settings.hideSpoilers' => 'Ukryj spoilery nieobejrzanych odcinków',
'settings.hideSpoilersDescription' => 'Rozmyj miniatury i ukryj opisy odcinków, których jeszcze nie obejrzałeś',
'settings.playerBackend' => 'Backend odtwarzacza',
@@ -1928,10 +1932,10 @@ extension on TranslationsPl {
'libraries.sortBy' => 'Sortuj wg',
'libraries.filters' => 'Filtry',
'libraries.confirmActionMessage' => 'Czy na pewno chcesz wykonać tę operację?',
'libraries.showLibrary' => 'Pokaż bibliotekę',
'libraries.hideLibrary' => 'Ukryj bibliotekę',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Pokaż bibliotekę',
'libraries.hideLibrary' => 'Ukryj bibliotekę',
'libraries.libraryOptions' => 'Opcje biblioteki',
'libraries.content' => 'zawartość biblioteki',
'libraries.selectLibrary' => 'Wybierz bibliotekę',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsPt implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'A barra lateral fica expandida e a área de conteúdo se ajusta';
@override String get showUnwatchedCount => 'Mostrar Contagem de Não Assistidos';
@override String get showUnwatchedCountDescription => 'Exibir contagem de episódios não assistidos em séries e temporadas';
@override String get showEpisodeNumberOnCards => 'Mostrar Número do Episódio nos Cards';
@override String get showEpisodeNumberOnCardsDescription => 'Mostrar o número do episódio ao lado da temporada (ex. S2 E3) nos cards de episódios';
@override String get hideSpoilers => 'Ocultar Spoilers de Episódios Não Assistidos';
@override String get hideSpoilersDescription => 'Desfocar miniaturas e ocultar descrições de episódios que você ainda não assistiu';
@override String get playerBackend => 'Backend do Player';
@@ -1518,6 +1520,8 @@ extension on TranslationsPt {
'settings.alwaysKeepSidebarOpenDescription' => 'A barra lateral fica expandida e a área de conteúdo se ajusta',
'settings.showUnwatchedCount' => 'Mostrar Contagem de Não Assistidos',
'settings.showUnwatchedCountDescription' => 'Exibir contagem de episódios não assistidos em séries e temporadas',
'settings.showEpisodeNumberOnCards' => 'Mostrar Número do Episódio nos Cards',
'settings.showEpisodeNumberOnCardsDescription' => 'Mostrar o número do episódio ao lado da temporada (ex. S2 E3) nos cards de episódios',
'settings.hideSpoilers' => 'Ocultar Spoilers de Episódios Não Assistidos',
'settings.hideSpoilersDescription' => 'Desfocar miniaturas e ocultar descrições de episódios que você ainda não assistiu',
'settings.playerBackend' => 'Backend do Player',
@@ -1928,10 +1932,10 @@ extension on TranslationsPt {
'libraries.sortBy' => 'Ordenar Por',
'libraries.filters' => 'Filtros',
'libraries.confirmActionMessage' => 'Tem certeza que deseja realizar esta ação?',
'libraries.showLibrary' => 'Mostrar biblioteca',
'libraries.hideLibrary' => 'Ocultar biblioteca',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Mostrar biblioteca',
'libraries.hideLibrary' => 'Ocultar biblioteca',
'libraries.libraryOptions' => 'Opções da biblioteca',
'libraries.content' => 'conteúdo da biblioteca',
'libraries.selectLibrary' => 'Selecionar biblioteca',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsRu implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Боковая панель остаётся развёрнутой, область контента подстраивается';
@override String get showUnwatchedCount => 'Показывать количество непросмотренных';
@override String get showUnwatchedCountDescription => 'Отображать количество непросмотренных эпизодов для сериалов и сезонов';
@override String get showEpisodeNumberOnCards => 'Показывать номер эпизода на карточках';
@override String get showEpisodeNumberOnCardsDescription => 'Отображать номер эпизода рядом с сезоном (напр. S2 E3) на карточках эпизодов';
@override String get hideSpoilers => 'Скрыть спойлеры непросмотренных эпизодов';
@override String get hideSpoilersDescription => 'Размывать миниатюры и скрывать описания эпизодов, которые вы ещё не смотрели';
@override String get playerBackend => 'Бэкенд плеера';
@@ -1518,6 +1520,8 @@ extension on TranslationsRu {
'settings.alwaysKeepSidebarOpenDescription' => 'Боковая панель остаётся развёрнутой, область контента подстраивается',
'settings.showUnwatchedCount' => 'Показывать количество непросмотренных',
'settings.showUnwatchedCountDescription' => 'Отображать количество непросмотренных эпизодов для сериалов и сезонов',
'settings.showEpisodeNumberOnCards' => 'Показывать номер эпизода на карточках',
'settings.showEpisodeNumberOnCardsDescription' => 'Отображать номер эпизода рядом с сезоном (напр. S2 E3) на карточках эпизодов',
'settings.hideSpoilers' => 'Скрыть спойлеры непросмотренных эпизодов',
'settings.hideSpoilersDescription' => 'Размывать миниатюры и скрывать описания эпизодов, которые вы ещё не смотрели',
'settings.playerBackend' => 'Бэкенд плеера',
@@ -1928,10 +1932,10 @@ extension on TranslationsRu {
'libraries.sortBy' => 'Сортировать по',
'libraries.filters' => 'Фильтры',
'libraries.confirmActionMessage' => 'Вы уверены, что хотите выполнить это действие?',
'libraries.showLibrary' => 'Показать библиотеку',
'libraries.hideLibrary' => 'Скрыть библиотеку',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Показать библиотеку',
'libraries.hideLibrary' => 'Скрыть библиотеку',
'libraries.libraryOptions' => 'Параметры библиотеки',
'libraries.content' => 'содержимое библиотеки',
'libraries.selectLibrary' => 'Выбрать библиотеку',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => 'Sidofältet förblir expanderat och innehållsytan anpassas';
@override String get showUnwatchedCount => 'Visa antal osedda';
@override String get showUnwatchedCountDescription => 'Visa antal osedda avsnitt för serier och säsonger';
@override String get showEpisodeNumberOnCards => 'Visa avsnittsnummer på kort';
@override String get showEpisodeNumberOnCardsDescription => 'Visa avsnittsnummer tillsammans med säsongen (t.ex. S2 E3) på avsnittskort';
@override String get hideSpoilers => 'Dölj spoilers för osedda avsnitt';
@override String get hideSpoilersDescription => 'Gör miniatyrer suddiga och dölj beskrivningar för avsnitt du inte har sett ännu';
@override String get playerBackend => 'Spelarmotor';
@@ -1518,6 +1520,8 @@ extension on TranslationsSv {
'settings.alwaysKeepSidebarOpenDescription' => 'Sidofältet förblir expanderat och innehållsytan anpassas',
'settings.showUnwatchedCount' => 'Visa antal osedda',
'settings.showUnwatchedCountDescription' => 'Visa antal osedda avsnitt för serier och säsonger',
'settings.showEpisodeNumberOnCards' => 'Visa avsnittsnummer på kort',
'settings.showEpisodeNumberOnCardsDescription' => 'Visa avsnittsnummer tillsammans med säsongen (t.ex. S2 E3) på avsnittskort',
'settings.hideSpoilers' => 'Dölj spoilers för osedda avsnitt',
'settings.hideSpoilersDescription' => 'Gör miniatyrer suddiga och dölj beskrivningar för avsnitt du inte har sett ännu',
'settings.playerBackend' => 'Spelarmotor',
@@ -1928,10 +1932,10 @@ extension on TranslationsSv {
'libraries.sortBy' => 'Sortera efter',
'libraries.filters' => 'Filter',
'libraries.confirmActionMessage' => 'Är du säker på att du vill utföra denna åtgärd?',
'libraries.showLibrary' => 'Visa bibliotek',
'libraries.hideLibrary' => 'Dölj bibliotek',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => 'Visa bibliotek',
'libraries.hideLibrary' => 'Dölj bibliotek',
'libraries.libraryOptions' => 'Biblioteksalternativ',
'libraries.content' => 'bibliotekets innehåll',
'libraries.selectLibrary' => 'Välj bibliotek',
+6 -2
View File
@@ -230,6 +230,8 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn {
@override String get alwaysKeepSidebarOpenDescription => '侧边栏保持展开状态,内容区域自动调整';
@override String get showUnwatchedCount => '显示未观看数量';
@override String get showUnwatchedCountDescription => '在剧集和季上显示未观看的集数';
@override String get showEpisodeNumberOnCards => '在卡片上显示集数';
@override String get showEpisodeNumberOnCardsDescription => '在剧集卡片上,季号旁同时显示集数(例如 S2 E3)';
@override String get hideSpoilers => '隐藏未看剧集的剧透内容';
@override String get hideSpoilersDescription => '模糊未观看剧集的缩略图并隐藏其描述';
@override String get playerBackend => '播放器引擎';
@@ -1518,6 +1520,8 @@ extension on TranslationsZh {
'settings.alwaysKeepSidebarOpenDescription' => '侧边栏保持展开状态,内容区域自动调整',
'settings.showUnwatchedCount' => '显示未观看数量',
'settings.showUnwatchedCountDescription' => '在剧集和季上显示未观看的集数',
'settings.showEpisodeNumberOnCards' => '在卡片上显示集数',
'settings.showEpisodeNumberOnCardsDescription' => '在剧集卡片上,季号旁同时显示集数(例如 S2 E3)',
'settings.hideSpoilers' => '隐藏未看剧集的剧透内容',
'settings.hideSpoilersDescription' => '模糊未观看剧集的缩略图并隐藏其描述',
'settings.playerBackend' => '播放器引擎',
@@ -1928,10 +1932,10 @@ extension on TranslationsZh {
'libraries.sortBy' => '排序依据',
'libraries.filters' => '筛选器',
'libraries.confirmActionMessage' => '确定要执行此操作吗?',
'libraries.showLibrary' => '显示媒体库',
'libraries.hideLibrary' => '隐藏媒体库',
_ => null,
} ?? switch (path) {
'libraries.showLibrary' => '显示媒体库',
'libraries.hideLibrary' => '隐藏媒体库',
'libraries.libraryOptions' => '媒体库选项',
'libraries.content' => '媒体库内容',
'libraries.selectLibrary' => '选择媒体库',
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "Sidofältet förblir expanderat och innehållsytan anpassas",
"showUnwatchedCount": "Visa antal osedda",
"showUnwatchedCountDescription": "Visa antal osedda avsnitt för serier och säsonger",
"showEpisodeNumberOnCards": "Visa avsnittsnummer på kort",
"showEpisodeNumberOnCardsDescription": "Visa avsnittsnummer tillsammans med säsongen (t.ex. S2 E3) på avsnittskort",
"hideSpoilers": "Dölj spoilers för osedda avsnitt",
"hideSpoilersDescription": "Gör miniatyrer suddiga och dölj beskrivningar för avsnitt du inte har sett ännu",
"playerBackend": "Spelarmotor",
+2
View File
@@ -110,6 +110,8 @@
"alwaysKeepSidebarOpenDescription": "侧边栏保持展开状态,内容区域自动调整",
"showUnwatchedCount": "显示未观看数量",
"showUnwatchedCountDescription": "在剧集和季上显示未观看的集数",
"showEpisodeNumberOnCards": "在卡片上显示集数",
"showEpisodeNumberOnCardsDescription": "在剧集卡片上,季号旁同时显示集数(例如 S2 E3)",
"hideSpoilers": "隐藏未看剧集的剧透内容",
"hideSpoilersDescription": "模糊未观看剧集的缩略图并隐藏其描述",
"playerBackend": "播放器引擎",
+11
View File
@@ -12,6 +12,7 @@ class SettingsProvider extends ChangeNotifier {
bool _showServerNameOnHubs = false;
bool _alwaysKeepSidebarOpen = false;
bool _showUnwatchedCount = true;
bool _showEpisodeNumberOnCards = true;
bool _hideSpoilers = false;
bool _showNavBarLabels = true;
bool _liveTvDefaultFavorites = false;
@@ -54,6 +55,7 @@ class SettingsProvider extends ChangeNotifier {
_showServerNameOnHubs = s.getShowServerNameOnHubs();
_alwaysKeepSidebarOpen = s.getAlwaysKeepSidebarOpen();
_showUnwatchedCount = s.getShowUnwatchedCount();
_showEpisodeNumberOnCards = s.getShowEpisodeNumberOnCards();
_hideSpoilers = s.getHideSpoilers();
_showNavBarLabels = s.getShowNavBarLabels();
_liveTvDefaultFavorites = s.getLiveTvDefaultFavorites();
@@ -89,6 +91,8 @@ class SettingsProvider extends ChangeNotifier {
bool get showUnwatchedCount => _showUnwatchedCount;
bool get showEpisodeNumberOnCards => _showEpisodeNumberOnCards;
bool get hideSpoilers => _hideSpoilers;
bool get showNavBarLabels => _showNavBarLabels;
@@ -170,6 +174,13 @@ class SettingsProvider extends ChangeNotifier {
persist: _settingsService!.setShowUnwatchedCount,
);
Future<void> setShowEpisodeNumberOnCards(bool value) => _updateSetting(
current: _showEpisodeNumberOnCards,
value: value,
setLocal: (v) => _showEpisodeNumberOnCards = v,
persist: _settingsService!.setShowEpisodeNumberOnCards,
);
Future<void> setHideSpoilers(bool value) => _updateSetting(
current: _hideSpoilers,
value: value,
@@ -68,6 +68,7 @@ class _AppearanceSettingsScreenState extends State<AppearanceSettingsScreen> {
_buildDensitySelector(),
_buildViewModeSelector(),
_buildEpisodePosterModeSelector(),
_buildShowEpisodeNumberOnCards(),
// --- Home Screen ---
SettingsSectionHeader(t.settings.homeScreen),
@@ -211,6 +212,14 @@ class _AppearanceSettingsScreenState extends State<AppearanceSettingsScreen> {
);
}
Widget _buildShowEpisodeNumberOnCards() => _buildBoolToggle(
icon: Symbols.tag_rounded,
title: t.settings.showEpisodeNumberOnCards,
subtitle: t.settings.showEpisodeNumberOnCardsDescription,
getter: (p) => p.showEpisodeNumberOnCards,
setter: (p, v) => p.setShowEpisodeNumberOnCards(v),
);
/// Shared scaffolding for the bool toggles on this screen. Each toggle
/// watches one `SettingsProvider` field via `Selector`, so flipping one
/// switch doesn't rebuild the others.
+11
View File
@@ -105,6 +105,7 @@ class SettingsService extends BaseSharedPreferencesService {
static const String _keyUseExoPlayer = 'use_exoplayer';
static const String _keyAlwaysKeepSidebarOpen = 'always_keep_sidebar_open';
static const String _keyShowUnwatchedCount = 'show_unwatched_count';
static const String _keyShowEpisodeNumberOnCards = 'show_episode_number_on_cards';
static const String _keyHideSpoilers = 'hide_spoilers';
static const String _keyShowNavBarLabels = 'show_nav_bar_labels';
static const String _keyGlobalShaderPreset = 'global_shader_preset';
@@ -1279,6 +1280,15 @@ class SettingsService extends BaseSharedPreferencesService {
return prefs.getBool(_keyShowUnwatchedCount) ?? true; // Default: enabled (show counts)
}
// Show Episode Number on Cards (append E# alongside S# on episode cards)
Future<void> setShowEpisodeNumberOnCards(bool enabled) async {
await prefs.setBool(_keyShowEpisodeNumberOnCards, enabled);
}
bool getShowEpisodeNumberOnCards() {
return prefs.getBool(_keyShowEpisodeNumberOnCards) ?? true; // Default: enabled
}
// Hide Spoilers (blur thumbnails and hide descriptions for unwatched episodes)
Future<void> setHideSpoilers(bool enabled) async {
await prefs.setBool(_keyHideSpoilers, enabled);
@@ -1494,6 +1504,7 @@ class SettingsService extends BaseSharedPreferencesService {
prefs.remove(_keyUseExoPlayer),
prefs.remove(_keyAlwaysKeepSidebarOpen),
prefs.remove(_keyShowUnwatchedCount),
prefs.remove(_keyShowEpisodeNumberOnCards),
prefs.remove(_keyHideSpoilers),
prefs.remove(_keyShowNavBarLabels),
prefs.remove(_keyGlobalShaderPreset),
+11 -7
View File
@@ -447,16 +447,17 @@ class _MediaCardList extends StatelessWidget {
return parts.join('');
}
String? _buildSubtitleText() {
String? _buildSubtitleText(BuildContext context) {
if (item is PlexPlaylist) {
// Playlists don't have subtitles
return null;
} else if (item is PlexMetadata) {
final metadata = item as PlexMetadata;
// For TV episodes, show S#E# format
// For TV episodes, show S# (optionally with E#)
if (metadata.parentIndex != null && metadata.index != null) {
return 'S${metadata.parentIndex} E${metadata.index}';
final showEp = context.select<SettingsProvider, bool>((p) => p.showEpisodeNumberOnCards);
return showEp ? 'S${metadata.parentIndex} E${metadata.index}' : 'S${metadata.parentIndex}';
}
// Otherwise use existing subtitle logic
@@ -477,7 +478,8 @@ class _MediaCardList extends StatelessWidget {
fontSize: _subtitleFontSize,
);
final episodeTitle = metadata.displaySubtitle ?? metadata.displayTitle;
final episodeNum = metadata.index != null ? ' E${metadata.index}' : '';
final showEp = context.select<SettingsProvider, bool>((p) => p.showEpisodeNumberOnCards);
final episodeNum = (showEp && metadata.index != null) ? ' E${metadata.index}' : '';
return Row(
children: [
_ClickableText(
@@ -496,7 +498,7 @@ class _MediaCardList extends StatelessWidget {
@override
Widget build(BuildContext context) {
final metadataLine = _buildMetadataLine();
final subtitle = _buildSubtitleText();
final subtitle = _buildSubtitleText(context);
return InkWell(
canRequestFocus: false, // Keyboard handled by FocusableMediaCard
@@ -738,6 +740,8 @@ class _MediaCardHelpers {
// For episodes, show "S# · Episode Title" with clickable season link
if (metadata.isEpisode && metadata.parentIndex != null) {
final episodeTitle = metadata.displaySubtitle ?? metadata.displayTitle;
final showEp = context.select<SettingsProvider, bool>((p) => p.showEpisodeNumberOnCards);
final episodeSuffix = (showEp && metadata.index != null) ? ' E${metadata.index}' : '';
if (metadata.parentRatingKey != null) {
return Row(
children: [
@@ -746,7 +750,7 @@ class _MediaCardHelpers {
style: subtitleStyle,
onTap: () => _navigateToSeason(context, metadata, isOffline: isOffline),
),
Text(' · ', style: subtitleStyle),
Text('$episodeSuffix · ', style: subtitleStyle),
Expanded(
child: Text(episodeTitle, maxLines: 1, overflow: TextOverflow.ellipsis, style: subtitleStyle),
),
@@ -754,7 +758,7 @@ class _MediaCardHelpers {
);
}
return Text(
'S${metadata.parentIndex} · $episodeTitle',
'S${metadata.parentIndex}$episodeSuffix · $episodeTitle',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: subtitleStyle,