diff --git a/lib/i18n/bg.i18n.json b/lib/i18n/bg.i18n.json index 954f3494..57ed5a39 100644 --- a/lib/i18n/bg.i18n.json +++ b/lib/i18n/bg.i18n.json @@ -734,6 +734,8 @@ "extras": "Трейлъри и екстри", "studio": "Студио", "rating": "Рейтинг", + "director": "Режисьор", + "directors": "Режисьори", "movie": "Филм", "tvShow": "ТВ сериал", "minutesLeft": "Остават ${minutes} мин", diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index d58023d0..ed1ed8ad 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailere og ekstramateriale", "studio": "Studie", "rating": "Bedømmelse", + "director": "Instruktør", + "directors": "Instruktører", "movie": "Film", "tvShow": "TV-serie", "minutesLeft": "${minutes} min tilbage", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index 7e55b832..5172c982 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailer & Extras", "studio": "Studio", "rating": "Altersfreigabe", + "director": "Regisseur", + "directors": "Regisseure", "movie": "Film", "tvShow": "Serie", "minutesLeft": "Noch ${minutes} Min.", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index bffa4a40..476b05f7 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailers & Extras", "studio": "Studio", "rating": "Rating", + "director": "Director", + "directors": "Directors", "movie": "Movie", "tvShow": "TV Show", "minutesLeft": "${minutes} min left", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 5fed6cf1..0ec9a15d 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -734,6 +734,8 @@ "extras": "Tráilers y extras", "studio": "Estudio", "rating": "Valoración", + "director": "Director", + "directors": "Directores", "movie": "Película", "tvShow": "Serie de TV", "minutesLeft": "quedan ${minutes} min", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 5b950f07..d18359ed 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -734,6 +734,8 @@ "extras": "Bandes-annonces et bonus", "studio": "Studio", "rating": "Évaluation", + "director": "Réalisateur", + "directors": "Réalisateurs", "movie": "Film", "tvShow": "Série TV", "minutesLeft": "${minutes} min restantes", diff --git a/lib/i18n/hu.i18n.json b/lib/i18n/hu.i18n.json index 73bdc5a1..fc981163 100644 --- a/lib/i18n/hu.i18n.json +++ b/lib/i18n/hu.i18n.json @@ -734,6 +734,8 @@ "extras": "Előzetesek és extrák", "studio": "Stúdió", "rating": "Értékelés", + "director": "Rendező", + "directors": "Rendezők", "movie": "Film", "tvShow": "TV-sorozat", "minutesLeft": "${minutes} perc van hátra", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 8a627249..1c429cca 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailer ed extra", "studio": "Studio", "rating": "Valutazione", + "director": "Regista", + "directors": "Registi", "movie": "Film", "tvShow": "Serie TV", "minutesLeft": "${minutes} minuti rimanenti", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index d9c122ef..085fe414 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -733,6 +733,8 @@ "extras": "予告編とエクストラ", "studio": "スタジオ", "rating": "評価", + "director": "監督", + "directors": "監督", "movie": "映画", "tvShow": "テレビ番組", "minutesLeft": "残り${minutes}分", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 86b8c66a..4a3b4adc 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -733,6 +733,8 @@ "extras": "예고편 및 부가영상", "studio": "제작사", "rating": "연령 등급", + "director": "감독", + "directors": "감독", "movie": "영화", "tvShow": "TV 시리즈", "minutesLeft": "${minutes}분 남음", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index 4d5a3bb4..d416bda8 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailere og ekstramateriale", "studio": "Studio", "rating": "Vurdering", + "director": "Regissør", + "directors": "Regissører", "movie": "Film", "tvShow": "TV-serie", "minutesLeft": "${minutes} min igjen", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 46f542f9..fac4ed21 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailers en extra's", "studio": "Studio", "rating": "Beoordeling", + "director": "Regisseur", + "directors": "Regisseurs", "movie": "Film", "tvShow": "Tv-serie", "minutesLeft": "nog ${minutes} min", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index cf33768d..fff8e8f1 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -736,6 +736,8 @@ "extras": "Zwiastuny i dodatki", "studio": "Studio", "rating": "Ocena", + "director": "Reżyser", + "directors": "Reżyserzy", "movie": "Film", "tvShow": "Serial TV", "minutesLeft": "Pozostało ${minutes} min", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index 0d666d31..4dbe215d 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailers e extras", "studio": "Estúdio", "rating": "Avaliação", + "director": "Diretor", + "directors": "Diretores", "movie": "Filme", "tvShow": "Série de TV", "minutesLeft": "${minutes} min restantes", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index dd6cd1ef..10549c3f 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -736,6 +736,8 @@ "extras": "Трейлеры и доп. материалы", "studio": "Студия", "rating": "Рейтинг", + "director": "Режиссёр", + "directors": "Режиссёры", "movie": "Фильм", "tvShow": "Сериал", "minutesLeft": "Осталось ${minutes} мин", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index d583d3a2..d4b9687a 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,7 +4,7 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 18 -/// Strings: 25995 (1444 per locale) +/// Strings: 26031 (1446 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_bg.g.dart b/lib/i18n/strings_bg.g.dart index d902f0dc..6b9ad49f 100644 --- a/lib/i18n/strings_bg.g.dart +++ b/lib/i18n/strings_bg.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$bg extends Translations$discover$en { @override String get extras => 'Трейлъри и екстри'; @override String get studio => 'Студио'; @override String get rating => 'Рейтинг'; + @override String get director => 'Режисьор'; + @override String get directors => 'Режисьори'; @override String get movie => 'Филм'; @override String get tvShow => 'ТВ сериал'; @override String minutesLeft({required Object minutes}) => 'Остават ${minutes} мин'; @@ -2832,6 +2834,8 @@ extension on TranslationsBg { 'discover.extras' => 'Трейлъри и екстри', 'discover.studio' => 'Студио', 'discover.rating' => 'Рейтинг', + 'discover.director' => 'Режисьор', + 'discover.directors' => 'Режисьори', 'discover.movie' => 'Филм', 'discover.tvShow' => 'ТВ сериал', 'discover.minutesLeft' => ({required Object minutes}) => 'Остават ${minutes} мин', @@ -3173,10 +3177,10 @@ extension on TranslationsBg { 'watchTogether.joinCurrentPlaybackDescription' => 'Върнете се към това, което организаторът гледа в момента', 'watchTogether.failedToOpenCurrentPlayback' => 'Неуспешно отваряне на текущото възпроизвеждане', 'watchTogether.participantJoined' => ({required Object name}) => '${name} се присъедини', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} напусна', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} постави на пауза', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} напусна', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} постави на пауза', 'watchTogether.participantResumed' => ({required Object name}) => '${name} продължи', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} промени позицията на възпроизвеждане', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} буферира', diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 85ac8960..911d0e37 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$da extends Translations$discover$en { @override String get extras => 'Trailere og ekstramateriale'; @override String get studio => 'Studie'; @override String get rating => 'Bedømmelse'; + @override String get director => 'Instruktør'; + @override String get directors => 'Instruktører'; @override String get movie => 'Film'; @override String get tvShow => 'TV-serie'; @override String minutesLeft({required Object minutes}) => '${minutes} min tilbage'; @@ -2832,6 +2834,8 @@ extension on TranslationsDa { 'discover.extras' => 'Trailere og ekstramateriale', 'discover.studio' => 'Studie', 'discover.rating' => 'Bedømmelse', + 'discover.director' => 'Instruktør', + 'discover.directors' => 'Instruktører', 'discover.movie' => 'Film', 'discover.tvShow' => 'TV-serie', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min tilbage', @@ -3173,10 +3177,10 @@ extension on TranslationsDa { 'watchTogether.joinCurrentPlaybackDescription' => 'Hop tilbage til det værten ser nu', 'watchTogether.failedToOpenCurrentPlayback' => 'Kunne ikke åbne nuværende afspilning', 'watchTogether.participantJoined' => ({required Object name}) => '${name} deltog', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlod', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} satte på pause', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlod', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} satte på pause', 'watchTogether.participantResumed' => ({required Object name}) => '${name} genoptog', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ændrede afspilningspositionen', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} bufferer', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index 82bea4ee..bdc04483 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$de extends Translations$discover$en { @override String get extras => 'Trailer & Extras'; @override String get studio => 'Studio'; @override String get rating => 'Altersfreigabe'; + @override String get director => 'Regisseur'; + @override String get directors => 'Regisseure'; @override String get movie => 'Film'; @override String get tvShow => 'Serie'; @override String minutesLeft({required Object minutes}) => 'Noch ${minutes} Min.'; @@ -2832,6 +2834,8 @@ extension on TranslationsDe { 'discover.extras' => 'Trailer & Extras', 'discover.studio' => 'Studio', 'discover.rating' => 'Altersfreigabe', + 'discover.director' => 'Regisseur', + 'discover.directors' => 'Regisseure', 'discover.movie' => 'Film', 'discover.tvShow' => 'Serie', 'discover.minutesLeft' => ({required Object minutes}) => 'Noch ${minutes} Min.', @@ -3173,10 +3177,10 @@ extension on TranslationsDe { 'watchTogether.joinCurrentPlaybackDescription' => 'Zu dem Inhalt wechseln, den der Host gerade ansieht', 'watchTogether.failedToOpenCurrentPlayback' => 'Aktuelle Wiedergabe konnte nicht geöffnet werden', 'watchTogether.participantJoined' => ({required Object name}) => '${name} ist beigetreten', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} hat die Sitzung verlassen', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} hat pausiert', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} hat die Sitzung verlassen', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} hat pausiert', 'watchTogether.participantResumed' => ({required Object name}) => '${name} hat fortgesetzt', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} hat die Wiedergabeposition geändert', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} puffert', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 08b8a724..4a111dcf 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -2251,6 +2251,12 @@ class Translations$discover$en { /// en: 'Rating' String get rating => 'Rating'; + /// en: 'Director' + String get director => 'Director'; + + /// en: 'Directors' + String get directors => 'Directors'; + /// en: 'Movie' String get movie => 'Movie'; @@ -5733,6 +5739,8 @@ extension on Translations { 'discover.extras' => 'Trailers & Extras', 'discover.studio' => 'Studio', 'discover.rating' => 'Rating', + 'discover.director' => 'Director', + 'discover.directors' => 'Directors', 'discover.movie' => 'Movie', 'discover.tvShow' => 'TV Show', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min left', @@ -6071,10 +6079,10 @@ extension on Translations { 'watchTogether.reconnectingToHost' => 'Reconnecting to host...', 'watchTogether.currentPlayback' => 'Current Playback', 'watchTogether.joinCurrentPlayback' => 'Join Current Playback', - 'watchTogether.joinCurrentPlaybackDescription' => 'Jump back into what the host is currently watching', - 'watchTogether.failedToOpenCurrentPlayback' => 'Failed to open current playback', _ => null, } ?? switch (path) { + 'watchTogether.joinCurrentPlaybackDescription' => 'Jump back into what the host is currently watching', + 'watchTogether.failedToOpenCurrentPlayback' => 'Failed to open current playback', 'watchTogether.participantJoined' => ({required Object name}) => '${name} joined', 'watchTogether.participantLeft' => ({required Object name}) => '${name} left', 'watchTogether.participantPaused' => ({required Object name}) => '${name} paused', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index f53df4f5..6917e1e7 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$es extends Translations$discover$en { @override String get extras => 'Tráilers y extras'; @override String get studio => 'Estudio'; @override String get rating => 'Valoración'; + @override String get director => 'Director'; + @override String get directors => 'Directores'; @override String get movie => 'Película'; @override String get tvShow => 'Serie de TV'; @override String minutesLeft({required Object minutes}) => 'quedan ${minutes} min'; @@ -2832,6 +2834,8 @@ extension on TranslationsEs { 'discover.extras' => 'Tráilers y extras', 'discover.studio' => 'Estudio', 'discover.rating' => 'Valoración', + 'discover.director' => 'Director', + 'discover.directors' => 'Directores', 'discover.movie' => 'Película', 'discover.tvShow' => 'Serie de TV', 'discover.minutesLeft' => ({required Object minutes}) => 'quedan ${minutes} min', @@ -3173,10 +3177,10 @@ extension on TranslationsEs { 'watchTogether.joinCurrentPlaybackDescription' => 'Vuelve a lo que el anfitrión está viendo ahora mismo', 'watchTogether.failedToOpenCurrentPlayback' => 'No se pudo abrir la reproducción actual', 'watchTogether.participantJoined' => ({required Object name}) => '${name} se unió', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} se fue', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausó', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} se fue', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausó', 'watchTogether.participantResumed' => ({required Object name}) => '${name} reanudó', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} cambió la posición de reproducción', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} está almacenando en búfer', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 3837ef7a..cda389f9 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$fr extends Translations$discover$en { @override String get extras => 'Bandes-annonces et bonus'; @override String get studio => 'Studio'; @override String get rating => 'Évaluation'; + @override String get director => 'Réalisateur'; + @override String get directors => 'Réalisateurs'; @override String get movie => 'Film'; @override String get tvShow => 'Série TV'; @override String minutesLeft({required Object minutes}) => '${minutes} min restantes'; @@ -2832,6 +2834,8 @@ extension on TranslationsFr { 'discover.extras' => 'Bandes-annonces et bonus', 'discover.studio' => 'Studio', 'discover.rating' => 'Évaluation', + 'discover.director' => 'Réalisateur', + 'discover.directors' => 'Réalisateurs', 'discover.movie' => 'Film', 'discover.tvShow' => 'Série TV', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes', @@ -3173,10 +3177,10 @@ extension on TranslationsFr { 'watchTogether.joinCurrentPlaybackDescription' => 'Reprendre le contenu que l’hôte regarde actuellement', 'watchTogether.failedToOpenCurrentPlayback' => 'Impossible d\'ouvrir la lecture en cours', 'watchTogether.participantJoined' => ({required Object name}) => '${name} a rejoint', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} est parti', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} a mis en pause', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} est parti', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} a mis en pause', 'watchTogether.participantResumed' => ({required Object name}) => '${name} a repris', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} a changé la position de lecture', 'watchTogether.participantBuffering' => ({required Object name}) => 'La lecture de ${name} est en cours de mise en mémoire tampon', diff --git a/lib/i18n/strings_hu.g.dart b/lib/i18n/strings_hu.g.dart index 070d770f..dc4aa6b4 100644 --- a/lib/i18n/strings_hu.g.dart +++ b/lib/i18n/strings_hu.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$hu extends Translations$discover$en { @override String get extras => 'Előzetesek és extrák'; @override String get studio => 'Stúdió'; @override String get rating => 'Értékelés'; + @override String get director => 'Rendező'; + @override String get directors => 'Rendezők'; @override String get movie => 'Film'; @override String get tvShow => 'TV-sorozat'; @override String minutesLeft({required Object minutes}) => '${minutes} perc van hátra'; @@ -2832,6 +2834,8 @@ extension on TranslationsHu { 'discover.extras' => 'Előzetesek és extrák', 'discover.studio' => 'Stúdió', 'discover.rating' => 'Értékelés', + 'discover.director' => 'Rendező', + 'discover.directors' => 'Rendezők', 'discover.movie' => 'Film', 'discover.tvShow' => 'TV-sorozat', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} perc van hátra', @@ -3173,10 +3177,10 @@ extension on TranslationsHu { 'watchTogether.joinCurrentPlaybackDescription' => 'Visszatérés ahhoz, amit a házigazda éppen néz', 'watchTogether.failedToOpenCurrentPlayback' => 'Nem sikerült megnyitni a jelenlegi lejátszást', 'watchTogether.participantJoined' => ({required Object name}) => '${name} csatlakozott', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} kilépett', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} szüneteltette a lejátszást', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} kilépett', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} szüneteltette a lejátszást', 'watchTogether.participantResumed' => ({required Object name}) => '${name} folytatta a lejátszást', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} módosította a lejátszási pozíciót', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} pufferel', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index ad037418..8cd2afca 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$it extends Translations$discover$en { @override String get extras => 'Trailer ed extra'; @override String get studio => 'Studio'; @override String get rating => 'Valutazione'; + @override String get director => 'Regista'; + @override String get directors => 'Registi'; @override String get movie => 'Film'; @override String get tvShow => 'Serie TV'; @override String minutesLeft({required Object minutes}) => '${minutes} minuti rimanenti'; @@ -2832,6 +2834,8 @@ extension on TranslationsIt { 'discover.extras' => 'Trailer ed extra', 'discover.studio' => 'Studio', 'discover.rating' => 'Valutazione', + 'discover.director' => 'Regista', + 'discover.directors' => 'Registi', 'discover.movie' => 'Film', 'discover.tvShow' => 'Serie TV', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} minuti rimanenti', @@ -3173,10 +3177,10 @@ extension on TranslationsIt { 'watchTogether.joinCurrentPlaybackDescription' => 'Torna a ciò che l\'host sta guardando in questo momento', 'watchTogether.failedToOpenCurrentPlayback' => 'Impossibile aprire la riproduzione corrente', 'watchTogether.participantJoined' => ({required Object name}) => '${name} si è unito', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} se ne è andato', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} ha messo in pausa', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} se ne è andato', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} ha messo in pausa', 'watchTogether.participantResumed' => ({required Object name}) => '${name} ha ripreso', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ha cambiato la posizione di riproduzione', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} è in buffering', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index 571426ed..f2f5a4fd 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -939,6 +939,8 @@ class _Translations$discover$ja extends Translations$discover$en { @override String get extras => '予告編とエクストラ'; @override String get studio => 'スタジオ'; @override String get rating => '評価'; + @override String get director => '監督'; + @override String get directors => '監督'; @override String get movie => '映画'; @override String get tvShow => 'テレビ番組'; @override String minutesLeft({required Object minutes}) => '残り${minutes}分'; @@ -2829,6 +2831,8 @@ extension on TranslationsJa { 'discover.extras' => '予告編とエクストラ', 'discover.studio' => 'スタジオ', 'discover.rating' => '評価', + 'discover.director' => '監督', + 'discover.directors' => '監督', 'discover.movie' => '映画', 'discover.tvShow' => 'テレビ番組', 'discover.minutesLeft' => ({required Object minutes}) => '残り${minutes}分', @@ -3170,10 +3174,10 @@ extension on TranslationsJa { 'watchTogether.joinCurrentPlaybackDescription' => 'ホストが現在視聴中のコンテンツに戻る', 'watchTogether.failedToOpenCurrentPlayback' => '現在の再生を開けませんでした', 'watchTogether.participantJoined' => ({required Object name}) => '${name}が参加しました', - 'watchTogether.participantLeft' => ({required Object name}) => '${name}が退出しました', - 'watchTogether.participantPaused' => ({required Object name}) => '${name}が一時停止しました', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name}が退出しました', + 'watchTogether.participantPaused' => ({required Object name}) => '${name}が一時停止しました', 'watchTogether.participantResumed' => ({required Object name}) => '${name}が再開しました', 'watchTogether.participantSeeked' => ({required Object name}) => '${name}が再生位置を変更しました', 'watchTogether.participantBuffering' => ({required Object name}) => '${name}がバッファリング中', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index bca3fbae..3f02b78d 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -939,6 +939,8 @@ class _Translations$discover$ko extends Translations$discover$en { @override String get extras => '예고편 및 부가영상'; @override String get studio => '제작사'; @override String get rating => '연령 등급'; + @override String get director => '감독'; + @override String get directors => '감독'; @override String get movie => '영화'; @override String get tvShow => 'TV 시리즈'; @override String minutesLeft({required Object minutes}) => '${minutes}분 남음'; @@ -2829,6 +2831,8 @@ extension on TranslationsKo { 'discover.extras' => '예고편 및 부가영상', 'discover.studio' => '제작사', 'discover.rating' => '연령 등급', + 'discover.director' => '감독', + 'discover.directors' => '감독', 'discover.movie' => '영화', 'discover.tvShow' => 'TV 시리즈', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes}분 남음', @@ -3170,10 +3174,10 @@ extension on TranslationsKo { 'watchTogether.joinCurrentPlaybackDescription' => '호스트가 현재 시청 중인 콘텐츠로 이동합니다', 'watchTogether.failedToOpenCurrentPlayback' => '현재 재생을 열 수 없습니다', 'watchTogether.participantJoined' => ({required Object name}) => '${name}님이 참여했습니다', - 'watchTogether.participantLeft' => ({required Object name}) => '${name}님이 나갔습니다', - 'watchTogether.participantPaused' => ({required Object name}) => '${name}님이 일시정지했습니다', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name}님이 나갔습니다', + 'watchTogether.participantPaused' => ({required Object name}) => '${name}님이 일시정지했습니다', 'watchTogether.participantResumed' => ({required Object name}) => '${name}님이 재생했습니다', 'watchTogether.participantSeeked' => ({required Object name}) => '${name}님이 재생 위치를 변경했습니다', 'watchTogether.participantBuffering' => ({required Object name}) => '${name}님이 버퍼링 중입니다', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 68ddda3a..a6e4ecc1 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$nb extends Translations$discover$en { @override String get extras => 'Trailere og ekstramateriale'; @override String get studio => 'Studio'; @override String get rating => 'Vurdering'; + @override String get director => 'Regissør'; + @override String get directors => 'Regissører'; @override String get movie => 'Film'; @override String get tvShow => 'TV-serie'; @override String minutesLeft({required Object minutes}) => '${minutes} min igjen'; @@ -2832,6 +2834,8 @@ extension on TranslationsNb { 'discover.extras' => 'Trailere og ekstramateriale', 'discover.studio' => 'Studio', 'discover.rating' => 'Vurdering', + 'discover.director' => 'Regissør', + 'discover.directors' => 'Regissører', 'discover.movie' => 'Film', 'discover.tvShow' => 'TV-serie', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min igjen', @@ -3173,10 +3177,10 @@ extension on TranslationsNb { 'watchTogether.joinCurrentPlaybackDescription' => 'Hopp tilbake til det verten ser på nå', 'watchTogether.failedToOpenCurrentPlayback' => 'Kunne ikke åpne gjeldende avspilling', 'watchTogether.participantJoined' => ({required Object name}) => '${name} ble med', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlot', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} satte avspillingen på pause', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlot', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} satte avspillingen på pause', 'watchTogether.participantResumed' => ({required Object name}) => '${name} startet avspillingen igjen', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} endret avspillingsposisjonen', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} buffrer', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index 17ff1360..be08609c 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$nl extends Translations$discover$en { @override String get extras => 'Trailers en extra\'s'; @override String get studio => 'Studio'; @override String get rating => 'Beoordeling'; + @override String get director => 'Regisseur'; + @override String get directors => 'Regisseurs'; @override String get movie => 'Film'; @override String get tvShow => 'Tv-serie'; @override String minutesLeft({required Object minutes}) => 'nog ${minutes} min'; @@ -2832,6 +2834,8 @@ extension on TranslationsNl { 'discover.extras' => 'Trailers en extra\'s', 'discover.studio' => 'Studio', 'discover.rating' => 'Beoordeling', + 'discover.director' => 'Regisseur', + 'discover.directors' => 'Regisseurs', 'discover.movie' => 'Film', 'discover.tvShow' => 'Tv-serie', 'discover.minutesLeft' => ({required Object minutes}) => 'nog ${minutes} min', @@ -3173,10 +3177,10 @@ extension on TranslationsNl { 'watchTogether.joinCurrentPlaybackDescription' => 'Ga terug naar wat de host nu kijkt', 'watchTogether.failedToOpenCurrentPlayback' => 'Wat nu wordt afgespeeld kon niet worden geopend', 'watchTogether.participantJoined' => ({required Object name}) => '${name} is toegetreden', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} heeft de sessie verlaten', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} heeft gepauzeerd', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} heeft de sessie verlaten', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} heeft gepauzeerd', 'watchTogether.participantResumed' => ({required Object name}) => '${name} heeft hervat', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} heeft de afspeelpositie gewijzigd', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} is aan het bufferen', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index dcffa45d..d3714f58 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -942,6 +942,8 @@ class _Translations$discover$pl extends Translations$discover$en { @override String get extras => 'Zwiastuny i dodatki'; @override String get studio => 'Studio'; @override String get rating => 'Ocena'; + @override String get director => 'Reżyser'; + @override String get directors => 'Reżyserzy'; @override String get movie => 'Film'; @override String get tvShow => 'Serial TV'; @override String minutesLeft({required Object minutes}) => 'Pozostało ${minutes} min'; @@ -2838,6 +2840,8 @@ extension on TranslationsPl { 'discover.extras' => 'Zwiastuny i dodatki', 'discover.studio' => 'Studio', 'discover.rating' => 'Ocena', + 'discover.director' => 'Reżyser', + 'discover.directors' => 'Reżyserzy', 'discover.movie' => 'Film', 'discover.tvShow' => 'Serial TV', 'discover.minutesLeft' => ({required Object minutes}) => 'Pozostało ${minutes} min', @@ -3179,10 +3183,10 @@ extension on TranslationsPl { 'watchTogether.joinCurrentPlaybackDescription' => 'Wróć do treści oglądanej obecnie przez gospodarza', 'watchTogether.failedToOpenCurrentPlayback' => 'Nie udało się otworzyć bieżącego odtwarzania', 'watchTogether.participantJoined' => ({required Object name}) => '${name} dołączył', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} opuścił', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} wstrzymał', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} opuścił', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} wstrzymał', 'watchTogether.participantResumed' => ({required Object name}) => '${name} wznowił', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} zmienił pozycję odtwarzania', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} buforuje', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 4d968f88..31b40075 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$pt extends Translations$discover$en { @override String get extras => 'Trailers e extras'; @override String get studio => 'Estúdio'; @override String get rating => 'Avaliação'; + @override String get director => 'Diretor'; + @override String get directors => 'Diretores'; @override String get movie => 'Filme'; @override String get tvShow => 'Série de TV'; @override String minutesLeft({required Object minutes}) => '${minutes} min restantes'; @@ -2832,6 +2834,8 @@ extension on TranslationsPt { 'discover.extras' => 'Trailers e extras', 'discover.studio' => 'Estúdio', 'discover.rating' => 'Avaliação', + 'discover.director' => 'Diretor', + 'discover.directors' => 'Diretores', 'discover.movie' => 'Filme', 'discover.tvShow' => 'Série de TV', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes', @@ -3173,10 +3177,10 @@ extension on TranslationsPt { 'watchTogether.joinCurrentPlaybackDescription' => 'Voltar ao conteúdo que o anfitrião está assistindo agora', 'watchTogether.failedToOpenCurrentPlayback' => 'Falha ao abrir a reprodução atual', 'watchTogether.participantJoined' => ({required Object name}) => '${name} entrou', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} saiu', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausou', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} saiu', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausou', 'watchTogether.participantResumed' => ({required Object name}) => '${name} retomou', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} mudou a posição da reprodução', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} está aguardando o carregamento', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index 4ad1728c..99072444 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -942,6 +942,8 @@ class _Translations$discover$ru extends Translations$discover$en { @override String get extras => 'Трейлеры и доп. материалы'; @override String get studio => 'Студия'; @override String get rating => 'Рейтинг'; + @override String get director => 'Режиссёр'; + @override String get directors => 'Режиссёры'; @override String get movie => 'Фильм'; @override String get tvShow => 'Сериал'; @override String minutesLeft({required Object minutes}) => 'Осталось ${minutes} мин'; @@ -2838,6 +2840,8 @@ extension on TranslationsRu { 'discover.extras' => 'Трейлеры и доп. материалы', 'discover.studio' => 'Студия', 'discover.rating' => 'Рейтинг', + 'discover.director' => 'Режиссёр', + 'discover.directors' => 'Режиссёры', 'discover.movie' => 'Фильм', 'discover.tvShow' => 'Сериал', 'discover.minutesLeft' => ({required Object minutes}) => 'Осталось ${minutes} мин', @@ -3179,10 +3183,10 @@ extension on TranslationsRu { 'watchTogether.joinCurrentPlaybackDescription' => 'Вернуться к материалу, который сейчас смотрит организатор', 'watchTogether.failedToOpenCurrentPlayback' => 'Не удалось открыть текущее воспроизведение', 'watchTogether.participantJoined' => ({required Object name}) => '${name} присоединился', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} вышел', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} поставил на паузу', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} вышел', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} поставил на паузу', 'watchTogether.participantResumed' => ({required Object name}) => '${name} возобновил', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} перемотал', 'watchTogether.participantBuffering' => ({required Object name}) => 'У ${name} идёт буферизация', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 37999982..f8906615 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$sv extends Translations$discover$en { @override String get extras => 'Trailrar och extramaterial'; @override String get studio => 'Studio'; @override String get rating => 'Betyg'; + @override String get director => 'Regissör'; + @override String get directors => 'Regissörer'; @override String get movie => 'Film'; @override String get tvShow => 'TV-serie'; @override String minutesLeft({required Object minutes}) => '${minutes} min kvar'; @@ -2832,6 +2834,8 @@ extension on TranslationsSv { 'discover.extras' => 'Trailrar och extramaterial', 'discover.studio' => 'Studio', 'discover.rating' => 'Betyg', + 'discover.director' => 'Regissör', + 'discover.directors' => 'Regissörer', 'discover.movie' => 'Film', 'discover.tvShow' => 'TV-serie', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min kvar', @@ -3173,10 +3177,10 @@ extension on TranslationsSv { 'watchTogether.joinCurrentPlaybackDescription' => 'Hoppa tillbaka till det värden tittar på just nu', 'watchTogether.failedToOpenCurrentPlayback' => 'Kunde inte öppna aktuell uppspelning', 'watchTogether.participantJoined' => ({required Object name}) => '${name} gick med', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} lämnade', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausade', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} lämnade', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausade', 'watchTogether.participantResumed' => ({required Object name}) => '${name} återupptog', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ändrade uppspelningspositionen', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} buffrar', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index 22807d6f..c44a45da 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -939,6 +939,8 @@ class Translations$discover$zh extends Translations$discover$en { @override String get extras => '预告片与花絮'; @override String get studio => '制作公司'; @override String get rating => '年龄分级'; + @override String get director => '导演'; + @override String get directors => '导演'; @override String get movie => '电影'; @override String get tvShow => '电视剧'; @override String minutesLeft({required Object minutes}) => '剩余 ${minutes} 分钟'; @@ -2829,6 +2831,8 @@ extension on TranslationsZh { 'discover.extras' => '预告片与花絮', 'discover.studio' => '制作公司', 'discover.rating' => '年龄分级', + 'discover.director' => '导演', + 'discover.directors' => '导演', 'discover.movie' => '电影', 'discover.tvShow' => '电视剧', 'discover.minutesLeft' => ({required Object minutes}) => '剩余 ${minutes} 分钟', @@ -3170,10 +3174,10 @@ extension on TranslationsZh { 'watchTogether.joinCurrentPlaybackDescription' => '加入主持人当前正在观看的内容', 'watchTogether.failedToOpenCurrentPlayback' => '无法打开当前播放', 'watchTogether.participantJoined' => ({required Object name}) => '${name} 已加入', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} 已离开', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暂停了播放', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} 已离开', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暂停了播放', 'watchTogether.participantResumed' => ({required Object name}) => '${name} 恢复了播放', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} 更改了播放位置', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} 正在缓冲', diff --git a/lib/i18n/strings_zh_Hant.g.dart b/lib/i18n/strings_zh_Hant.g.dart index e80f3883..a5c7df34 100644 --- a/lib/i18n/strings_zh_Hant.g.dart +++ b/lib/i18n/strings_zh_Hant.g.dart @@ -940,6 +940,8 @@ class _Translations$discover$zh_Hant extends Translations$discover$zh { @override String get extras => '預告片與花絮'; @override String get studio => '製作商'; @override String get rating => '分級'; + @override String get director => '導演'; + @override String get directors => '導演'; @override String get movie => '電影'; @override String get tvShow => '影集'; @override String minutesLeft({required Object minutes}) => '剩餘 ${minutes} 分鐘'; @@ -2830,6 +2832,8 @@ extension on TranslationsZhHant { 'discover.extras' => '預告片與花絮', 'discover.studio' => '製作商', 'discover.rating' => '分級', + 'discover.director' => '導演', + 'discover.directors' => '導演', 'discover.movie' => '電影', 'discover.tvShow' => '影集', 'discover.minutesLeft' => ({required Object minutes}) => '剩餘 ${minutes} 分鐘', @@ -3171,10 +3175,10 @@ extension on TranslationsZhHant { 'watchTogether.joinCurrentPlaybackDescription' => '同步至主持人目前的觀看進度', 'watchTogether.failedToOpenCurrentPlayback' => '無法開啟目前播放點', 'watchTogether.participantJoined' => ({required Object name}) => '${name} 已加入', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} 已離開', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暫停了播放', _ => null, } ?? switch (path) { + 'watchTogether.participantLeft' => ({required Object name}) => '${name} 已離開', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暫停了播放', 'watchTogether.participantResumed' => ({required Object name}) => '${name} 恢復了播放', 'watchTogether.participantSeeked' => ({required Object name}) => '${name} 變更了播放位置', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} 正在緩衝', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 65a8fd9b..66fdf70c 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -734,6 +734,8 @@ "extras": "Trailrar och extramaterial", "studio": "Studio", "rating": "Betyg", + "director": "Regissör", + "directors": "Regissörer", "movie": "Film", "tvShow": "TV-serie", "minutesLeft": "${minutes} min kvar", diff --git a/lib/i18n/zh-Hant.i18n.json b/lib/i18n/zh-Hant.i18n.json index c7089f76..6bac7e12 100644 --- a/lib/i18n/zh-Hant.i18n.json +++ b/lib/i18n/zh-Hant.i18n.json @@ -733,6 +733,8 @@ "extras": "預告片與花絮", "studio": "製作商", "rating": "分級", + "director": "導演", + "directors": "導演", "movie": "電影", "tvShow": "影集", "minutesLeft": "剩餘 ${minutes} 分鐘", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index 10273689..deb964ee 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -733,6 +733,8 @@ "extras": "预告片与花絮", "studio": "制作公司", "rating": "年龄分级", + "director": "导演", + "directors": "导演", "movie": "电影", "tvShow": "电视剧", "minutesLeft": "剩余 ${minutes} 分钟", diff --git a/lib/screens/media_detail_screen.dart b/lib/screens/media_detail_screen.dart index e692356f..d4e1fc15 100644 --- a/lib/screens/media_detail_screen.dart +++ b/lib/screens/media_detail_screen.dart @@ -2008,10 +2008,10 @@ class _MediaDetailScreenState extends State bool get _hasInfoRows { final metadata = _fullMetadata ?? _metadata; - return metadata.studio != null || metadata.contentRating != null; + return metadata.studio != null || metadata.directors?.isNotEmpty == true || metadata.contentRating != null; } - /// Focus the trailing info rows (studio / contentRating) and scroll them into view. + /// Focus the trailing info rows (studio / directors / contentRating) and scroll them into view. void _focusInfoRows() { _infoRowsFocusNode.requestFocus(); _scrollSectionIntoView(_infoRowsSectionKey); @@ -3248,6 +3248,13 @@ class _MediaDetailScreenState extends State _buildInfoRow(t.discover.studio, metadata.studio!), const SizedBox(height: 12), ], + if (metadata.directors?.isNotEmpty == true) ...[ + _buildInfoRow( + metadata.directors!.length > 1 ? t.discover.directors : t.discover.director, + metadata.directors!.join(', '), + ), + const SizedBox(height: 12), + ], if (metadata.contentRating != null) ...[ _buildInfoRow(t.discover.rating, formatContentRating(metadata.contentRating!)), const SizedBox(height: 12), diff --git a/test/screens/media_detail_screen_test.dart b/test/screens/media_detail_screen_test.dart index e11dc14e..03f95716 100644 --- a/test/screens/media_detail_screen_test.dart +++ b/test/screens/media_detail_screen_test.dart @@ -764,7 +764,7 @@ void main() { expect(observer.pushedRouteNames, contains(kVideoPlayerRouteName)); }); - group('watch state freshness (phone layout)', () { + group('phone layout', () { MediaItem buildShow({String? summary}) => testMediaItem( id: 'show_1', backend: MediaBackend.jellyfin, @@ -904,6 +904,43 @@ void main() { ); } + testWidgets('shows directors when they are the only additional info', (tester) async { + final movie = testMediaItem( + id: 'director_only', + backend: MediaBackend.plex, + kind: MediaKind.movie, + title: 'Director-only metadata', + directors: ['Jane Director'], + serverId: 'server_1', + serverName: 'Server', + ); + final client = _FakeMediaServerClient(show: movie, childrenByParent: const {}); + + await pumpPhoneDetail(tester, client, movie); + + expect(find.text('Director'), findsOneWidget); + expect(find.text('Jane Director'), findsOneWidget); + }); + + testWidgets('omits the director row for an empty list', (tester) async { + final movie = testMediaItem( + id: 'no_directors', + backend: MediaBackend.plex, + kind: MediaKind.movie, + title: 'No directors', + studio: 'Example Studio', + directors: const [], + serverId: 'server_1', + serverName: 'Server', + ); + final client = _FakeMediaServerClient(show: movie, childrenByParent: const {}); + + await pumpPhoneDetail(tester, client, movie); + + expect(find.text('Example Studio'), findsOneWidget); + expect(find.text('Director'), findsNothing); + }); + FocusNode overviewFocusNode(WidgetTester tester) { final overviewFocus = find.byWidgetPredicate( (widget) => widget is Focus && widget.focusNode?.debugLabel == 'overview',