diff --git a/package.json b/package.json
index 4d9218c7..c08109b4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sudo-flix",
- "version": "4.6.2",
+ "version": "4.6.3",
"private": true,
"homepage": "https://sudo-flix.lol",
"scripts": {
@@ -29,7 +29,7 @@
"@formkit/auto-animate": "^0.8.1",
"@headlessui/react": "^1.7.17",
"@ladjs/country-language": "^1.0.3",
- "@movie-web/providers": "^2.2.3",
+ "@movie-web/providers": "^2.2.5",
"@noble/hashes": "^1.3.3",
"@plasmohq/messaging": "^0.6.1",
"@react-spring/web": "^9.7.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 37e11829..1a5fd5e2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -22,8 +22,8 @@ dependencies:
specifier: ^1.0.3
version: 1.0.3
'@movie-web/providers':
- specifier: ^2.2.3
- version: 2.2.3
+ specifier: ^2.2.5
+ version: 2.2.5
'@noble/hashes':
specifier: ^1.3.3
version: 1.3.3
@@ -277,7 +277,7 @@ devDependencies:
version: 0.5.9(prettier@3.1.1)
rollup-plugin-visualizer:
specifier: ^5.11.0
- version: 5.11.0(@rollup/wasm-node@4.13.0)
+ version: 5.11.0(@rollup/wasm-node@4.13.2)
tailwind-scrollbar:
specifier: ^3.0.5
version: 3.0.5(tailwindcss@3.4.0)
@@ -1942,8 +1942,8 @@ packages:
engines: {node: '>= 14'}
dev: false
- /@movie-web/providers@2.2.3:
- resolution: {integrity: sha512-0axy02Zzlk7Tvtalc/Ebv9u5vzUPVWmQm0Ts5+6l6KPU41JUdLnFgmOl0yf0lbNeHRNSTx5SDlvWcYNL8rgpyA==}
+ /@movie-web/providers@2.2.5:
+ resolution: {integrity: sha512-/mBtU79uf2pfPwgkqKjoyuHGdDgHjKyGGVtd7xd0EQ5ds6ox5y2bSp4XtQRjZ7rZgyAh0aYFElAsY8SC+Nkz5g==}
dependencies:
cheerio: 1.0.0-rc.12
cookie: 0.6.0
@@ -2068,7 +2068,7 @@ packages:
engines: {node: '>=14.0.0'}
dev: false
- /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.13.0):
+ /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.13.2):
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
engines: {node: '>= 10.0.0'}
peerDependencies:
@@ -2081,36 +2081,36 @@ packages:
dependencies:
'@babel/core': 7.23.6
'@babel/helper-module-imports': 7.22.15
- '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.0)
- rollup: /@rollup/wasm-node@4.13.0
+ '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.2)
+ rollup: /@rollup/wasm-node@4.13.2
dev: true
- /@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.13.0):
+ /@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.13.2):
resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==}
engines: {node: '>= 10.0.0'}
peerDependencies:
rollup: npm:@rollup/wasm-node
dependencies:
- '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.0)
+ '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.2)
'@types/resolve': 1.17.1
builtin-modules: 3.3.0
deepmerge: 4.3.1
is-module: 1.0.0
resolve: 1.22.4
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
dev: true
- /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.13.0):
+ /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.13.2):
resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
peerDependencies:
rollup: npm:@rollup/wasm-node
dependencies:
- '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.0)
+ '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.2)
magic-string: 0.25.9
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
dev: true
- /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.13.0):
+ /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.13.2):
resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
engines: {node: '>= 8.0.0'}
peerDependencies:
@@ -2119,11 +2119,11 @@ packages:
'@types/estree': 0.0.39
estree-walker: 1.0.1
picomatch: 2.3.1
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
dev: true
- /@rollup/wasm-node@4.13.0:
- resolution: {integrity: sha512-oFX11wzU7RTaiW06WBtRpzIVN/oaG0I3XkevNO0brBklYnY9zpLhTfksN4b+TdBt6CfXV/KdVhdWLbb0fQIR7A==}
+ /@rollup/wasm-node@4.13.2:
+ resolution: {integrity: sha512-4JXYomW63fBnXseG2mFkZwaNMDK0PkNamj9WD6H96FqEEl9ov3VjG3MK9UcOAj7Ap9o2weqSSCVng+QsxBeKfw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
@@ -5127,7 +5127,7 @@ packages:
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6)
'@babel/types': 7.23.6
kleur: 4.1.5
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
unplugin: 1.5.1
transitivePeerDependencies:
- supports-color
@@ -6055,7 +6055,7 @@ packages:
glob: 7.2.3
dev: true
- /rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.13.0):
+ /rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.13.2):
resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
peerDependencies:
@@ -6063,12 +6063,12 @@ packages:
dependencies:
'@babel/code-frame': 7.23.5
jest-worker: 26.6.2
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
serialize-javascript: 4.0.0
terser: 5.19.3
dev: true
- /rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.13.0):
+ /rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.13.2):
resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==}
engines: {node: '>=14'}
hasBin: true
@@ -6080,7 +6080,7 @@ packages:
dependencies:
open: 8.4.2
picomatch: 2.3.1
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
source-map: 0.7.4
yargs: 17.7.2
dev: true
@@ -7070,7 +7070,7 @@ packages:
'@types/node': 20.10.5
esbuild: 0.19.10
postcss: 8.4.32
- rollup: /@rollup/wasm-node@4.13.0
+ rollup: /@rollup/wasm-node@4.13.2
optionalDependencies:
fsevents: 2.3.3
dev: true
@@ -7332,9 +7332,9 @@ packages:
'@babel/core': 7.23.6
'@babel/preset-env': 7.23.6(@babel/core@7.23.6)
'@babel/runtime': 7.23.6
- '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.13.0)
- '@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.13.0)
- '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.13.0)
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.13.2)
+ '@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.13.2)
+ '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.13.2)
'@surma/rollup-plugin-off-main-thread': 2.2.3
ajv: 8.12.0
common-tags: 1.8.2
@@ -7343,8 +7343,8 @@ packages:
glob: 7.2.3
lodash: 4.17.21
pretty-bytes: 5.6.0
- rollup: /@rollup/wasm-node@4.13.0
- rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.13.0)
+ rollup: /@rollup/wasm-node@4.13.2
+ rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.13.2)
source-map: 0.8.0-beta.0
stringify-object: 3.3.0
strip-comments: 2.0.1
diff --git a/src/assets/locales/ca.json b/src/assets/locales/ca.json
index d046688f..0f71d187 100644
--- a/src/assets/locales/ca.json
+++ b/src/assets/locales/ca.json
@@ -532,6 +532,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Difuminat del fons",
"backgroundLabel": "Opacitat del fons",
"colorLabel": "Color",
"previewQuote": "No he de tenir por. La por és l'assassina de la ment.",
diff --git a/src/assets/locales/ca@valencia.json b/src/assets/locales/ca@valencia.json
index e1e7615e..3c8c57b9 100644
--- a/src/assets/locales/ca@valencia.json
+++ b/src/assets/locales/ca@valencia.json
@@ -532,6 +532,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Difuminat del fons",
"backgroundLabel": "Opacitat del fons",
"colorLabel": "Color",
"previewQuote": "No he de tindre por. La por és l'assassina de la ment.",
diff --git a/src/assets/locales/cs.json b/src/assets/locales/cs.json
index 86ff372e..c2f5ee0a 100644
--- a/src/assets/locales/cs.json
+++ b/src/assets/locales/cs.json
@@ -122,7 +122,7 @@
"default": "Co si přejete sledovat?",
"extra": [
"Co chcete objevit?",
- null,
+ "Co je na vašem seznamu sledovaných filmů?",
"Jaký je váš oblíbený film?",
"Jaký je tvůj oblíbený seriál?"
]
@@ -132,21 +132,15 @@
"titles": {
"day": {
"default": "Na co byste se chtěli dnes odpoledne dívat?",
- "extra": [
- "Chceš zažít dobrodružství? Jurský Park je pro tebe."
- ]
+ "extra": ["Chceš zažít dobrodružství? Jurský Park je pro tebe."]
},
"morning": {
"default": "Na co byste se chtěli dnes ráno dívat?",
- "extra": [
- "Slyšel jsem, že Před úsvitem je super."
- ]
+ "extra": ["Slyšel jsem, že Před úsvitem je super"]
},
"night": {
"default": "Na co byste se chtěli dnes večer dívat?",
- "extra": [
- "Unaven? Slyšel jsem, že Vymítač ďábla je super."
- ]
+ "extra": ["Unaven? Slyšel jsem, že Vymítač ďábla je super."]
}
}
},
@@ -187,9 +181,10 @@
"back": "Zpět",
"explainer": "Pomocí rozšíření prohlížeče můžete získat nejlepší streamy, které nabízíme. S pouhou instalací.",
"explainerIos": "Bohužel rozšíření není podporováno na iOS. Stiskněte Zpět pro výběr jiné možnosti.",
- "extensionHelp": "Pokud jste rozšíření nainstalovali, ale nebylo zjištěno. Otevřete rozšíření pomocí nabídky rozšíření ve vašem prohlížeči a postupujte podle pokynů na obrazovce.",
+ "extensionHelp": "Pokud jste rozšíření nainstalovali, ale nebylo zjištěno, otevřete rozšíření pomocí nabídky rozšíření ve vašem prohlížeči a postupujte podle pokynů na obrazovce.",
"linkChrome": "Instalovat rozšíření pro Chrome",
"linkFirefox": "Instalovat rozšíření pro Firefox",
+ "notDetecting": "Nainstalováno na Chromu, ale stránka to nezaznamenala? Skuste přenačíst stránku!",
"notDetectingAction": "Obnovit stránku",
"status": {
"disallowed": "Rozšíření není pro tuto stránku povoleno",
@@ -534,6 +529,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Rozostření pozadí",
"backgroundLabel": "Neprůhlednost pozadí",
"colorLabel": "Barva",
"previewQuote": "Nesmím se bát. Strach zabíjí myšlení.",
diff --git a/src/assets/locales/de.json b/src/assets/locales/de.json
index b39cc412..28bf233a 100644
--- a/src/assets/locales/de.json
+++ b/src/assets/locales/de.json
@@ -290,6 +290,7 @@
"title": "Qualität"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Download",
"enableSubtitles": "Untettitel aktivieren",
"experienceSection": "Anzeigeerlebnis",
@@ -316,8 +317,9 @@
"unknownOption": "Unbekannt"
},
"subtitles": {
- "customChoice": "Untertitel aus Datei wählen",
+ "customChoice": "Untertiteldatei auswählen oder hier ablegen",
"customizeLabel": "Anpassen",
+ "dropSubtitleFile": "Untertiteldatei hier ablegen",
"offChoice": "Aus",
"settings": {
"backlink": "Eigene Untertitel",
@@ -375,6 +377,13 @@
"title": "Hoppla, etwas ist schiefgegangen!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "Erweiterung deaktiviert",
+ "enableExtension": "Erweiterung aktivieren",
+ "homeButton": "Zur Startseite",
+ "text": "Du hast die sudo-flixe Erweiterung installiert. Um die Erweiterung zu benutzen, musst du sie für diese Seite aktivieren.",
+ "title": "Bitte aktiviere die Erweiterung"
+ },
"items": {
"failure": "Ein Fehler ist aufgetreten",
"notFound": "Video nicht gefunden",
diff --git a/src/assets/locales/es.json b/src/assets/locales/es.json
index b3ca28e2..b9c77c03 100644
--- a/src/assets/locales/es.json
+++ b/src/assets/locales/es.json
@@ -290,6 +290,7 @@
"title": "Calidad"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Descargar",
"enableSubtitles": "Habilitar subtítulos",
"experienceSection": "Experiencia de visualización",
@@ -316,8 +317,9 @@
"unknownOption": "Desconocida"
},
"subtitles": {
- "customChoice": "Seleccionar subtítulo del archivo",
+ "customChoice": "Sube o arrastra un archivo",
"customizeLabel": "Personalizar",
+ "dropSubtitleFile": "Suelta el archivo de subtítulos aquí",
"offChoice": "Apagado",
"settings": {
"backlink": "Subtítulos personalizados",
@@ -532,6 +534,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Desefoque de fondo",
"backgroundLabel": "Opacidad del fondo",
"colorLabel": "Color",
"previewQuote": "No debo temer. El miedo es el asesino de la mente.",
diff --git a/src/assets/locales/et.json b/src/assets/locales/et.json
index a9906460..bf8bb92d 100644
--- a/src/assets/locales/et.json
+++ b/src/assets/locales/et.json
@@ -151,7 +151,8 @@
"types": {
"movie": "Film",
"show": "Saade"
- }
+ },
+ "unreleased": "Avaldamata"
},
"navigation": {
"banner": {
@@ -290,6 +291,7 @@
"title": "Kvaliteet"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Lae alla",
"enableSubtitles": "Luba Subtiitrid",
"experienceSection": "Vaatamise kogemus",
@@ -316,8 +318,9 @@
"unknownOption": "Teadmata"
},
"subtitles": {
- "customChoice": "Vali subtiitrid failist",
+ "customChoice": "Kukuta või vali subtiitri fail",
"customizeLabel": "Kohanda",
+ "dropSubtitleFile": "Kukuta subtiitri fail siia",
"offChoice": "Välja",
"settings": {
"backlink": "Kohandatud subtiitrid",
@@ -375,6 +378,13 @@
"title": "Video mängimine ebaōnnestus!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "Brauserilaiendus väljalülitatud",
+ "enableExtension": "Lülita brauserilaiendus sisse",
+ "homeButton": "Tagasi",
+ "text": "Olete allalaadinud sudo-flix'i brauserilaiendue. Selle kasutamiseks peate vajutama brauserilaienduse peale ning andma ligipääsu praegusele saidile.",
+ "title": "Palun lülita brauserilaiendus sisse"
+ },
"items": {
"failure": "Tekkis viga",
"notFound": "Ei ole videot",
diff --git a/src/assets/locales/fa.json b/src/assets/locales/fa.json
index e6d6f3c1..b86f826a 100644
--- a/src/assets/locales/fa.json
+++ b/src/assets/locales/fa.json
@@ -73,7 +73,7 @@
}
},
"errors": {
- "badge": "مشکلی رخ داده",
+ "badge": "مشکلی رخ داد",
"details": "جزئیات خطا",
"reloadPage": "صفحه را دوباره بارگذاری کنید",
"showError": "نمایش جزئیات خطا",
@@ -89,7 +89,7 @@
"dmca": "DMCA",
"github": "گیت هاب"
},
- "tagline": "فیلم و سریال مورد علاقهتان را با این برنامه استریم متن باز تماشا کنید."
+ "tagline": "فیلم و سریال مورد علاقهتان را با این برنامه استریم اوپن سورس تماشا کنید."
},
"global": {
"name": "مووی-وب",
@@ -155,7 +155,8 @@
"types": {
"movie": "فیلم",
"show": "سریال"
- }
+ },
+ "unreleased": "منتشر نشده"
},
"navigation": {
"banner": {
@@ -294,6 +295,7 @@
"title": "کیفیت"
},
"settings": {
+ "audioItem": "صدا",
"downloadItem": "دانلود",
"enableSubtitles": "فعال کردن زیرنویس",
"experienceSection": "تجربه مشاهده",
@@ -320,8 +322,9 @@
"unknownOption": "ناشناخته"
},
"subtitles": {
- "customChoice": "انتخاب زیرنویس از فایل",
+ "customChoice": "فایل را رها یا آپلود کنید",
"customizeLabel": "شخصی سازی",
+ "dropSubtitleFile": "فایل زیرنویس را اینجا بکشید",
"offChoice": "خاموش",
"settings": {
"backlink": "زیرنویس سفارشی",
@@ -379,6 +382,13 @@
"title": "پخش ویدئو موفقیت آمیز نبود!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "اکستنشن غیر فعال شد",
+ "enableExtension": "اکستنشن را فعال کنید",
+ "homeButton": "خانه",
+ "text": "شما اکستنشن مووی-وب را نصب کردید. برای شروع استفاده از ان، شما نیاز به فعال کردن آن دارید",
+ "title": "لطفا اکستنشن را فعال کنید"
+ },
"items": {
"failure": "مشکلی پیش آمده",
"notFound": "این ویدیو وجود ندارد",
diff --git a/src/assets/locales/fr.json b/src/assets/locales/fr.json
index beab2c57..cec7f50a 100644
--- a/src/assets/locales/fr.json
+++ b/src/assets/locales/fr.json
@@ -295,6 +295,7 @@
"title": "Qualité"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Télécharger",
"enableSubtitles": "Activer les sous-titres",
"experienceSection": "Expérience de visionnage",
@@ -321,8 +322,9 @@
"unknownOption": "Inconnu"
},
"subtitles": {
- "customChoice": "Importer des sous-titres depuis un fichier",
+ "customChoice": "Glisser ou charger un fichier",
"customizeLabel": "Personnaliser",
+ "dropSubtitleFile": "Glisser le fichier des sous-titres ici",
"offChoice": "Désactivé",
"settings": {
"backlink": "Sous-titres personnalisés",
diff --git a/src/assets/locales/gl.json b/src/assets/locales/gl.json
index c3a6c902..052d10ce 100644
--- a/src/assets/locales/gl.json
+++ b/src/assets/locales/gl.json
@@ -57,6 +57,8 @@
},
"host": "Estaste a conectar a <0>{{hostname}}0> - por favor, confirma se confías antes de crear a conta",
"no": "Regresar",
+ "noHost": "O servidor non está configurado, polo que non podes crear unha conta",
+ "noHostTitle": "O servidor non está configurado!",
"title": "Confías neste servidor?",
"yes": "Si, si que confío neste servidor"
},
@@ -118,7 +120,12 @@
"noResults": "Non atopamos nada!",
"placeholder": {
"default": "Que che gustaría ver?",
- "extra": []
+ "extra": [
+ "Qué queres explorar?",
+ "Que está na túa lista se seguimiento?",
+ "Cal é a túa película favorita?",
+ "Cal é a túa serie favorita?"
+ ]
},
"sectionTitle": "Resultados da busca"
},
@@ -241,6 +248,7 @@
},
"menus": {
"downloads": {
+ "copyHlsPlaylist": "Copiar a ligazón da lista HLS",
"disclaimer": "As descargas proveñen do provedor. sudo-flix non ten control sobre as descargas e a súa procedencia.",
"downloadSubtitle": "Descargar subtítulos actuais",
"downloadVideo": "Descargar video",
@@ -282,6 +290,7 @@
"title": "Calidade"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Descargar",
"enableSubtitles": "Activar subtítulos",
"experienceSection": "Configuración de experiencia",
@@ -308,8 +317,9 @@
"unknownOption": "Descoñecido"
},
"subtitles": {
- "customChoice": "Seleccionar subtítulos dende o arquivo",
+ "customChoice": "Sube ou arrastra o arquivo",
"customizeLabel": "Personalizar",
+ "dropSubtitleFile": "Solta o arquivo de subtítulos aquí",
"offChoice": "Apagar",
"settings": {
"backlink": "Subtítulos personalizados",
@@ -524,6 +534,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Desenfoque do fondo",
"backgroundLabel": "Opacidade do fondo",
"colorLabel": "Cór",
"previewQuote": "Non debo temer. O medo é o asasino da mente.",
diff --git a/src/assets/locales/id.json b/src/assets/locales/id.json
index f2ccc039..5bbf932e 100644
--- a/src/assets/locales/id.json
+++ b/src/assets/locales/id.json
@@ -95,6 +95,7 @@
"about": "Tentang",
"dmca": "DMCA",
"login": "Masuk",
+ "onboarding": "Penyiapan",
"pagetitle": "{{title}} - sudo-flix",
"register": "Daftar",
"settings": "Pengaturan"
@@ -117,7 +118,12 @@
"noResults": "Kami tidak dapat menemukan apapun!",
"placeholder": {
"default": "Apa yang ingin anda tonton?",
- "extra": []
+ "extra": [
+ "Apa yang ingin kamu jelajahi?",
+ "Ada apa di daftar tontonmu?",
+ "Apa film favoritmu?",
+ "Apa serial favoritmu?"
+ ]
},
"sectionTitle": "Hasil pencarian"
},
@@ -164,6 +170,16 @@
"message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tapi tetap gagal menemukan halaman yang anda cari.",
"title": "Gagal menemukan halaman"
},
+ "onboarding": {
+ "defaultConfirm": {
+ "cancel": "Batal",
+ "title": "Apa kamu yakin?"
+ },
+ "extension": {
+ "back": "Kembali",
+ "explainerIos": "Sayangnya, ekstensi browser tidak didukung di iOS, Tekan Kembali untuk memilih opsi lain."
+ }
+ },
"overlays": {
"close": "Tutup"
},
diff --git a/src/assets/locales/it.json b/src/assets/locales/it.json
index c4baa6a6..62ccbd48 100644
--- a/src/assets/locales/it.json
+++ b/src/assets/locales/it.json
@@ -138,15 +138,11 @@
},
"morning": {
"default": "Cosa vorresti guardare questa mattina?",
- "extra": [
- "Ho sentito che «Prima Dell'alba» è buono"
- ]
+ "extra": ["Ho sentito che «Prima Dell'alba» è buono"]
},
"night": {
"default": "Cosa vorresti guardare questa sera?",
- "extra": [
- "Stanco? Ho sentito che L'esorciccio è buono."
- ]
+ "extra": ["Stanco? Ho sentito che L'esorciccio è buono."]
}
}
},
@@ -155,7 +151,8 @@
"types": {
"movie": "Film",
"show": "Serie"
- }
+ },
+ "unreleased": "Inedito"
},
"navigation": {
"banner": {
@@ -294,6 +291,7 @@
"title": "Qualità"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Scarica",
"enableSubtitles": "Abilita i sottotitoli",
"experienceSection": "Esperienza di visione",
@@ -320,8 +318,9 @@
"unknownOption": "Sconosciuto"
},
"subtitles": {
- "customChoice": "Selezionare i sottotitoli dal file",
+ "customChoice": "Trascina o carica il file",
"customizeLabel": "Personalizzare",
+ "dropSubtitleFile": "Trascina il file dei sottotitoli qui",
"offChoice": "Spento",
"settings": {
"backlink": "Sottotitoli personalizzati",
@@ -379,6 +378,13 @@
"title": "Impossibile riprodurre il video!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "L'estensione è disabilitata",
+ "enableExtension": "Abilita l'estensione",
+ "homeButton": "Torna alla pagina iniziale",
+ "text": "Avete installato l'estensione sudo-flix. Per iniziare a usarla, è necessario abilitare l'estensione per questo sito.",
+ "title": "Abilita l'estensione"
+ },
"items": {
"failure": "Si è verificato un errore",
"notFound": "Non ha il video",
diff --git a/src/assets/locales/nl.json b/src/assets/locales/nl.json
index 1ef3c2ba..1c66e661 100644
--- a/src/assets/locales/nl.json
+++ b/src/assets/locales/nl.json
@@ -138,15 +138,11 @@
},
"morning": {
"default": "Waar wil je deze ochtend naar kijken?",
- "extra": [
- "Ik hoor dat Before Sunrise goed is"
- ]
+ "extra": ["Ik hoor dat Before Sunrise goed is"]
},
"night": {
"default": "Wat wil je vanavond bekijken?",
- "extra": [
- "Moe? Ik hoor dat The Exorcist goed is."
- ]
+ "extra": ["Moe? Ik hoor dat The Exorcist goed is."]
}
}
},
@@ -294,6 +290,7 @@
"title": "Kwaliteit"
},
"settings": {
+ "audioItem": "Audio",
"downloadItem": "Download",
"enableSubtitles": "Ondertitels inschakelen",
"experienceSection": "Kijk-ervaring",
@@ -320,8 +317,9 @@
"unknownOption": "Onbekend"
},
"subtitles": {
- "customChoice": "Selecteer ondertiteling uit bestand",
+ "customChoice": "Sleep of upload bestand",
"customizeLabel": "Aanpassen",
+ "dropSubtitleFile": "Sleep ondertitelbestand naar hier",
"offChoice": "Uit",
"settings": {
"backlink": "Aangepaste ondertiteling",
@@ -379,6 +377,13 @@
"title": "Oeps, hier ging iets mis!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "Extensie uitgeschakeld",
+ "enableExtension": "Extensie inschakelen",
+ "homeButton": "Naar hoofdpagina",
+ "text": "Je hebt de sudo-flix extensie geïnstalleerd. Om deze te gebruiken, moet je de extensie inschakelen voor deze site.",
+ "title": "Activeer alstublieft de extensie"
+ },
"items": {
"failure": "Daar ging iets mis",
"notFound": "Er is geen video gevonden",
diff --git a/src/assets/locales/pl.json b/src/assets/locales/pl.json
index e9756b57..0c8c58ab 100644
--- a/src/assets/locales/pl.json
+++ b/src/assets/locales/pl.json
@@ -57,6 +57,8 @@
},
"host": "Łączysz się z <0>{{hostname}}0> - przed utworzeniem konta potwierdź że ufasz temu serwerowi",
"no": "Wstecz",
+ "noHost": "Serwer nie został skonfigurowany, więc nie można utworzyć konta",
+ "noHostTitle": "Serwer nie skonfigurowany!",
"title": "Ufasz temu serwerowi?",
"yes": "Ufam temu serwerowi"
},
@@ -117,7 +119,13 @@
"loading": "Wczytywanie...",
"noResults": "Nie mogliśmy niczego znaleźć!",
"placeholder": {
- "default": "Co chciałbyś obejrzeć?"
+ "default": "Co chciałbyś obejrzeć?",
+ "extra": [
+ "Co chcesz odkryć?",
+ "Co znajduje się na Twojej liście do obejrzenia?",
+ "Jaki jest twój ulubiony film?",
+ "Jaki jest twój ulubiony serial?"
+ ]
},
"sectionTitle": "Wyniki wyszukiwania"
},
@@ -130,15 +138,11 @@
},
"morning": {
"default": "Co chciałbyś obejrzeć dziś rano?",
- "extra": [
- "Słyszałem że „Przed wschodem słońca” jest dobre"
- ]
+ "extra": ["Słyszałem że „Przed wschodem słońca” jest dobre"]
},
"night": {
"default": "Co chciałbyś obejrzeć dziś wieczorem?",
- "extra": [
- "Zmęczony? Słyszałem że „Egzorcysta” jest dobry."
- ]
+ "extra": ["Zmęczony? Słyszałem że „Egzorcysta” jest dobry."]
}
}
},
@@ -182,7 +186,7 @@
"extensionHelp": "Jeżeli zainstalowałeś rozszerzenie, ale nie zostało ono wykryte, otwórz rozszerzenie za pomocą menu rozszerzeń przeglądarki i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.",
"linkChrome": "Zainstaluj rozszerzenie na Chrome",
"linkFirefox": "Zainstaluj rozszerzenie na Firefox",
- "notDetecting": "Zainstalowano na Chrome, ale się nie wyświetla? Spróbuj odświeżyć stronę!",
+ "notDetecting": "Zainstalowano w Chrome, ale strona go nie wykrywa? Spróbuj odświeżyć stronę!",
"notDetectingAction": "Odśwież stronę",
"status": {
"disallowed": "Rozszerzenie nie jest włączone dla tej strony",
@@ -244,6 +248,7 @@
},
"menus": {
"downloads": {
+ "copyHlsPlaylist": "Kopiuj link do listy odtwarzania HLS",
"disclaimer": "Pliki do pobrania są pobierane bezpośrednio od dostawcy. sudo-flix nie ma kontroli nad sposobem dostarczania plików do pobrania.",
"downloadSubtitle": "Pobierz aktualne napisy",
"downloadVideo": "Pobierz wideo",
@@ -285,6 +290,7 @@
"title": "Jakość"
},
"settings": {
+ "audioItem": "Dźwięk",
"downloadItem": "Pobierz",
"enableSubtitles": "Włącz napisy",
"experienceSection": "Odtwarzanie",
@@ -311,8 +317,9 @@
"unknownOption": "Nieznany"
},
"subtitles": {
- "customChoice": "Wybierz napisy z pliku",
+ "customChoice": "Wrzuć lub prześlij plik",
"customizeLabel": "Dostosuj",
+ "dropSubtitleFile": "Przeciągnij i upuść plik z napisami tutaj",
"offChoice": "Wyłączone",
"settings": {
"backlink": "Własne napisy",
diff --git a/src/assets/locales/pt-BR.json b/src/assets/locales/pt-BR.json
index 6f7c76ea..52425757 100644
--- a/src/assets/locales/pt-BR.json
+++ b/src/assets/locales/pt-BR.json
@@ -57,6 +57,8 @@
},
"host": "Você está se conectando a <0>{{hostname}}0> - por favor, confirme se confia nele antes de criar uma conta",
"no": "Voltar",
+ "noHost": "O servidor não foi configurado, portanto você não pode criar uma conta",
+ "noHostTitle": "Servidor não configurado!",
"title": "Você confia neste servidor?",
"yes": "Eu confio neste servidor"
},
@@ -118,7 +120,12 @@
"noResults": "Não conseguimos encontrar nada!",
"placeholder": {
"default": "O que você quer assistir?",
- "extra": []
+ "extra": [
+ "O que você gostaria de explorar?",
+ "O que está na sua lista para assistir?",
+ "Qual o seu filme favorito?",
+ "Qual a sua série favorita?"
+ ]
},
"sectionTitle": "Resultados da pesquisa"
},
@@ -131,11 +138,15 @@
},
"morning": {
"default": "O que você gostaria de assistir esta manhã?",
- "extra": ["Ouvi dizer que Antes do Amanhecer é bom"]
+ "extra": [
+ "Ouvi dizer que Antes do Amanhecer é bom"
+ ]
},
"night": {
"default": "O que você gostaria de assistir esta noite?",
- "extra": ["Cansado? Ouvi dizer que O Exorcista é bom."]
+ "extra": [
+ "Cansado? Ouvi dizer que O Exorcista é bom."
+ ]
}
}
},
@@ -283,6 +294,7 @@
"title": "Qualidade"
},
"settings": {
+ "audioItem": "Áudio",
"downloadItem": "Baixar",
"enableSubtitles": "Ativar Legendas",
"experienceSection": "Experiência de visualização",
@@ -309,8 +321,9 @@
"unknownOption": "Desconhecido"
},
"subtitles": {
- "customChoice": "Selecione arquivo de legenda",
+ "customChoice": "Solte ou faça upload do arquivo",
"customizeLabel": "Personalizar",
+ "dropSubtitleFile": "Solte o arquivo da legenda aqui",
"offChoice": "Desativadas",
"settings": {
"backlink": "Legendas personalizadas",
@@ -525,6 +538,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Desfoque de fundo",
"backgroundLabel": "Opacidade do fundo",
"colorLabel": "Cor",
"previewQuote": "Eu não devo ter medo. Medo é o assassino da mente.",
diff --git a/src/assets/locales/ro.json b/src/assets/locales/ro.json
index b8534893..75933a72 100644
--- a/src/assets/locales/ro.json
+++ b/src/assets/locales/ro.json
@@ -57,6 +57,8 @@
},
"host": "Vă conectați la <0>{{hostname}}0> - vă rugăm să confirmați că aveți încredere înainte de a vă crea un cont",
"no": "Întoarce-te",
+ "noHost": "Serverul nu a fost configurat, deci nu vă puteți crea un cont",
+ "noHostTitle": "Serverul nu este configurat!",
"title": "Ai încredere în acest server?",
"yes": "Am încredere în acest server"
},
@@ -79,6 +81,7 @@
},
"footer": {
"legal": {
+ "disclaimer": "Declinare a răspunderii",
"disclaimerText": "sudo-flix nu găzduiește niciun fișier, ci doar trimite la servicii terțe. Problemele juridice ar trebui abordate cu gazdele și furnizorii de fișiere. sudo-flix nu este responsabil pentru niciun fișier media afișat de furnizorii de video."
},
"links": {
@@ -94,6 +97,7 @@
"about": "Despre",
"dmca": "DMCA",
"login": "Log in",
+ "onboarding": "Configurație",
"pagetitle": "{{title}} - sudo-flix",
"register": "Inregistreaza-te",
"settings": "Setări"
@@ -116,7 +120,12 @@
"noResults": "Nu am putut găsi nimic!",
"placeholder": {
"default": "La ce dorești să te uiți?",
- "extra": []
+ "extra": [
+ "Ce vrei să explorezi?",
+ "Ce e pe lista dvs. de urmărire?",
+ "Care e filmul tău preferat?",
+ "Care e serialul tău preferat?"
+ ]
},
"sectionTitle": "Rezultate de căutare"
},
@@ -163,6 +172,69 @@
"message": "Ne-am uitat peste tot: sub pubele, în dulap, În spatele proxy-ului dar din păcate nu am găsit pagina pe care dumneavoastră o căutați.",
"title": "N-am putut găsi pagina"
},
+ "onboarding": {
+ "defaultConfirm": {
+ "cancel": "Anulare",
+ "confirm": "Folosește configurația implicită",
+ "description": "Configurația implicită nu are cele mai bune fluxuri și poate fi insuportabil de înceată.",
+ "title": "Sunteți sigur(ă)?"
+ },
+ "extension": {
+ "back": "Înapoi",
+ "explainer": "Folosind această extensie de browser, puteți obține cele mai bune fluxuri pe care le avem de oferit. Cu doar o simplă instalare.",
+ "explainerIos": "Din păcate, extensia de browser nu e suportată pe iOS, Apăsați Înapoi pentru a alege altă opțiune.",
+ "extensionHelp": "Dacă ați instalat extensia dar nu e detectată, deschideți extensia din meniul extensiilor al browserului dvs. și urmăriți pașii de pe ecran.",
+ "linkChrome": "Instalare extensie pentru Chrome",
+ "linkFirefox": "Instalare extensie pentru Firefox",
+ "notDetecting": "Instalată pe Chrome dar site-ul nu o detectează? Încerați să reîmprospătați pagina!",
+ "notDetectingAction": "Reîncarcă pagina",
+ "status": {
+ "disallowed": "Extensia nu e activată pentru această pagină",
+ "disallowedAction": "Activare extensie",
+ "failed": "Nu s-a putut obține statusul",
+ "loading": "Așteptăm să vă instalați extensia",
+ "outdated": "Versiunea extensiei este prea veche",
+ "success": "Extensia funcționează conform așteptărilor!"
+ },
+ "submit": "Continuare",
+ "title": "Să începem cu o extensie"
+ },
+ "proxy": {
+ "back": "Înapoi",
+ "explainer": "Cu metoda proxy, puteți obține fluxuri de calitate prin a face un proxy cu autoservire.",
+ "input": {
+ "errorConnection": "Nu s-a putut conecta la proxy",
+ "errorInvalidUrl": "URL invalid",
+ "errorNotProxy": "Am așteptat un proxy dar am primit un site web",
+ "label": "URL-ul proxy-ului",
+ "placeholder": "https://"
+ },
+ "link": "Învață cum se face un proxy",
+ "submit": "Validare proxy",
+ "title": "Să facem un proxy nou"
+ },
+ "start": {
+ "explainer": "Pentru a obține cele mai bune fluxuri posibile, va trebui să alegeți ce metodă de streaming vreți să folosiți.",
+ "options": {
+ "default": {
+ "text": "Nu vreau fluxuri de calitate,<0 /> <1>folosește configurația implicită1>"
+ },
+ "extension": {
+ "action": "Instalare extensie",
+ "description": "Instalați extensia browser și obțineți acces la cele mai bune surse.",
+ "quality": "Cea mai bună calitate",
+ "title": "Extensie browser"
+ },
+ "proxy": {
+ "action": "Configurare proxy",
+ "description": "Configurați un proxy în doar 5 minute și obținți acces la resurse grozave.",
+ "quality": "Calitate bună",
+ "title": "Proxy personalizat"
+ }
+ },
+ "title": "Hai să configurăm sudo-flix"
+ }
+ },
"overlays": {
"close": "Închide"
},
@@ -176,10 +248,11 @@
},
"menus": {
"downloads": {
+ "copyHlsPlaylist": "Copiere link către lista de redare HLS",
"disclaimer": "Descărcările sunt luate direct de la furnizor. sudo-flix nu are control cum descărcările sunt furnizate.",
"downloadSubtitle": "Descărcați subtitlul curente",
"downloadVideo": "Descarcă video",
- "hlsDisclaimer": "Descărcările sunt preluate direct de la furnizor. sudo-flix nu are control asupra modului în care sunt furnizate descărcările. Vă rugăm să rețineți că descărcați o listă de redare HLS, aceasta este destinată utilizatorilor familiar cu streamingul avansat.",
+ "hlsDisclaimer": "Descărcările sunt preluate direct de la furnizor. sudo-flix nu are control asupra modului în care sunt furnizate descărcările.
Vă rugăm să rețineți că descărcați o listă de redare HLS, nu este recomandat să o descărcați dacă nu sunteți familiari cu formate avasate de streaming. Încercați surse diferite pentru formate diferte.",
"onAndroid": {
"1": "Pentru a descărca pe android, apăsați butonul de descărcare apoi în pagina nouă,apăsați și țineți pe video, apoi selectați salvează.",
"shortTitle": "Descărcare / Android",
@@ -236,8 +309,8 @@
"title": "Nu a fost găsită nicio încorporare"
},
"noStream": {
- "text": "Sursa asta nu are nicio sursă de streaming pentru filmul său spectacolul.",
- "title": "Niciun stream"
+ "text": "Sursa aceasta nu are niciun flux pentru acest film sau serial.",
+ "title": "Niciun flux"
},
"title": "Surse",
"unknownOption": "Necunoscut"
@@ -398,25 +471,50 @@
},
"connections": {
"server": {
- "description": "Dacă doriți să vă conectați la un backend personalizat pentru a vă stoca datele, activați acest lucru și furnizați adresa URL.",
+ "description": "Dacă doriți să vă conectați la un backend personalizat pentru a vă stoca datele, activați acest lucru și furnizați adresa URL. <0>Instrucțiuni.0>",
"label": "Server personalizat",
"urlLabel": "Adresa URL personalizată a serverului"
},
"setup": {
+ "doSetup": "Configurează",
"errorStatus": {
+ "description": "Se pare că unul sau mai multe obiecte din această configurație au nevoie de atenția ta.",
"title": "Ceva are nevoie de atenția ta"
+ },
+ "itemError": "Ceva nu e bine cu această setare. Parcurge configurația din nou pentru a o corecta.",
+ "items": {
+ "default": "Configurație implicită",
+ "extension": "Extensie",
+ "proxy": "Proxy personalizat"
+ },
+ "redoSetup": "Refă configurația",
+ "successStatus": {
+ "description": "Toate sunt la locul lor ca să începeți să urmariți conținutul preferat.",
+ "title": "Totul este pregătit!"
+ },
+ "unsetStatus": {
+ "description": "Apăsați butonul din dreapta pentru a începe procesul de configurare.",
+ "title": "Nu ați parcurs configurația"
}
},
"title": "Conexiuni",
"workers": {
"addButton": "Adaugă un nou muncitor",
- "description": "Pentru ca aplicația să funcționeze, tot traficul este direcționat prin proxy. Activați acest lucru dacă doriți să vă aduceți proprii lucrători.",
+ "description": "Pentru ca aplicația să funcționeze, tot traficul este direcționat prin proxy. Activați acest lucru dacă doriți să vă aduceți proprii lucrători. <0>Instrucțiuni.0>",
"emptyState": "Niciun muncitor incă, adaugă unu",
"label": "Utilizați lucrători proxy personalizați",
"urlLabel": "Adresele URL ale lucrătorilor",
"urlPlaceholder": "https://"
}
},
+ "preferences": {
+ "language": "Limba aplicației",
+ "languageDescription": "Limba aplicată întregii aplicații.",
+ "thumbnail": "Generați pictograme",
+ "thumbnailDescription": "De cele mai multe ori videoclipurile nu au pictograme. Puteți activa această setare pentru a le genera din mers, dar vă pot încetini videoclipul.",
+ "thumbnailLabel": "Generați pictograme",
+ "title": "Preferințe"
+ },
"reset": "Resetare",
"save": "Salvează",
"sidebar": {
@@ -434,6 +532,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Blurarea fundalului",
"backgroundLabel": "Opacitatea fundalului",
"colorLabel": "Culoare",
"previewQuote": "nu trebuie să mă tem. Frica este ucigașul minții.",
diff --git a/src/assets/locales/ru.json b/src/assets/locales/ru.json
index 2d0bea4a..8e2eb3cf 100644
--- a/src/assets/locales/ru.json
+++ b/src/assets/locales/ru.json
@@ -138,9 +138,7 @@
},
"morning": {
"default": "Что бы вы хотели посмотреть этим утром?",
- "extra": [
- "Слышали, что «Перед рассветом» – отличный фильм"
- ]
+ "extra": ["Слышали, что «Перед рассветом» – отличный фильм"]
},
"night": {
"default": "Что бы вы хотели посмотреть этим вечером?",
@@ -155,7 +153,8 @@
"types": {
"movie": "Фильм",
"show": "Сериал"
- }
+ },
+ "unreleased": "Ожидается"
},
"navigation": {
"banner": {
@@ -294,6 +293,7 @@
"title": "Качество"
},
"settings": {
+ "audioItem": "Аудио",
"downloadItem": "Скачать",
"enableSubtitles": "Включить субтитры",
"experienceSection": "Впечатления от просмотра",
@@ -320,8 +320,9 @@
"unknownOption": "Неизвестный"
},
"subtitles": {
- "customChoice": "Выбрать субтитры из файла",
+ "customChoice": "Перетащите или загрузите файл",
"customizeLabel": "Настроить",
+ "dropSubtitleFile": "Перетащите файл субтитров",
"offChoice": "Выключить",
"settings": {
"backlink": "Пользовательские субтитры",
@@ -379,6 +380,13 @@
"title": "Не удалось воспроизвести видео!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "Расширение отключено",
+ "enableExtension": "Включить расширение",
+ "homeButton": "Вернуться на главную",
+ "text": "Вы установили расширение sudo-flix. Чтобы начать его использовать, необходимо включить расширение для этого сайта.",
+ "title": "Пожалуйста, включите расширение"
+ },
"items": {
"failure": "Возникла ошибка",
"notFound": "Такого видео нет",
diff --git a/src/assets/locales/tr.json b/src/assets/locales/tr.json
index 7fd0f0f5..88e27306 100644
--- a/src/assets/locales/tr.json
+++ b/src/assets/locales/tr.json
@@ -57,6 +57,8 @@
},
"host": "<0>{{hostname}}0> adlı sunucuya bağlanıyorsunuz - lütfen hesap oluşturmadan önce sunucuya güvendiğinizi onaylayın",
"no": "Geri dön",
+ "noHost": "Sunucu henüz yapılandırılmadığı için hesap oluşturamazsınız",
+ "noHostTitle": "Sunucu kullanılamıyor!",
"title": "Bu sunucuya güveniyor musunuz?",
"yes": "Bu sunucuya güveniyorum"
},
@@ -118,7 +120,12 @@
"noResults": "Hiçbir şey bulamadık!",
"placeholder": {
"default": "Ne izlemek istersiniz?",
- "extra": []
+ "extra": [
+ "Ne keşfetmek istiyorsunuz?",
+ "İzleme listenizde neler var?",
+ "Favori filmin ne?",
+ "En sevdiğiniz dizi ne?"
+ ]
},
"sectionTitle": "Arama sonuçları"
},
@@ -144,7 +151,8 @@
"types": {
"movie": "Film",
"show": "Dizi"
- }
+ },
+ "unreleased": "Yayınlanmamış"
},
"navigation": {
"banner": {
@@ -165,6 +173,69 @@
"message": "Her yere baktık: bazanın altına, dolabın içine hatta ara sunucuya ama maalesef aradığınız sayfayı bulamadık.",
"title": "Sayfa bulunamadı"
},
+ "onboarding": {
+ "defaultConfirm": {
+ "cancel": "İptal Et",
+ "confirm": "Ön Tanımlı Ayarları Kullan",
+ "description": "Varsayılan ayarlar en iyi akış hizmetlerini sunmayabilir ve oldukça yavaş olabilir.",
+ "title": "Emin misiniz?"
+ },
+ "extension": {
+ "back": "Geri Dön",
+ "explainer": "Tarayıcı uzantısını kullanarak, size sunduğumuz en iyi akışlara erişebilirsiniz. Kurulumu ise oldukça basit.",
+ "explainerIos": "Ne yazık ki, tarayıcı uzantısı iOS cihazlarında desteklenmemektedir. Geri Dön düğmesine basarak başka bir seçenek seçebilirsiniz.",
+ "extensionHelp": "Eklenti yüklediyseniz ancak algılamıyorsa, tarayıcınızın uzantı menüsünden eklentiyi açın ve ekran adımları takip edin.",
+ "linkChrome": "Chrome uzantısını yükleyin",
+ "linkFirefox": "Firefox uzantısını yükleyin",
+ "notDetecting": "Chrome'a yüklendi, ancak site algılamıyor mu? Sayfayı yenileyin!",
+ "notDetectingAction": "Sayfayı yenile",
+ "status": {
+ "disallowed": "Bu sayfa için uzantı etkinleştirilmemiş",
+ "disallowedAction": "Uzantıyı etkinleştir",
+ "failed": "Durum bilgisi alınamadı",
+ "loading": "Uzantıyı yüklemenizi bekliyoruz",
+ "outdated": "Uzantınız çok eski",
+ "success": "Uzantı sorunsuz çalışıyor!"
+ },
+ "submit": "Devam Et",
+ "title": "Hadi bir uzantıyla başlayalım"
+ },
+ "proxy": {
+ "back": "Geri Dön",
+ "explainer": "Ara sunucu yöntemiyle, yüksek kalitede yayınlara kolayca erişin.",
+ "input": {
+ "errorConnection": "Proxy'ye bağlanılamadı",
+ "errorInvalidUrl": "Geçerli bir URL değil",
+ "errorNotProxy": "Proxy bekleniyordu, web sitesine yönlendirildi",
+ "label": "Proxy URL",
+ "placeholder": "https://"
+ },
+ "link": "Proxy oluşturmayı öğrenin",
+ "submit": "Proxy'yi Gönder",
+ "title": "Hadi yeni bir proxy oluşturalım"
+ },
+ "start": {
+ "explainer": "En iyi akış deneyimi için kullanmak istediğiniz akış yöntemini seçmeniz gerekiyor.",
+ "options": {
+ "default": {
+ "text": "Yüksek kaliteli akış istemiyorum,<0 /> <1>varsayılan ayarı kullanın1>"
+ },
+ "extension": {
+ "action": "Uzantıyı Yükle",
+ "description": "En iyi kaynaklara erişmek için tarayıcı uzantısını yükleyin.",
+ "quality": "En yüksek kalite",
+ "title": "Tarayıcı uzantısı"
+ },
+ "proxy": {
+ "action": "Proxy'yi Kur",
+ "description": "Sadece 5 dakikada proxy kurun ve harika kaynaklara erişin.",
+ "quality": "İyi kalite",
+ "title": "Özel Proxy"
+ }
+ },
+ "title": "sudo-flix ile sizi hazır hale getirelim"
+ }
+ },
"overlays": {
"close": "Kapat"
},
@@ -178,10 +249,11 @@
},
"menus": {
"downloads": {
+ "copyHlsPlaylist": "HLS oynatma listesi bağlantısını kopyala",
"disclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. sudo-flix'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur.",
"downloadSubtitle": "Geçerli altyazıyı indir",
"downloadVideo": "Videoyu indir",
- "hlsDisclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. sudo-flix'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur. Lütfen bir HLS oynatma listesi indirdiğinizi unutmayın; bu, gelişmiş multimedya akışına aşina olan kullanıcılara yöneliktir.",
+ "hlsDisclaimer": "İndirmeler doğrudan sağlayıcıdan alınır. sudo-flix, indirmelerin nasıl sağlanacağı üzerinde kontrole sahip değildir.
Lütfen bir HLS oynatma listesi indirdiğinizi unutmayın; ileri seviye bilginiz yoksa indirmeniz önerilmez. akış biçimleri. Farklı formatlar için farklı kaynakları deneyin.",
"onAndroid": {
"1": "Android'e indirmek için önce indir butonuna basın, sonra açılan yeni sayfada video üzerine basılı tutun, ardından Videoyu indir seçeneğini seçin.",
"shortTitle": "İndir / Android",
@@ -219,6 +291,7 @@
"title": "Kalite"
},
"settings": {
+ "audioItem": "Ses",
"downloadItem": "İndir",
"enableSubtitles": "Altyazıları Etkinleştir",
"experienceSection": "İzleme deneyimi",
@@ -245,8 +318,9 @@
"unknownOption": "Bilinmeyen"
},
"subtitles": {
- "customChoice": "Altyazı dosyası yükle",
+ "customChoice": "Dosya sürükleyin veya yükleyin",
"customizeLabel": "Seçenekler",
+ "dropSubtitleFile": "Altyazı dosyasını buraya sürükleyin",
"offChoice": "Kapat",
"settings": {
"backlink": "Kişisel altyazılar",
@@ -262,6 +336,17 @@
"text": "API üstverisi yüklenemedi, lütfen internet bağlantınızı kontrol edin.",
"title": "API üstverisi yüklenemedi"
},
+ "dmca": {
+ "badge": "Kaldırıldı",
+ "text": "Üzgünüz, bu içerik telif hakkı ihlali veya yayından kaldırma bildirimi nedeniyle kullanılamıyor.",
+ "title": "İçerik kaldırıldı"
+ },
+ "extensionPermission": {
+ "badge": "İzin Gerekli",
+ "button": "Uzantıyı kullanın",
+ "text": "Tarayıcı uzantısını yüklemişsiniz, ancak uzantıyı kullanmaya başlamak için izninize ihtiyacımız var.",
+ "title": "Uzantıyı Kişiselleştir"
+ },
"failed": {
"badge": "Başarısız oldu",
"homeButton": "Ana sayfaya dön",
@@ -293,6 +378,13 @@
"title": "Video oynatılamadı!"
},
"scraping": {
+ "extensionFailure": {
+ "badge": "Eklenti devre dışı",
+ "enableExtension": "Eklentiyi etkinleştir",
+ "homeButton": "Eve git",
+ "text": "sudo-flix uzantısını kurdunuz. Kullanmaya başlamak için, uzantıyı bu site için etkinleştirmeniz gerekiyor.",
+ "title": "Lütfen eklentiyi etkinleştirin"
+ },
"items": {
"failure": "Hata oluştu",
"notFound": "Video mevcut değil",
@@ -393,6 +485,28 @@
"label": "Özel sunucu",
"urlLabel": "Özel sunucu URL'si"
},
+ "setup": {
+ "doSetup": "Başlayın",
+ "errorStatus": {
+ "description": "Kurulumda dikkat etmeniz gereken bir veya daha fazla öğe var gibi görünüyor.",
+ "title": "Dikkatinizi gerektiren bir şey var"
+ },
+ "itemError": "Kurulum sırasında bir hata oluşmuş olabilir. Sorunu çözmek için kurulum adımlarını tekrar izleyin.",
+ "items": {
+ "default": "Varsayılan ayarlar",
+ "extension": "Tarayıcı uzantısı",
+ "proxy": "Özel Proxy"
+ },
+ "redoSetup": "Kurulumu tekrar yapın",
+ "successStatus": {
+ "description": "Sevdiğiniz şeyleri izlemek için her şey hazır. Başlayın ve keyfini çıkarın.",
+ "title": "Tamam!"
+ },
+ "unsetStatus": {
+ "description": "Kurulum sürecini başlatmak için lütfen sağdaki düğmeye tıklayın.",
+ "title": "Kurulumu tamamlamadınız"
+ }
+ },
"title": "Bağlantılar",
"workers": {
"addButton": "Yeni işleyici ekle",
@@ -403,6 +517,14 @@
"urlPlaceholder": "https://"
}
},
+ "preferences": {
+ "language": "Uygulama dili",
+ "languageDescription": "Uygulamanın tamamı için seçili dil",
+ "thumbnail": "Küçük resimler oluştur",
+ "thumbnailDescription": "Çoğu video için ön izleme görseli bulunmaz. Bu ayarı etkinleştirerek anında oluşturulmasını sağlayabilirsiniz, ancak bu videonuzu yavaşlatabilir.",
+ "thumbnailLabel": "Küçük resim oluştur",
+ "title": "Ayarlar"
+ },
"reset": "Sıfırla",
"save": "Kaydet",
"sidebar": {
@@ -420,6 +542,7 @@
}
},
"subtitles": {
+ "backgroundBlurLabel": "Arka plan bulanıklığı",
"backgroundLabel": "Arka plan opaklığı",
"colorLabel": "Renk",
"previewQuote": "Korkmamalıyım. Korku aklın katilidir.",
diff --git a/src/assets/locales/zh-Hant.json b/src/assets/locales/zh-Hant.json
index d10e2e91..61cb97b4 100644
--- a/src/assets/locales/zh-Hant.json
+++ b/src/assets/locales/zh-Hant.json
@@ -1,6 +1,6 @@
{
"about": {
- "description": "sudo-flix 是一款在互聯網上搜尋流媒體的網路應用程式。團隊致力於讓使用者以最簡約的方式消費內容。",
+ "description": "sudo-flix 是一款在互聯網上搜尋串流媒體的網路應用程式。團隊致力於讓使用者以最簡約的方式觀看內容。",
"faqTitle": "常見問題",
"q1": {
"body": "sudo-flix 不託管任何內容。您點選觀看內容時,系統均從互聯網搜尋(在加載提示頁和“視頻源”選項卡中,您可以看到正在使用的源)。媒體從未在 sudo-flix 中上傳,所有內容均通過搜索機制而得。",
@@ -12,7 +12,7 @@
},
"q3": {
"body": "我們的搜尋結果由電影資料庫(TMDB)驅動,無論視訊來源是否有對應內容,都會顯示結果。",
- "title": "搜尋結果中已顯示了影視劇或其他節目,為何我無法播放?"
+ "title": "搜尋結果中已顯示了電視劇或其他節目,為何我無法播放?"
},
"title": "關於 sudo-flix"
},
@@ -22,18 +22,18 @@
},
"auth": {
"createAccount": "還沒有帳戶? <0>建立一個0>",
- "deviceNameLabel": "設備名稱",
+ "deviceNameLabel": "裝置名稱",
"deviceNamePlaceholder": "我的手機",
"generate": {
"description": "您的密碼短語相當於使用者名稱與密碼。由於您需要輸入它來登入帳戶,請確保將其存放到安全位置",
- "next": "我已儲存密碼短語",
+ "next": "我已經儲存密碼短語",
"passphraseFrameLabel": "密碼短語",
"title": "您的密碼短語"
},
"hasAccount": "已經擁有帳戶? <0>點此登入。 0>",
"login": {
"description": "請輸入密碼短語以登入您的帳戶",
- "deviceLengthError": "請輸入設備名稱",
+ "deviceLengthError": "請輸入裝置名稱",
"passphraseLabel": "12 字密碼短語",
"passphrasePlaceholder": "密碼短語",
"submit": "登入",
@@ -57,6 +57,8 @@
},
"host": "您正在連線到 <0>{{hostname}}0> - 在建立帳戶之前,請確保您信任它",
"no": "返回",
+ "noHost": "因為沒有配置伺服器,所以你不能夠創建帳戶",
+ "noHostTitle": "没有配置伺服器!",
"title": "您是否信任這個伺服器?",
"yes": "我信任這個伺服器"
},
@@ -71,7 +73,7 @@
}
},
"errors": {
- "badge": "它已損壞",
+ "badge": "它壞了",
"details": "錯誤詳情",
"reloadPage": "重新加載頁面",
"showError": "顯示錯誤詳情",
@@ -87,7 +89,7 @@
"dmca": "DMCA",
"github": "GitHub"
},
- "tagline": "使用這個開源流媒體應用程序觀看您最喜歡的節目和電影。"
+ "tagline": "使用這個開源串流媒體應用程式觀看您最喜歡的節目和電影。"
},
"global": {
"name": "sudo-flix",
@@ -118,7 +120,12 @@
"noResults": "我们找不到任何结果!",
"placeholder": {
"default": "您想看什麼?",
- "extra": []
+ "extra": [
+ "你想探索什麼?",
+ "你的觀看清單有甚麼電影/電視劇?",
+ "你最喜愛的電影是甚麽?",
+ "你最喜愛的電視劇是甚麽?"
+ ]
},
"sectionTitle": "搜索結果"
},
@@ -133,7 +140,7 @@
},
"night": {
"default": "您今晚想看什麼?",
- "extra": ["疲倦了嗎?我聽說《驅魔人》不錯。"]
+ "extra": ["你疲倦嗎?我聽說《驅魔人》不錯。"]
}
}
},
@@ -150,7 +157,7 @@
},
"menu": {
"about": "關於我們",
- "donation": "捐",
+ "donation": "捐錢",
"logout": "登出",
"register": "同步到雲端",
"settings": "設定",
@@ -167,32 +174,32 @@
"defaultConfirm": {
"cancel": "取消",
"confirm": "使用預設設置",
- "description": "默認設置沒有最好的直播,並且可能慢得令人難以忍受。",
+ "description": "默認設置沒有最好的串流,並且可能慢得令人難以忍受。",
"title": "您確定嗎?"
},
"extension": {
"back": "返回",
- "explainer": "使用瀏覽器擴展程式,您可以獲得我們提供的最佳直播。只需簡單的安裝。",
- "explainerIos": "不幸的是,iOS 不支援瀏覽器擴展程式,按 返回 選擇其他選項。",
- "extensionHelp": "如果您已安裝該擴展程式,但未檢測到該擴展程式, 請通過瀏覽器的擴展程式功能表打開該擴展 程式 ,然後按照螢幕上的步驟操作。",
- "linkChrome": "安裝 Chrome 擴展程式",
- "linkFirefox": "安裝 Firefox 擴展程式",
+ "explainer": "使用瀏覽器擴充功能,您可以獲得我們提供的最佳直播。只需簡單的安裝。",
+ "explainerIos": "不幸的是,iOS 不支援瀏覽器擴充功能,按 返回 選擇其他選項。",
+ "extensionHelp": "如果您已安裝該擴充功能,但未檢測到該擴充功能, 請通過瀏覽器的擴充功能功能表打開該擴展 程式 ,然後按照螢幕上的步驟操作。",
+ "linkChrome": "安裝 Chrome 擴充功能",
+ "linkFirefox": "安裝 Firefox 擴充功能",
"notDetecting": "安裝在 Chrome 上,但網站沒有檢測到它?嘗試重新載入頁面!",
"notDetectingAction": "重新加載頁面",
"status": {
- "disallowed": "未為此頁面啟用擴展程式",
- "disallowedAction": "啟用擴展程式",
+ "disallowed": "未為此頁面啟用瀏覽器擴充功能",
+ "disallowedAction": "啟用瀏覽器擴充功能",
"failed": "無法請求狀態",
- "loading": "等待您安裝擴展程式",
- "outdated": "擴展程式版本太舊",
- "success": "擴展程式正在按預期工作!"
+ "loading": "等待您安裝瀏覽器擴充功能",
+ "outdated": "瀏覽器擴充功能版本太舊",
+ "success": "瀏覽器擴充功能正在正常運作!"
},
"submit": "繼續",
- "title": "讓我們從擴展程式開始"
+ "title": "讓我們從瀏覽器擴充功能開始"
},
"proxy": {
"back": "返回",
- "explainer": "使用代理伺服器,您可以通過製作自定代理伺服器來獲得高品質的直播。",
+ "explainer": "使用代理伺服器,您可以通過製作自定代理伺服器來獲得高品質的串流。",
"input": {
"errorConnection": "無法連接到代理伺服器",
"errorInvalidUrl": "URL 無效",
@@ -205,20 +212,20 @@
"title": "讓我們創建一個新的代理伺服器"
},
"start": {
- "explainer": "為了獲得最好的流媒體,您需要選擇您想使用的流媒體方法。",
+ "explainer": "為了獲得最好的串流媒體,您需要選擇您想使用的串流方法。",
"options": {
"default": {
- "text": "我不想要高品質的流,<0 /> <1> 使用預設設置1>"
+ "text": "我不想要高品質的串流,<0 /> <1> 使用預設設置1>"
},
"extension": {
- "action": "安裝擴展程式",
- "description": "安裝瀏覽器擴展程式並訪問最佳資源。",
+ "action": "安裝瀏覽器擴充功能",
+ "description": "安裝瀏覽器擴充功能來使用最佳資源。",
"quality": "最好的品質",
- "title": "瀏覽器擴展程式"
+ "title": "瀏覽器擴充功能"
},
"proxy": {
"action": "設置代理伺服器",
- "description": "只需 5 分鐘即可設置代理伺服器並訪問優質資源。",
+ "description": "只需 5 分鐘即可設置代理伺服器並訪問優質來源。",
"quality": "好品質",
"title": "自訂代理伺服器"
}
@@ -235,11 +242,12 @@
"short": "後退"
},
"casting": {
- "enabled": "正在投放到設備…"
+ "enabled": "正在投放到裝置…"
},
"menus": {
"downloads": {
- "disclaimer": "下載直接從供應商處獲取。sudo-flix 無法控制下載的提供方式。",
+ "copyHlsPlaylist": "複製 HLS 播放清單鏈接",
+ "disclaimer": "視頻直接從供應商處獲取。sudo-flix 無法控制下載的提供方式。",
"downloadSubtitle": "下載當前字幕",
"downloadVideo": "下載視頻",
"hlsDisclaimer": "下載直接從供應商處獲取。sudo-flix 無法控制下載的提供方式。
請注意,您正在下載 HLS 播放清單, 如果您不熟悉高級流媒體格式,則不建議下載 。嘗試使用不同格式的不同來源。",
@@ -261,10 +269,10 @@
"title": "下載"
},
"episodes": {
- "button": "分集",
- "emptyState": "該季暫無分集,請稍後再來!",
+ "button": "集數",
+ "emptyState": "該季暫無集數,請稍後再來!",
"episodeBadge": "E{{episode}}",
- "loadingError": "加載分集時出錯",
+ "loadingError": "加載集數時出錯",
"loadingList": "載入中...",
"loadingTitle": "載入中...",
"unairedEpisodes": "本季中的一集或多集已因尚未播出而被禁用。"
@@ -276,7 +284,7 @@
"quality": {
"automaticLabel": "自動品質",
"hint": "您可以嘗試<0>切換源0>以獲得不同的質量選項。",
- "iosNoQuality": "由於 Apple 定義的限制,此來源的品質選擇在 iOS 上不可用。您可以嘗試<0>切換到另一個來源0>以獲得不同的質量選項。",
+ "iosNoQuality": "由於 Apple 的限制,此來源的品質選擇在 iOS 上不可用。您可以嘗試<0>切換到另一個來源0>以獲得不同的質量選項。",
"title": "品質"
},
"settings": {
@@ -330,9 +338,9 @@
},
"extensionPermission": {
"badge": "缺少權限",
- "button": "使用擴展程式",
- "text": "您已安裝瀏覽器擴展,但我們需要您的許可才能啟用它。",
- "title": "配置擴展程式"
+ "button": "使用瀏覽器擴充功能",
+ "text": "您已安裝瀏覽器擴展功能,但我們需要您的許可才能啟用它。",
+ "title": "配置瀏覽器擴充功能"
},
"failed": {
"badge": "失敗",
@@ -368,7 +376,7 @@
"items": {
"failure": "發生錯誤",
"notFound": "沒有視頻",
- "pending": "檢查影片..."
+ "pending": "尋找影片中..."
},
"notFound": {
"badge": "未找到",
@@ -386,9 +394,9 @@
},
"turnstile": {
"description": "請通過右側的驗證碼來確認您是人類。這是為了保護 sudo-flix 的安全!",
- "error": "無法驗證您的人類身份。請再試一次。",
+ "error": "無法驗證您是一個人類。請再試一次。",
"title": "我們需要驗證您是否為人類。",
- "verifyingHumanity": "正在驗證您的人類身份..."
+ "verifyingHumanity": "正在驗證您是不是一個人類..."
}
},
"screens": {
@@ -430,7 +438,7 @@
},
"devices": {
"deviceNameLabel": "設備名稱",
- "failed": "無法載入階段",
+ "failed": "無法載入",
"removeDevice": "刪除",
"title": "設備"
},
@@ -503,7 +511,7 @@
"thumbnail": "生成縮圖",
"thumbnailDescription": "大多數時候,視頻沒有縮圖。您可以啟用此設置以即時生成它們,但它們會使您的視頻變慢。",
"thumbnailLabel": "生成縮圖",
- "title": "偏好"
+ "title": "偏好設定"
},
"reset": "重置",
"save": "保存",
@@ -516,12 +524,13 @@
"insecure": "不安全",
"notLoggedIn": "您尚未登錄",
"secure": "安全",
- "title": "應用資訊",
+ "title": "應用程式的資訊",
"unknownVersion": "未知",
"userId": "使用者ID"
}
},
"subtitles": {
+ "backgroundBlurLabel": "背景模糊",
"backgroundLabel": "背景不透明度",
"colorLabel": "顏色",
"previewQuote": "我絕不能害怕。 恐懼會扼殺思維能力。",
diff --git a/src/components/player/atoms/NextEpisodeButton.tsx b/src/components/player/atoms/NextEpisodeButton.tsx
index 517ecfd5..39a41c61 100644
--- a/src/components/player/atoms/NextEpisodeButton.tsx
+++ b/src/components/player/atoms/NextEpisodeButton.tsx
@@ -7,6 +7,7 @@ import { usePlayerMeta } from "@/components/player/hooks/usePlayerMeta";
import { Transition } from "@/components/utils/Transition";
import { PlayerMeta } from "@/stores/player/slices/source";
import { usePlayerStore } from "@/stores/player/store";
+import { useProgressStore } from "@/stores/progress";
function shouldShowNextEpisodeButton(
time: number,
@@ -54,6 +55,7 @@ export function NextEpisodeButton(props: {
const setShouldStartFromBeginning = usePlayerStore(
(s) => s.setShouldStartFromBeginning,
);
+ const updateItem = useProgressStore((s) => s.updateItem);
let show = false;
if (showingState === "always") show = true;
@@ -78,7 +80,19 @@ export function NextEpisodeButton(props: {
setShouldStartFromBeginning(true);
setDirectMeta(metaCopy);
props.onChange?.(metaCopy);
- }, [setDirectMeta, nextEp, meta, props, setShouldStartFromBeginning]);
+ const defaultProgress = { duration: 0, watched: 0 };
+ updateItem({
+ meta: metaCopy,
+ progress: defaultProgress,
+ });
+ }, [
+ setDirectMeta,
+ nextEp,
+ meta,
+ props,
+ setShouldStartFromBeginning,
+ updateItem,
+ ]);
const startCurrentEpisodeFromBeginning = useCallback(() => {
if (!meta || !meta.episode) return;
diff --git a/src/stores/progress/utils.ts b/src/stores/progress/utils.ts
index 9a439141..6ea09462 100644
--- a/src/stores/progress/utils.ts
+++ b/src/stores/progress/utils.ts
@@ -46,6 +46,15 @@ function progressIsAcceptableRange(duration: number, watched: number): boolean {
return true;
}
+function isFirstEpisodeOfShow(
+ item: ProgressMediaItem,
+ episode: ProgressEpisodeItem,
+): boolean {
+ const seasonId = episode.seasonId;
+ const season = item.seasons[seasonId];
+ return season.number === 1 && episode.number === 1;
+}
+
export function shouldShowProgress(
item: ProgressMediaItem,
): ShowProgressResult {
@@ -66,8 +75,10 @@ export function shouldShowProgress(
.sort((a, b) => b.updatedAt - a.updatedAt)
.filter(
(epi) =>
- !progressIsNotStarted(epi.progress.duration, epi.progress.watched),
+ !progressIsNotStarted(epi.progress.duration, epi.progress.watched) ||
+ !isFirstEpisodeOfShow(item, epi),
)[0];
+
const season = item.seasons[ep?.seasonId];
if (!ep || !season)
return {