diff --git a/lib/i18n/az.i18n.json b/lib/i18n/az.i18n.json index 61e5724b..02232c33 100644 --- a/lib/i18n/az.i18n.json +++ b/lib/i18n/az.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} dəqiqə", "rememberTrackSelections": "Hər film/serial üçün səs/altyazı seçimlərini xatırla", "rememberTrackSelectionsDescription": "Hər məzmun üçün səs və altyazı seçimlərini yadda saxla", + "followServerTrackSelections": "Hər epizod üçün serverin trek seçimlərini istifadə et", + "followServerTrackSelectionsDescription": "Epizod dəyişəndə cari seçimi köçürmək əvəzinə serverdə seçilmiş səs və altyazını tətbiq et", "showChapterMarkersOnTimeline": "Zaman çubuğunda hissə işarələrini göstər", "showChapterMarkersOnTimelineDescription": "Zaman çubuğunu hissə sərhədlərinə böl", "clickVideoTogglesPlayback": "Oynat/fasilə üçün videoya toxun", diff --git a/lib/i18n/bg.i18n.json b/lib/i18n/bg.i18n.json index ed1aa3be..e4f3cce2 100644 --- a/lib/i18n/bg.i18n.json +++ b/lib/i18n/bg.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} минути", "rememberTrackSelections": "Запомняй избора на аудио и субтитри за всеки сериал или филм", "rememberTrackSelectionsDescription": "Запомняй избора на аудиопътечка и субтитри за всяко заглавие", + "followServerTrackSelections": "Използвай избора на пътечки от сървъра за всеки епизод", + "followServerTrackSelectionsDescription": "При смяна на епизода прилагай избраните на сървъра аудио и субтитри, вместо да се пренася текущият избор", "showChapterMarkersOnTimeline": "Показвай маркери на глави върху времевата линия", "showChapterMarkersOnTimelineDescription": "Разделяй времевата линия на сегменти по границите на главите", "clickVideoTogglesPlayback": "Клик върху видеото превключва възпроизвеждане/пауза", diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index f8a26614..44e235c4 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minutter", "rememberTrackSelections": "Husk sporvalg for hver serie/film", "rememberTrackSelectionsDescription": "Husk valget af lyd og undertekster for hver titel", + "followServerTrackSelections": "Brug serverens sporvalg for hvert afsnit", + "followServerTrackSelectionsDescription": "Ved afsnitsskift anvendes lyden og underteksterne valgt på serveren i stedet for at videreføre det aktuelle valg", "showChapterMarkersOnTimeline": "Vis kapitelmarkører på tidslinjen", "showChapterMarkersOnTimelineDescription": "Opdel tidslinjen ved kapitelgrænser", "clickVideoTogglesPlayback": "Klik på videoen for at skifte mellem afspilning og pause", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index d66218ed..a9acbb29 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} Minuten", "rememberTrackSelections": "Spurauswahl pro Serie/Film merken", "rememberTrackSelectionsDescription": "Audio- und Untertitelauswahl je Titel merken", + "followServerTrackSelections": "Serverseitige Spurauswahl pro Episode verwenden", + "followServerTrackSelectionsDescription": "Beim Episodenwechsel die auf dem Server ausgewählten Audio- und Untertitelspuren übernehmen, statt die aktuelle Auswahl zu übertragen", "showChapterMarkersOnTimeline": "Kapitelmarkierungen auf der Suchleiste anzeigen", "showChapterMarkersOnTimelineDescription": "Die Suchleiste an Kapitelgrenzen unterteilen", "clickVideoTogglesPlayback": "Video zum Abspielen oder Pausieren anklicken", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index 203a2100..c097b576 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minutes", "rememberTrackSelections": "Remember track selections per show/movie", "rememberTrackSelectionsDescription": "Remember audio and subtitle choices per title", + "followServerTrackSelections": "Use server's per-episode track selections", + "followServerTrackSelectionsDescription": "On episode change, apply the audio and subtitles selected on the server instead of carrying over the current choice", "showChapterMarkersOnTimeline": "Show chapter markers on seek bar", "showChapterMarkersOnTimelineDescription": "Segment the seek bar at chapter boundaries", "clickVideoTogglesPlayback": "Click on video to toggle play/pause", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 3961dfcf..6dfe7a79 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minutos", "rememberTrackSelections": "Recordar selección de pistas por serie/película", "rememberTrackSelectionsDescription": "Recordar opciones de audio y subtítulos por título", + "followServerTrackSelections": "Usar la selección de pistas del servidor por episodio", + "followServerTrackSelectionsDescription": "Al cambiar de episodio, aplicar el audio y los subtítulos seleccionados en el servidor en lugar de mantener la elección actual", "showChapterMarkersOnTimeline": "Mostrar marcadores de capítulos en la barra de progreso", "showChapterMarkersOnTimelineDescription": "Dividir la barra de progreso en los límites de capítulos", "clickVideoTogglesPlayback": "Clic en el video para reproducir/pausar", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 8bb2aabf..d3df75d0 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minutes", "rememberTrackSelections": "Mémoriser les pistes choisies pour chaque série ou film", "rememberTrackSelectionsDescription": "Mémoriser les choix audio et sous-titres par titre", + "followServerTrackSelections": "Utiliser les pistes sélectionnées sur le serveur pour chaque épisode", + "followServerTrackSelectionsDescription": "Au changement d'épisode, appliquer l'audio et les sous-titres sélectionnés sur le serveur au lieu de conserver le choix en cours", "showChapterMarkersOnTimeline": "Afficher les marqueurs de chapitres sur la barre de lecture", "showChapterMarkersOnTimelineDescription": "Segmenter la barre de lecture aux limites des chapitres", "clickVideoTogglesPlayback": "Cliquer sur la vidéo pour alterner entre lecture et pause", diff --git a/lib/i18n/hu.i18n.json b/lib/i18n/hu.i18n.json index 272ea514..942146e9 100644 --- a/lib/i18n/hu.i18n.json +++ b/lib/i18n/hu.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} perc", "rememberTrackSelections": "Sávválasztások megjegyzése sorozatonként/filmenként", "rememberTrackSelectionsDescription": "Hang- és feliratválasztások megjegyzése címenként", + "followServerTrackSelections": "A szerver epizódonkénti sávválasztásának használata", + "followServerTrackSelectionsDescription": "Epizódváltáskor a szerveren kiválasztott hang és felirat lép életbe az aktuális választás átvitele helyett", "showChapterMarkersOnTimeline": "Fejezetjelölők megjelenítése az idősávon", "showChapterMarkersOnTimelineDescription": "Az idősáv felosztása a fejezetek határainál", "clickVideoTogglesPlayback": "Kattintás a videóra a lejátszás/szünet váltásához", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index e81cd9f4..61d24247 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minuti", "rememberTrackSelections": "Ricorda la selezione delle tracce per ogni serie o film", "rememberTrackSelectionsDescription": "Ricorda le scelte di audio e sottotitoli per ogni titolo", + "followServerTrackSelections": "Usa le tracce selezionate sul server per ogni episodio", + "followServerTrackSelectionsDescription": "Al cambio di episodio applica l'audio e i sottotitoli selezionati sul server invece di mantenere la scelta corrente", "showChapterMarkersOnTimeline": "Mostra i marcatori dei capitoli sulla barra di avanzamento", "showChapterMarkersOnTimelineDescription": "Segmenta la barra di avanzamento ai confini dei capitoli", "clickVideoTogglesPlayback": "Fai clic sul video per alternare riproduzione e pausa", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index 5177255a..f40f7bdb 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes}分", "rememberTrackSelections": "番組/映画ごとにトラック選択を記憶", "rememberTrackSelectionsDescription": "タイトルごとに音声と字幕の選択を記憶します", + "followServerTrackSelections": "サーバーのエピソードごとのトラック選択を使用", + "followServerTrackSelectionsDescription": "エピソード切り替え時に、現在の選択を引き継ぐ代わりにサーバーで選択された音声と字幕を適用します", "showChapterMarkersOnTimeline": "シークバーにチャプターマーカーを表示", "showChapterMarkersOnTimelineDescription": "チャプターの境界でシークバーを区切る", "clickVideoTogglesPlayback": "動画クリックで再生/一時停止を切替", diff --git a/lib/i18n/kk.i18n.json b/lib/i18n/kk.i18n.json index 62ea7585..35dac301 100644 --- a/lib/i18n/kk.i18n.json +++ b/lib/i18n/kk.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} минут", "rememberTrackSelections": "Әр фильм/сериал үшін дыбыс/субтитр таңдауын есте сақтау", "rememberTrackSelectionsDescription": "Әр медиа үшін дыбыс пен субтитр таңдауын сақтау", + "followServerTrackSelections": "Әр бөлім үшін сервердегі жолдар таңдауын қолдану", + "followServerTrackSelectionsDescription": "Бөлім ауысқанда ағымдағы таңдауды көшірудің орнына серверде таңдалған дыбыс пен субтитрлерді қолдану", "showChapterMarkersOnTimeline": "Уақыт шкаласында бөлім белгілерін көрсету", "showChapterMarkersOnTimelineDescription": "Уақыт шкаласын бөлімдерге бөлу", "clickVideoTogglesPlayback": "Ойнату/кідірту үшін видеоны басу", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 36e209d4..802d7911 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes}분", "rememberTrackSelections": "시리즈/영화별 트랙 선택 기억", "rememberTrackSelectionsDescription": "작품별 오디오 및 자막 선택 기억", + "followServerTrackSelections": "서버의 에피소드별 트랙 선택 사용", + "followServerTrackSelectionsDescription": "에피소드 전환 시 현재 선택을 유지하는 대신 서버에서 선택된 오디오와 자막을 적용합니다", "showChapterMarkersOnTimeline": "탐색 막대에 챕터 마커 표시", "showChapterMarkersOnTimelineDescription": "챕터 경계에서 탐색 막대 구분", "clickVideoTogglesPlayback": "동영상 클릭으로 재생/일시정지 전환", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index f2969b60..d80c19ad 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minutter", "rememberTrackSelections": "Husk sporvalg per serie/film", "rememberTrackSelectionsDescription": "Husk lyd- og undertekstvalg per tittel", + "followServerTrackSelections": "Bruk serverens sporvalg per episode", + "followServerTrackSelectionsDescription": "Ved episodebytte brukes lyden og undertekstene som er valgt på serveren, i stedet for å videreføre gjeldende valg", "showChapterMarkersOnTimeline": "Vis kapittelmarkører på tidslinjen", "showChapterMarkersOnTimelineDescription": "Del tidslinjen ved kapittelgrenser", "clickVideoTogglesPlayback": "Klikk på video for å veksle avspilling", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index c0653ce9..12844999 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minuten", "rememberTrackSelections": "Trackselecties per serie of film onthouden", "rememberTrackSelectionsDescription": "Onthoud audio- en ondertitelkeuzes per titel", + "followServerTrackSelections": "Trackselecties van de server per aflevering gebruiken", + "followServerTrackSelectionsDescription": "Pas bij het wisselen van aflevering de op de server geselecteerde audio en ondertitels toe in plaats van de huidige keuze over te nemen", "showChapterMarkersOnTimeline": "Hoofdstukmarkeringen op tijdlijn tonen", "showChapterMarkersOnTimelineDescription": "Verdeel de tijdlijn bij hoofdstukgrenzen", "clickVideoTogglesPlayback": "Klik op de video om afspelen of pauzeren te wisselen", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index 05a1d97c..9a762b0d 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minut", "rememberTrackSelections": "Zapamiętuj wybór ścieżek dla każdego serialu i filmu", "rememberTrackSelectionsDescription": "Zapamiętuj wybór ścieżki dźwiękowej i napisów dla każdego tytułu", + "followServerTrackSelections": "Używaj wyboru ścieżek z serwera dla każdego odcinka", + "followServerTrackSelectionsDescription": "Przy zmianie odcinka stosuj ścieżkę dźwiękową i napisy wybrane na serwerze zamiast przenosić bieżący wybór", "showChapterMarkersOnTimeline": "Pokaż znaczniki rozdziałów na pasku przewijania", "showChapterMarkersOnTimelineDescription": "Podziel pasek przewijania na granicach rozdziałów", "clickVideoTogglesPlayback": "Kliknięcie wideo przełącza odtwarzanie/pauzę", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index d4324459..406f5ffd 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minutos", "rememberTrackSelections": "Lembrar seleção de faixas por série/filme", "rememberTrackSelectionsDescription": "Lembrar escolhas de áudio e legendas por título", + "followServerTrackSelections": "Usar a seleção de faixas do servidor por episódio", + "followServerTrackSelectionsDescription": "Ao mudar de episódio, aplicar o áudio e as legendas selecionados no servidor em vez de manter a escolha atual", "showChapterMarkersOnTimeline": "Mostrar marcadores de capítulos na barra de reprodução", "showChapterMarkersOnTimelineDescription": "Segmentar a barra de reprodução nos limites dos capítulos", "clickVideoTogglesPlayback": "Clicar no vídeo para alternar reprodução/pausa", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index 5b3fe329..e851058c 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} мин", "rememberTrackSelections": "Запоминать выбор дорожек для каждого сериала/фильма", "rememberTrackSelectionsDescription": "Запоминать выбор аудиодорожки и субтитров для каждого материала", + "followServerTrackSelections": "Использовать выбор дорожек сервера для каждой серии", + "followServerTrackSelectionsDescription": "При смене серии применять аудио и субтитры, выбранные на сервере, вместо переноса текущего выбора", "showChapterMarkersOnTimeline": "Показывать маркеры глав на шкале перемотки", "showChapterMarkersOnTimelineDescription": "Разделять шкалу перемотки по границам глав", "clickVideoTogglesPlayback": "Нажатие на видео запускает или приостанавливает воспроизведение", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index e4bf987b..ac1fbf02 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,7 +4,7 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 22 -/// Strings: 32869 (1494 per locale) +/// Strings: 32913 (1496 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_az.g.dart b/lib/i18n/strings_az.g.dart index a72359ad..12681937 100644 --- a/lib/i18n/strings_az.g.dart +++ b/lib/i18n/strings_az.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$az extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} dəqiqə'; @override String get rememberTrackSelections => 'Hər film/serial üçün səs/altyazı seçimlərini xatırla'; @override String get rememberTrackSelectionsDescription => 'Hər məzmun üçün səs və altyazı seçimlərini yadda saxla'; + @override String get followServerTrackSelections => 'Hər epizod üçün serverin trek seçimlərini istifadə et'; + @override String get followServerTrackSelectionsDescription => 'Epizod dəyişəndə cari seçimi köçürmək əvəzinə serverdə seçilmiş səs və altyazını tətbiq et'; @override String get showChapterMarkersOnTimeline => 'Zaman çubuğunda hissə işarələrini göstər'; @override String get showChapterMarkersOnTimelineDescription => 'Zaman çubuğunu hissə sərhədlərinə böl'; @override String get clickVideoTogglesPlayback => 'Oynat/fasilə üçün videoya toxun'; @@ -2366,6 +2368,8 @@ extension on TranslationsAz { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} dəqiqə', 'settings.rememberTrackSelections' => 'Hər film/serial üçün səs/altyazı seçimlərini xatırla', 'settings.rememberTrackSelectionsDescription' => 'Hər məzmun üçün səs və altyazı seçimlərini yadda saxla', + 'settings.followServerTrackSelections' => 'Hər epizod üçün serverin trek seçimlərini istifadə et', + 'settings.followServerTrackSelectionsDescription' => 'Epizod dəyişəndə cari seçimi köçürmək əvəzinə serverdə seçilmiş səs və altyazını tətbiq et', 'settings.showChapterMarkersOnTimeline' => 'Zaman çubuğunda hissə işarələrini göstər', 'settings.showChapterMarkersOnTimelineDescription' => 'Zaman çubuğunu hissə sərhədlərinə böl', 'settings.clickVideoTogglesPlayback' => 'Oynat/fasilə üçün videoya toxun', @@ -2718,10 +2722,10 @@ extension on TranslationsAz { 'videoControls.noChaptersAvailable' => 'Hissələr əlçatan deyil', 'videoControls.queue' => 'Növbə', 'videoControls.noQueueItems' => 'Növbədə element yoxdur', - 'videoControls.searchSubtitles' => 'Altyazı axtar', - 'videoControls.language' => 'Dil', _ => null, } ?? switch (path) { + 'videoControls.searchSubtitles' => 'Altyazı axtar', + 'videoControls.language' => 'Dil', 'videoControls.noSubtitlesFound' => 'Altyazı tapılmadı', 'videoControls.subtitleDownloaded' => 'Altyazı yükləndi', 'videoControls.subtitleDownloadedNotApplied' => 'Altyazı yükləndi, lakin seçilə bilmədi', @@ -3232,10 +3236,10 @@ extension on TranslationsAz { 'watchTogether.enterCodeHint' => '5 rəqəmli/hərfli kodu daxil edin', 'watchTogether.pasteFromClipboard' => 'Buferdən yapışdır', 'watchTogether.pleaseEnterCode' => 'Lütfən seans kodunu daxil edin', - 'watchTogether.codeMustBe5Chars' => 'Seans kodu 5 simvol olmalıdır', - 'watchTogether.joinInstructions' => 'Qoşulmaq üçün təşkilatçının seans kodunu daxil edin.', _ => null, } ?? switch (path) { + 'watchTogether.codeMustBe5Chars' => 'Seans kodu 5 simvol olmalıdır', + 'watchTogether.joinInstructions' => 'Qoşulmaq üçün təşkilatçının seans kodunu daxil edin.', 'watchTogether.failedToCreate' => 'Seans yaradıla bilmədi', 'watchTogether.failedToJoin' => 'Seansa qoşuluna bilmədi', 'watchTogether.sessionCodeCopied' => 'Seans kodu buferə kopyalandı', diff --git a/lib/i18n/strings_bg.g.dart b/lib/i18n/strings_bg.g.dart index fde57497..63fa8076 100644 --- a/lib/i18n/strings_bg.g.dart +++ b/lib/i18n/strings_bg.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$bg extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} минути'; @override String get rememberTrackSelections => 'Запомняй избора на аудио и субтитри за всеки сериал или филм'; @override String get rememberTrackSelectionsDescription => 'Запомняй избора на аудиопътечка и субтитри за всяко заглавие'; + @override String get followServerTrackSelections => 'Използвай избора на пътечки от сървъра за всеки епизод'; + @override String get followServerTrackSelectionsDescription => 'При смяна на епизода прилагай избраните на сървъра аудио и субтитри, вместо да се пренася текущият избор'; @override String get showChapterMarkersOnTimeline => 'Показвай маркери на глави върху времевата линия'; @override String get showChapterMarkersOnTimelineDescription => 'Разделяй времевата линия на сегменти по границите на главите'; @override String get clickVideoTogglesPlayback => 'Клик върху видеото превключва възпроизвеждане/пауза'; @@ -2355,6 +2357,8 @@ extension on TranslationsBg { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} минути', 'settings.rememberTrackSelections' => 'Запомняй избора на аудио и субтитри за всеки сериал или филм', 'settings.rememberTrackSelectionsDescription' => 'Запомняй избора на аудиопътечка и субтитри за всяко заглавие', + 'settings.followServerTrackSelections' => 'Използвай избора на пътечки от сървъра за всеки епизод', + 'settings.followServerTrackSelectionsDescription' => 'При смяна на епизода прилагай избраните на сървъра аудио и субтитри, вместо да се пренася текущият избор', 'settings.showChapterMarkersOnTimeline' => 'Показвай маркери на глави върху времевата линия', 'settings.showChapterMarkersOnTimelineDescription' => 'Разделяй времевата линия на сегменти по границите на главите', 'settings.clickVideoTogglesPlayback' => 'Клик върху видеото превключва възпроизвеждане/пауза', @@ -2707,10 +2711,10 @@ extension on TranslationsBg { 'videoControls.searchSubtitles' => 'Търсене на субтитри', 'videoControls.language' => 'Език', 'videoControls.noSubtitlesFound' => 'Не са намерени субтитри', - 'videoControls.subtitleDownloaded' => 'Субтитърът е изтеглен', - 'videoControls.subtitleDownloadedNotApplied' => 'Субтитрите са изтеглени, но не можаха да бъдат избрани', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Субтитърът е изтеглен', + 'videoControls.subtitleDownloadedNotApplied' => 'Субтитрите са изтеглени, но не можаха да бъдат избрани', 'videoControls.subtitleDownloadFailed' => 'Неуспешно изтегляне на субтитър', 'videoControls.searchLanguages' => 'Търсене на езици...', 'messages.markedAsWatched' => 'Маркирано като гледано', @@ -3221,10 +3225,10 @@ extension on TranslationsBg { 'watchTogether.failedToCreate' => 'Неуспешно създаване на сесия', 'watchTogether.failedToJoin' => 'Неуспешно присъединяване към сесия', 'watchTogether.sessionCodeCopied' => 'Кодът на сесията е копиран в клипборда', - 'watchTogether.relayUnreachable' => 'Релейният сървър е недостъпен. Възможно е интернет доставчикът да блокира гледането заедно.', - 'watchTogether.reconnectingToHost' => 'Повторно свързване с организатора...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Релейният сървър е недостъпен. Възможно е интернет доставчикът да блокира гледането заедно.', + 'watchTogether.reconnectingToHost' => 'Повторно свързване с организатора...', 'watchTogether.currentPlayback' => 'Текущо възпроизвеждане', 'watchTogether.joinCurrentPlayback' => 'Присъедини се към текущото възпроизвеждане', 'watchTogether.joinCurrentPlaybackDescription' => 'Върнете се към това, което организаторът гледа в момента', diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 227076f2..4a26b12c 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$da extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minutter'; @override String get rememberTrackSelections => 'Husk sporvalg for hver serie/film'; @override String get rememberTrackSelectionsDescription => 'Husk valget af lyd og undertekster for hver titel'; + @override String get followServerTrackSelections => 'Brug serverens sporvalg for hvert afsnit'; + @override String get followServerTrackSelectionsDescription => 'Ved afsnitsskift anvendes lyden og underteksterne valgt på serveren i stedet for at videreføre det aktuelle valg'; @override String get showChapterMarkersOnTimeline => 'Vis kapitelmarkører på tidslinjen'; @override String get showChapterMarkersOnTimelineDescription => 'Opdel tidslinjen ved kapitelgrænser'; @override String get clickVideoTogglesPlayback => 'Klik på videoen for at skifte mellem afspilning og pause'; @@ -2355,6 +2357,8 @@ extension on TranslationsDa { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutter', 'settings.rememberTrackSelections' => 'Husk sporvalg for hver serie/film', 'settings.rememberTrackSelectionsDescription' => 'Husk valget af lyd og undertekster for hver titel', + 'settings.followServerTrackSelections' => 'Brug serverens sporvalg for hvert afsnit', + 'settings.followServerTrackSelectionsDescription' => 'Ved afsnitsskift anvendes lyden og underteksterne valgt på serveren i stedet for at videreføre det aktuelle valg', 'settings.showChapterMarkersOnTimeline' => 'Vis kapitelmarkører på tidslinjen', 'settings.showChapterMarkersOnTimelineDescription' => 'Opdel tidslinjen ved kapitelgrænser', 'settings.clickVideoTogglesPlayback' => 'Klik på videoen for at skifte mellem afspilning og pause', @@ -2707,10 +2711,10 @@ extension on TranslationsDa { 'videoControls.searchSubtitles' => 'Søg undertekster', 'videoControls.language' => 'Sprog', 'videoControls.noSubtitlesFound' => 'Ingen undertekster fundet', - 'videoControls.subtitleDownloaded' => 'Undertekst downloadet', - 'videoControls.subtitleDownloadedNotApplied' => 'Underteksten blev downloadet, men kunne ikke vælges', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Undertekst downloadet', + 'videoControls.subtitleDownloadedNotApplied' => 'Underteksten blev downloadet, men kunne ikke vælges', 'videoControls.subtitleDownloadFailed' => 'Kunne ikke downloade undertekst', 'videoControls.searchLanguages' => 'Søg sprog...', 'messages.markedAsWatched' => 'Markeret som set', @@ -3221,10 +3225,10 @@ extension on TranslationsDa { 'watchTogether.failedToCreate' => 'Kunne ikke oprette session', 'watchTogether.failedToJoin' => 'Kunne ikke deltage i session', 'watchTogether.sessionCodeCopied' => 'Sessionskode kopieret til udklipsholder', - 'watchTogether.relayUnreachable' => 'Relayserveren kan ikke nås. Blokering hos internetudbyderen kan forhindre Se sammen.', - 'watchTogether.reconnectingToHost' => 'Genopretter forbindelse til vært...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Relayserveren kan ikke nås. Blokering hos internetudbyderen kan forhindre Se sammen.', + 'watchTogether.reconnectingToHost' => 'Genopretter forbindelse til vært...', 'watchTogether.currentPlayback' => 'Nuværende afspilning', 'watchTogether.joinCurrentPlayback' => 'Deltag i nuværende afspilning', 'watchTogether.joinCurrentPlaybackDescription' => 'Hop tilbage til det værten ser nu', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index f0d5f646..0667d943 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$de extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} Minuten'; @override String get rememberTrackSelections => 'Spurauswahl pro Serie/Film merken'; @override String get rememberTrackSelectionsDescription => 'Audio- und Untertitelauswahl je Titel merken'; + @override String get followServerTrackSelections => 'Serverseitige Spurauswahl pro Episode verwenden'; + @override String get followServerTrackSelectionsDescription => 'Beim Episodenwechsel die auf dem Server ausgewählten Audio- und Untertitelspuren übernehmen, statt die aktuelle Auswahl zu übertragen'; @override String get showChapterMarkersOnTimeline => 'Kapitelmarkierungen auf der Suchleiste anzeigen'; @override String get showChapterMarkersOnTimelineDescription => 'Die Suchleiste an Kapitelgrenzen unterteilen'; @override String get clickVideoTogglesPlayback => 'Video zum Abspielen oder Pausieren anklicken'; @@ -2355,6 +2357,8 @@ extension on TranslationsDe { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} Minuten', 'settings.rememberTrackSelections' => 'Spurauswahl pro Serie/Film merken', 'settings.rememberTrackSelectionsDescription' => 'Audio- und Untertitelauswahl je Titel merken', + 'settings.followServerTrackSelections' => 'Serverseitige Spurauswahl pro Episode verwenden', + 'settings.followServerTrackSelectionsDescription' => 'Beim Episodenwechsel die auf dem Server ausgewählten Audio- und Untertitelspuren übernehmen, statt die aktuelle Auswahl zu übertragen', 'settings.showChapterMarkersOnTimeline' => 'Kapitelmarkierungen auf der Suchleiste anzeigen', 'settings.showChapterMarkersOnTimelineDescription' => 'Die Suchleiste an Kapitelgrenzen unterteilen', 'settings.clickVideoTogglesPlayback' => 'Video zum Abspielen oder Pausieren anklicken', @@ -2707,10 +2711,10 @@ extension on TranslationsDe { 'videoControls.searchSubtitles' => 'Untertitel suchen', 'videoControls.language' => 'Sprache', 'videoControls.noSubtitlesFound' => 'Keine Untertitel gefunden', - 'videoControls.subtitleDownloaded' => 'Untertitel heruntergeladen', - 'videoControls.subtitleDownloadedNotApplied' => 'Der Untertitel wurde heruntergeladen, konnte aber nicht ausgewählt werden', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Untertitel heruntergeladen', + 'videoControls.subtitleDownloadedNotApplied' => 'Der Untertitel wurde heruntergeladen, konnte aber nicht ausgewählt werden', 'videoControls.subtitleDownloadFailed' => 'Untertitel konnte nicht heruntergeladen werden', 'videoControls.searchLanguages' => 'Sprachen suchen...', 'messages.markedAsWatched' => 'Als gesehen markiert', @@ -3221,10 +3225,10 @@ extension on TranslationsDe { 'watchTogether.failedToCreate' => 'Sitzung konnte nicht erstellt werden', 'watchTogether.failedToJoin' => 'Beitritt zur Sitzung fehlgeschlagen', 'watchTogether.sessionCodeCopied' => 'Sitzungscode in Zwischenablage kopiert', - 'watchTogether.relayUnreachable' => 'Relay-Server nicht erreichbar. Eine Sperre durch den Internetanbieter kann gemeinsames Schauen verhindern.', - 'watchTogether.reconnectingToHost' => 'Verbindung zum Host wird wiederhergestellt …', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Relay-Server nicht erreichbar. Eine Sperre durch den Internetanbieter kann gemeinsames Schauen verhindern.', + 'watchTogether.reconnectingToHost' => 'Verbindung zum Host wird wiederhergestellt …', 'watchTogether.currentPlayback' => 'Aktuelle Wiedergabe', 'watchTogether.joinCurrentPlayback' => 'Aktueller Wiedergabe beitreten', 'watchTogether.joinCurrentPlaybackDescription' => 'Zu dem Inhalt wechseln, den der Host gerade ansieht', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index aff496c9..03bf62c2 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -618,6 +618,12 @@ class Translations$settings$en { /// en: 'Remember audio and subtitle choices per title' String get rememberTrackSelectionsDescription => 'Remember audio and subtitle choices per title'; + /// en: 'Use server's per-episode track selections' + String get followServerTrackSelections => 'Use server\'s per-episode track selections'; + + /// en: 'On episode change, apply the audio and subtitles selected on the server instead of carrying over the current choice' + String get followServerTrackSelectionsDescription => 'On episode change, apply the audio and subtitles selected on the server instead of carrying over the current choice'; + /// en: 'Show chapter markers on seek bar' String get showChapterMarkersOnTimeline => 'Show chapter markers on seek bar'; @@ -6077,6 +6083,8 @@ extension on Translations { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutes', 'settings.rememberTrackSelections' => 'Remember track selections per show/movie', 'settings.rememberTrackSelectionsDescription' => 'Remember audio and subtitle choices per title', + 'settings.followServerTrackSelections' => 'Use server\'s per-episode track selections', + 'settings.followServerTrackSelectionsDescription' => 'On episode change, apply the audio and subtitles selected on the server instead of carrying over the current choice', 'settings.showChapterMarkersOnTimeline' => 'Show chapter markers on seek bar', 'settings.showChapterMarkersOnTimelineDescription' => 'Segment the seek bar at chapter boundaries', 'settings.clickVideoTogglesPlayback' => 'Click on video to toggle play/pause', @@ -6429,10 +6437,10 @@ extension on Translations { 'accessibility.increase' => 'Increase', 'accessibility.decreaseValue' => ({required Object label}) => 'Decrease ${label}', 'accessibility.increaseValue' => ({required Object label}) => 'Increase ${label}', - 'accessibility.hue' => 'Hue', - 'accessibility.saturation' => 'Saturation', _ => null, } ?? switch (path) { + 'accessibility.hue' => 'Hue', + 'accessibility.saturation' => 'Saturation', 'accessibility.brightness' => 'Brightness', 'accessibility.hexColor' => 'Hex color', 'accessibility.expandText' => 'Expand text', @@ -6943,10 +6951,10 @@ extension on Translations { 'explore.detail.country' => 'Country', 'explore.detail.language' => 'Language', 'explore.detail.released' => 'Released', - 'explore.detail.physicalRelease' => 'On disc', - 'explore.detail.ended' => 'Ended', _ => null, } ?? switch (path) { + 'explore.detail.physicalRelease' => 'On disc', + 'explore.detail.ended' => 'Ended', 'explore.detail.addedOn' => ({required Object date}) => 'Added ${date}', 'explore.detail.yourRating' => 'Your rating', 'explore.detail.budget' => 'Budget', @@ -7457,10 +7465,10 @@ extension on Translations { 'metadataEdit.artworkUpdateFailed' => 'Failed to update artwork', 'metadataEdit.noArtworkAvailable' => 'No artwork available', 'metadataEdit.artworkOption' => ({required Object index}) => 'Artwork option ${index}', - 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Artwork option ${index}, selected', - 'metadataEdit.notSet' => 'Not set', _ => null, } ?? switch (path) { + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Artwork option ${index}, selected', + 'metadataEdit.notSet' => 'Not set', 'metadataEdit.libraryDefault' => 'Library default', 'metadataEdit.accountDefault' => 'Account default', 'metadataEdit.seriesDefault' => 'Series default', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index a3ec0a68..ff331fff 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$es extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minutos'; @override String get rememberTrackSelections => 'Recordar selección de pistas por serie/película'; @override String get rememberTrackSelectionsDescription => 'Recordar opciones de audio y subtítulos por título'; + @override String get followServerTrackSelections => 'Usar la selección de pistas del servidor por episodio'; + @override String get followServerTrackSelectionsDescription => 'Al cambiar de episodio, aplicar el audio y los subtítulos seleccionados en el servidor en lugar de mantener la elección actual'; @override String get showChapterMarkersOnTimeline => 'Mostrar marcadores de capítulos en la barra de progreso'; @override String get showChapterMarkersOnTimelineDescription => 'Dividir la barra de progreso en los límites de capítulos'; @override String get clickVideoTogglesPlayback => 'Clic en el video para reproducir/pausar'; @@ -2355,6 +2357,8 @@ extension on TranslationsEs { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutos', 'settings.rememberTrackSelections' => 'Recordar selección de pistas por serie/película', 'settings.rememberTrackSelectionsDescription' => 'Recordar opciones de audio y subtítulos por título', + 'settings.followServerTrackSelections' => 'Usar la selección de pistas del servidor por episodio', + 'settings.followServerTrackSelectionsDescription' => 'Al cambiar de episodio, aplicar el audio y los subtítulos seleccionados en el servidor en lugar de mantener la elección actual', 'settings.showChapterMarkersOnTimeline' => 'Mostrar marcadores de capítulos en la barra de progreso', 'settings.showChapterMarkersOnTimelineDescription' => 'Dividir la barra de progreso en los límites de capítulos', 'settings.clickVideoTogglesPlayback' => 'Clic en el video para reproducir/pausar', @@ -2707,10 +2711,10 @@ extension on TranslationsEs { 'videoControls.searchSubtitles' => 'Buscar subtítulos', 'videoControls.language' => 'Idioma', 'videoControls.noSubtitlesFound' => 'No se encontraron subtítulos', - 'videoControls.subtitleDownloaded' => 'Subtítulo descargado', - 'videoControls.subtitleDownloadedNotApplied' => 'El subtítulo se descargó, pero no se pudo seleccionar', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Subtítulo descargado', + 'videoControls.subtitleDownloadedNotApplied' => 'El subtítulo se descargó, pero no se pudo seleccionar', 'videoControls.subtitleDownloadFailed' => 'Error al descargar subtítulo', 'videoControls.searchLanguages' => 'Buscar idiomas...', 'messages.markedAsWatched' => 'Marcado como visto', @@ -3221,10 +3225,10 @@ extension on TranslationsEs { 'watchTogether.failedToCreate' => 'Error al crear la sesión', 'watchTogether.failedToJoin' => 'Error al unirse a la sesión', 'watchTogether.sessionCodeCopied' => 'Código de sesión copiado al portapapeles', - 'watchTogether.relayUnreachable' => 'No se puede acceder al servidor de retransmisión. Es posible que tu proveedor de internet esté bloqueando Ver juntos.', - 'watchTogether.reconnectingToHost' => 'Reconectando con el anfitrión...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'No se puede acceder al servidor de retransmisión. Es posible que tu proveedor de internet esté bloqueando Ver juntos.', + 'watchTogether.reconnectingToHost' => 'Reconectando con el anfitrión...', 'watchTogether.currentPlayback' => 'Reproducción actual', 'watchTogether.joinCurrentPlayback' => 'Unirse a la reproducción actual', 'watchTogether.joinCurrentPlaybackDescription' => 'Vuelve a lo que el anfitrión está viendo ahora mismo', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 316fbe70..ada1cf80 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$fr extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minutes'; @override String get rememberTrackSelections => 'Mémoriser les pistes choisies pour chaque série ou film'; @override String get rememberTrackSelectionsDescription => 'Mémoriser les choix audio et sous-titres par titre'; + @override String get followServerTrackSelections => 'Utiliser les pistes sélectionnées sur le serveur pour chaque épisode'; + @override String get followServerTrackSelectionsDescription => 'Au changement d\'épisode, appliquer l\'audio et les sous-titres sélectionnés sur le serveur au lieu de conserver le choix en cours'; @override String get showChapterMarkersOnTimeline => 'Afficher les marqueurs de chapitres sur la barre de lecture'; @override String get showChapterMarkersOnTimelineDescription => 'Segmenter la barre de lecture aux limites des chapitres'; @override String get clickVideoTogglesPlayback => 'Cliquer sur la vidéo pour alterner entre lecture et pause'; @@ -2355,6 +2357,8 @@ extension on TranslationsFr { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutes', 'settings.rememberTrackSelections' => 'Mémoriser les pistes choisies pour chaque série ou film', 'settings.rememberTrackSelectionsDescription' => 'Mémoriser les choix audio et sous-titres par titre', + 'settings.followServerTrackSelections' => 'Utiliser les pistes sélectionnées sur le serveur pour chaque épisode', + 'settings.followServerTrackSelectionsDescription' => 'Au changement d\'épisode, appliquer l\'audio et les sous-titres sélectionnés sur le serveur au lieu de conserver le choix en cours', 'settings.showChapterMarkersOnTimeline' => 'Afficher les marqueurs de chapitres sur la barre de lecture', 'settings.showChapterMarkersOnTimelineDescription' => 'Segmenter la barre de lecture aux limites des chapitres', 'settings.clickVideoTogglesPlayback' => 'Cliquer sur la vidéo pour alterner entre lecture et pause', @@ -2707,10 +2711,10 @@ extension on TranslationsFr { 'videoControls.searchSubtitles' => 'Rechercher des sous-titres', 'videoControls.language' => 'Langue', 'videoControls.noSubtitlesFound' => 'Aucun sous-titre trouvé', - 'videoControls.subtitleDownloaded' => 'Sous-titre téléchargé', - 'videoControls.subtitleDownloadedNotApplied' => 'Le sous-titre a été téléchargé, mais n’a pas pu être sélectionné', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Sous-titre téléchargé', + 'videoControls.subtitleDownloadedNotApplied' => 'Le sous-titre a été téléchargé, mais n’a pas pu être sélectionné', 'videoControls.subtitleDownloadFailed' => 'Échec du téléchargement du sous-titre', 'videoControls.searchLanguages' => 'Rechercher des langues...', 'messages.markedAsWatched' => 'Marqué comme vu', @@ -3221,10 +3225,10 @@ extension on TranslationsFr { 'watchTogether.failedToCreate' => 'Échec de la création de la session', 'watchTogether.failedToJoin' => 'Échec de la connexion à la session', 'watchTogether.sessionCodeCopied' => 'Code de session copié dans le presse-papiers', - 'watchTogether.relayUnreachable' => 'Serveur relais inaccessible. Un blocage par le fournisseur d’accès peut empêcher le fonctionnement de Regarder ensemble.', - 'watchTogether.reconnectingToHost' => 'Reconnexion à l\'hôte...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Serveur relais inaccessible. Un blocage par le fournisseur d’accès peut empêcher le fonctionnement de Regarder ensemble.', + 'watchTogether.reconnectingToHost' => 'Reconnexion à l\'hôte...', 'watchTogether.currentPlayback' => 'Lecture en cours', 'watchTogether.joinCurrentPlayback' => 'Rejoindre la lecture en cours', 'watchTogether.joinCurrentPlaybackDescription' => 'Reprendre le contenu que l’hôte regarde actuellement', diff --git a/lib/i18n/strings_hu.g.dart b/lib/i18n/strings_hu.g.dart index 7a296f8f..f2b257f1 100644 --- a/lib/i18n/strings_hu.g.dart +++ b/lib/i18n/strings_hu.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$hu extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} perc'; @override String get rememberTrackSelections => 'Sávválasztások megjegyzése sorozatonként/filmenként'; @override String get rememberTrackSelectionsDescription => 'Hang- és feliratválasztások megjegyzése címenként'; + @override String get followServerTrackSelections => 'A szerver epizódonkénti sávválasztásának használata'; + @override String get followServerTrackSelectionsDescription => 'Epizódváltáskor a szerveren kiválasztott hang és felirat lép életbe az aktuális választás átvitele helyett'; @override String get showChapterMarkersOnTimeline => 'Fejezetjelölők megjelenítése az idősávon'; @override String get showChapterMarkersOnTimelineDescription => 'Az idősáv felosztása a fejezetek határainál'; @override String get clickVideoTogglesPlayback => 'Kattintás a videóra a lejátszás/szünet váltásához'; @@ -2355,6 +2357,8 @@ extension on TranslationsHu { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} perc', 'settings.rememberTrackSelections' => 'Sávválasztások megjegyzése sorozatonként/filmenként', 'settings.rememberTrackSelectionsDescription' => 'Hang- és feliratválasztások megjegyzése címenként', + 'settings.followServerTrackSelections' => 'A szerver epizódonkénti sávválasztásának használata', + 'settings.followServerTrackSelectionsDescription' => 'Epizódváltáskor a szerveren kiválasztott hang és felirat lép életbe az aktuális választás átvitele helyett', 'settings.showChapterMarkersOnTimeline' => 'Fejezetjelölők megjelenítése az idősávon', 'settings.showChapterMarkersOnTimelineDescription' => 'Az idősáv felosztása a fejezetek határainál', 'settings.clickVideoTogglesPlayback' => 'Kattintás a videóra a lejátszás/szünet váltásához', @@ -2707,10 +2711,10 @@ extension on TranslationsHu { 'videoControls.searchSubtitles' => 'Feliratok keresése', 'videoControls.language' => 'Nyelv', 'videoControls.noSubtitlesFound' => 'Nem találhatók feliratok', - 'videoControls.subtitleDownloaded' => 'Felirat letöltve', - 'videoControls.subtitleDownloadedNotApplied' => 'Felirat letöltve, de nem sikerült kiválasztani', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Felirat letöltve', + 'videoControls.subtitleDownloadedNotApplied' => 'Felirat letöltve, de nem sikerült kiválasztani', 'videoControls.subtitleDownloadFailed' => 'Nem sikerült a felirat letöltése', 'videoControls.searchLanguages' => 'Nyelvek keresése...', 'messages.markedAsWatched' => 'Megjelölve megtekintettként', @@ -3221,10 +3225,10 @@ extension on TranslationsHu { 'watchTogether.failedToCreate' => 'Nem sikerült a munkamenet létrehozása', 'watchTogether.failedToJoin' => 'Nem sikerült csatlakozni a munkamenethez', 'watchTogether.sessionCodeCopied' => 'A munkamenetkód a vágólapra másolva', - 'watchTogether.relayUnreachable' => 'A relészerver nem érhető el. Az internetszolgáltató blokkolása megakadályozhatja a közös nézést.', - 'watchTogether.reconnectingToHost' => 'Újracsatlakozás a házigazdához...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'A relészerver nem érhető el. Az internetszolgáltató blokkolása megakadályozhatja a közös nézést.', + 'watchTogether.reconnectingToHost' => 'Újracsatlakozás a házigazdához...', 'watchTogether.currentPlayback' => 'Jelenlegi lejátszás', 'watchTogether.joinCurrentPlayback' => 'Csatlakozás a jelenlegi lejátszáshoz', 'watchTogether.joinCurrentPlaybackDescription' => 'Visszatérés ahhoz, amit a házigazda éppen néz', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index d1367857..cb4ed4b7 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$it extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minuti'; @override String get rememberTrackSelections => 'Ricorda la selezione delle tracce per ogni serie o film'; @override String get rememberTrackSelectionsDescription => 'Ricorda le scelte di audio e sottotitoli per ogni titolo'; + @override String get followServerTrackSelections => 'Usa le tracce selezionate sul server per ogni episodio'; + @override String get followServerTrackSelectionsDescription => 'Al cambio di episodio applica l\'audio e i sottotitoli selezionati sul server invece di mantenere la scelta corrente'; @override String get showChapterMarkersOnTimeline => 'Mostra i marcatori dei capitoli sulla barra di avanzamento'; @override String get showChapterMarkersOnTimelineDescription => 'Segmenta la barra di avanzamento ai confini dei capitoli'; @override String get clickVideoTogglesPlayback => 'Fai clic sul video per alternare riproduzione e pausa'; @@ -2355,6 +2357,8 @@ extension on TranslationsIt { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minuti', 'settings.rememberTrackSelections' => 'Ricorda la selezione delle tracce per ogni serie o film', 'settings.rememberTrackSelectionsDescription' => 'Ricorda le scelte di audio e sottotitoli per ogni titolo', + 'settings.followServerTrackSelections' => 'Usa le tracce selezionate sul server per ogni episodio', + 'settings.followServerTrackSelectionsDescription' => 'Al cambio di episodio applica l\'audio e i sottotitoli selezionati sul server invece di mantenere la scelta corrente', 'settings.showChapterMarkersOnTimeline' => 'Mostra i marcatori dei capitoli sulla barra di avanzamento', 'settings.showChapterMarkersOnTimelineDescription' => 'Segmenta la barra di avanzamento ai confini dei capitoli', 'settings.clickVideoTogglesPlayback' => 'Fai clic sul video per alternare riproduzione e pausa', @@ -2707,10 +2711,10 @@ extension on TranslationsIt { 'videoControls.searchSubtitles' => 'Cerca sottotitoli', 'videoControls.language' => 'Lingua', 'videoControls.noSubtitlesFound' => 'Nessun sottotitolo trovato', - 'videoControls.subtitleDownloaded' => 'Sottotitolo scaricato', - 'videoControls.subtitleDownloadedNotApplied' => 'Il sottotitolo è stato scaricato, ma non è stato possibile selezionarlo', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Sottotitolo scaricato', + 'videoControls.subtitleDownloadedNotApplied' => 'Il sottotitolo è stato scaricato, ma non è stato possibile selezionarlo', 'videoControls.subtitleDownloadFailed' => 'Impossibile scaricare il sottotitolo', 'videoControls.searchLanguages' => 'Cerca lingue...', 'messages.markedAsWatched' => 'Segnato come visto', @@ -3221,10 +3225,10 @@ extension on TranslationsIt { 'watchTogether.failedToCreate' => 'Impossibile creare la sessione', 'watchTogether.failedToJoin' => 'Impossibile unirsi alla sessione', 'watchTogether.sessionCodeCopied' => 'Codice della sessione copiato negli appunti', - 'watchTogether.relayUnreachable' => 'Il server relay non è raggiungibile. Eventuali blocchi dell\'ISP potrebbero impedire l\'uso di Guarda insieme.', - 'watchTogether.reconnectingToHost' => 'Riconnessione all\'host...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Il server relay non è raggiungibile. Eventuali blocchi dell\'ISP potrebbero impedire l\'uso di Guarda insieme.', + 'watchTogether.reconnectingToHost' => 'Riconnessione all\'host...', 'watchTogether.currentPlayback' => 'Riproduzione corrente', 'watchTogether.joinCurrentPlayback' => 'Unisciti alla riproduzione corrente', 'watchTogether.joinCurrentPlaybackDescription' => 'Torna a ciò che l\'host sta guardando in questo momento', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index 8037cabd..8adc8b1b 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$ja extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes}分'; @override String get rememberTrackSelections => '番組/映画ごとにトラック選択を記憶'; @override String get rememberTrackSelectionsDescription => 'タイトルごとに音声と字幕の選択を記憶します'; + @override String get followServerTrackSelections => 'サーバーのエピソードごとのトラック選択を使用'; + @override String get followServerTrackSelectionsDescription => 'エピソード切り替え時に、現在の選択を引き継ぐ代わりにサーバーで選択された音声と字幕を適用します'; @override String get showChapterMarkersOnTimeline => 'シークバーにチャプターマーカーを表示'; @override String get showChapterMarkersOnTimelineDescription => 'チャプターの境界でシークバーを区切る'; @override String get clickVideoTogglesPlayback => '動画クリックで再生/一時停止を切替'; @@ -2352,6 +2354,8 @@ extension on TranslationsJa { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes}分', 'settings.rememberTrackSelections' => '番組/映画ごとにトラック選択を記憶', 'settings.rememberTrackSelectionsDescription' => 'タイトルごとに音声と字幕の選択を記憶します', + 'settings.followServerTrackSelections' => 'サーバーのエピソードごとのトラック選択を使用', + 'settings.followServerTrackSelectionsDescription' => 'エピソード切り替え時に、現在の選択を引き継ぐ代わりにサーバーで選択された音声と字幕を適用します', 'settings.showChapterMarkersOnTimeline' => 'シークバーにチャプターマーカーを表示', 'settings.showChapterMarkersOnTimelineDescription' => 'チャプターの境界でシークバーを区切る', 'settings.clickVideoTogglesPlayback' => '動画クリックで再生/一時停止を切替', @@ -2704,10 +2708,10 @@ extension on TranslationsJa { 'videoControls.searchSubtitles' => '字幕を検索', 'videoControls.language' => '言語', 'videoControls.noSubtitlesFound' => '字幕が見つかりません', - 'videoControls.subtitleDownloaded' => '字幕をダウンロードしました', - 'videoControls.subtitleDownloadedNotApplied' => '字幕はダウンロードされましたが、選択できませんでした', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => '字幕をダウンロードしました', + 'videoControls.subtitleDownloadedNotApplied' => '字幕はダウンロードされましたが、選択できませんでした', 'videoControls.subtitleDownloadFailed' => '字幕のダウンロードに失敗しました', 'videoControls.searchLanguages' => '言語を検索…', 'messages.markedAsWatched' => '視聴済みにしました', @@ -3218,10 +3222,10 @@ extension on TranslationsJa { 'watchTogether.failedToCreate' => 'セッションの作成に失敗しました', 'watchTogether.failedToJoin' => 'セッションへの参加に失敗しました', 'watchTogether.sessionCodeCopied' => 'セッションコードをクリップボードにコピーしました', - 'watchTogether.relayUnreachable' => 'リレーサーバーに接続できません。ISPによるブロックのため「一緒に見る」を利用できない可能性があります。', - 'watchTogether.reconnectingToHost' => 'ホストに再接続中…', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'リレーサーバーに接続できません。ISPによるブロックのため「一緒に見る」を利用できない可能性があります。', + 'watchTogether.reconnectingToHost' => 'ホストに再接続中…', 'watchTogether.currentPlayback' => '現在の再生', 'watchTogether.joinCurrentPlayback' => '現在の再生に参加', 'watchTogether.joinCurrentPlaybackDescription' => 'ホストが現在視聴中のコンテンツに戻る', diff --git a/lib/i18n/strings_kk.g.dart b/lib/i18n/strings_kk.g.dart index 051923bc..d7596d53 100644 --- a/lib/i18n/strings_kk.g.dart +++ b/lib/i18n/strings_kk.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$kk extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} минут'; @override String get rememberTrackSelections => 'Әр фильм/сериал үшін дыбыс/субтитр таңдауын есте сақтау'; @override String get rememberTrackSelectionsDescription => 'Әр медиа үшін дыбыс пен субтитр таңдауын сақтау'; + @override String get followServerTrackSelections => 'Әр бөлім үшін сервердегі жолдар таңдауын қолдану'; + @override String get followServerTrackSelectionsDescription => 'Бөлім ауысқанда ағымдағы таңдауды көшірудің орнына серверде таңдалған дыбыс пен субтитрлерді қолдану'; @override String get showChapterMarkersOnTimeline => 'Уақыт шкаласында бөлім белгілерін көрсету'; @override String get showChapterMarkersOnTimelineDescription => 'Уақыт шкаласын бөлімдерге бөлу'; @override String get clickVideoTogglesPlayback => 'Ойнату/кідірту үшін видеоны басу'; @@ -2366,6 +2368,8 @@ extension on TranslationsKk { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} минут', 'settings.rememberTrackSelections' => 'Әр фильм/сериал үшін дыбыс/субтитр таңдауын есте сақтау', 'settings.rememberTrackSelectionsDescription' => 'Әр медиа үшін дыбыс пен субтитр таңдауын сақтау', + 'settings.followServerTrackSelections' => 'Әр бөлім үшін сервердегі жолдар таңдауын қолдану', + 'settings.followServerTrackSelectionsDescription' => 'Бөлім ауысқанда ағымдағы таңдауды көшірудің орнына серверде таңдалған дыбыс пен субтитрлерді қолдану', 'settings.showChapterMarkersOnTimeline' => 'Уақыт шкаласында бөлім белгілерін көрсету', 'settings.showChapterMarkersOnTimelineDescription' => 'Уақыт шкаласын бөлімдерге бөлу', 'settings.clickVideoTogglesPlayback' => 'Ойнату/кідірту үшін видеоны басу', @@ -2718,10 +2722,10 @@ extension on TranslationsKk { 'videoControls.noChaptersAvailable' => 'Бөлімдер қолжетімсіз', 'videoControls.queue' => 'Кезек', 'videoControls.noQueueItems' => 'Кезекте элементтер жоқ', - 'videoControls.searchSubtitles' => 'Субтитр іздеу', - 'videoControls.language' => 'Тіл', _ => null, } ?? switch (path) { + 'videoControls.searchSubtitles' => 'Субтитр іздеу', + 'videoControls.language' => 'Тіл', 'videoControls.noSubtitlesFound' => 'Субтитр табылмады', 'videoControls.subtitleDownloaded' => 'Субтитр жүктелді', 'videoControls.subtitleDownloadedNotApplied' => 'Субтитр жүктелді, бірақ қолданылмады', @@ -3232,10 +3236,10 @@ extension on TranslationsKk { 'watchTogether.enterCodeHint' => '5 таңбалы кодты енгізіңіз', 'watchTogether.pasteFromClipboard' => 'Алмасу буферінен қою', 'watchTogether.pleaseEnterCode' => 'Сеанс кодын енгізіңіз', - 'watchTogether.codeMustBe5Chars' => 'Сеанс коды 5 таңбадан тұруы керек', - 'watchTogether.joinInstructions' => 'Ұйымдастырушының сеанс кодын енгізіңіз.', _ => null, } ?? switch (path) { + 'watchTogether.codeMustBe5Chars' => 'Сеанс коды 5 таңбадан тұруы керек', + 'watchTogether.joinInstructions' => 'Ұйымдастырушының сеанс кодын енгізіңіз.', 'watchTogether.failedToCreate' => 'Сеансты жасау мүмкін болмады', 'watchTogether.failedToJoin' => 'Сеансқа қосылу мүмкін болмады', 'watchTogether.sessionCodeCopied' => 'Сеанс коды көшірілді', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index 65c732b7..0086c47c 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$ko extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes}분'; @override String get rememberTrackSelections => '시리즈/영화별 트랙 선택 기억'; @override String get rememberTrackSelectionsDescription => '작품별 오디오 및 자막 선택 기억'; + @override String get followServerTrackSelections => '서버의 에피소드별 트랙 선택 사용'; + @override String get followServerTrackSelectionsDescription => '에피소드 전환 시 현재 선택을 유지하는 대신 서버에서 선택된 오디오와 자막을 적용합니다'; @override String get showChapterMarkersOnTimeline => '탐색 막대에 챕터 마커 표시'; @override String get showChapterMarkersOnTimelineDescription => '챕터 경계에서 탐색 막대 구분'; @override String get clickVideoTogglesPlayback => '동영상 클릭으로 재생/일시정지 전환'; @@ -2352,6 +2354,8 @@ extension on TranslationsKo { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes}분', 'settings.rememberTrackSelections' => '시리즈/영화별 트랙 선택 기억', 'settings.rememberTrackSelectionsDescription' => '작품별 오디오 및 자막 선택 기억', + 'settings.followServerTrackSelections' => '서버의 에피소드별 트랙 선택 사용', + 'settings.followServerTrackSelectionsDescription' => '에피소드 전환 시 현재 선택을 유지하는 대신 서버에서 선택된 오디오와 자막을 적용합니다', 'settings.showChapterMarkersOnTimeline' => '탐색 막대에 챕터 마커 표시', 'settings.showChapterMarkersOnTimelineDescription' => '챕터 경계에서 탐색 막대 구분', 'settings.clickVideoTogglesPlayback' => '동영상 클릭으로 재생/일시정지 전환', @@ -2704,10 +2708,10 @@ extension on TranslationsKo { 'videoControls.searchSubtitles' => '자막 검색', 'videoControls.language' => '언어', 'videoControls.noSubtitlesFound' => '자막을 찾을 수 없습니다', - 'videoControls.subtitleDownloaded' => '자막이 다운로드되었습니다', - 'videoControls.subtitleDownloadedNotApplied' => '자막을 다운로드했지만 선택할 수 없습니다', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => '자막이 다운로드되었습니다', + 'videoControls.subtitleDownloadedNotApplied' => '자막을 다운로드했지만 선택할 수 없습니다', 'videoControls.subtitleDownloadFailed' => '자막 다운로드에 실패했습니다', 'videoControls.searchLanguages' => '언어 검색...', 'messages.markedAsWatched' => '시청 완료로 표시됨', @@ -3218,10 +3222,10 @@ extension on TranslationsKo { 'watchTogether.failedToCreate' => '세션 생성 실패', 'watchTogether.failedToJoin' => '세션 참여 실패', 'watchTogether.sessionCodeCopied' => '세션 코드가 클립보드에 복사되었습니다', - 'watchTogether.relayUnreachable' => '릴레이 서버에 연결할 수 없습니다. ISP 차단으로 함께 보기를 사용하지 못할 수 있습니다.', - 'watchTogether.reconnectingToHost' => '호스트에 재연결 중...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => '릴레이 서버에 연결할 수 없습니다. ISP 차단으로 함께 보기를 사용하지 못할 수 있습니다.', + 'watchTogether.reconnectingToHost' => '호스트에 재연결 중...', 'watchTogether.currentPlayback' => '현재 재생', 'watchTogether.joinCurrentPlayback' => '현재 재생 참여', 'watchTogether.joinCurrentPlaybackDescription' => '호스트가 현재 시청 중인 콘텐츠로 이동합니다', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 7e4c8bc5..faa8907e 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$nb extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minutter'; @override String get rememberTrackSelections => 'Husk sporvalg per serie/film'; @override String get rememberTrackSelectionsDescription => 'Husk lyd- og undertekstvalg per tittel'; + @override String get followServerTrackSelections => 'Bruk serverens sporvalg per episode'; + @override String get followServerTrackSelectionsDescription => 'Ved episodebytte brukes lyden og undertekstene som er valgt på serveren, i stedet for å videreføre gjeldende valg'; @override String get showChapterMarkersOnTimeline => 'Vis kapittelmarkører på tidslinjen'; @override String get showChapterMarkersOnTimelineDescription => 'Del tidslinjen ved kapittelgrenser'; @override String get clickVideoTogglesPlayback => 'Klikk på video for å veksle avspilling'; @@ -2355,6 +2357,8 @@ extension on TranslationsNb { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutter', 'settings.rememberTrackSelections' => 'Husk sporvalg per serie/film', 'settings.rememberTrackSelectionsDescription' => 'Husk lyd- og undertekstvalg per tittel', + 'settings.followServerTrackSelections' => 'Bruk serverens sporvalg per episode', + 'settings.followServerTrackSelectionsDescription' => 'Ved episodebytte brukes lyden og undertekstene som er valgt på serveren, i stedet for å videreføre gjeldende valg', 'settings.showChapterMarkersOnTimeline' => 'Vis kapittelmarkører på tidslinjen', 'settings.showChapterMarkersOnTimelineDescription' => 'Del tidslinjen ved kapittelgrenser', 'settings.clickVideoTogglesPlayback' => 'Klikk på video for å veksle avspilling', @@ -2707,10 +2711,10 @@ extension on TranslationsNb { 'videoControls.searchSubtitles' => 'Søk etter undertekster', 'videoControls.language' => 'Språk', 'videoControls.noSubtitlesFound' => 'Ingen undertekster funnet', - 'videoControls.subtitleDownloaded' => 'Undertekst lastet ned', - 'videoControls.subtitleDownloadedNotApplied' => 'Underteksten ble lastet ned, men kunne ikke velges', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Undertekst lastet ned', + 'videoControls.subtitleDownloadedNotApplied' => 'Underteksten ble lastet ned, men kunne ikke velges', 'videoControls.subtitleDownloadFailed' => 'Kunne ikke laste ned undertekst', 'videoControls.searchLanguages' => 'Søk etter språk...', 'messages.markedAsWatched' => 'Merket som sett', @@ -3221,10 +3225,10 @@ extension on TranslationsNb { 'watchTogether.failedToCreate' => 'Kunne ikke opprette økt', 'watchTogether.failedToJoin' => 'Kunne ikke bli med i økt', 'watchTogether.sessionCodeCopied' => 'Øktkode kopiert til utklippstavle', - 'watchTogether.relayUnreachable' => 'Reléserveren kan ikke nås. Blokkering hos internettleverandøren kan hindre Se sammen.', - 'watchTogether.reconnectingToHost' => 'Kobler til verten på nytt...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Reléserveren kan ikke nås. Blokkering hos internettleverandøren kan hindre Se sammen.', + 'watchTogether.reconnectingToHost' => 'Kobler til verten på nytt...', 'watchTogether.currentPlayback' => 'Gjeldende avspilling', 'watchTogether.joinCurrentPlayback' => 'Bli med i gjeldende avspilling', 'watchTogether.joinCurrentPlaybackDescription' => 'Hopp tilbake til det verten ser på nå', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index b29c68ee..2809c2d7 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$nl extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minuten'; @override String get rememberTrackSelections => 'Trackselecties per serie of film onthouden'; @override String get rememberTrackSelectionsDescription => 'Onthoud audio- en ondertitelkeuzes per titel'; + @override String get followServerTrackSelections => 'Trackselecties van de server per aflevering gebruiken'; + @override String get followServerTrackSelectionsDescription => 'Pas bij het wisselen van aflevering de op de server geselecteerde audio en ondertitels toe in plaats van de huidige keuze over te nemen'; @override String get showChapterMarkersOnTimeline => 'Hoofdstukmarkeringen op tijdlijn tonen'; @override String get showChapterMarkersOnTimelineDescription => 'Verdeel de tijdlijn bij hoofdstukgrenzen'; @override String get clickVideoTogglesPlayback => 'Klik op de video om afspelen of pauzeren te wisselen'; @@ -2355,6 +2357,8 @@ extension on TranslationsNl { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minuten', 'settings.rememberTrackSelections' => 'Trackselecties per serie of film onthouden', 'settings.rememberTrackSelectionsDescription' => 'Onthoud audio- en ondertitelkeuzes per titel', + 'settings.followServerTrackSelections' => 'Trackselecties van de server per aflevering gebruiken', + 'settings.followServerTrackSelectionsDescription' => 'Pas bij het wisselen van aflevering de op de server geselecteerde audio en ondertitels toe in plaats van de huidige keuze over te nemen', 'settings.showChapterMarkersOnTimeline' => 'Hoofdstukmarkeringen op tijdlijn tonen', 'settings.showChapterMarkersOnTimelineDescription' => 'Verdeel de tijdlijn bij hoofdstukgrenzen', 'settings.clickVideoTogglesPlayback' => 'Klik op de video om afspelen of pauzeren te wisselen', @@ -2707,10 +2711,10 @@ extension on TranslationsNl { 'videoControls.searchSubtitles' => 'Ondertitels zoeken', 'videoControls.language' => 'Taal', 'videoControls.noSubtitlesFound' => 'Geen ondertitels gevonden', - 'videoControls.subtitleDownloaded' => 'Ondertitel gedownload', - 'videoControls.subtitleDownloadedNotApplied' => 'De ondertiteling is gedownload, maar kon niet worden geselecteerd', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Ondertitel gedownload', + 'videoControls.subtitleDownloadedNotApplied' => 'De ondertiteling is gedownload, maar kon niet worden geselecteerd', 'videoControls.subtitleDownloadFailed' => 'Ondertitel downloaden mislukt', 'videoControls.searchLanguages' => 'Talen zoeken...', 'messages.markedAsWatched' => 'Gemarkeerd als gekeken', @@ -3221,10 +3225,10 @@ extension on TranslationsNl { 'watchTogether.failedToCreate' => 'Sessie maken mislukt', 'watchTogether.failedToJoin' => 'Deelnemen aan sessie mislukt', 'watchTogether.sessionCodeCopied' => 'Sessiecode naar het klembord gekopieerd', - 'watchTogether.relayUnreachable' => 'De relayserver is onbereikbaar. Een blokkering door je internetprovider kan Samen kijken verhinderen.', - 'watchTogether.reconnectingToHost' => 'Opnieuw verbinden met host...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'De relayserver is onbereikbaar. Een blokkering door je internetprovider kan Samen kijken verhinderen.', + 'watchTogether.reconnectingToHost' => 'Opnieuw verbinden met host...', 'watchTogether.currentPlayback' => 'Wat nu wordt afgespeeld', 'watchTogether.joinCurrentPlayback' => 'Deelnemen aan huidige weergave', 'watchTogether.joinCurrentPlaybackDescription' => 'Ga terug naar wat de host nu kijkt', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index 2c5441cd..a3768ca9 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$pl extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minut'; @override String get rememberTrackSelections => 'Zapamiętuj wybór ścieżek dla każdego serialu i filmu'; @override String get rememberTrackSelectionsDescription => 'Zapamiętuj wybór ścieżki dźwiękowej i napisów dla każdego tytułu'; + @override String get followServerTrackSelections => 'Używaj wyboru ścieżek z serwera dla każdego odcinka'; + @override String get followServerTrackSelectionsDescription => 'Przy zmianie odcinka stosuj ścieżkę dźwiękową i napisy wybrane na serwerze zamiast przenosić bieżący wybór'; @override String get showChapterMarkersOnTimeline => 'Pokaż znaczniki rozdziałów na pasku przewijania'; @override String get showChapterMarkersOnTimelineDescription => 'Podziel pasek przewijania na granicach rozdziałów'; @override String get clickVideoTogglesPlayback => 'Kliknięcie wideo przełącza odtwarzanie/pauzę'; @@ -2361,6 +2363,8 @@ extension on TranslationsPl { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minut', 'settings.rememberTrackSelections' => 'Zapamiętuj wybór ścieżek dla każdego serialu i filmu', 'settings.rememberTrackSelectionsDescription' => 'Zapamiętuj wybór ścieżki dźwiękowej i napisów dla każdego tytułu', + 'settings.followServerTrackSelections' => 'Używaj wyboru ścieżek z serwera dla każdego odcinka', + 'settings.followServerTrackSelectionsDescription' => 'Przy zmianie odcinka stosuj ścieżkę dźwiękową i napisy wybrane na serwerze zamiast przenosić bieżący wybór', 'settings.showChapterMarkersOnTimeline' => 'Pokaż znaczniki rozdziałów na pasku przewijania', 'settings.showChapterMarkersOnTimelineDescription' => 'Podziel pasek przewijania na granicach rozdziałów', 'settings.clickVideoTogglesPlayback' => 'Kliknięcie wideo przełącza odtwarzanie/pauzę', @@ -2713,10 +2717,10 @@ extension on TranslationsPl { 'videoControls.searchSubtitles' => 'Szukaj napisów', 'videoControls.language' => 'Język', 'videoControls.noSubtitlesFound' => 'Nie znaleziono napisów', - 'videoControls.subtitleDownloaded' => 'Napisy pobrane', - 'videoControls.subtitleDownloadedNotApplied' => 'Napisy zostały pobrane, ale nie można ich było wybrać', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Napisy pobrane', + 'videoControls.subtitleDownloadedNotApplied' => 'Napisy zostały pobrane, ale nie można ich było wybrać', 'videoControls.subtitleDownloadFailed' => 'Nie udało się pobrać napisów', 'videoControls.searchLanguages' => 'Szukaj języków...', 'messages.markedAsWatched' => 'Oznaczono jako obejrzane', @@ -3227,10 +3231,10 @@ extension on TranslationsPl { 'watchTogether.failedToCreate' => 'Nie udało się utworzyć sesji', 'watchTogether.failedToJoin' => 'Nie udało się dołączyć do sesji', 'watchTogether.sessionCodeCopied' => 'Kod sesji skopiowany do schowka', - 'watchTogether.relayUnreachable' => 'Serwer pośredniczący jest nieosiągalny. Blokada operatora internetowego może uniemożliwiać korzystanie z funkcji „Oglądaj razem”.', - 'watchTogether.reconnectingToHost' => 'Ponowne łączenie z gospodarzem...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Serwer pośredniczący jest nieosiągalny. Blokada operatora internetowego może uniemożliwiać korzystanie z funkcji „Oglądaj razem”.', + 'watchTogether.reconnectingToHost' => 'Ponowne łączenie z gospodarzem...', 'watchTogether.currentPlayback' => 'Bieżące odtwarzanie', 'watchTogether.joinCurrentPlayback' => 'Dołącz do bieżącego odtwarzania', 'watchTogether.joinCurrentPlaybackDescription' => 'Wróć do treści oglądanej obecnie przez gospodarza', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 378c97a0..19cca20c 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$pt extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minutos'; @override String get rememberTrackSelections => 'Lembrar seleção de faixas por série/filme'; @override String get rememberTrackSelectionsDescription => 'Lembrar escolhas de áudio e legendas por título'; + @override String get followServerTrackSelections => 'Usar a seleção de faixas do servidor por episódio'; + @override String get followServerTrackSelectionsDescription => 'Ao mudar de episódio, aplicar o áudio e as legendas selecionados no servidor em vez de manter a escolha atual'; @override String get showChapterMarkersOnTimeline => 'Mostrar marcadores de capítulos na barra de reprodução'; @override String get showChapterMarkersOnTimelineDescription => 'Segmentar a barra de reprodução nos limites dos capítulos'; @override String get clickVideoTogglesPlayback => 'Clicar no vídeo para alternar reprodução/pausa'; @@ -2355,6 +2357,8 @@ extension on TranslationsPt { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutos', 'settings.rememberTrackSelections' => 'Lembrar seleção de faixas por série/filme', 'settings.rememberTrackSelectionsDescription' => 'Lembrar escolhas de áudio e legendas por título', + 'settings.followServerTrackSelections' => 'Usar a seleção de faixas do servidor por episódio', + 'settings.followServerTrackSelectionsDescription' => 'Ao mudar de episódio, aplicar o áudio e as legendas selecionados no servidor em vez de manter a escolha atual', 'settings.showChapterMarkersOnTimeline' => 'Mostrar marcadores de capítulos na barra de reprodução', 'settings.showChapterMarkersOnTimelineDescription' => 'Segmentar a barra de reprodução nos limites dos capítulos', 'settings.clickVideoTogglesPlayback' => 'Clicar no vídeo para alternar reprodução/pausa', @@ -2707,10 +2711,10 @@ extension on TranslationsPt { 'videoControls.searchSubtitles' => 'Pesquisar legendas', 'videoControls.language' => 'Idioma', 'videoControls.noSubtitlesFound' => 'Nenhuma legenda encontrada', - 'videoControls.subtitleDownloaded' => 'Legenda baixada', - 'videoControls.subtitleDownloadedNotApplied' => 'A legenda foi baixada, mas não foi possível selecioná-la', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Legenda baixada', + 'videoControls.subtitleDownloadedNotApplied' => 'A legenda foi baixada, mas não foi possível selecioná-la', 'videoControls.subtitleDownloadFailed' => 'Falha ao baixar legenda', 'videoControls.searchLanguages' => 'Pesquisar idiomas...', 'messages.markedAsWatched' => 'Marcado como assistido', @@ -3221,10 +3225,10 @@ extension on TranslationsPt { 'watchTogether.failedToCreate' => 'Falha ao criar sessão', 'watchTogether.failedToJoin' => 'Falha ao entrar na sessão', 'watchTogether.sessionCodeCopied' => 'Código da sessão copiado para a área de transferência', - 'watchTogether.relayUnreachable' => 'Servidor de retransmissão inacessível. O bloqueio pelo provedor de internet pode impedir o uso do Assistir Juntos.', - 'watchTogether.reconnectingToHost' => 'Reconectando ao anfitrião...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Servidor de retransmissão inacessível. O bloqueio pelo provedor de internet pode impedir o uso do Assistir Juntos.', + 'watchTogether.reconnectingToHost' => 'Reconectando ao anfitrião...', 'watchTogether.currentPlayback' => 'Reprodução atual', 'watchTogether.joinCurrentPlayback' => 'Entrar na reprodução atual', 'watchTogether.joinCurrentPlaybackDescription' => 'Voltar ao conteúdo que o anfitrião está assistindo agora', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index ef7c5a7d..f3975558 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$ru extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} мин'; @override String get rememberTrackSelections => 'Запоминать выбор дорожек для каждого сериала/фильма'; @override String get rememberTrackSelectionsDescription => 'Запоминать выбор аудиодорожки и субтитров для каждого материала'; + @override String get followServerTrackSelections => 'Использовать выбор дорожек сервера для каждой серии'; + @override String get followServerTrackSelectionsDescription => 'При смене серии применять аудио и субтитры, выбранные на сервере, вместо переноса текущего выбора'; @override String get showChapterMarkersOnTimeline => 'Показывать маркеры глав на шкале перемотки'; @override String get showChapterMarkersOnTimelineDescription => 'Разделять шкалу перемотки по границам глав'; @override String get clickVideoTogglesPlayback => 'Нажатие на видео запускает или приостанавливает воспроизведение'; @@ -2361,6 +2363,8 @@ extension on TranslationsRu { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} мин', 'settings.rememberTrackSelections' => 'Запоминать выбор дорожек для каждого сериала/фильма', 'settings.rememberTrackSelectionsDescription' => 'Запоминать выбор аудиодорожки и субтитров для каждого материала', + 'settings.followServerTrackSelections' => 'Использовать выбор дорожек сервера для каждой серии', + 'settings.followServerTrackSelectionsDescription' => 'При смене серии применять аудио и субтитры, выбранные на сервере, вместо переноса текущего выбора', 'settings.showChapterMarkersOnTimeline' => 'Показывать маркеры глав на шкале перемотки', 'settings.showChapterMarkersOnTimelineDescription' => 'Разделять шкалу перемотки по границам глав', 'settings.clickVideoTogglesPlayback' => 'Нажатие на видео запускает или приостанавливает воспроизведение', @@ -2713,10 +2717,10 @@ extension on TranslationsRu { 'videoControls.searchSubtitles' => 'Поиск субтитров', 'videoControls.language' => 'Язык', 'videoControls.noSubtitlesFound' => 'Субтитры не найдены', - 'videoControls.subtitleDownloaded' => 'Субтитры загружены', - 'videoControls.subtitleDownloadedNotApplied' => 'Субтитры загружены, но их не удалось выбрать', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Субтитры загружены', + 'videoControls.subtitleDownloadedNotApplied' => 'Субтитры загружены, но их не удалось выбрать', 'videoControls.subtitleDownloadFailed' => 'Не удалось загрузить субтитры', 'videoControls.searchLanguages' => 'Поиск языков...', 'messages.markedAsWatched' => 'Отмечено как просмотренное', @@ -3227,10 +3231,10 @@ extension on TranslationsRu { 'watchTogether.failedToCreate' => 'Не удалось создать сессию', 'watchTogether.failedToJoin' => 'Не удалось присоединиться к сессии', 'watchTogether.sessionCodeCopied' => 'Код сессии скопирован в буфер обмена', - 'watchTogether.relayUnreachable' => 'Сервер ретрансляции недоступен. Блокировка интернет-провайдером может помешать совместному просмотру.', - 'watchTogether.reconnectingToHost' => 'Повторное подключение к организатору...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Сервер ретрансляции недоступен. Блокировка интернет-провайдером может помешать совместному просмотру.', + 'watchTogether.reconnectingToHost' => 'Повторное подключение к организатору...', 'watchTogether.currentPlayback' => 'Текущее воспроизведение', 'watchTogether.joinCurrentPlayback' => 'Присоединиться к текущему воспроизведению', 'watchTogether.joinCurrentPlaybackDescription' => 'Вернуться к материалу, который сейчас смотрит организатор', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index ee95d8c6..712e63c9 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$sv extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} minuter'; @override String get rememberTrackSelections => 'Kom ihåg spårval per serie/film'; @override String get rememberTrackSelectionsDescription => 'Kom ihåg ljud- och undertextval per titel'; + @override String get followServerTrackSelections => 'Använd serverns spårval per avsnitt'; + @override String get followServerTrackSelectionsDescription => 'Vid avsnittsbyte används ljudet och undertexterna som valts på servern i stället för att föra över det aktuella valet'; @override String get showChapterMarkersOnTimeline => 'Visa kapitelmarkörer på tidslinjen'; @override String get showChapterMarkersOnTimelineDescription => 'Dela upp tidslinjen vid kapitelgränser'; @override String get clickVideoTogglesPlayback => 'Klicka på videon för att spela upp eller pausa'; @@ -2355,6 +2357,8 @@ extension on TranslationsSv { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minuter', 'settings.rememberTrackSelections' => 'Kom ihåg spårval per serie/film', 'settings.rememberTrackSelectionsDescription' => 'Kom ihåg ljud- och undertextval per titel', + 'settings.followServerTrackSelections' => 'Använd serverns spårval per avsnitt', + 'settings.followServerTrackSelectionsDescription' => 'Vid avsnittsbyte används ljudet och undertexterna som valts på servern i stället för att föra över det aktuella valet', 'settings.showChapterMarkersOnTimeline' => 'Visa kapitelmarkörer på tidslinjen', 'settings.showChapterMarkersOnTimelineDescription' => 'Dela upp tidslinjen vid kapitelgränser', 'settings.clickVideoTogglesPlayback' => 'Klicka på videon för att spela upp eller pausa', @@ -2707,10 +2711,10 @@ extension on TranslationsSv { 'videoControls.searchSubtitles' => 'Sök undertexter', 'videoControls.language' => 'Språk', 'videoControls.noSubtitlesFound' => 'Inga undertexter hittades', - 'videoControls.subtitleDownloaded' => 'Undertexten har laddats ned', - 'videoControls.subtitleDownloadedNotApplied' => 'Undertexten laddades ned men kunde inte väljas', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => 'Undertexten har laddats ned', + 'videoControls.subtitleDownloadedNotApplied' => 'Undertexten laddades ned men kunde inte väljas', 'videoControls.subtitleDownloadFailed' => 'Det gick inte att ladda ned undertexten', 'videoControls.searchLanguages' => 'Sök språk...', 'messages.markedAsWatched' => 'Markerad som sedd', @@ -3221,10 +3225,10 @@ extension on TranslationsSv { 'watchTogether.failedToCreate' => 'Det gick inte att skapa sessionen', 'watchTogether.failedToJoin' => 'Det gick inte att gå med i sessionen', 'watchTogether.sessionCodeCopied' => 'Sessionskoden har kopierats till urklipp', - 'watchTogether.relayUnreachable' => 'Reläservern kan inte nås. Din internetleverantör kan blockera Titta tillsammans.', - 'watchTogether.reconnectingToHost' => 'Återansluter till värden...', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => 'Reläservern kan inte nås. Din internetleverantör kan blockera Titta tillsammans.', + 'watchTogether.reconnectingToHost' => 'Återansluter till värden...', 'watchTogether.currentPlayback' => 'Aktuell uppspelning', 'watchTogether.joinCurrentPlayback' => 'Gå med i aktuell uppspelning', 'watchTogether.joinCurrentPlaybackDescription' => 'Hoppa tillbaka till det värden tittar på just nu', diff --git a/lib/i18n/strings_tr.g.dart b/lib/i18n/strings_tr.g.dart index a6c199c1..0bf8e92f 100644 --- a/lib/i18n/strings_tr.g.dart +++ b/lib/i18n/strings_tr.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$tr extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} dakika'; @override String get rememberTrackSelections => 'Dizi/film başına ses/altyazı seçimlerini hatırla'; @override String get rememberTrackSelectionsDescription => 'İçerik başına ses ve altyazı tercihlerini hatırla'; + @override String get followServerTrackSelections => 'Sunucunun bölüm başına parça seçimlerini kullan'; + @override String get followServerTrackSelectionsDescription => 'Bölüm değiştiğinde geçerli seçimi taşımak yerine sunucuda seçilen ses ve altyazıyı uygula'; @override String get showChapterMarkersOnTimeline => 'Zaman çubuğunda kısım işaretçilerini göster'; @override String get showChapterMarkersOnTimelineDescription => 'Zaman çubuğunu kısım sınırlarına göre böl'; @override String get clickVideoTogglesPlayback => 'Oynat/duraklat için videoya tıkla'; @@ -2366,6 +2368,8 @@ extension on TranslationsTr { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} dakika', 'settings.rememberTrackSelections' => 'Dizi/film başına ses/altyazı seçimlerini hatırla', 'settings.rememberTrackSelectionsDescription' => 'İçerik başına ses ve altyazı tercihlerini hatırla', + 'settings.followServerTrackSelections' => 'Sunucunun bölüm başına parça seçimlerini kullan', + 'settings.followServerTrackSelectionsDescription' => 'Bölüm değiştiğinde geçerli seçimi taşımak yerine sunucuda seçilen ses ve altyazıyı uygula', 'settings.showChapterMarkersOnTimeline' => 'Zaman çubuğunda kısım işaretçilerini göster', 'settings.showChapterMarkersOnTimelineDescription' => 'Zaman çubuğunu kısım sınırlarına göre böl', 'settings.clickVideoTogglesPlayback' => 'Oynat/duraklat için videoya tıkla', @@ -2718,10 +2722,10 @@ extension on TranslationsTr { 'videoControls.noChaptersAvailable' => 'Kısım bulunmuyor', 'videoControls.queue' => 'Kuyruk', 'videoControls.noQueueItems' => 'Kuyrukta öge yok', - 'videoControls.searchSubtitles' => 'Altyazı Ara', - 'videoControls.language' => 'Dil', _ => null, } ?? switch (path) { + 'videoControls.searchSubtitles' => 'Altyazı Ara', + 'videoControls.language' => 'Dil', 'videoControls.noSubtitlesFound' => 'Altyazı bulunamadı', 'videoControls.subtitleDownloaded' => 'Altyazı indirildi', 'videoControls.subtitleDownloadedNotApplied' => 'Altyazı indirildi ancak seçilemedi', @@ -3232,10 +3236,10 @@ extension on TranslationsTr { 'watchTogether.enterCodeHint' => '5 karakterlik kodu girin', 'watchTogether.pasteFromClipboard' => 'Panodan yapıştır', 'watchTogether.pleaseEnterCode' => 'Lütfen bir oturum kodu girin', - 'watchTogether.codeMustBe5Chars' => 'Oturum kodu 5 karakter olmalıdır', - 'watchTogether.joinInstructions' => 'Katılmak için kurucunun oturum kodunu girin.', _ => null, } ?? switch (path) { + 'watchTogether.codeMustBe5Chars' => 'Oturum kodu 5 karakter olmalıdır', + 'watchTogether.joinInstructions' => 'Katılmak için kurucunun oturum kodunu girin.', 'watchTogether.failedToCreate' => 'Oturum oluşturulamadı', 'watchTogether.failedToJoin' => 'Oturuma katılınamadı', 'watchTogether.sessionCodeCopied' => 'Oturum kodu panoya kopyalandı', diff --git a/lib/i18n/strings_uz.g.dart b/lib/i18n/strings_uz.g.dart index 62b93c07..66c1cb09 100644 --- a/lib/i18n/strings_uz.g.dart +++ b/lib/i18n/strings_uz.g.dart @@ -300,6 +300,8 @@ class _Translations$settings$uz extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} daqiqa'; @override String get rememberTrackSelections => 'Har bir film/serial uchun ovoz/subtitr tanlovini eslab qolish'; @override String get rememberTrackSelectionsDescription => 'Har bir media uchun ovoz va subtitr sozlamalarini saqlash'; + @override String get followServerTrackSelections => 'Har bir epizod uchun serverdagi tanlovlardan foydalanish'; + @override String get followServerTrackSelectionsDescription => 'Epizod almashganda joriy tanlovni ko\'chirish o\'rniga serverda tanlangan ovoz va subtitrni qo\'llash'; @override String get showChapterMarkersOnTimeline => 'Vaqt shkalasida boʻlim belgilarini koʻrsatish'; @override String get showChapterMarkersOnTimelineDescription => 'Vaqt shkalasini boʻlimlarga boʻlish'; @override String get clickVideoTogglesPlayback => 'Ijro/pauza uchun videoga bosing'; @@ -2366,6 +2368,8 @@ extension on TranslationsUz { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} daqiqa', 'settings.rememberTrackSelections' => 'Har bir film/serial uchun ovoz/subtitr tanlovini eslab qolish', 'settings.rememberTrackSelectionsDescription' => 'Har bir media uchun ovoz va subtitr sozlamalarini saqlash', + 'settings.followServerTrackSelections' => 'Har bir epizod uchun serverdagi tanlovlardan foydalanish', + 'settings.followServerTrackSelectionsDescription' => 'Epizod almashganda joriy tanlovni ko\'chirish o\'rniga serverda tanlangan ovoz va subtitrni qo\'llash', 'settings.showChapterMarkersOnTimeline' => 'Vaqt shkalasida boʻlim belgilarini koʻrsatish', 'settings.showChapterMarkersOnTimelineDescription' => 'Vaqt shkalasini boʻlimlarga boʻlish', 'settings.clickVideoTogglesPlayback' => 'Ijro/pauza uchun videoga bosing', @@ -2718,10 +2722,10 @@ extension on TranslationsUz { 'videoControls.noChaptersAvailable' => 'Boʻlimlar mavjud emas', 'videoControls.queue' => 'Navbat', 'videoControls.noQueueItems' => 'Navbatda elementlar yoʻq', - 'videoControls.searchSubtitles' => 'Subtitr qidirish', - 'videoControls.language' => 'Til', _ => null, } ?? switch (path) { + 'videoControls.searchSubtitles' => 'Subtitr qidirish', + 'videoControls.language' => 'Til', 'videoControls.noSubtitlesFound' => 'Subtitr topilmadi', 'videoControls.subtitleDownloaded' => 'Subtitr yuklab olindi', 'videoControls.subtitleDownloadedNotApplied' => 'Subtitr yuklab olindi, lekin qoʻllanilmadi', @@ -3232,10 +3236,10 @@ extension on TranslationsUz { 'watchTogether.enterCodeHint' => '5 xonali kodni kiriting', 'watchTogether.pasteFromClipboard' => 'Xotiradan joylash', 'watchTogether.pleaseEnterCode' => 'Seans kodini kiriting', - 'watchTogether.codeMustBe5Chars' => 'Seans kodi 5 ta belgidan iborat boʻlishi kerak', - 'watchTogether.joinInstructions' => 'Tashkilotchining seans kodini kiriting.', _ => null, } ?? switch (path) { + 'watchTogether.codeMustBe5Chars' => 'Seans kodi 5 ta belgidan iborat boʻlishi kerak', + 'watchTogether.joinInstructions' => 'Tashkilotchining seans kodini kiriting.', 'watchTogether.failedToCreate' => 'Seansni yaratib boʻlmadi', 'watchTogether.failedToJoin' => 'Seansga qoʻshilib boʻlmadi', 'watchTogether.sessionCodeCopied' => 'Seans kodi nusxalandi', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index 6cec799d..3db5702b 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -300,6 +300,8 @@ class Translations$settings$zh extends Translations$settings$en { @override String minutesUnit({required Object minutes}) => '${minutes} 分钟'; @override String get rememberTrackSelections => '记住每部剧集或电影的音轨选择'; @override String get rememberTrackSelectionsDescription => '分别记住每部内容的音频和字幕选择'; + @override String get followServerTrackSelections => '使用服务器为每集选择的轨道'; + @override String get followServerTrackSelectionsDescription => '切换剧集时,应用服务器上为该集选择的音频和字幕,而不是沿用当前选择'; @override String get showChapterMarkersOnTimeline => '在进度条上显示章节标记'; @override String get showChapterMarkersOnTimelineDescription => '按章节边界分段显示进度条'; @override String get clickVideoTogglesPlayback => '点击视频可切换播放/暂停'; @@ -2352,6 +2354,8 @@ extension on TranslationsZh { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} 分钟', 'settings.rememberTrackSelections' => '记住每部剧集或电影的音轨选择', 'settings.rememberTrackSelectionsDescription' => '分别记住每部内容的音频和字幕选择', + 'settings.followServerTrackSelections' => '使用服务器为每集选择的轨道', + 'settings.followServerTrackSelectionsDescription' => '切换剧集时,应用服务器上为该集选择的音频和字幕,而不是沿用当前选择', 'settings.showChapterMarkersOnTimeline' => '在进度条上显示章节标记', 'settings.showChapterMarkersOnTimelineDescription' => '按章节边界分段显示进度条', 'settings.clickVideoTogglesPlayback' => '点击视频可切换播放/暂停', @@ -2704,10 +2708,10 @@ extension on TranslationsZh { 'videoControls.searchSubtitles' => '搜索字幕', 'videoControls.language' => '语言', 'videoControls.noSubtitlesFound' => '未找到字幕', - 'videoControls.subtitleDownloaded' => '字幕已下载', - 'videoControls.subtitleDownloadedNotApplied' => '字幕已下载,但无法选择', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => '字幕已下载', + 'videoControls.subtitleDownloadedNotApplied' => '字幕已下载,但无法选择', 'videoControls.subtitleDownloadFailed' => '字幕下载失败', 'videoControls.searchLanguages' => '搜索语言…', 'messages.markedAsWatched' => '已标记为已观看', @@ -3218,10 +3222,10 @@ extension on TranslationsZh { 'watchTogether.failedToCreate' => '创建会话失败', 'watchTogether.failedToJoin' => '加入会话失败', 'watchTogether.sessionCodeCopied' => '会话代码已复制到剪贴板', - 'watchTogether.relayUnreachable' => '无法访问中继服务器。网络运营商的屏蔽可能导致“一起看”不可用。', - 'watchTogether.reconnectingToHost' => '正在重新连接到主持人…', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => '无法访问中继服务器。网络运营商的屏蔽可能导致“一起看”不可用。', + 'watchTogether.reconnectingToHost' => '正在重新连接到主持人…', 'watchTogether.currentPlayback' => '当前播放', 'watchTogether.joinCurrentPlayback' => '加入当前播放', 'watchTogether.joinCurrentPlaybackDescription' => '加入主持人当前正在观看的内容', diff --git a/lib/i18n/strings_zh_Hant.g.dart b/lib/i18n/strings_zh_Hant.g.dart index 52da540a..17b8735c 100644 --- a/lib/i18n/strings_zh_Hant.g.dart +++ b/lib/i18n/strings_zh_Hant.g.dart @@ -301,6 +301,8 @@ class _Translations$settings$zh_Hant extends Translations$settings$zh { @override String minutesUnit({required Object minutes}) => '${minutes} 分鐘'; @override String get rememberTrackSelections => '記住每部影集或電影的音訊與字幕選擇'; @override String get rememberTrackSelectionsDescription => '記住每部影片的音軌與字幕選擇'; + @override String get followServerTrackSelections => '使用伺服器為每集選擇的軌道'; + @override String get followServerTrackSelectionsDescription => '切換劇集時,套用伺服器上為該集選擇的音訊與字幕,而不是沿用目前選擇'; @override String get showChapterMarkersOnTimeline => '在進度條上顯示章節標記'; @override String get showChapterMarkersOnTimelineDescription => '依章節分段顯示進度條'; @override String get clickVideoTogglesPlayback => '點選影片可切換播放或暫停'; @@ -2353,6 +2355,8 @@ extension on TranslationsZhHant { 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} 分鐘', 'settings.rememberTrackSelections' => '記住每部影集或電影的音訊與字幕選擇', 'settings.rememberTrackSelectionsDescription' => '記住每部影片的音軌與字幕選擇', + 'settings.followServerTrackSelections' => '使用伺服器為每集選擇的軌道', + 'settings.followServerTrackSelectionsDescription' => '切換劇集時,套用伺服器上為該集選擇的音訊與字幕,而不是沿用目前選擇', 'settings.showChapterMarkersOnTimeline' => '在進度條上顯示章節標記', 'settings.showChapterMarkersOnTimelineDescription' => '依章節分段顯示進度條', 'settings.clickVideoTogglesPlayback' => '點選影片可切換播放或暫停', @@ -2705,10 +2709,10 @@ extension on TranslationsZhHant { 'videoControls.searchSubtitles' => '搜尋字幕', 'videoControls.language' => '語言', 'videoControls.noSubtitlesFound' => '找不到字幕', - 'videoControls.subtitleDownloaded' => '字幕下載成功', - 'videoControls.subtitleDownloadedNotApplied' => '字幕已下載,但無法套用', _ => null, } ?? switch (path) { + 'videoControls.subtitleDownloaded' => '字幕下載成功', + 'videoControls.subtitleDownloadedNotApplied' => '字幕已下載,但無法套用', 'videoControls.subtitleDownloadFailed' => '字幕下載失敗', 'videoControls.searchLanguages' => '搜尋語言…', 'messages.markedAsWatched' => '已標記為已觀看', @@ -3219,10 +3223,10 @@ extension on TranslationsZhHant { 'watchTogether.failedToCreate' => '建立工作階段失敗', 'watchTogether.failedToJoin' => '加入工作階段失敗', 'watchTogether.sessionCodeCopied' => '工作階段代碼已複製到剪貼簿', - 'watchTogether.relayUnreachable' => '無法連線至中繼伺服器。ISP 封鎖可能會導致「一起看」無法使用。', - 'watchTogether.reconnectingToHost' => '正在重新連線至主持人…', _ => null, } ?? switch (path) { + 'watchTogether.relayUnreachable' => '無法連線至中繼伺服器。ISP 封鎖可能會導致「一起看」無法使用。', + 'watchTogether.reconnectingToHost' => '正在重新連線至主持人…', 'watchTogether.currentPlayback' => '目前播放內容', 'watchTogether.joinCurrentPlayback' => '加入目前播放點', 'watchTogether.joinCurrentPlaybackDescription' => '同步至主持人目前的觀看進度', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 67bc1ce3..1cd012bc 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} minuter", "rememberTrackSelections": "Kom ihåg spårval per serie/film", "rememberTrackSelectionsDescription": "Kom ihåg ljud- och undertextval per titel", + "followServerTrackSelections": "Använd serverns spårval per avsnitt", + "followServerTrackSelectionsDescription": "Vid avsnittsbyte används ljudet och undertexterna som valts på servern i stället för att föra över det aktuella valet", "showChapterMarkersOnTimeline": "Visa kapitelmarkörer på tidslinjen", "showChapterMarkersOnTimelineDescription": "Dela upp tidslinjen vid kapitelgränser", "clickVideoTogglesPlayback": "Klicka på videon för att spela upp eller pausa", diff --git a/lib/i18n/tr.i18n.json b/lib/i18n/tr.i18n.json index 73ce29b6..ee9c97be 100644 --- a/lib/i18n/tr.i18n.json +++ b/lib/i18n/tr.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} dakika", "rememberTrackSelections": "Dizi/film başına ses/altyazı seçimlerini hatırla", "rememberTrackSelectionsDescription": "İçerik başına ses ve altyazı tercihlerini hatırla", + "followServerTrackSelections": "Sunucunun bölüm başına parça seçimlerini kullan", + "followServerTrackSelectionsDescription": "Bölüm değiştiğinde geçerli seçimi taşımak yerine sunucuda seçilen ses ve altyazıyı uygula", "showChapterMarkersOnTimeline": "Zaman çubuğunda kısım işaretçilerini göster", "showChapterMarkersOnTimelineDescription": "Zaman çubuğunu kısım sınırlarına göre böl", "clickVideoTogglesPlayback": "Oynat/duraklat için videoya tıkla", diff --git a/lib/i18n/uz.i18n.json b/lib/i18n/uz.i18n.json index 8f3d530c..e67d0b5e 100644 --- a/lib/i18n/uz.i18n.json +++ b/lib/i18n/uz.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} daqiqa", "rememberTrackSelections": "Har bir film/serial uchun ovoz/subtitr tanlovini eslab qolish", "rememberTrackSelectionsDescription": "Har bir media uchun ovoz va subtitr sozlamalarini saqlash", + "followServerTrackSelections": "Har bir epizod uchun serverdagi tanlovlardan foydalanish", + "followServerTrackSelectionsDescription": "Epizod almashganda joriy tanlovni ko'chirish o'rniga serverda tanlangan ovoz va subtitrni qo'llash", "showChapterMarkersOnTimeline": "Vaqt shkalasida boʻlim belgilarini koʻrsatish", "showChapterMarkersOnTimelineDescription": "Vaqt shkalasini boʻlimlarga boʻlish", "clickVideoTogglesPlayback": "Ijro/pauza uchun videoga bosing", diff --git a/lib/i18n/zh-Hant.i18n.json b/lib/i18n/zh-Hant.i18n.json index 12619eba..16496fa0 100644 --- a/lib/i18n/zh-Hant.i18n.json +++ b/lib/i18n/zh-Hant.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} 分鐘", "rememberTrackSelections": "記住每部影集或電影的音訊與字幕選擇", "rememberTrackSelectionsDescription": "記住每部影片的音軌與字幕選擇", + "followServerTrackSelections": "使用伺服器為每集選擇的軌道", + "followServerTrackSelectionsDescription": "切換劇集時,套用伺服器上為該集選擇的音訊與字幕,而不是沿用目前選擇", "showChapterMarkersOnTimeline": "在進度條上顯示章節標記", "showChapterMarkersOnTimelineDescription": "依章節分段顯示進度條", "clickVideoTogglesPlayback": "點選影片可切換播放或暫停", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index aca8f07d..9d62ef6c 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -168,6 +168,8 @@ "minutesUnit": "${minutes} 分钟", "rememberTrackSelections": "记住每部剧集或电影的音轨选择", "rememberTrackSelectionsDescription": "分别记住每部内容的音频和字幕选择", + "followServerTrackSelections": "使用服务器为每集选择的轨道", + "followServerTrackSelectionsDescription": "切换剧集时,应用服务器上为该集选择的音频和字幕,而不是沿用当前选择", "showChapterMarkersOnTimeline": "在进度条上显示章节标记", "showChapterMarkersOnTimelineDescription": "按章节边界分段显示进度条", "clickVideoTogglesPlayback": "点击视频可切换播放/暂停", diff --git a/lib/screens/settings/playback_settings_screen.dart b/lib/screens/settings/playback_settings_screen.dart index 3f7fd680..c8e7cce1 100644 --- a/lib/screens/settings/playback_settings_screen.dart +++ b/lib/screens/settings/playback_settings_screen.dart @@ -202,6 +202,12 @@ class _PlaybackSettingsScreenState extends State { title: t.settings.rememberTrackSelections, subtitle: t.settings.rememberTrackSelectionsDescription, ), + SettingSwitchTile( + pref: SettingsService.followServerTrackSelections, + icon: Symbols.dns_rounded, + title: t.settings.followServerTrackSelections, + subtitle: t.settings.followServerTrackSelectionsDescription, + ), SettingSwitchTile( pref: SettingsService.showChapterMarkersOnTimeline, icon: Symbols.bookmarks_rounded, diff --git a/lib/screens/video_player/parts/episode_navigation.dart b/lib/screens/video_player/parts/episode_navigation.dart index db3d088d..5c614208 100644 --- a/lib/screens/video_player/parts/episode_navigation.dart +++ b/lib/screens/video_player/parts/episode_navigation.dart @@ -146,17 +146,27 @@ extension _VideoPlayerEpisodeNavigationMethods on VideoPlayerScreenState { _effectiveSelectedMediaIndex >= 0 && _effectiveSelectedMediaIndex < _availableVersions.length ? _availableVersions[_effectiveSelectedMediaIndex].signature : null; + // Users who curate per-episode selections server-side (e.g. via Plex Auto + // Languages) opt out of carrying tracks across episodes entirely: with no + // preferences, both audio and subtitles start at the server-selected + // priority (#1717). + final settingsService = await SettingsService.getInstance(); + final followServerSelections = settingsService.read(SettingsService.followServerTrackSelections); final committedSubtitleSelection = _playbackSession?.subtitleSelection; - final primarySubtitlePreference = subtitlePreferenceForItemChange( - hasCommittedSelection: committedSubtitleSelection != null, - committedTrack: committedSubtitleSelection?.primaryTrack, - nativeTrack: currentPlayer.state.track.subtitle, - ); - final secondarySubtitlePreference = subtitlePreferenceForItemChange( - hasCommittedSelection: committedSubtitleSelection != null, - committedTrack: committedSubtitleSelection?.secondaryTrack, - nativeTrack: currentPlayer.state.track.secondarySubtitle, - ); + final primarySubtitlePreference = followServerSelections + ? null + : subtitlePreferenceForItemChange( + hasCommittedSelection: committedSubtitleSelection != null, + committedTrack: committedSubtitleSelection?.primaryTrack, + nativeTrack: currentPlayer.state.track.subtitle, + ); + final secondarySubtitlePreference = followServerSelections + ? null + : subtitlePreferenceForItemChange( + hasCommittedSelection: committedSubtitleSelection != null, + committedTrack: committedSubtitleSelection?.secondaryTrack, + nativeTrack: currentPlayer.state.track.secondarySubtitle, + ); await _reloadMediaInPlace( metadata: episodeMetadata, selectedMediaIndex: _effectiveSelectedMediaIndex, @@ -166,7 +176,7 @@ extension _VideoPlayerEpisodeNavigationMethods on VideoPlayerScreenState { // Stream ids are per-part: the previous episode's audio id is // meaningless on the new item, so let preferences pick the track. useCurrentAudioStreamSelection: false, - preserveCurrentTrackSelection: true, + preserveCurrentTrackSelection: !followServerSelections, preservedSubtitleTrack: primarySubtitlePreference, preservedSecondarySubtitleTrack: secondarySubtitlePreference, reason: 'episode navigation', diff --git a/lib/services/settings_service.dart b/lib/services/settings_service.dart index e13b8116..b572ae24 100644 --- a/lib/services/settings_service.dart +++ b/lib/services/settings_service.dart @@ -350,6 +350,10 @@ class SettingsService extends BaseSharedPreferencesService { static const subtitleItalic = BoolPref('subtitle_italic'); static const cleanedOldImageCache = BoolPref('cleaned_old_image_cache'); static const rememberTrackSelections = BoolPref('remember_track_selections', defaultValue: true); + + /// Episode advance follows the server's per-episode audio/subtitle + /// selections instead of carrying the current choice over (#1717). + static const followServerTrackSelections = BoolPref('follow_server_track_selections'); static const showChapterMarkersOnTimeline = BoolPref('show_chapter_markers_on_timeline', defaultValue: true); static const clickVideoTogglesPlayback = BoolPref('click_video_toggles_playback'); static const autoSkipIntro = BoolPref('auto_skip_intro'); @@ -838,6 +842,7 @@ class SettingsService extends BaseSharedPreferencesService { subtitleBackgroundColor, subtitleBackgroundOpacity, rememberTrackSelections, + followServerTrackSelections, downloadOnWifiOnly, backgroundDownloadWarningAcknowledged, downloadIncludeSpecials,