diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index 8c335cb3..56c21476 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Intet indhold tilgængeligt", "addMediaToLibraries": "Tilføj medier til dine biblioteker", "continueWatching": "Fortsæt med at se", + "continueWatchingIn": "Fortsæt med at se i ${library}", "nextUp": "Næste op", + "nextUpIn": "Næste op i ${library}", "recentlyAdded": "Nyligt tilføjet", + "recentlyAddedIn": "Nyligt tilføjet i ${library}", "playEpisode": "S${season}E${episode}", "overview": "Oversigt", "cast": "Rollebesætning", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index 0c12a512..35405586 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Kein Inhalt verfügbar", "addMediaToLibraries": "Medien zur Mediathek hinzufügen", "continueWatching": "Weiterschauen", + "continueWatchingIn": "Weiterschauen in ${library}", "nextUp": "Als Nächstes", + "nextUpIn": "Als Nächstes in ${library}", "recentlyAdded": "Kürzlich hinzugefügt", + "recentlyAddedIn": "Kürzlich hinzugefügt in ${library}", "playEpisode": "S${season}E${episode}", "overview": "Übersicht", "cast": "Besetzung", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index 42652ce4..33a042ae 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "No content available", "addMediaToLibraries": "Add some media to your libraries", "continueWatching": "Continue Watching", + "continueWatchingIn": "Continue Watching in ${library}", "nextUp": "Next Up", + "nextUpIn": "Next Up in ${library}", "recentlyAdded": "Recently Added", + "recentlyAddedIn": "Recently Added in ${library}", "playEpisode": "S${season}E${episode}", "overview": "Overview", "cast": "Cast", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 3aae31fd..8ba3e935 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "No hay contenido disponible", "addMediaToLibraries": "Añade contenido a tus bibliotecas", "continueWatching": "Seguir Viendo", + "continueWatchingIn": "Seguir viendo en ${library}", "nextUp": "A continuación", + "nextUpIn": "A continuación en ${library}", "recentlyAdded": "Añadido recientemente", + "recentlyAddedIn": "Añadido recientemente en ${library}", "playEpisode": "T${season}E${episode}", "overview": "Resumen", "cast": "Reparto", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index fdc0362a..aa8fb682 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Aucun contenu disponible", "addMediaToLibraries": "Ajoutez des médias à votre bibliothèque", "continueWatching": "Continuer à regarder", + "continueWatchingIn": "Continuer à regarder dans ${library}", "nextUp": "À suivre", + "nextUpIn": "À suivre dans ${library}", "recentlyAdded": "Récemment ajouté", + "recentlyAddedIn": "Récemment ajouté dans ${library}", "playEpisode": "S${season}E${episode}", "overview": "Aperçu", "cast": "Cast", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index d9f6b99e..49bee4e3 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Nessun contenuto disponibile", "addMediaToLibraries": "Aggiungi alcuni file multimediali alle tue librerie", "continueWatching": "Continua a guardare", + "continueWatchingIn": "Continua a guardare in ${library}", "nextUp": "Prossimi", + "nextUpIn": "Prossimi in ${library}", "recentlyAdded": "Aggiunti di recente", + "recentlyAddedIn": "Aggiunti di recente in ${library}", "playEpisode": "S${season}E${episode}", "overview": "Panoramica", "cast": "Attori", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index c60c1607..1851afb4 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "コンテンツがありません", "addMediaToLibraries": "ライブラリにメディアを追加してください", "continueWatching": "視聴を続ける", + "continueWatchingIn": "${library}の視聴を続ける", "nextUp": "次のエピソード", + "nextUpIn": "${library}の次のエピソード", "recentlyAdded": "最近追加", + "recentlyAddedIn": "${library}に最近追加", "playEpisode": "S${season}E${episode}", "overview": "あらすじ", "cast": "キャスト", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 003fb87e..310c1efb 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "사용 가능한 콘텐츠가 없습니다", "addMediaToLibraries": "미디어 라이브러리에 미디어를 추가해 주세요", "continueWatching": "계속 시청", + "continueWatchingIn": "${library}에서 계속 시청", "nextUp": "다음 에피소드", + "nextUpIn": "${library}의 다음 에피소드", "recentlyAdded": "최근에 추가됨", + "recentlyAddedIn": "${library}에 최근에 추가됨", "playEpisode": "S${season}E${episode}", "overview": "개요", "cast": "출연진", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index b9f760b9..c31bb4aa 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Ingen innhold tilgjengelig", "addMediaToLibraries": "Legg til medier i bibliotekene dine", "continueWatching": "Fortsett å se", + "continueWatchingIn": "Fortsett å se i ${library}", "nextUp": "Neste opp", + "nextUpIn": "Neste opp i ${library}", "recentlyAdded": "Nylig lagt til", + "recentlyAddedIn": "Nylig lagt til i ${library}", "playEpisode": "S${season}E${episode}", "overview": "Oversikt", "cast": "Skuespillere", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 0cd38d18..a78eb7e6 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Geen inhoud beschikbaar", "addMediaToLibraries": "Voeg wat media toe aan je bibliotheken", "continueWatching": "Verder kijken", + "continueWatchingIn": "Verder kijken in ${library}", "nextUp": "Volgende", + "nextUpIn": "Volgende in ${library}", "recentlyAdded": "Recent toegevoegd", + "recentlyAddedIn": "Recent toegevoegd in ${library}", "playEpisode": "S${season}E${episode}", "overview": "Overzicht", "cast": "Acteurs", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index b708d90f..fad8aca2 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Brak dostępnych treści", "addMediaToLibraries": "Dodaj multimedia do swoich bibliotek", "continueWatching": "Kontynuuj oglądanie", + "continueWatchingIn": "Kontynuuj oglądanie w ${library}", "nextUp": "Następny odcinek", + "nextUpIn": "Następny odcinek w ${library}", "recentlyAdded": "Ostatnio dodane", + "recentlyAddedIn": "Ostatnio dodane w ${library}", "playEpisode": "S${season}E${episode}", "overview": "Opis", "cast": "Obsada", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index 01ad79ee..63738001 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Nenhum conteúdo disponível", "addMediaToLibraries": "Adicione mídias às suas bibliotecas", "continueWatching": "Continuar Assistindo", + "continueWatchingIn": "Continuar assistindo em ${library}", "nextUp": "A seguir", + "nextUpIn": "A seguir em ${library}", "recentlyAdded": "Adicionados recentemente", + "recentlyAddedIn": "Adicionados recentemente em ${library}", "playEpisode": "S${season}E${episode}", "overview": "Sinopse", "cast": "Elenco", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index c7fec1a4..71c2b639 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Контент недоступен", "addMediaToLibraries": "Добавьте медиафайлы в ваши библиотеки", "continueWatching": "Продолжить просмотр", + "continueWatchingIn": "Продолжить просмотр в ${library}", "nextUp": "Далее", + "nextUpIn": "Далее в ${library}", "recentlyAdded": "Недавно добавленное", + "recentlyAddedIn": "Недавно добавленное в ${library}", "playEpisode": "S${season}E${episode}", "overview": "Обзор", "cast": "В ролях", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index a23d1a41..78a1097c 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 15 -/// Strings: 16920 (1128 per locale) +/// Strings: 16965 (1131 per locale) /// -/// Built on 2026-05-04 at 07:15 UTC +/// Built on 2026-05-04 at 07:36 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index e18b4637..415ffde0 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverDa extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Intet indhold tilgængeligt'; @override String get addMediaToLibraries => 'Tilføj medier til dine biblioteker'; @override String get continueWatching => 'Fortsæt med at se'; + @override String continueWatchingIn({required Object library}) => 'Fortsæt med at se i ${library}'; @override String get nextUp => 'Næste op'; + @override String nextUpIn({required Object library}) => 'Næste op i ${library}'; @override String get recentlyAdded => 'Nyligt tilføjet'; + @override String recentlyAddedIn({required Object library}) => 'Nyligt tilføjet i ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Oversigt'; @override String get cast => 'Rollebesætning'; @@ -2289,8 +2292,11 @@ extension on TranslationsDa { 'discover.noContentAvailable' => 'Intet indhold tilgængeligt', 'discover.addMediaToLibraries' => 'Tilføj medier til dine biblioteker', 'discover.continueWatching' => 'Fortsæt med at se', + 'discover.continueWatchingIn' => ({required Object library}) => 'Fortsæt med at se i ${library}', 'discover.nextUp' => 'Næste op', + 'discover.nextUpIn' => ({required Object library}) => 'Næste op i ${library}', 'discover.recentlyAdded' => 'Nyligt tilføjet', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Nyligt tilføjet i ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Oversigt', 'discover.cast' => 'Rollebesætning', @@ -2770,11 +2776,11 @@ extension on TranslationsDa { 'metadataEdit.tvdbAiring' => 'TheTVDB (Sendt)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolut)', 'metadataEdit.metadataLanguage' => 'Metadatasprog', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Brug originaltitel', 'metadataEdit.preferredAudioLanguage' => 'Foretrukket lydsprog', 'metadataEdit.preferredSubtitleLanguage' => 'Foretrukket undertekstsprog', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Auto-vælg underteksttilstand', 'metadataEdit.manuallySelected' => 'Manuelt valgt', 'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedsproget lyd', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index 4f494fea..a5abdd59 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverDe extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Kein Inhalt verfügbar'; @override String get addMediaToLibraries => 'Medien zur Mediathek hinzufügen'; @override String get continueWatching => 'Weiterschauen'; + @override String continueWatchingIn({required Object library}) => 'Weiterschauen in ${library}'; @override String get nextUp => 'Als Nächstes'; + @override String nextUpIn({required Object library}) => 'Als Nächstes in ${library}'; @override String get recentlyAdded => 'Kürzlich hinzugefügt'; + @override String recentlyAddedIn({required Object library}) => 'Kürzlich hinzugefügt in ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Übersicht'; @override String get cast => 'Besetzung'; @@ -2289,8 +2292,11 @@ extension on TranslationsDe { 'discover.noContentAvailable' => 'Kein Inhalt verfügbar', 'discover.addMediaToLibraries' => 'Medien zur Mediathek hinzufügen', 'discover.continueWatching' => 'Weiterschauen', + 'discover.continueWatchingIn' => ({required Object library}) => 'Weiterschauen in ${library}', 'discover.nextUp' => 'Als Nächstes', + 'discover.nextUpIn' => ({required Object library}) => 'Als Nächstes in ${library}', 'discover.recentlyAdded' => 'Kürzlich hinzugefügt', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Kürzlich hinzugefügt in ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Übersicht', 'discover.cast' => 'Besetzung', @@ -2770,11 +2776,11 @@ extension on TranslationsDe { 'metadataEdit.tvdbAiring' => 'TheTVDB (Ausgestrahlt)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolut)', 'metadataEdit.metadataLanguage' => 'Metadaten-Sprache', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Originaltitel verwenden', 'metadataEdit.preferredAudioLanguage' => 'Bevorzugte Audiosprache', 'metadataEdit.preferredSubtitleLanguage' => 'Bevorzugte Untertitelsprache', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Automatische Untertitelauswahl', 'metadataEdit.manuallySelected' => 'Manuell ausgewählt', 'metadataEdit.shownWithForeignAudio' => 'Bei fremdsprachigem Audio anzeigen', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 4f292032..675c903d 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -1814,12 +1814,21 @@ class TranslationsDiscoverEn { /// en: 'Continue Watching' String get continueWatching => 'Continue Watching'; + /// en: 'Continue Watching in ${library}' + String continueWatchingIn({required Object library}) => 'Continue Watching in ${library}'; + /// en: 'Next Up' String get nextUp => 'Next Up'; + /// en: 'Next Up in ${library}' + String nextUpIn({required Object library}) => 'Next Up in ${library}'; + /// en: 'Recently Added' String get recentlyAdded => 'Recently Added'; + /// en: 'Recently Added in ${library}' + String recentlyAddedIn({required Object library}) => 'Recently Added in ${library}'; + /// en: 'S${season}E${episode}' String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @@ -4551,8 +4560,11 @@ extension on Translations { 'discover.noContentAvailable' => 'No content available', 'discover.addMediaToLibraries' => 'Add some media to your libraries', 'discover.continueWatching' => 'Continue Watching', + 'discover.continueWatchingIn' => ({required Object library}) => 'Continue Watching in ${library}', 'discover.nextUp' => 'Next Up', + 'discover.nextUpIn' => ({required Object library}) => 'Next Up in ${library}', 'discover.recentlyAdded' => 'Recently Added', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Recently Added in ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Overview', 'discover.cast' => 'Cast', @@ -5032,11 +5044,11 @@ extension on Translations { 'metadataEdit.tvdbAiring' => 'TheTVDB (Aired)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolute)', 'metadataEdit.metadataLanguage' => 'Metadata Language', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Use Original Title', 'metadataEdit.preferredAudioLanguage' => 'Preferred Audio Language', 'metadataEdit.preferredSubtitleLanguage' => 'Preferred Subtitle Language', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Auto-Select Subtitle Mode', 'metadataEdit.manuallySelected' => 'Manually selected', 'metadataEdit.shownWithForeignAudio' => 'Shown with foreign audio', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index 28f511a6..bded60ae 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverEs extends TranslationsDiscoverEn { @override String get noContentAvailable => 'No hay contenido disponible'; @override String get addMediaToLibraries => 'Añade contenido a tus bibliotecas'; @override String get continueWatching => 'Seguir Viendo'; + @override String continueWatchingIn({required Object library}) => 'Seguir viendo en ${library}'; @override String get nextUp => 'A continuación'; + @override String nextUpIn({required Object library}) => 'A continuación en ${library}'; @override String get recentlyAdded => 'Añadido recientemente'; + @override String recentlyAddedIn({required Object library}) => 'Añadido recientemente en ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'T${season}E${episode}'; @override String get overview => 'Resumen'; @override String get cast => 'Reparto'; @@ -2289,8 +2292,11 @@ extension on TranslationsEs { 'discover.noContentAvailable' => 'No hay contenido disponible', 'discover.addMediaToLibraries' => 'Añade contenido a tus bibliotecas', 'discover.continueWatching' => 'Seguir Viendo', + 'discover.continueWatchingIn' => ({required Object library}) => 'Seguir viendo en ${library}', 'discover.nextUp' => 'A continuación', + 'discover.nextUpIn' => ({required Object library}) => 'A continuación en ${library}', 'discover.recentlyAdded' => 'Añadido recientemente', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Añadido recientemente en ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'T${season}E${episode}', 'discover.overview' => 'Resumen', 'discover.cast' => 'Reparto', @@ -2770,11 +2776,11 @@ extension on TranslationsEs { 'metadataEdit.tvdbAiring' => 'TheTVDB (Emisión)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absoluto)', 'metadataEdit.metadataLanguage' => 'Idioma de metadatos', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Usar título original', 'metadataEdit.preferredAudioLanguage' => 'Idioma de audio preferido', 'metadataEdit.preferredSubtitleLanguage' => 'Idioma de subtítulos preferido', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Selección automática de subtítulos', 'metadataEdit.manuallySelected' => 'Seleccionado manualmente', 'metadataEdit.shownWithForeignAudio' => 'Mostrar con audio extranjero', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 2ae186d7..3efc4243 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverFr extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Aucun contenu disponible'; @override String get addMediaToLibraries => 'Ajoutez des médias à votre bibliothèque'; @override String get continueWatching => 'Continuer à regarder'; + @override String continueWatchingIn({required Object library}) => 'Continuer à regarder dans ${library}'; @override String get nextUp => 'À suivre'; + @override String nextUpIn({required Object library}) => 'À suivre dans ${library}'; @override String get recentlyAdded => 'Récemment ajouté'; + @override String recentlyAddedIn({required Object library}) => 'Récemment ajouté dans ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Aperçu'; @override String get cast => 'Cast'; @@ -2289,8 +2292,11 @@ extension on TranslationsFr { 'discover.noContentAvailable' => 'Aucun contenu disponible', 'discover.addMediaToLibraries' => 'Ajoutez des médias à votre bibliothèque', 'discover.continueWatching' => 'Continuer à regarder', + 'discover.continueWatchingIn' => ({required Object library}) => 'Continuer à regarder dans ${library}', 'discover.nextUp' => 'À suivre', + 'discover.nextUpIn' => ({required Object library}) => 'À suivre dans ${library}', 'discover.recentlyAdded' => 'Récemment ajouté', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Récemment ajouté dans ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Aperçu', 'discover.cast' => 'Cast', @@ -2770,11 +2776,11 @@ extension on TranslationsFr { 'metadataEdit.tvdbAiring' => 'TheTVDB (Diffusion)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolu)', 'metadataEdit.metadataLanguage' => 'Langue des métadonnées', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Utiliser le titre original', 'metadataEdit.preferredAudioLanguage' => 'Langue audio préférée', 'metadataEdit.preferredSubtitleLanguage' => 'Langue de sous-titres préférée', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Sélection automatique des sous-titres', 'metadataEdit.manuallySelected' => 'Sélectionné manuellement', 'metadataEdit.shownWithForeignAudio' => 'Affichés avec audio étranger', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index 0ad85038..6f1f04e0 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverIt extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Nessun contenuto disponibile'; @override String get addMediaToLibraries => 'Aggiungi alcuni file multimediali alle tue librerie'; @override String get continueWatching => 'Continua a guardare'; + @override String continueWatchingIn({required Object library}) => 'Continua a guardare in ${library}'; @override String get nextUp => 'Prossimi'; + @override String nextUpIn({required Object library}) => 'Prossimi in ${library}'; @override String get recentlyAdded => 'Aggiunti di recente'; + @override String recentlyAddedIn({required Object library}) => 'Aggiunti di recente in ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Panoramica'; @override String get cast => 'Attori'; @@ -2289,8 +2292,11 @@ extension on TranslationsIt { 'discover.noContentAvailable' => 'Nessun contenuto disponibile', 'discover.addMediaToLibraries' => 'Aggiungi alcuni file multimediali alle tue librerie', 'discover.continueWatching' => 'Continua a guardare', + 'discover.continueWatchingIn' => ({required Object library}) => 'Continua a guardare in ${library}', 'discover.nextUp' => 'Prossimi', + 'discover.nextUpIn' => ({required Object library}) => 'Prossimi in ${library}', 'discover.recentlyAdded' => 'Aggiunti di recente', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Aggiunti di recente in ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Panoramica', 'discover.cast' => 'Attori', @@ -2770,11 +2776,11 @@ extension on TranslationsIt { 'metadataEdit.tvdbAiring' => 'TheTVDB (In onda)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Assoluto)', 'metadataEdit.metadataLanguage' => 'Lingua metadati', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Usa titolo originale', 'metadataEdit.preferredAudioLanguage' => 'Lingua audio preferita', 'metadataEdit.preferredSubtitleLanguage' => 'Lingua sottotitoli preferita', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Selezione automatica sottotitoli', 'metadataEdit.manuallySelected' => 'Selezionato manualmente', 'metadataEdit.shownWithForeignAudio' => 'Mostrati con audio straniero', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index 80ef0620..ead12b3d 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverJa extends TranslationsDiscoverEn { @override String get noContentAvailable => 'コンテンツがありません'; @override String get addMediaToLibraries => 'ライブラリにメディアを追加してください'; @override String get continueWatching => '視聴を続ける'; + @override String continueWatchingIn({required Object library}) => '${library}の視聴を続ける'; @override String get nextUp => '次のエピソード'; + @override String nextUpIn({required Object library}) => '${library}の次のエピソード'; @override String get recentlyAdded => '最近追加'; + @override String recentlyAddedIn({required Object library}) => '${library}に最近追加'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'あらすじ'; @override String get cast => 'キャスト'; @@ -2289,8 +2292,11 @@ extension on TranslationsJa { 'discover.noContentAvailable' => 'コンテンツがありません', 'discover.addMediaToLibraries' => 'ライブラリにメディアを追加してください', 'discover.continueWatching' => '視聴を続ける', + 'discover.continueWatchingIn' => ({required Object library}) => '${library}の視聴を続ける', 'discover.nextUp' => '次のエピソード', + 'discover.nextUpIn' => ({required Object library}) => '${library}の次のエピソード', 'discover.recentlyAdded' => '最近追加', + 'discover.recentlyAddedIn' => ({required Object library}) => '${library}に最近追加', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'あらすじ', 'discover.cast' => 'キャスト', @@ -2770,11 +2776,11 @@ extension on TranslationsJa { 'metadataEdit.tvdbAiring' => 'TheTVDB(放送順)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB(絶対順)', 'metadataEdit.metadataLanguage' => 'メタデータの言語', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => '原題を使用', 'metadataEdit.preferredAudioLanguage' => '優先音声言語', 'metadataEdit.preferredSubtitleLanguage' => '優先字幕言語', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => '字幕自動選択モード', 'metadataEdit.manuallySelected' => '手動選択', 'metadataEdit.shownWithForeignAudio' => '外国語音声時に表示', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index 292a2acd..8730ae9e 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverKo extends TranslationsDiscoverEn { @override String get noContentAvailable => '사용 가능한 콘텐츠가 없습니다'; @override String get addMediaToLibraries => '미디어 라이브러리에 미디어를 추가해 주세요'; @override String get continueWatching => '계속 시청'; + @override String continueWatchingIn({required Object library}) => '${library}에서 계속 시청'; @override String get nextUp => '다음 에피소드'; + @override String nextUpIn({required Object library}) => '${library}의 다음 에피소드'; @override String get recentlyAdded => '최근에 추가됨'; + @override String recentlyAddedIn({required Object library}) => '${library}에 최근에 추가됨'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => '개요'; @override String get cast => '출연진'; @@ -2289,8 +2292,11 @@ extension on TranslationsKo { 'discover.noContentAvailable' => '사용 가능한 콘텐츠가 없습니다', 'discover.addMediaToLibraries' => '미디어 라이브러리에 미디어를 추가해 주세요', 'discover.continueWatching' => '계속 시청', + 'discover.continueWatchingIn' => ({required Object library}) => '${library}에서 계속 시청', 'discover.nextUp' => '다음 에피소드', + 'discover.nextUpIn' => ({required Object library}) => '${library}의 다음 에피소드', 'discover.recentlyAdded' => '최근에 추가됨', + 'discover.recentlyAddedIn' => ({required Object library}) => '${library}에 최근에 추가됨', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => '개요', 'discover.cast' => '출연진', @@ -2770,11 +2776,11 @@ extension on TranslationsKo { 'metadataEdit.tvdbAiring' => 'TheTVDB (방영순)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (절대순)', 'metadataEdit.metadataLanguage' => '메타데이터 언어', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => '원제 사용', 'metadataEdit.preferredAudioLanguage' => '선호 오디오 언어', 'metadataEdit.preferredSubtitleLanguage' => '선호 자막 언어', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => '자막 자동 선택 모드', 'metadataEdit.manuallySelected' => '수동 선택', 'metadataEdit.shownWithForeignAudio' => '외국어 오디오 시 표시', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index f1d3e240..8a76b0e7 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverNb extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Ingen innhold tilgjengelig'; @override String get addMediaToLibraries => 'Legg til medier i bibliotekene dine'; @override String get continueWatching => 'Fortsett å se'; + @override String continueWatchingIn({required Object library}) => 'Fortsett å se i ${library}'; @override String get nextUp => 'Neste opp'; + @override String nextUpIn({required Object library}) => 'Neste opp i ${library}'; @override String get recentlyAdded => 'Nylig lagt til'; + @override String recentlyAddedIn({required Object library}) => 'Nylig lagt til i ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Oversikt'; @override String get cast => 'Skuespillere'; @@ -2289,8 +2292,11 @@ extension on TranslationsNb { 'discover.noContentAvailable' => 'Ingen innhold tilgjengelig', 'discover.addMediaToLibraries' => 'Legg til medier i bibliotekene dine', 'discover.continueWatching' => 'Fortsett å se', + 'discover.continueWatchingIn' => ({required Object library}) => 'Fortsett å se i ${library}', 'discover.nextUp' => 'Neste opp', + 'discover.nextUpIn' => ({required Object library}) => 'Neste opp i ${library}', 'discover.recentlyAdded' => 'Nylig lagt til', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Nylig lagt til i ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Oversikt', 'discover.cast' => 'Skuespillere', @@ -2770,11 +2776,11 @@ extension on TranslationsNb { 'metadataEdit.tvdbAiring' => 'TheTVDB (Sendt)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolutt)', 'metadataEdit.metadataLanguage' => 'Metadataspråk', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Bruk originaltittel', 'metadataEdit.preferredAudioLanguage' => 'Foretrukket lydspråk', 'metadataEdit.preferredSubtitleLanguage' => 'Foretrukket undertekstspråk', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Automatisk valg av undertekstmodus', 'metadataEdit.manuallySelected' => 'Manuelt valgt', 'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedspråklig lyd', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index 6db5f8b1..361e5608 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverNl extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Geen inhoud beschikbaar'; @override String get addMediaToLibraries => 'Voeg wat media toe aan je bibliotheken'; @override String get continueWatching => 'Verder kijken'; + @override String continueWatchingIn({required Object library}) => 'Verder kijken in ${library}'; @override String get nextUp => 'Volgende'; + @override String nextUpIn({required Object library}) => 'Volgende in ${library}'; @override String get recentlyAdded => 'Recent toegevoegd'; + @override String recentlyAddedIn({required Object library}) => 'Recent toegevoegd in ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Overzicht'; @override String get cast => 'Acteurs'; @@ -2289,8 +2292,11 @@ extension on TranslationsNl { 'discover.noContentAvailable' => 'Geen inhoud beschikbaar', 'discover.addMediaToLibraries' => 'Voeg wat media toe aan je bibliotheken', 'discover.continueWatching' => 'Verder kijken', + 'discover.continueWatchingIn' => ({required Object library}) => 'Verder kijken in ${library}', 'discover.nextUp' => 'Volgende', + 'discover.nextUpIn' => ({required Object library}) => 'Volgende in ${library}', 'discover.recentlyAdded' => 'Recent toegevoegd', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Recent toegevoegd in ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Overzicht', 'discover.cast' => 'Acteurs', @@ -2770,11 +2776,11 @@ extension on TranslationsNl { 'metadataEdit.tvdbAiring' => 'TheTVDB (Uitgezonden)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absoluut)', 'metadataEdit.metadataLanguage' => 'Metadatataal', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Oorspronkelijke titel gebruiken', 'metadataEdit.preferredAudioLanguage' => 'Voorkeurstaal audio', 'metadataEdit.preferredSubtitleLanguage' => 'Voorkeurstaal ondertiteling', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Automatische ondertitelselectie', 'metadataEdit.manuallySelected' => 'Handmatig geselecteerd', 'metadataEdit.shownWithForeignAudio' => 'Weergeven bij anderstalig geluid', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index a6f76d25..e5047d0a 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverPl extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Brak dostępnych treści'; @override String get addMediaToLibraries => 'Dodaj multimedia do swoich bibliotek'; @override String get continueWatching => 'Kontynuuj oglądanie'; + @override String continueWatchingIn({required Object library}) => 'Kontynuuj oglądanie w ${library}'; @override String get nextUp => 'Następny odcinek'; + @override String nextUpIn({required Object library}) => 'Następny odcinek w ${library}'; @override String get recentlyAdded => 'Ostatnio dodane'; + @override String recentlyAddedIn({required Object library}) => 'Ostatnio dodane w ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Opis'; @override String get cast => 'Obsada'; @@ -2289,8 +2292,11 @@ extension on TranslationsPl { 'discover.noContentAvailable' => 'Brak dostępnych treści', 'discover.addMediaToLibraries' => 'Dodaj multimedia do swoich bibliotek', 'discover.continueWatching' => 'Kontynuuj oglądanie', + 'discover.continueWatchingIn' => ({required Object library}) => 'Kontynuuj oglądanie w ${library}', 'discover.nextUp' => 'Następny odcinek', + 'discover.nextUpIn' => ({required Object library}) => 'Następny odcinek w ${library}', 'discover.recentlyAdded' => 'Ostatnio dodane', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Ostatnio dodane w ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Opis', 'discover.cast' => 'Obsada', @@ -2770,11 +2776,11 @@ extension on TranslationsPl { 'metadataEdit.tvdbAiring' => 'TheTVDB (Emisja)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolutna)', 'metadataEdit.metadataLanguage' => 'Język metadanych', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Użyj oryginalnego tytułu', 'metadataEdit.preferredAudioLanguage' => 'Preferowany język audio', 'metadataEdit.preferredSubtitleLanguage' => 'Preferowany język napisów', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Tryb automatycznego wyboru napisów', 'metadataEdit.manuallySelected' => 'Wybrany ręcznie', 'metadataEdit.shownWithForeignAudio' => 'Wyświetlane przy obcojęzycznym audio', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index c0605f4f..470f6abf 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverPt extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Nenhum conteúdo disponível'; @override String get addMediaToLibraries => 'Adicione mídias às suas bibliotecas'; @override String get continueWatching => 'Continuar Assistindo'; + @override String continueWatchingIn({required Object library}) => 'Continuar assistindo em ${library}'; @override String get nextUp => 'A seguir'; + @override String nextUpIn({required Object library}) => 'A seguir em ${library}'; @override String get recentlyAdded => 'Adicionados recentemente'; + @override String recentlyAddedIn({required Object library}) => 'Adicionados recentemente em ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Sinopse'; @override String get cast => 'Elenco'; @@ -2289,8 +2292,11 @@ extension on TranslationsPt { 'discover.noContentAvailable' => 'Nenhum conteúdo disponível', 'discover.addMediaToLibraries' => 'Adicione mídias às suas bibliotecas', 'discover.continueWatching' => 'Continuar Assistindo', + 'discover.continueWatchingIn' => ({required Object library}) => 'Continuar assistindo em ${library}', 'discover.nextUp' => 'A seguir', + 'discover.nextUpIn' => ({required Object library}) => 'A seguir em ${library}', 'discover.recentlyAdded' => 'Adicionados recentemente', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Adicionados recentemente em ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Sinopse', 'discover.cast' => 'Elenco', @@ -2770,11 +2776,11 @@ extension on TranslationsPt { 'metadataEdit.tvdbAiring' => 'TheTVDB (Exibição)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absoluto)', 'metadataEdit.metadataLanguage' => 'Idioma dos Metadados', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Usar Título Original', 'metadataEdit.preferredAudioLanguage' => 'Idioma de Áudio Preferido', 'metadataEdit.preferredSubtitleLanguage' => 'Idioma de Legenda Preferido', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Modo de Seleção Automática de Legendas', 'metadataEdit.manuallySelected' => 'Seleção manual', 'metadataEdit.shownWithForeignAudio' => 'Exibir com áudio estrangeiro', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index ffe30f23..96aabf79 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverRu extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Контент недоступен'; @override String get addMediaToLibraries => 'Добавьте медиафайлы в ваши библиотеки'; @override String get continueWatching => 'Продолжить просмотр'; + @override String continueWatchingIn({required Object library}) => 'Продолжить просмотр в ${library}'; @override String get nextUp => 'Далее'; + @override String nextUpIn({required Object library}) => 'Далее в ${library}'; @override String get recentlyAdded => 'Недавно добавленное'; + @override String recentlyAddedIn({required Object library}) => 'Недавно добавленное в ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Обзор'; @override String get cast => 'В ролях'; @@ -2289,8 +2292,11 @@ extension on TranslationsRu { 'discover.noContentAvailable' => 'Контент недоступен', 'discover.addMediaToLibraries' => 'Добавьте медиафайлы в ваши библиотеки', 'discover.continueWatching' => 'Продолжить просмотр', + 'discover.continueWatchingIn' => ({required Object library}) => 'Продолжить просмотр в ${library}', 'discover.nextUp' => 'Далее', + 'discover.nextUpIn' => ({required Object library}) => 'Далее в ${library}', 'discover.recentlyAdded' => 'Недавно добавленное', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Недавно добавленное в ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Обзор', 'discover.cast' => 'В ролях', @@ -2770,11 +2776,11 @@ extension on TranslationsRu { 'metadataEdit.tvdbAiring' => 'TheTVDB (Эфирный)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Абсолютный)', 'metadataEdit.metadataLanguage' => 'Язык метаданных', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Использовать оригинальное название', 'metadataEdit.preferredAudioLanguage' => 'Предпочитаемый язык аудио', 'metadataEdit.preferredSubtitleLanguage' => 'Предпочитаемый язык субтитров', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Автовыбор субтитров', 'metadataEdit.manuallySelected' => 'Выбор вручную', 'metadataEdit.shownWithForeignAudio' => 'Показывать при иноязычном аудио', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 81eb5ef5..50dd5e3b 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverSv extends TranslationsDiscoverEn { @override String get noContentAvailable => 'Inget innehåll tillgängligt'; @override String get addMediaToLibraries => 'Lägg till media till dina bibliotek'; @override String get continueWatching => 'Fortsätt titta'; + @override String continueWatchingIn({required Object library}) => 'Fortsätt titta i ${library}'; @override String get nextUp => 'Nästa'; + @override String nextUpIn({required Object library}) => 'Nästa i ${library}'; @override String get recentlyAdded => 'Nyligen tillagda'; + @override String recentlyAddedIn({required Object library}) => 'Nyligen tillagda i ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Översikt'; @override String get cast => 'Rollbesättning'; @@ -2289,8 +2292,11 @@ extension on TranslationsSv { 'discover.noContentAvailable' => 'Inget innehåll tillgängligt', 'discover.addMediaToLibraries' => 'Lägg till media till dina bibliotek', 'discover.continueWatching' => 'Fortsätt titta', + 'discover.continueWatchingIn' => ({required Object library}) => 'Fortsätt titta i ${library}', 'discover.nextUp' => 'Nästa', + 'discover.nextUpIn' => ({required Object library}) => 'Nästa i ${library}', 'discover.recentlyAdded' => 'Nyligen tillagda', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Nyligen tillagda i ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Översikt', 'discover.cast' => 'Rollbesättning', @@ -2770,11 +2776,11 @@ extension on TranslationsSv { 'metadataEdit.tvdbAiring' => 'TheTVDB (Sändning)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolut)', 'metadataEdit.metadataLanguage' => 'Metadataspråk', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => 'Använd originaltitel', 'metadataEdit.preferredAudioLanguage' => 'Föredraget ljudspråk', 'metadataEdit.preferredSubtitleLanguage' => 'Föredraget undertextspråk', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => 'Automatiskt val av undertexter', 'metadataEdit.manuallySelected' => 'Manuellt vald', 'metadataEdit.shownWithForeignAudio' => 'Visas vid främmande ljud', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index e906c741..094d7f91 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -786,8 +786,11 @@ class _TranslationsDiscoverZh extends TranslationsDiscoverEn { @override String get noContentAvailable => '没有可用内容'; @override String get addMediaToLibraries => '请向你的媒体库添加一些媒体'; @override String get continueWatching => '继续观看'; + @override String continueWatchingIn({required Object library}) => '${library} 中继续观看'; @override String get nextUp => '接下来'; + @override String nextUpIn({required Object library}) => '${library} 中接下来'; @override String get recentlyAdded => '最近添加'; + @override String recentlyAddedIn({required Object library}) => '${library} 中最近添加'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => '概述'; @override String get cast => '演员表'; @@ -2289,8 +2292,11 @@ extension on TranslationsZh { 'discover.noContentAvailable' => '没有可用内容', 'discover.addMediaToLibraries' => '请向你的媒体库添加一些媒体', 'discover.continueWatching' => '继续观看', + 'discover.continueWatchingIn' => ({required Object library}) => '${library} 中继续观看', 'discover.nextUp' => '接下来', + 'discover.nextUpIn' => ({required Object library}) => '${library} 中接下来', 'discover.recentlyAdded' => '最近添加', + 'discover.recentlyAddedIn' => ({required Object library}) => '${library} 中最近添加', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => '概述', 'discover.cast' => '演员表', @@ -2770,11 +2776,11 @@ extension on TranslationsZh { 'metadataEdit.tvdbAiring' => 'TheTVDB(播出顺序)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB(绝对顺序)', 'metadataEdit.metadataLanguage' => '元数据语言', + _ => null, + } ?? switch (path) { 'metadataEdit.useOriginalTitle' => '使用原始标题', 'metadataEdit.preferredAudioLanguage' => '首选音频语言', 'metadataEdit.preferredSubtitleLanguage' => '首选字幕语言', - _ => null, - } ?? switch (path) { 'metadataEdit.subtitleMode' => '自动选择字幕模式', 'metadataEdit.manuallySelected' => '手动选择', 'metadataEdit.shownWithForeignAudio' => '外语音频时显示', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 46d22c77..e07ae06d 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "Inget innehåll tillgängligt", "addMediaToLibraries": "Lägg till media till dina bibliotek", "continueWatching": "Fortsätt titta", + "continueWatchingIn": "Fortsätt titta i ${library}", "nextUp": "Nästa", + "nextUpIn": "Nästa i ${library}", "recentlyAdded": "Nyligen tillagda", + "recentlyAddedIn": "Nyligen tillagda i ${library}", "playEpisode": "S${season}E${episode}", "overview": "Översikt", "cast": "Rollbesättning", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index f9f59ee2..c509a369 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -584,8 +584,11 @@ "noContentAvailable": "没有可用内容", "addMediaToLibraries": "请向你的媒体库添加一些媒体", "continueWatching": "继续观看", + "continueWatchingIn": "${library} 中继续观看", "nextUp": "接下来", + "nextUpIn": "${library} 中接下来", "recentlyAdded": "最近添加", + "recentlyAddedIn": "${library} 中最近添加", "playEpisode": "S${season}E${episode}", "overview": "概述", "cast": "演员表", diff --git a/lib/media/media_server_client.dart b/lib/media/media_server_client.dart index 5e8bdd7b..8b5b9ea8 100644 --- a/lib/media/media_server_client.dart +++ b/lib/media/media_server_client.dart @@ -209,8 +209,10 @@ abstract class MediaServerClient { /// synthesizes `Latest` + `Resume` + `NextUp`). Future> fetchGlobalHubs({int limit = 10}); - /// Hubs scoped to a single library section. - Future> fetchLibraryHubs(String libraryId, {int limit = 10}); + /// Hubs scoped to a single library section. [libraryName] is baked into + /// the title of synthetic hubs (Jellyfin) so per-library "Recently Added" + /// / "Next Up" hubs aren't all identically named on the home screen. + Future> fetchLibraryHubs(String libraryId, {required String libraryName, int limit = 10}); /// "More like this" recommendations for [id]. Future> fetchRelatedHubs(String id, {int count = 10}); diff --git a/lib/screens/libraries/tabs/library_recommended_tab.dart b/lib/screens/libraries/tabs/library_recommended_tab.dart index 02797a7a..92b8e7a1 100644 --- a/lib/screens/libraries/tabs/library_recommended_tab.dart +++ b/lib/screens/libraries/tabs/library_recommended_tab.dart @@ -72,7 +72,9 @@ class _LibraryRecommendedTabState extends BaseLibraryTabState[] : List.of(await client.fetchLibraryHubs(widget.library.id, limit: 12)); + final hubs = client == null + ? [] + : List.of(await client.fetchLibraryHubs(widget.library.id, libraryName: widget.library.title, limit: 12)); // Move Continue Watching hub to the front if present final cwIndex = hubs.indexWhere(_isContinueWatchingHub); diff --git a/lib/services/data_aggregation_service.dart b/lib/services/data_aggregation_service.dart index 28765370..db3c7b06 100644 --- a/lib/services/data_aggregation_service.dart +++ b/lib/services/data_aggregation_service.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import '../i18n/strings.g.dart'; import '../media/media_hub.dart'; import '../media/media_item.dart'; import '../media/media_kind.dart'; @@ -148,7 +149,7 @@ class DataAggregationService { if (hiddenLibraryKeys != null && hiddenLibraryKeys.contains(l.globalKey)) return false; return true; }); - final futures = visible.map((l) => client.fetchLibraryHubs(l.id, limit: limit)); + final futures = visible.map((l) => client.fetchLibraryHubs(l.id, libraryName: l.title, limit: limit)); final results = await Future.wait(futures); return [for (final list in results) ...list]; } @@ -262,7 +263,7 @@ class DataAggregationService { for (final entry in groups.entries) { final items = entry.value; final libraryName = _resolveLibraryName(items.first, libraries); - final title = libraryName != null ? 'Recently Added in $libraryName' : hub.title; + final title = libraryName != null ? t.discover.recentlyAddedIn(library: libraryName) : hub.title; result.add( hub.copyWith( diff --git a/lib/services/jellyfin_client.dart b/lib/services/jellyfin_client.dart index effacce7..e0eb7658 100644 --- a/lib/services/jellyfin_client.dart +++ b/lib/services/jellyfin_client.dart @@ -1161,7 +1161,7 @@ class JellyfinClient with MediaServerCacheMixin implements MediaServerClient, Sc } @override - Future> fetchLibraryHubs(String libraryId, {int limit = 10}) async { + Future> fetchLibraryHubs(String libraryId, {required String libraryName, int limit = 10}) async { // Mirror the Jellyfin web client's per-library "Suggestions" tab: // Continue Watching + Next Up (TV libraries) + Recently Added. // @@ -1200,7 +1200,7 @@ class JellyfinClient with MediaServerCacheMixin implements MediaServerClient, Sc JellyfinMappers.syntheticHub( mapItem: _mapItem, identifier: 'library.$libraryId.continue', - title: t.discover.continueWatching, + title: t.discover.continueWatchingIn(library: libraryName), type: 'mixed', items: results[1], serverId: serverId, @@ -1209,7 +1209,7 @@ class JellyfinClient with MediaServerCacheMixin implements MediaServerClient, Sc JellyfinMappers.syntheticHub( mapItem: _mapItem, identifier: 'library.$libraryId.nextup', - title: t.discover.nextUp, + title: t.discover.nextUpIn(library: libraryName), type: 'episode', items: results[2], serverId: serverId, @@ -1218,7 +1218,7 @@ class JellyfinClient with MediaServerCacheMixin implements MediaServerClient, Sc JellyfinMappers.syntheticHub( mapItem: _mapItem, identifier: 'library.$libraryId.recent', - title: t.discover.recentlyAdded, + title: t.discover.recentlyAddedIn(library: libraryName), type: 'mixed', items: results[0], serverId: serverId, diff --git a/lib/services/plex_client.dart b/lib/services/plex_client.dart index b1d39a0a..90260391 100644 --- a/lib/services/plex_client.dart +++ b/lib/services/plex_client.dart @@ -3019,7 +3019,9 @@ class PlexClient with MediaServerCacheMixin, _PlexLiveTvClientMethods implements } @override - Future> fetchLibraryHubs(String libraryId, {int limit = 10}) async { + Future> fetchLibraryHubs(String libraryId, {required String libraryName, int limit = 10}) async { + // libraryName is unused: Plex's /hubs/sections/{id} returns hubs already + // titled per-library (e.g. "Recently Added in Movies"). final hubs = await _getLibraryHubs(libraryId, limit: limit); return hubs.map((h) => PlexMappers.mediaHub(h)).toList(); } diff --git a/test/services/jellyfin_client_urls_test.dart b/test/services/jellyfin_client_urls_test.dart index fdbb4f4c..ddf1d253 100644 --- a/test/services/jellyfin_client_urls_test.dart +++ b/test/services/jellyfin_client_urls_test.dart @@ -968,7 +968,7 @@ void main() { final client = buildClient(); addTearDown(client.close); - await client.fetchLibraryHubs('lib-99', limit: 12); + await client.fetchLibraryHubs('lib-99', libraryName: 'Movies', limit: 12); final nextUp = captured.singleWhere((uri) => uri.path == '/Shows/NextUp'); expect(nextUp.queryParameters['ParentId'], 'lib-99');