mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-14 05:06:16 -08:00
feat(downloads): localize season queue feedback
This commit is contained in:
1 parent
29af7d8674
commit
ebb1afe8db
20 files changed
+194
-31
No files matched your search
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "التنزيلات",
|
||||
"DOWNLOAD": "تنزيل",
|
||||
"PLAY_LOCAL": "تشغيل محلي",
|
||||
"DOWNLOAD_SEASON": "تنزيل الموسم ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "تنزيل الموسم، تتوفر {{count}} حلقات",
|
||||
"ADDING_TO_QUEUE": "جارٍ الإضافة إلى قائمة الانتظار…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "تنزيل {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} موجود بالفعل في قائمة انتظار التنزيل",
|
||||
"EPISODE_DOWNLOAD_FAILED": "تعذّرت إضافة الحلقة إلى التنزيلات.",
|
||||
"SEASON_QUEUE_RESULT": "تمت الإضافة: {{added}} · تم التخطي: {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "تمت الإضافة: {{added}} · تم التخطي: {{skipped}} · فشل: {{failed}}",
|
||||
"EMPTY": "لا توجد تنزيلات بعد",
|
||||
"EMPTY_HINT": "نزّل الأفلام والحلقات للمشاهدة دون اتصال",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "التحميلات",
|
||||
"DOWNLOAD": "تحميل",
|
||||
"PLAY_LOCAL": "شغل محلياً",
|
||||
"DOWNLOAD_SEASON": "تحميل الموسم ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "تحميل الموسم، كاينين {{count}} حلقات متوفرين",
|
||||
"ADDING_TO_QUEUE": "كيتزادو للطابور…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "تحميل {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} راه ديجا فطابور التحميل",
|
||||
"EPISODE_DOWNLOAD_FAILED": "ما قدرناش نزيدو الحلقة للتحميلات.",
|
||||
"SEASON_QUEUE_RESULT": "تزادو {{added}} · تخطّاو {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "تزادو {{added}} · تخطّاو {{skipped}} · فشلو {{failed}}",
|
||||
"EMPTY": "مازال ما كاينش تحميلات",
|
||||
"EMPTY_HINT": "حمل أفلام وحلقات باش تشاف بدون أنترنت",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Спампаванні",
|
||||
"DOWNLOAD": "Спампаваць",
|
||||
"PLAY_LOCAL": "Прайграць лакальна",
|
||||
"DOWNLOAD_SEASON": "Спампаваць сезон ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Спампаваць сезон, даступна эпізодаў: {{count}}",
|
||||
"ADDING_TO_QUEUE": "Дадаванне ў чаргу…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Спампаваць {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} ужо ў чарзе спампаванняў",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Не ўдалося дадаць эпізод да спампаванняў.",
|
||||
"SEASON_QUEUE_RESULT": "Дададзена: {{added}} · Прапушчана: {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Дададзена: {{added}} · Прапушчана: {{skipped}} · Памылак: {{failed}}",
|
||||
"EMPTY": "Пакуль няма спампаванняў",
|
||||
"EMPTY_HINT": "Спампоўвайце фільмы і эпізоды, каб глядзець іх без падключэння",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Downloads",
|
||||
"DOWNLOAD": "Herunterladen",
|
||||
"PLAY_LOCAL": "Lokal abspielen",
|
||||
"DOWNLOAD_SEASON": "Staffel herunterladen ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Staffel herunterladen, {{count}} Episoden verfügbar",
|
||||
"ADDING_TO_QUEUE": "Wird zur Warteschlange hinzugefügt…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "{{title}} herunterladen",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} befindet sich bereits in der Download-Warteschlange",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Die Episode konnte nicht zu den Downloads hinzugefügt werden.",
|
||||
"SEASON_QUEUE_RESULT": "Hinzugefügt {{added}} · Übersprungen {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Hinzugefügt {{added}} · Übersprungen {{skipped}} · Fehlgeschlagen {{failed}}",
|
||||
"EMPTY": "Noch keine Downloads",
|
||||
"EMPTY_HINT": "Filme und Episoden zum Offline-Ansehen herunterladen",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Λήψεις",
|
||||
"DOWNLOAD": "Λήψη",
|
||||
"PLAY_LOCAL": "Τοπική αναπαραγωγή",
|
||||
"DOWNLOAD_SEASON": "Λήψη σεζόν ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Λήψη σεζόν, {{count}} διαθέσιμα επεισόδια",
|
||||
"ADDING_TO_QUEUE": "Προσθήκη στην ουρά…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Λήψη {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "Το {{title}} βρίσκεται ήδη στην ουρά λήψεων",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Δεν ήταν δυνατή η προσθήκη του επεισοδίου στις λήψεις.",
|
||||
"SEASON_QUEUE_RESULT": "Προστέθηκαν {{added}} · Παραλείφθηκαν {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Προστέθηκαν {{added}} · Παραλείφθηκαν {{skipped}} · Απέτυχαν {{failed}}",
|
||||
"EMPTY": "Δεν υπάρχουν ακόμα λήψεις",
|
||||
"EMPTY_HINT": "Κατεβάστε ταινίες και επεισόδια για παρακολούθηση εκτός σύνδεσης",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Downloads",
|
||||
"DOWNLOAD": "Download",
|
||||
"PLAY_LOCAL": "Play Local",
|
||||
"DOWNLOAD_SEASON": "Download season ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Download season, {{count}} episodes available",
|
||||
"ADDING_TO_QUEUE": "Adding to queue…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Download {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} is already in the download queue",
|
||||
"EPISODE_DOWNLOAD_FAILED": "The episode could not be added to downloads.",
|
||||
"SEASON_QUEUE_RESULT": "Added {{added}} · Skipped {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Added {{added}} · Skipped {{skipped}} · Failed {{failed}}",
|
||||
"EMPTY": "No downloads yet",
|
||||
"EMPTY_HINT": "Download movies and episodes to watch offline",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Descargas",
|
||||
"DOWNLOAD": "Descargar",
|
||||
"PLAY_LOCAL": "Reproducir local",
|
||||
"DOWNLOAD_SEASON": "Descargar temporada ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Descargar temporada, {{count}} episodios disponibles",
|
||||
"ADDING_TO_QUEUE": "Añadiendo a la cola…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Descargar {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} ya está en la cola de descargas",
|
||||
"EPISODE_DOWNLOAD_FAILED": "No se pudo añadir el episodio a las descargas.",
|
||||
"SEASON_QUEUE_RESULT": "Añadidos {{added}} · Omitidos {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Añadidos {{added}} · Omitidos {{skipped}} · Fallidos {{failed}}",
|
||||
"EMPTY": "Sin descargas aún",
|
||||
"EMPTY_HINT": "Descarga películas y episodios para ver sin conexión",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Téléchargements",
|
||||
"DOWNLOAD": "Télécharger",
|
||||
"PLAY_LOCAL": "Lire local",
|
||||
"DOWNLOAD_SEASON": "Télécharger la saison ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Télécharger la saison, {{count}} épisodes disponibles",
|
||||
"ADDING_TO_QUEUE": "Ajout à la file d’attente…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Télécharger {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} est déjà dans la file d’attente des téléchargements",
|
||||
"EPISODE_DOWNLOAD_FAILED": "L’épisode n’a pas pu être ajouté aux téléchargements.",
|
||||
"SEASON_QUEUE_RESULT": "Ajoutés {{added}} · Ignorés {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Ajoutés {{added}} · Ignorés {{skipped}} · Échoués {{failed}}",
|
||||
"EMPTY": "Aucun téléchargement",
|
||||
"EMPTY_HINT": "Téléchargez des films et épisodes pour les regarder hors ligne",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Letöltések",
|
||||
"DOWNLOAD": "Letöltés",
|
||||
"PLAY_LOCAL": "Helyi fájl lejátszása",
|
||||
"DOWNLOAD_SEASON": "Évad letöltése ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Évad letöltése, {{count}} epizód érhető el",
|
||||
"ADDING_TO_QUEUE": "Hozzáadás a várólistához…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "{{title}} letöltése",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} már szerepel a letöltési várólistán",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Az epizódot nem sikerült hozzáadni a letöltésekhez.",
|
||||
"SEASON_QUEUE_RESULT": "Hozzáadva: {{added}} · Kihagyva: {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Hozzáadva: {{added}} · Kihagyva: {{skipped}} · Sikertelen: {{failed}}",
|
||||
"EMPTY": "Még nincs letöltés",
|
||||
"EMPTY_HINT": "Töltsön le filmeket és epizódokat offline megtekintéshez.",
|
||||
"NO_PLAYLISTS_TITLE": "A letöltéshez előbb adjon hozzá egy lejátszási listát",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Download",
|
||||
"DOWNLOAD": "Scarica",
|
||||
"PLAY_LOCAL": "Riproduci locale",
|
||||
"DOWNLOAD_SEASON": "Scarica la stagione ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Scarica la stagione, {{count}} episodi disponibili",
|
||||
"ADDING_TO_QUEUE": "Aggiunta alla coda…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Scarica {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} è già nella coda dei download",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Non è stato possibile aggiungere l'episodio ai download.",
|
||||
"SEASON_QUEUE_RESULT": "Aggiunti {{added}} · Ignorati {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Aggiunti {{added}} · Ignorati {{skipped}} · Non riusciti {{failed}}",
|
||||
"EMPTY": "Ancora nessun download",
|
||||
"EMPTY_HINT": "Scarica film ed episodi per guardarli offline",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "ダウンロード",
|
||||
"DOWNLOAD": "ダウンロード",
|
||||
"PLAY_LOCAL": "ローカル再生",
|
||||
"DOWNLOAD_SEASON": "シーズンをダウンロード({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "シーズンをダウンロード、ダウンロード可能なエピソードは{{count}}話です",
|
||||
"ADDING_TO_QUEUE": "キューに追加中…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "{{title}}をダウンロード",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}}はすでにダウンロードキューに追加されています",
|
||||
"EPISODE_DOWNLOAD_FAILED": "エピソードをダウンロード一覧に追加できませんでした。",
|
||||
"SEASON_QUEUE_RESULT": "追加 {{added}} · スキップ {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "追加 {{added}} · スキップ {{skipped}} · 失敗 {{failed}}",
|
||||
"EMPTY": "ダウンロードはまだありません",
|
||||
"EMPTY_HINT": "映画やエピソードをダウンロードしてオフラインで視聴できます",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "다운로드",
|
||||
"DOWNLOAD": "다운로드",
|
||||
"PLAY_LOCAL": "로컬 재생",
|
||||
"DOWNLOAD_SEASON": "시즌 다운로드 ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "시즌 다운로드, 다운로드 가능한 에피소드 {{count}}개",
|
||||
"ADDING_TO_QUEUE": "대기열에 추가 중…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "{{title}} 다운로드",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} 항목은 이미 다운로드 대기열에 있습니다",
|
||||
"EPISODE_DOWNLOAD_FAILED": "에피소드를 다운로드 목록에 추가하지 못했습니다.",
|
||||
"SEASON_QUEUE_RESULT": "추가 {{added}} · 건너뜀 {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "추가 {{added}} · 건너뜀 {{skipped}} · 실패 {{failed}}",
|
||||
"EMPTY": "아직 다운로드한 항목이 없습니다",
|
||||
"EMPTY_HINT": "오프라인 시청을 위해 영화와 에피소드를 다운로드하세요",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Downloads",
|
||||
"DOWNLOAD": "Downloaden",
|
||||
"PLAY_LOCAL": "Lokaal afspelen",
|
||||
"DOWNLOAD_SEASON": "Seizoen downloaden ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Seizoen downloaden, {{count}} afleveringen beschikbaar",
|
||||
"ADDING_TO_QUEUE": "Toevoegen aan wachtrij…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "{{title}} downloaden",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} staat al in de downloadwachtrij",
|
||||
"EPISODE_DOWNLOAD_FAILED": "De aflevering kon niet aan de downloads worden toegevoegd.",
|
||||
"SEASON_QUEUE_RESULT": "Toegevoegd {{added}} · Overgeslagen {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Toegevoegd {{added}} · Overgeslagen {{skipped}} · Mislukt {{failed}}",
|
||||
"EMPTY": "Nog geen downloads",
|
||||
"EMPTY_HINT": "Download films en afleveringen om offline te bekijken",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Pobrane",
|
||||
"DOWNLOAD": "Pobierz",
|
||||
"PLAY_LOCAL": "Odtwórz lokalnie",
|
||||
"DOWNLOAD_SEASON": "Pobierz sezon ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Pobierz sezon, dostępnych odcinków: {{count}}",
|
||||
"ADDING_TO_QUEUE": "Dodawanie do kolejki…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Pobierz {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} jest już w kolejce pobierania",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Nie udało się dodać odcinka do pobrań.",
|
||||
"SEASON_QUEUE_RESULT": "Dodano {{added}} · Pominięto {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Dodano {{added}} · Pominięto {{skipped}} · Nieudane {{failed}}",
|
||||
"EMPTY": "Brak pobranych",
|
||||
"EMPTY_HINT": "Pobierz filmy i odcinki, aby oglądać offline",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Downloads",
|
||||
"DOWNLOAD": "Baixar",
|
||||
"PLAY_LOCAL": "Reproduzir local",
|
||||
"DOWNLOAD_SEASON": "Baixar temporada ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Baixar temporada, {{count}} episódios disponíveis",
|
||||
"ADDING_TO_QUEUE": "Adicionando à fila…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Baixar {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} já está na fila de downloads",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Não foi possível adicionar o episódio aos downloads.",
|
||||
"SEASON_QUEUE_RESULT": "Adicionados {{added}} · Ignorados {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Adicionados {{added}} · Ignorados {{skipped}} · Falhas {{failed}}",
|
||||
"EMPTY": "Nenhum download ainda",
|
||||
"EMPTY_HINT": "Baixe filmes e episódios para assistir offline",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "Загрузки",
|
||||
"DOWNLOAD": "Скачать",
|
||||
"PLAY_LOCAL": "Воспроизвести локально",
|
||||
"DOWNLOAD_SEASON": "Скачать сезон ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Скачать сезон, доступно эпизодов: {{count}}",
|
||||
"ADDING_TO_QUEUE": "Добавление в очередь…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "Скачать {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} уже в очереди загрузок",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Не удалось добавить эпизод в загрузки.",
|
||||
"SEASON_QUEUE_RESULT": "Добавлено: {{added}} · Пропущено: {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Добавлено: {{added}} · Пропущено: {{skipped}} · Ошибок: {{failed}}",
|
||||
"EMPTY": "Пока нет загрузок",
|
||||
"EMPTY_HINT": "Скачивайте фильмы и эпизоды для просмотра офлайн",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "İndirilenler",
|
||||
"DOWNLOAD": "İndir",
|
||||
"PLAY_LOCAL": "Yerel Oynat",
|
||||
"DOWNLOAD_SEASON": "Sezonu indir ({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "Sezonu indir, indirilebilir {{count}} bölüm var",
|
||||
"ADDING_TO_QUEUE": "Sıraya ekleniyor…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "{{title}} indir",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} zaten indirme kuyruğunda",
|
||||
"EPISODE_DOWNLOAD_FAILED": "Bölüm indirilenlere eklenemedi.",
|
||||
"SEASON_QUEUE_RESULT": "Eklendi {{added}} · Atlandı {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "Eklendi {{added}} · Atlandı {{skipped}} · Başarısız {{failed}}",
|
||||
"EMPTY": "Henüz indirme yok",
|
||||
"EMPTY_HINT": "Çevrimdışı izlemek için film ve dizileri indirin",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "下载",
|
||||
"DOWNLOAD": "下载",
|
||||
"PLAY_LOCAL": "播放本地",
|
||||
"DOWNLOAD_SEASON": "下载整季({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "下载整季,有 {{count}} 集可用",
|
||||
"ADDING_TO_QUEUE": "正在添加到队列…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "下载 {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} 已在下载队列中",
|
||||
"EPISODE_DOWNLOAD_FAILED": "无法添加该剧集的下载任务。",
|
||||
"SEASON_QUEUE_RESULT": "已添加 {{added}} · 已跳过 {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "已添加 {{added}} · 已跳过 {{skipped}} · 失败 {{failed}}",
|
||||
"EMPTY": "暂无下载",
|
||||
"EMPTY_HINT": "下载电影和剧集以离线观看",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -1048,6 +1048,14 @@
|
||||
"TITLE": "下載",
|
||||
"DOWNLOAD": "下載",
|
||||
"PLAY_LOCAL": "播放本機檔案",
|
||||
"DOWNLOAD_SEASON": "下載整季({{count}})",
|
||||
"DOWNLOAD_SEASON_ARIA": "下載整季,有 {{count}} 集可用",
|
||||
"ADDING_TO_QUEUE": "正在加入佇列…",
|
||||
"EPISODE_DOWNLOAD_ARIA": "下載 {{title}}",
|
||||
"EPISODE_DOWNLOAD_PENDING_ARIA": "{{title}} 已在下載佇列中",
|
||||
"EPISODE_DOWNLOAD_FAILED": "無法加入此集的下載項目。",
|
||||
"SEASON_QUEUE_RESULT": "已加入 {{added}} · 已略過 {{skipped}}",
|
||||
"SEASON_QUEUE_RESULT_WITH_FAILURES": "已加入 {{added}} · 已略過 {{skipped}} · 失敗 {{failed}}",
|
||||
"EMPTY": "尚無下載項目",
|
||||
"EMPTY_HINT": "下載電影與集數以離線觀看",
|
||||
"NO_PLAYLISTS_TITLE": "Add a playlist to start downloading",
|
||||
|
||||
@@ -3,7 +3,11 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||
import {
|
||||
type InterpolatableTranslationObject,
|
||||
TranslateModule,
|
||||
TranslateService,
|
||||
} from '@ngx-translate/core';
|
||||
import {
|
||||
SeasonDownloadCoordinator,
|
||||
type EpisodeDownloadCandidate,
|
||||
@@ -15,6 +19,8 @@ import {
|
||||
type DownloadItem,
|
||||
type DownloadStartInput,
|
||||
} from '@iptvnator/services';
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { resolve } from 'node:path';
|
||||
import { of } from 'rxjs';
|
||||
import { EPISODE_INFO_PLAY } from './episode-info-dialog.component';
|
||||
import { SeasonContainerComponent } from './season-container.component';
|
||||
@@ -42,25 +48,15 @@ interface Deferred<T> {
|
||||
readonly resolve: (value: T) => void;
|
||||
}
|
||||
|
||||
const EN_TRANSLATIONS = JSON.parse(
|
||||
readFileSync(
|
||||
resolve(process.cwd(), 'apps/web/src/assets/i18n/en.json'),
|
||||
'utf8'
|
||||
)
|
||||
) as InterpolatableTranslationObject;
|
||||
|
||||
const DOWNLOAD_TRANSLATIONS = {
|
||||
DOWNLOADS: {
|
||||
DOWNLOAD: 'Download',
|
||||
PLAY_LOCAL: 'Play local',
|
||||
RESUME: 'Resume',
|
||||
NOT_AVAILABLE: 'Downloads not available',
|
||||
DOWNLOAD_SEASON: 'Download season ({{count}})',
|
||||
DOWNLOAD_SEASON_ARIA: 'Download {{count}} eligible episodes',
|
||||
ADDING_TO_QUEUE: 'Adding to queue',
|
||||
EPISODE_DOWNLOAD_ARIA: 'Download {{title}}',
|
||||
EPISODE_DOWNLOAD_PENDING_ARIA: 'Adding {{title}} to queue',
|
||||
EPISODE_DOWNLOAD_FAILED: 'The episode could not be added',
|
||||
SEASON_QUEUE_RESULT:
|
||||
'Added {{added}}, skipped {{skipped}}, failed {{failed}}',
|
||||
SEASON_QUEUE_RESULT_WITH_FAILURES:
|
||||
'Queue failed: {{added}} added, {{skipped}} skipped, {{failed}} failed',
|
||||
STATUS: { DOWNLOADING: 'Downloading' },
|
||||
ARIA: { RESUME: 'Resume {{title}}' },
|
||||
},
|
||||
DOWNLOADS: EN_TRANSLATIONS['DOWNLOADS'],
|
||||
};
|
||||
|
||||
function createEpisode(
|
||||
@@ -564,7 +560,7 @@ describe('SeasonContainerComponent', () => {
|
||||
|
||||
expect(episodeAction(101).disabled).toBe(true);
|
||||
expect(episodeAction(101).getAttribute('aria-label')).toBe(
|
||||
'Adding Pilot to queue'
|
||||
'Pilot is already in the download queue'
|
||||
);
|
||||
expect(episodeAction(102).disabled).toBe(false);
|
||||
expect(episodeAction(102).getAttribute('aria-label')).toBe(
|
||||
@@ -598,7 +594,7 @@ describe('SeasonContainerComponent', () => {
|
||||
) as HTMLButtonElement;
|
||||
expect(button.textContent).toContain('Download season (1)');
|
||||
expect(button.getAttribute('aria-label')).toBe(
|
||||
'Download 1 eligible episodes'
|
||||
'Download season, 1 episodes available'
|
||||
);
|
||||
expect(button.nextElementSibling?.classList).toContain('view-toggle');
|
||||
|
||||
@@ -607,7 +603,7 @@ describe('SeasonContainerComponent', () => {
|
||||
|
||||
expect(downloadsServiceStub.startDownload).toHaveBeenCalledTimes(1);
|
||||
expect(snackBarOpen).toHaveBeenCalledWith(
|
||||
'Added 1, skipped 1, failed 0',
|
||||
'Added 1 · Skipped 1',
|
||||
undefined,
|
||||
{ duration: 5000 }
|
||||
);
|
||||
@@ -671,9 +667,9 @@ describe('SeasonContainerComponent', () => {
|
||||
seasonButton().click();
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(seasonButton().textContent).toContain('Adding to queue');
|
||||
expect(seasonButton().textContent).toContain('Adding to queue…');
|
||||
expect(seasonButton().getAttribute('aria-label')).toBe(
|
||||
'Adding to queue'
|
||||
'Adding to queue…'
|
||||
);
|
||||
expect(seasonButton().getAttribute('aria-busy')).toBe('true');
|
||||
|
||||
@@ -689,7 +685,7 @@ describe('SeasonContainerComponent', () => {
|
||||
expect(seasonButton().hasAttribute('aria-busy')).toBe(false);
|
||||
expect(seasonButton().textContent).toContain('Download season (1)');
|
||||
expect(seasonButton().getAttribute('aria-label')).toBe(
|
||||
'Download 1 eligible episodes'
|
||||
'Download season, 1 episodes available'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -786,11 +782,26 @@ describe('SeasonContainerComponent', () => {
|
||||
fixture.detectChanges();
|
||||
|
||||
const expected = [
|
||||
[101, true, 'Adding Pilot to queue', 'downloading'],
|
||||
[102, true, 'Adding Queued to queue', 'downloading'],
|
||||
[103, true, 'Adding Active to queue', 'downloading'],
|
||||
[
|
||||
101,
|
||||
true,
|
||||
'Pilot is already in the download queue',
|
||||
'downloading',
|
||||
],
|
||||
[
|
||||
102,
|
||||
true,
|
||||
'Queued is already in the download queue',
|
||||
'downloading',
|
||||
],
|
||||
[
|
||||
103,
|
||||
true,
|
||||
'Active is already in the download queue',
|
||||
'downloading',
|
||||
],
|
||||
[104, false, 'Resume Paused', 'play_arrow'],
|
||||
[105, false, 'Play local: Local', 'folder_open'],
|
||||
[105, false, 'Play Local: Local', 'folder_open'],
|
||||
[106, true, 'Download Unknown', 'block'],
|
||||
[107, true, 'Download N/A', 'block'],
|
||||
[108, false, 'Download Failed', 'download'],
|
||||
@@ -936,7 +947,7 @@ describe('SeasonContainerComponent', () => {
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(snackBarOpen).toHaveBeenCalledWith(
|
||||
'The episode could not be added',
|
||||
'The episode could not be added to downloads.',
|
||||
undefined,
|
||||
{ duration: 5000 }
|
||||
);
|
||||
@@ -1036,7 +1047,7 @@ describe('SeasonContainerComponent', () => {
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(snackBarOpen).toHaveBeenCalledWith(
|
||||
'Queue failed: 1 added, 0 skipped, 1 failed',
|
||||
'Added 1 · Skipped 0 · Failed 1',
|
||||
undefined,
|
||||
{ duration: 5000 }
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user