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}} - 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}} - 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}} - 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}} - 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ă" + }, + "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.", "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.", "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}} 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ın" + }, + "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>建立一個", - "deviceNameLabel": "設備名稱", + "deviceNameLabel": "裝置名稱", "deviceNamePlaceholder": "我的手機", "generate": { "description": "您的密碼短語相當於使用者名稱與密碼。由於您需要輸入它來登入帳戶,請確保將其存放到安全位置", - "next": "我已儲存密碼短語", + "next": "我已經儲存密碼短語", "passphraseFrameLabel": "密碼短語", "title": "您的密碼短語" }, "hasAccount": "已經擁有帳戶? <0>點此登入。 ", "login": { "description": "請輸入密碼短語以登入您的帳戶", - "deviceLengthError": "請輸入設備名稱", + "deviceLengthError": "請輸入裝置名稱", "passphraseLabel": "12 字密碼短語", "passphrasePlaceholder": "密碼短語", "submit": "登入", @@ -57,6 +57,8 @@ }, "host": "您正在連線到 <0>{{hostname}} - 在建立帳戶之前,請確保您信任它", "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> 使用預設設置" + "text": "我不想要高品質的串流,<0 /> <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>切換源以獲得不同的質量選項。", - "iosNoQuality": "由於 Apple 定義的限制,此來源的品質選擇在 iOS 上不可用。您可以嘗試<0>切換到另一個來源以獲得不同的質量選項。", + "iosNoQuality": "由於 Apple 的限制,此來源的品質選擇在 iOS 上不可用。您可以嘗試<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 {