mirror of
https://github.com/sussy-code/smov.git
synced 2025-01-01 16:37:39 +01:00
Merge movie-web/dev
This commit is contained in:
commit
0d1d889661
13 changed files with 69 additions and 11 deletions
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "sudo-flix",
|
"name": "sudo-flix",
|
||||||
"version": "4.5.1",
|
"version": "4.6.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://sudo-flix.lol",
|
"homepage": "https://sudo-flix.lol",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -433,7 +433,7 @@
|
||||||
"confirmButton": "Elimina el compte",
|
"confirmButton": "Elimina el compte",
|
||||||
"confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!",
|
"confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!",
|
||||||
"confirmTitle": "Segur?",
|
"confirmTitle": "Segur?",
|
||||||
"text": "esta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.",
|
"text": "Esta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.",
|
||||||
"title": "Elimina el compte"
|
"title": "Elimina el compte"
|
||||||
},
|
},
|
||||||
"title": "Accions"
|
"title": "Accions"
|
||||||
|
|
|
@ -577,6 +577,7 @@
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"backgroundLabel": "Background opacity",
|
"backgroundLabel": "Background opacity",
|
||||||
|
"backgroundBlurLabel": "Background blur",
|
||||||
"colorLabel": "Color",
|
"colorLabel": "Color",
|
||||||
"previewQuote": "Would you rather have a thot daughter or a gay son? 🤔",
|
"previewQuote": "Would you rather have a thot daughter or a gay son? 🤔",
|
||||||
"textSizeLabel": "Text size",
|
"textSizeLabel": "Text size",
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
},
|
},
|
||||||
"q3": {
|
"q3": {
|
||||||
"body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.",
|
"body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.",
|
||||||
"title": "Los resultados de búsqueda muestran la serie o película, ¿por qué no puedo reproducirla?"
|
"title": "Los resultados de búsqueda muestran la serie o película, ¿Por qué no puedo reproducirla?"
|
||||||
},
|
},
|
||||||
"title": "Acerca de sudo-flix"
|
"title": "Acerca de sudo-flix"
|
||||||
},
|
},
|
||||||
|
@ -177,7 +177,7 @@
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"confirm": "Usar configuración por defecto",
|
"confirm": "Usar configuración por defecto",
|
||||||
"description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.",
|
"description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.",
|
||||||
"title": "Estás seguro?"
|
"title": "¿Estás seguro?"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"back": "Volver atrás",
|
"back": "Volver atrás",
|
||||||
|
@ -395,7 +395,7 @@
|
||||||
"shortRemaining": "-{{timeLeft}}"
|
"shortRemaining": "-{{timeLeft}}"
|
||||||
},
|
},
|
||||||
"turnstile": {
|
"turnstile": {
|
||||||
"description": "Por favor, confirma que eres humano completando el Captcha. Esto es para mantener sudo-flix seguro!",
|
"description": "Por favor, confirma que eres humano completando el Captcha. ¡Esto es para mantener sudo-flix seguro!",
|
||||||
"error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.",
|
"error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.",
|
||||||
"title": "Necesitamos verificar que eres humano.",
|
"title": "Necesitamos verificar que eres humano.",
|
||||||
"verifyingHumanity": "Verificando tu hunanidad…"
|
"verifyingHumanity": "Verificando tu hunanidad…"
|
||||||
|
@ -490,7 +490,7 @@
|
||||||
"redoSetup": "Rehacer configuración",
|
"redoSetup": "Rehacer configuración",
|
||||||
"successStatus": {
|
"successStatus": {
|
||||||
"description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.",
|
"description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.",
|
||||||
"title": "Todo está configurado!"
|
"title": "¡Todo está configurado!"
|
||||||
},
|
},
|
||||||
"unsetStatus": {
|
"unsetStatus": {
|
||||||
"description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.",
|
"description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.",
|
||||||
|
|
|
@ -57,6 +57,8 @@
|
||||||
},
|
},
|
||||||
"host": "Ühendate <0>{{hostname}}</0> - enne konto tegemist kinnitage, et usaldate seda",
|
"host": "Ühendate <0>{{hostname}}</0> - enne konto tegemist kinnitage, et usaldate seda",
|
||||||
"no": "Tagasi",
|
"no": "Tagasi",
|
||||||
|
"noHost": "Server ei ole konfigureeritud, seega ei saa kontot luua",
|
||||||
|
"noHostTitle": "Server ei ole konfigureeritud!",
|
||||||
"title": "Kas usaldate seda serverit?",
|
"title": "Kas usaldate seda serverit?",
|
||||||
"yes": "Usaldan seda serverit"
|
"yes": "Usaldan seda serverit"
|
||||||
},
|
},
|
||||||
|
@ -118,7 +120,12 @@
|
||||||
"noResults": "Me ei leidnud midagi!",
|
"noResults": "Me ei leidnud midagi!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Mida tahate vaadata?",
|
"default": "Mida tahate vaadata?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Mida soovite uurida?",
|
||||||
|
"Mis on teie nimekirjas?",
|
||||||
|
"Milline on teie lemmikfilm?",
|
||||||
|
"Milline on teie lemmiksari?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Otsingutulemused"
|
"sectionTitle": "Otsingutulemused"
|
||||||
},
|
},
|
||||||
|
@ -241,6 +248,7 @@
|
||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Kopeeri HLS esitusloendi link",
|
||||||
"disclaimer": "Allalaadimine toimub otse teenusepakkujalt. sudo-flix ei saa kontrollida, kuidas allalaadimine toimub.",
|
"disclaimer": "Allalaadimine toimub otse teenusepakkujalt. sudo-flix ei saa kontrollida, kuidas allalaadimine toimub.",
|
||||||
"downloadSubtitle": "Laadige alla praegune subtiiter",
|
"downloadSubtitle": "Laadige alla praegune subtiiter",
|
||||||
"downloadVideo": "Lae alla video",
|
"downloadVideo": "Lae alla video",
|
||||||
|
@ -524,6 +532,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Tausta hägusus",
|
||||||
"backgroundLabel": "Tausta läbipaistmatus",
|
"backgroundLabel": "Tausta läbipaistmatus",
|
||||||
"colorLabel": "Värv",
|
"colorLabel": "Värv",
|
||||||
"previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.",
|
"previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.",
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"login": "Skrá inn",
|
"login": "Skrá inn",
|
||||||
"onboarding": "Setja upp",
|
"onboarding": "Setja upp",
|
||||||
"pagetitle": "{{title}} - movie-web",
|
"pagetitle": "{{title}} - sudo-flix",
|
||||||
"register": "Skrá",
|
"register": "Skrá",
|
||||||
"settings": "Stillingar"
|
"settings": "Stillingar"
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,8 @@
|
||||||
},
|
},
|
||||||
"host": "<0>{{hostname}}</0>에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요",
|
"host": "<0>{{hostname}}</0>에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요",
|
||||||
"no": "뒤로 가기",
|
"no": "뒤로 가기",
|
||||||
|
"noHost": "서버가 구성되어 있지 않기 때문에 계정을 만들 수 없습니다",
|
||||||
|
"noHostTitle": "서버가 구성되지 않았습니다!",
|
||||||
"title": "이 서버를 신뢰하십니까?",
|
"title": "이 서버를 신뢰하십니까?",
|
||||||
"yes": "네, 신뢰합니다"
|
"yes": "네, 신뢰합니다"
|
||||||
},
|
},
|
||||||
|
@ -118,7 +120,12 @@
|
||||||
"noResults": "검색결과가 없습니다!",
|
"noResults": "검색결과가 없습니다!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "무엇을 보고 싶으신가요?",
|
"default": "무엇을 보고 싶으신가요?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"무엇을 탐험하고 싶으신가요?",
|
||||||
|
null,
|
||||||
|
"당신이 가장 좋아하는 영화는?",
|
||||||
|
"당신이 가장 좋아하는 시리즈는?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "검색 결과"
|
"sectionTitle": "검색 결과"
|
||||||
},
|
},
|
||||||
|
@ -241,6 +248,7 @@
|
||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS 플레이리스트 링크 복사하기",
|
||||||
"disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. sudo-flix은 다운로드 제공 방식을 통제할 수 없습니다.",
|
"disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. sudo-flix은 다운로드 제공 방식을 통제할 수 없습니다.",
|
||||||
"downloadSubtitle": "현재 자막 다운로드",
|
"downloadSubtitle": "현재 자막 다운로드",
|
||||||
"downloadVideo": "영상 다운로드",
|
"downloadVideo": "영상 다운로드",
|
||||||
|
|
|
@ -525,6 +525,7 @@
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"backgroundLabel": "Krycie tła",
|
"backgroundLabel": "Krycie tła",
|
||||||
|
"backgroundBlurLabel": "Rozmycie tła",
|
||||||
"colorLabel": "Kolor",
|
"colorLabel": "Kolor",
|
||||||
"previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.",
|
"previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.",
|
||||||
"textSizeLabel": "Rozmiar czcionki",
|
"textSizeLabel": "Rozmiar czcionki",
|
||||||
|
|
|
@ -57,6 +57,8 @@
|
||||||
},
|
},
|
||||||
"host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись",
|
"host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись",
|
||||||
"no": "Вернуться назад",
|
"no": "Вернуться назад",
|
||||||
|
"noHost": "Сервер не был настроен, поэтому вы не можете создать учётную запись",
|
||||||
|
"noHostTitle": "Сервер не настроен!",
|
||||||
"title": "Вы доверяете этому серверу?",
|
"title": "Вы доверяете этому серверу?",
|
||||||
"yes": "Я доверяю этому серверу"
|
"yes": "Я доверяю этому серверу"
|
||||||
},
|
},
|
||||||
|
@ -118,7 +120,12 @@
|
||||||
"noResults": "Мы ничего не нашли!",
|
"noResults": "Мы ничего не нашли!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Что вы хотите посмотреть?",
|
"default": "Что вы хотите посмотреть?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Что вы хотите исследовать?",
|
||||||
|
"Что в вашем списке?",
|
||||||
|
"Какой ваш любимый фильм?",
|
||||||
|
"Какой ваш любимый сериал?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Результаты поиска"
|
"sectionTitle": "Результаты поиска"
|
||||||
},
|
},
|
||||||
|
@ -131,7 +138,9 @@
|
||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Что бы вы хотели посмотреть этим утром?",
|
"default": "Что бы вы хотели посмотреть этим утром?",
|
||||||
"extra": ["Слышали, что «Перед рассветом» – отличный фильм"]
|
"extra": [
|
||||||
|
"Слышали, что «Перед рассветом» – отличный фильм"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Что бы вы хотели посмотреть этим вечером?",
|
"default": "Что бы вы хотели посмотреть этим вечером?",
|
||||||
|
|
|
@ -262,6 +262,14 @@ export function CaptionSettingsView({ id }: { id: string }) {
|
||||||
value={styling.backgroundOpacity * 100}
|
value={styling.backgroundOpacity * 100}
|
||||||
textTransformer={(s) => `${s}%`}
|
textTransformer={(s) => `${s}%`}
|
||||||
/>
|
/>
|
||||||
|
<CaptionSetting
|
||||||
|
label={t("settings.subtitles.backgroundBlurLabel")}
|
||||||
|
max={100}
|
||||||
|
min={0}
|
||||||
|
onChange={(v) => updateStyling({ backgroundBlur: v / 100 })}
|
||||||
|
value={styling.backgroundBlur * 100}
|
||||||
|
textTransformer={(s) => `${s}%`}
|
||||||
|
/>
|
||||||
<CaptionSetting
|
<CaptionSetting
|
||||||
label={t("settings.subtitles.textSizeLabel")}
|
label={t("settings.subtitles.textSizeLabel")}
|
||||||
max={200}
|
max={200}
|
||||||
|
|
|
@ -55,6 +55,10 @@ export function CaptionCue({
|
||||||
color: styling.color,
|
color: styling.color,
|
||||||
fontSize: `${(1.5 * styling.size).toFixed(2)}em`,
|
fontSize: `${(1.5 * styling.size).toFixed(2)}em`,
|
||||||
backgroundColor: `rgba(0,0,0,${styling.backgroundOpacity.toFixed(2)})`,
|
backgroundColor: `rgba(0,0,0,${styling.backgroundOpacity.toFixed(2)})`,
|
||||||
|
backdropFilter:
|
||||||
|
styling.backgroundBlur !== 0
|
||||||
|
? `blur(${Math.floor(styling.backgroundBlur * 64)}px)`
|
||||||
|
: "none",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
|
|
|
@ -92,6 +92,16 @@ export function CaptionsPart(props: {
|
||||||
value={props.styling.backgroundOpacity * 100}
|
value={props.styling.backgroundOpacity * 100}
|
||||||
textTransformer={(s) => `${s}%`}
|
textTransformer={(s) => `${s}%`}
|
||||||
/>
|
/>
|
||||||
|
<CaptionSetting
|
||||||
|
label={t("settings.subtitles.backgroundBlurLabel")}
|
||||||
|
max={100}
|
||||||
|
min={0}
|
||||||
|
onChange={(v) =>
|
||||||
|
props.setStyling({ ...props.styling, backgroundBlur: v / 100 })
|
||||||
|
}
|
||||||
|
value={props.styling.backgroundBlur * 100}
|
||||||
|
textTransformer={(s) => `${s}%`}
|
||||||
|
/>
|
||||||
<CaptionSetting
|
<CaptionSetting
|
||||||
label={t("settings.subtitles.textSizeLabel")}
|
label={t("settings.subtitles.textSizeLabel")}
|
||||||
max={200}
|
max={200}
|
||||||
|
|
|
@ -17,6 +17,11 @@ export interface SubtitleStyling {
|
||||||
* background opacity, ranges between 0 and 1
|
* background opacity, ranges between 0 and 1
|
||||||
*/
|
*/
|
||||||
backgroundOpacity: number;
|
backgroundOpacity: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* background blur, ranges between 0 and 1
|
||||||
|
*/
|
||||||
|
backgroundBlur: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SubtitleStore {
|
export interface SubtitleStore {
|
||||||
|
@ -51,6 +56,7 @@ export const useSubtitleStore = create(
|
||||||
color: "#ffffff",
|
color: "#ffffff",
|
||||||
backgroundOpacity: 0.5,
|
backgroundOpacity: 0.5,
|
||||||
size: 1,
|
size: 1,
|
||||||
|
backgroundBlur: 0.5,
|
||||||
},
|
},
|
||||||
resetSubtitleSpecificSettings() {
|
resetSubtitleSpecificSettings() {
|
||||||
set((s) => {
|
set((s) => {
|
||||||
|
@ -62,6 +68,8 @@ export const useSubtitleStore = create(
|
||||||
set((s) => {
|
set((s) => {
|
||||||
if (newStyling.backgroundOpacity !== undefined)
|
if (newStyling.backgroundOpacity !== undefined)
|
||||||
s.styling.backgroundOpacity = newStyling.backgroundOpacity;
|
s.styling.backgroundOpacity = newStyling.backgroundOpacity;
|
||||||
|
if (newStyling.backgroundBlur !== undefined)
|
||||||
|
s.styling.backgroundBlur = newStyling.backgroundBlur;
|
||||||
if (newStyling.color !== undefined)
|
if (newStyling.color !== undefined)
|
||||||
s.styling.color = newStyling.color.toLowerCase();
|
s.styling.color = newStyling.color.toLowerCase();
|
||||||
if (newStyling.size !== undefined)
|
if (newStyling.size !== undefined)
|
||||||
|
|
Loading…
Reference in a new issue