From e555354e179901ff29f651bb949055cf1ff633f3 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 3 Mar 2024 18:36:12 +0000 Subject: [PATCH 01/23] If TMDB key is empty, don't attempt request --- src/backend/metadata/tmdb.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/metadata/tmdb.ts b/src/backend/metadata/tmdb.ts index 2bae75d1..b143b312 100644 --- a/src/backend/metadata/tmdb.ts +++ b/src/backend/metadata/tmdb.ts @@ -144,12 +144,16 @@ export function decodeTMDBId( const baseURL = "https://api.themoviedb.org/3"; +const apiKey = conf().TMDB_READ_API_KEY; + const headers = { accept: "application/json", - Authorization: `Bearer ${conf().TMDB_READ_API_KEY}`, + Authorization: `Bearer ${apiKey}`, }; async function get(url: string, params?: object): Promise { + if (!apiKey) throw new Error("TMDB API key not set"); + const res = await mwFetch(encodeURI(url), { headers, baseURL, From b5604456596d2cf478b03e521445b04a0a14ae0f Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 3 Mar 2024 18:37:28 +0000 Subject: [PATCH 02/23] Return null values where appr and handle the env being blank --- src/setup/config.ts | 58 ++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/setup/config.ts b/src/setup/config.ts index f081e673..26eb814e 100644 --- a/src/setup/config.ts +++ b/src/setup/config.ts @@ -31,10 +31,10 @@ export interface RuntimeConfig { DONATION_LINK: string; DISCORD_LINK: string; DMCA_EMAIL: string | null; - TMDB_READ_API_KEY: string; + TMDB_READ_API_KEY: string | null; NORMAL_ROUTER: boolean; PROXY_URLS: string[]; - BACKEND_URL: string; + BACKEND_URL: string | null; DISALLOWED_IDS: string[]; TURNSTILE_KEY: string | null; CDN_REPLACEMENTS: Array; @@ -66,48 +66,48 @@ const env: Record = { HAS_ONBOARDING: import.meta.env.VITE_HAS_ONBOARDING, }; -// loads from different locations, in order: environment (VITE_{KEY}), window (public/config.js) -function getKeyValue(key: keyof Config): string | undefined { - let windowValue = (window as any)?.__CONFIG__?.[`VITE_${key}`]; - if ( - windowValue !== null && - windowValue !== undefined && - windowValue.length === 0 - ) - windowValue = undefined; - return env[key] ?? windowValue ?? undefined; +function coerceUndefined(value: string | null | undefined): string | undefined { + if (value == null) return undefined; + if (value.length === 0) return undefined; + return value; } -function getKey(key: keyof Config, defaultString?: string): string { - return getKeyValue(key)?.toString() ?? defaultString ?? ""; +// loads from different locations, in order: environment (VITE_{KEY}), window (public/config.js) +function getKeyValue(key: keyof Config): string | undefined { + const windowValue = (window as any)?.__CONFIG__?.[`VITE_${key}`]; + + return coerceUndefined(env[key]) ?? coerceUndefined(windowValue) ?? undefined; +} + +function getKey(key: keyof Config): string | null; +function getKey(key: keyof Config, defaultString: string): string; +function getKey(key: keyof Config, defaultString?: string): string | null { + return getKeyValue(key)?.toString() ?? defaultString ?? null; } export function conf(): RuntimeConfig { - const dmcaEmail = getKey("DMCA_EMAIL"); - const chromeExtension = getKey("ONBOARDING_CHROME_EXTENSION_INSTALL_LINK"); - const firefoxExtension = getKey("ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK"); - const proxyInstallLink = getKey("ONBOARDING_PROXY_INSTALL_LINK"); - const turnstileKey = getKey("TURNSTILE_KEY"); return { APP_VERSION, GITHUB_LINK, DONATION_LINK, DISCORD_LINK, - DMCA_EMAIL: dmcaEmail.length > 0 ? dmcaEmail : null, - ONBOARDING_CHROME_EXTENSION_INSTALL_LINK: - chromeExtension.length > 0 ? chromeExtension : null, - ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK: - firefoxExtension.length > 0 ? firefoxExtension : null, - ONBOARDING_PROXY_INSTALL_LINK: - proxyInstallLink.length > 0 ? proxyInstallLink : null, + DMCA_EMAIL: getKey("DMCA_EMAIL"), + ONBOARDING_CHROME_EXTENSION_INSTALL_LINK: getKey( + "ONBOARDING_CHROME_EXTENSION_INSTALL_LINK", + ), + ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK: getKey( + "ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK", + ), + ONBOARDING_PROXY_INSTALL_LINK: getKey("ONBOARDING_PROXY_INSTALL_LINK"), BACKEND_URL: getKey("BACKEND_URL", BACKEND_URL), TMDB_READ_API_KEY: getKey("TMDB_READ_API_KEY"), - PROXY_URLS: getKey("CORS_PROXY_URL") + PROXY_URLS: getKey("CORS_PROXY_URL", "") .split(",") - .map((v) => v.trim()), + .map((v) => v.trim()) + .filter((v) => v.length > 0), NORMAL_ROUTER: getKey("NORMAL_ROUTER", "false") === "true", HAS_ONBOARDING: getKey("HAS_ONBOARDING", "false") === "true", - TURNSTILE_KEY: turnstileKey.length > 0 ? turnstileKey : null, + TURNSTILE_KEY: getKey("TURNSTILE_KEY"), DISALLOWED_IDS: getKey("DISALLOWED_IDS", "") .split(",") .map((v) => v.trim()) From 404d3b885fc1b260adda067e0aebcecc55837f67 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 3 Mar 2024 18:37:43 +0000 Subject: [PATCH 03/23] Handle nullability of config fields --- src/hooks/auth/useBackendUrl.ts | 2 +- src/pages/parts/admin/TMDBTestPart.tsx | 2 +- src/pages/parts/settings/SidebarPart.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hooks/auth/useBackendUrl.ts b/src/hooks/auth/useBackendUrl.ts index 64545227..adee8622 100644 --- a/src/hooks/auth/useBackendUrl.ts +++ b/src/hooks/auth/useBackendUrl.ts @@ -1,7 +1,7 @@ import { conf } from "@/setup/config"; import { useAuthStore } from "@/stores/auth"; -export function useBackendUrl(): string | undefined { +export function useBackendUrl(): string | null { const backendUrl = useAuthStore((s) => s.backendUrl); return backendUrl ?? conf().BACKEND_URL; } diff --git a/src/pages/parts/admin/TMDBTestPart.tsx b/src/pages/parts/admin/TMDBTestPart.tsx index a7f8fa50..d760c948 100644 --- a/src/pages/parts/admin/TMDBTestPart.tsx +++ b/src/pages/parts/admin/TMDBTestPart.tsx @@ -25,7 +25,7 @@ export function TMDBTestPart() { errorText: "", }); - if (tmdbApiKey.length === 0) { + if (!tmdbApiKey || tmdbApiKey.length === 0) { return setStatus({ hasTested: true, success: false, diff --git a/src/pages/parts/settings/SidebarPart.tsx b/src/pages/parts/settings/SidebarPart.tsx index 13db06fe..98404c84 100644 --- a/src/pages/parts/settings/SidebarPart.tsx +++ b/src/pages/parts/settings/SidebarPart.tsx @@ -14,7 +14,7 @@ import { useAuthStore } from "@/stores/auth"; const rem = 16; -function SecureBadge(props: { url: string | undefined }) { +function SecureBadge(props: { url: string | null }) { const { t } = useTranslation(); const secure = props.url ? props.url.startsWith("https://") : false; return ( From fa8548d3c28b94b9e18c012cd83b84493fb0d459 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 3 Mar 2024 18:37:57 +0000 Subject: [PATCH 04/23] Default config.js to not have TMDB set --- public/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/config.js b/public/config.js index a0681d06..feb65e84 100644 --- a/public/config.js +++ b/public/config.js @@ -4,7 +4,7 @@ window.__CONFIG__ = { VITE_CORS_PROXY_URL: "", // The READ API key to access TMDB - VITE_TMDB_READ_API_KEY: "CHANGEME", + VITE_TMDB_READ_API_KEY: "", // The DMCA email displayed in the footer, null to hide the DMCA link VITE_DMCA_EMAIL: null, @@ -16,5 +16,5 @@ window.__CONFIG__ = { VITE_BACKEND_URL: null, // A comma separated list of disallowed IDs in the case of a DMCA claim - in the format "series-" and "movie-" - VITE_DISALLOWED_IDS: "" + VITE_DISALLOWED_IDS: "", }; From 228ac6fd6ccdee8aafad6550fdb9c85ad1f361a4 Mon Sep 17 00:00:00 2001 From: EPScorp Date: Fri, 1 Mar 2024 18:26:59 +0000 Subject: [PATCH 05/23] Translated using Weblate (French) Currently translated at 98.1% (321 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/fr/ Author: EPScorp --- src/assets/locales/fr.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/assets/locales/fr.json b/src/assets/locales/fr.json index 36b51133..b1e47761 100644 --- a/src/assets/locales/fr.json +++ b/src/assets/locales/fr.json @@ -117,8 +117,7 @@ "loading": "Chargement...", "noResults": "Nous n'avons rien trouvé !", "placeholder": { - "default": "Que voulez-vous voir ?", - "extra": [] + "default": "Que voulez-vous voir ?" }, "sectionTitle": "Résultats de la recherche" }, @@ -131,7 +130,9 @@ }, "morning": { "default": "Que voulez-vous regarder ce matin ?", - "extra": ["Les films, c'est comme les voyages : ça nous ouvre l'esprit"] + "extra": [ + "Les films, c'est comme les voyages : ça nous ouvre l'esprit" + ] }, "night": { "default": "Que voulez-vous regarder ce soir ?", @@ -163,7 +164,7 @@ }, "notFound": { "badge": "Introuvable", - "goHome": "Retourer à l'accueil", + "goHome": "Retourner à l'accueil", "message": "Nous avons cherché partout : sous les poubelles, dans le placard, derrière le proxy, mais nous n'avons finalement pas trouvé la page que vous cherchez.", "title": "Impossible de trouver cette page" }, From dc043901721cd0a0ed893de9c8f715737e72007d Mon Sep 17 00:00:00 2001 From: Jamie Poznanski Date: Fri, 1 Mar 2024 08:29:53 +0000 Subject: [PATCH 06/23] Translated using Weblate (Italian) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/it/ Author: Jamie Poznanski --- src/assets/locales/it.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/assets/locales/it.json b/src/assets/locales/it.json index 7b0b93f6..603061d1 100644 --- a/src/assets/locales/it.json +++ b/src/assets/locales/it.json @@ -30,7 +30,7 @@ "passphraseFrameLabel": "Frase password", "title": "La tua frase password" }, - "hasAccount": "Hai già un account? <0>Accedi ", + "hasAccount": "Hai già un account? <0>Accedi.", "login": { "description": "Inserisci la tua frase password per accedere al vostro account", "deviceLengthError": "Inserisci un nome per il dispositivo", @@ -57,6 +57,8 @@ }, "host": "Ti stai collegando a <0>{{hostname}} - conferma la tua fiducia prima di creare un account", "no": "Indietro", + "noHost": "Il server non è configurato, quindi non si può creare un account", + "noHostTitle": "Server non è configurato!", "title": "Ti fidi di questo server?", "yes": "Mi fido di questo server" }, From 05741ed6329ff1aeeab53cb58278ad5c118db2cf Mon Sep 17 00:00:00 2001 From: blikje Date: Thu, 29 Feb 2024 23:45:19 +0000 Subject: [PATCH 07/23] Translated using Weblate (Dutch) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/nl/ Author: blikje --- src/assets/locales/nl.json | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/assets/locales/nl.json b/src/assets/locales/nl.json index 5b1f2750..d5ca62c6 100644 --- a/src/assets/locales/nl.json +++ b/src/assets/locales/nl.json @@ -57,6 +57,8 @@ }, "host": "Je gaat zo verbinden met <0>{{hostname}}, check even of je deze link vertrouwt", "no": "Vorige pagina", + "noHost": "De server is nog niet geconfigureerd, daarom kunt u geen account aanmaken", + "noHostTitle": "Server niet geconfigureerd!", "title": "Vertrouw je deze server?", "yes": "Ik vertrouw deze server" }, @@ -118,7 +120,12 @@ "noResults": "We konden helaas niets vinden!", "placeholder": { "default": "Wat wil je graag kijken?", - "extra": [] + "extra": [ + "Wat wil je verkennen?", + "Wat staat er op jouw kijklijst?", + "Wat is jouw favoriete film?", + "Wat is jouw favoriete serie?" + ] }, "sectionTitle": "Zoekresultaten" }, @@ -131,11 +138,15 @@ }, "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." + ] } } }, @@ -176,10 +187,10 @@ "back": "Terug", "explainer": "Door gebruik te maken van de browserextensie kun je de beste streams krijgen. Met slechts een eenvoudige installatie.", "explainerIos": "Helaas, de browserextensie is niet ondersteund op iOS. Druk op Terug om een andere optie te kiezen.", - "extensionHelp": "Als je de extensie hebt geïnstalleerd maar niet wordt gedetecteerd, Open dan de extensie via het extensies menu in je browser en volg de stappen op het scherm.", + "extensionHelp": "Als je de extensie hebt geïnstalleerd maar niet wordt gedetecteerd, open dan de extensie via het extensies menu in je browser en volg de stappen op het scherm.", "linkChrome": "Installeer de Chrome-extensie", "linkFirefox": "Installeer de Firefox-extensie", - "notDetecting": "Geïnstalleerd op Chrome maar wordt niet weergegeven? Probeer de pagina opnieuw te laden!", + "notDetecting": "Geïnstalleerd op Chrome, maar de site detecteert het niet? Probeer de pagina opnieuw te laden!", "notDetectingAction": "Pagina opnieuw laden", "status": { "disallowed": "Extensie is niet ingeschakeld voor deze pagina", @@ -207,7 +218,7 @@ "title": "Laten we een nieuwe proxy instellen" }, "start": { - "explainer": "Om de beste mogelijke streams te krijgen, moet je kiezen welke streamingmethode je wilt gebruiken.", + "explainer": "Om de beste streams mogelijk te krijgen, moet je kiezen welke streammethode je wilt gebruiken.", "options": { "default": { "text": "Ik wil geen streams van goede kwaliteit, <0 /> <1>Gebruik de standaardinstellingen." @@ -241,6 +252,7 @@ }, "menus": { "downloads": { + "copyHlsPlaylist": "HLS-afspeellijstlink kopiëren", "disclaimer": "Downloads worden direct bij de bron opgehaald. movie-web heeft geen controle over het bestand dat je ontvangt.", "downloadSubtitle": "Download huidige ondertiteling", "downloadVideo": "Download filmpje", From 7f859e0bfd889e482e6b30d900b107554342c986 Mon Sep 17 00:00:00 2001 From: Raymond Nee Date: Fri, 1 Mar 2024 03:27:14 +0000 Subject: [PATCH 08/23] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/zh_Hans/ Author: Raymond Nee --- src/assets/locales/zh.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/assets/locales/zh.json b/src/assets/locales/zh.json index a7648288..248da095 100644 --- a/src/assets/locales/zh.json +++ b/src/assets/locales/zh.json @@ -57,6 +57,8 @@ }, "host": "您正在连接到 <0>{{hostname}} - 在创建账户前,确保您信任它", "no": "返回", + "noHost": "服务器尚未进行配置,因此您无法创建账户", + "noHostTitle": "未配置服务器!", "title": "您是否信任这个服务器?", "yes": "我信任这个服务器" }, From dcfbf6b2669a5e78059154a7e877dc66ef580f57 Mon Sep 17 00:00:00 2001 From: Aayush Shah Date: Thu, 29 Feb 2024 23:44:32 +0000 Subject: [PATCH 09/23] Translated using Weblate (Nepali) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/ne/ Author: Aayush Shah --- src/assets/locales/ne.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/assets/locales/ne.json b/src/assets/locales/ne.json index 985d5189..9250fbc9 100644 --- a/src/assets/locales/ne.json +++ b/src/assets/locales/ne.json @@ -57,6 +57,8 @@ }, "host": "तपाइँ <0>{{hostname}} मा कनेक्ट हुनुहुन्छ - कृपया खाता बनाउनु अघि तपाइँ यसलाई विश्वास गर्नुहुन्छ भनेर पुष्टि गर्नुहोस्", "no": "पछाडी जाउ", + "noHost": "सर्भर कन्फिगर गरिएको छैन, त्यसैले तपाईंले खाता सिर्जना गर्न सक्नुहुन्न", + "noHostTitle": "सर्भर कन्फिगर गरिएको छैन!", "title": "के तपाइँ यो सर्भरमा भरोसा गर्नुहुन्छ?", "yes": "म यो सर्भरलाई भरोसा गर्छु" }, From 2804b2addd89d9d5ebe4051cd53b9aa4a7cad8ce Mon Sep 17 00:00:00 2001 From: n1ck Date: Fri, 1 Mar 2024 10:10:42 +0000 Subject: [PATCH 10/23] Translated using Weblate (Spanish) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/es/ Author: n1ck --- src/assets/locales/es.json | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/assets/locales/es.json b/src/assets/locales/es.json index a57cd198..d664c598 100644 --- a/src/assets/locales/es.json +++ b/src/assets/locales/es.json @@ -57,6 +57,8 @@ }, "host": "Te estás conectando a <0>{{hostname}} - por favor, confirma si confías en este antes de crear una cuenta", "no": "Regresar", + "noHost": "El servidor no se ha configurado, por lo tanto, no puede crear una cuenta", + "noHostTitle": "¡El servidor no está configurado!", "title": "¿Confías en este servidor?", "yes": "Confío en este servidor" }, @@ -118,7 +120,12 @@ "noResults": "¡No pudimos encontrar nada!", "placeholder": { "default": "¿Qué te gustaría ver?", - "extra": [] + "extra": [ + "¿Qué quieres explorar?", + "¿Qué hay en tu lista de reproducción?", + "¿Cuál es tu película favorita?", + "¿Cuál es tu serie favorita?" + ] }, "sectionTitle": "Resultados de búsqueda" }, @@ -131,11 +138,15 @@ }, "morning": { "default": "¿Qué te gustaría ver esta mañana?", - "extra": ["Escuché que “Antes del amanecer” es buena"] + "extra": [ + "Escuché que “Antes del amanecer” es buena" + ] }, "night": { "default": "¿Qué te gustaría ver esta noche?", - "extra": ["¿Cansado? Escuché que “El Exorcista” es buena."] + "extra": [ + "¿Cansado? Escuché que “El Exorcista” es buena." + ] } } }, From 2a3ae861cc1cafa94996a25d39479d0d6c22fa2b Mon Sep 17 00:00:00 2001 From: Aayush Shah Date: Thu, 29 Feb 2024 23:45:50 +0000 Subject: [PATCH 11/23] Translated using Weblate (Hindi) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/hi/ Author: Aayush Shah --- src/assets/locales/hi.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/assets/locales/hi.json b/src/assets/locales/hi.json index 7f1dfe00..eab0a337 100644 --- a/src/assets/locales/hi.json +++ b/src/assets/locales/hi.json @@ -57,6 +57,8 @@ }, "host": "आप <0>{{hostname}} से कनेक्ट हो रहे हैं - खाता बनाने से पहले कृपया पुष्टि करें कि आप इस पर भरोसा करते हैं", "no": "पीछे जाये", + "noHost": "सर्वर कॉन्फ़िगर नहीं किया गया है, इसलिए आप खाता नहीं बना सकते", + "noHostTitle": "सर्वर कॉन्फ़िगर नहीं है!", "title": "क्या आपको इस सर्वर पर भरोसा है?", "yes": "मुझे इस सर्वर पर भरोसा है" }, @@ -118,7 +120,12 @@ "noResults": "हमें कुछ नहीं मिला!", "placeholder": { "default": "क्या देखना चाहते हो?", - "extra": [] + "extra": [ + "आप क्या अन्वेषण करना चाहते हैं?", + "आपकी वॉचलिस्ट में क्या है?", + "आपकी पसंदीदा फिल्म कौनसी है?", + "आपकी पसंदीदा सीरीज़ कौन सी है?" + ] }, "sectionTitle": "खोज के परिणाम" }, @@ -131,11 +138,15 @@ }, "morning": { "default": "आप आज सुबह को क्या देखना चाहेंगे?", - "extra": ["मैंने सुना है सूर्योदय से पहले ठीक है"] + "extra": [ + "मैंने सुना है सूर्योदय से पहले ठीक है" + ] }, "night": { "default": "आप आज रात को क्या देखना चाहेंगे?", - "extra": ["थके हुए हो? मैंने सुना एक्सोरसिस्ट अच्छी मूवी है।"] + "extra": [ + "थके हुए हो? मैंने सुना एक्सोरसिस्ट अच्छी मूवी है।" + ] } } }, @@ -241,6 +252,7 @@ }, "menus": { "downloads": { + "copyHlsPlaylist": "HLS प्लेलिस्ट लिंक कॉपी करें", "disclaimer": "डाउनलोड सीधे प्रदाता से लिए जाते हैं। मूवी-वेब का इस पर नियंत्रण नहीं है कि डाउनलोड कैसे प्रदान किए जाते हैं।", "downloadSubtitle": "वर्तमान उपशीर्षक डाउनलोड करें", "downloadVideo": "वीडियो डाउनलोड करें", From 00700408fb0f1f4655c6c2a3675116ee0667474a Mon Sep 17 00:00:00 2001 From: Mehdi Date: Fri, 1 Mar 2024 16:15:24 +0000 Subject: [PATCH 12/23] Translated using Weblate (Persian) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/fa/ Author: Mehdi --- src/assets/locales/fa.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/assets/locales/fa.json b/src/assets/locales/fa.json index 5b4a0ba8..ef11d120 100644 --- a/src/assets/locales/fa.json +++ b/src/assets/locales/fa.json @@ -57,6 +57,8 @@ }, "host": "شما در حال اتصال به <0>{{hostname}} هستید - لطفا قبل از ایجاد حساب کاربری خود از اعتماد به آن اطمینان حاصل کنید", "no": "بازگشت", + "noHost": "سرور پیکربندی نشده، بنابرین نمیتوانید حسابی ایجاد کنید", + "noHostTitle": "سرور پیکر بندی نشده!", "title": "آیا به این سرور اعتماد دارید؟", "yes": "بله اعتماد دارم" }, From e24697f7238e1a23579da30d16a93a3b2d45369d Mon Sep 17 00:00:00 2001 From: NidaleNieve Date: Sat, 2 Mar 2024 01:26:01 +0000 Subject: [PATCH 13/23] Translated using Weblate (Icelandic) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/is/ Author: NidaleNieve --- src/assets/locales/is-IS.json | 46 +++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/src/assets/locales/is-IS.json b/src/assets/locales/is-IS.json index d76ad65f..dde299fb 100644 --- a/src/assets/locales/is-IS.json +++ b/src/assets/locales/is-IS.json @@ -1,9 +1,9 @@ { "about": { - "description": "movie-web er vefforrit sem leitar á netinu að straumum. Markmið liðsins er naumhyggju nálgun á að horfa á efni.", + "description": "movie-web er vefforrit sem leitar á netinu að streymum. Markmið liðsins er naumhyggju nálgun á að horfa á efni.", "faqTitle": "Algengar spurningar", "q1": { - "body": "movie-web hýsir ekki neitt efni. Þegar þú ýtir á eitthvað til að horfa á, leitað er á netinu fyrir það efni (Þú getur séð hvaða heimild við erum að nota á hleðslu skjánum og í 'myndbands heimildir' flipanum). Skrár eru aldrei settar in af movie-web, allt er í gegnum leitarvél.", + "body": "movie-web hýsir ekki neitt efni. Þegar þú ýtir á eitthvað til að horfa á, er leitað á netinu fyrir það efni (Þú getur séð hvaða heimild við erum að nota á hleðslu skjánum og í 'myndbands heimildir' flipanum). Skrár eru aldrei settar inn af movie-web, allt er í gegnum leitarvél.", "title": "Hvaðan kemur efnið?" }, "q2": { @@ -11,7 +11,7 @@ "title": "Hvar get ég beðið um þætti eða myndir?" }, "q3": { - "body": "Okkar leitar niðurstöður eru knúnar af The Movie Database (TMDB) og eru sýndar þótt að okkar heimildir hafa ekki efnið.", + "body": "Leitarniðurstöður okkar eru knúnar af The Movie Database (TMDB) og eru sýndar þótt að heimildir okkar hafa ekki efnið.", "title": "Leitarniðurstöðurnar sýna þættina eða myndina, af hverju get ég ekki spilað það?" }, "title": "Um movie-web" @@ -57,6 +57,8 @@ }, "host": "Þú ert að tengjast við <0>{{hostname}} - vinsamlegast staðfestu að þú treystir því áður en þú býrð til reikning", "no": "Fara til baka", + "noHost": "Netjónninn hefur ekki verið stilltur, þess vegna getur þú ekki búið til reikning", + "noHostTitle": "Netþjónn ekki stilltur!", "title": "Treystir þú þessum netþjóni?", "yes": "Ég treysti þessum netþjóni" }, @@ -82,13 +84,21 @@ "disclaimer": "Fyrirvari", "disclaimerText": "movie-web hýsir engar skrár, það tengist eingöngu þjónustu þriðja aðila. Lagleg atriði ættu að vera rædd við skráarhýsinga og veitanda. movie-web er ekki ábyrg fyrir neinum skrám sýndar af myndbands veitöndum." }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, "tagline": "Horfðu á uppáhalds þætti og myndirnar þínar með þessu opna hugbúnaða forriti." }, "global": { + "name": "movie-web", "pages": { "about": "Um", + "dmca": "DMCA", "login": "Skrá inn", "onboarding": "Setja upp", + "pagetitle": "{{title}} - movie-web", "register": "Skrá", "settings": "Stillingar" } @@ -110,7 +120,12 @@ "noResults": "Við gátum ekki fundið neitt!", "placeholder": { "default": "Hvað viltu horfa á?", - "extra": [] + "extra": [ + "Hvað viltu kanna?", + "Hvað er á áhorfslistanum þínum?", + "Hvað er uppáhalds bíómyndin þín?", + "Hvað er uppáhalds þáttaröðin þín?" + ] }, "sectionTitle": "Leitar niðurstöður" }, @@ -123,11 +138,15 @@ }, "morning": { "default": "Hvað myndirðu vilja horfa á þessum morgni?", - "extra": ["Ég heyrði að Before Sunrise sé góð"] + "extra": [ + "Ég heyrði að Before Sunrise sé góð" + ] }, "night": { "default": "Hvað myndirðu vilja horfa á í nótt?", - "extra": ["Þreytt? Ég heyrði að The Exorcist sé góð."] + "extra": [ + "Þreytt? Ég heyrði að The Exorcist sé góð." + ] } } }, @@ -191,7 +210,8 @@ "errorConnection": "Gat ekki tengst umboð", "errorInvalidUrl": "Ekki gildur hlekkur", "errorNotProxy": "Bjóst við umboði en fékk heimasíðu", - "label": "Umboðs hlekkur" + "label": "Umboðs hlekkur", + "placeholder": "https://" }, "link": "Lærðu hvernig þú býrð til umboð", "submit": "Staðfesta umboð", @@ -232,6 +252,7 @@ }, "menus": { "downloads": { + "copyHlsPlaylist": "Afrita HLS spilalista hlekk", "disclaimer": "Niðurhalningar eru teknar beint frá heimildini. movie-web hefur engan kraft yfir hvernig niðurhalningarnar eru gefnar.", "downloadSubtitle": "Hlaða niður nú verandi texta", "downloadVideo": "Hlaða niður myndbandi", @@ -372,7 +393,10 @@ } }, "time": { - "remaining": "{{timeLeft}} er eftir • Þú klárar {{timeFinished, datetime}}" + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} er eftir • Þú klárar {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" }, "turnstile": { "description": "Vinsamlegast sannreyndu að þú sért manneskja með því að klára Captcha-ið til hægri. Þetta er til þess að halda movie-web öruggu!", @@ -383,7 +407,8 @@ }, "screens": { "dmca": { - "text": "Velkomin á sambands síðu movie-web! Við virðum hugverkarétt og viljum ræða einhver höfundarréttar áhyggjur fljótt. Ef að þú trúir að höfundarréttur þíns verks hefur verið misnotaður á okkar síðu, vinsamlegast sentu ítarlega DMCA tilkynningu til netfangsing fyrir neðan þennan texta. Vinsamlegast láttu fylgja með lýsingu af höfundaréttavarna efninu, tengiliða upplýsingat þínar, og yfirlýsingu um góða trú. Við erum staðráðin í að leysa þessi mál tafarlaust og þökkum samstarf þitt við að halda movie-web stað sem virðir sköpunargáfu og höfundarrétt." + "text": "Velkomin á sambands síðu movie-web! Við virðum hugverkarétt og viljum ræða einhver höfundarréttar áhyggjur fljótt. Ef að þú trúir að höfundarréttur þíns verks hefur verið misnotaður á okkar síðu, vinsamlegast sentu ítarlega DMCA tilkynningu til netfangsing fyrir neðan þennan texta. Vinsamlegast láttu fylgja með lýsingu af höfundaréttavarna efninu, tengiliða upplýsingat þínar, og yfirlýsingu um góða trú. Við erum staðráðin í að leysa þessi mál tafarlaust og þökkum samstarf þitt við að halda movie-web stað sem virðir sköpunargáfu og höfundarrétt.", + "title": "DMCA" }, "loadingApp": "Hlaðandi forriti", "loadingUser": "Hlaðandi þínum reikningi", @@ -482,7 +507,8 @@ "description": "Til að láta forritið virka, allri umboð er beint í gegnum umboð. Virktu þetta ef þú villt koma með þína eigin starfsmenn. <0>Leiðbeiningar.", "emptyState": "Engir starfsmenn komnir, bættu við einum fyir neðan þennan texta", "label": "Notaðu sérsniðaða umboðs starfsmenn", - "urlLabel": "Starfsmanna hlekkir" + "urlLabel": "Starfsmanna hlekkir", + "urlPlaceholder": "https://" } }, "preferences": { From 5e0b434ea722530f0b8233b0c606badd9ddbae40 Mon Sep 17 00:00:00 2001 From: aryiu Date: Sat, 2 Mar 2024 19:24:01 +0000 Subject: [PATCH 14/23] Added translation using Weblate (Valencian) Author: aryiu --- src/assets/locales/ca@valencia.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/assets/locales/ca@valencia.json diff --git a/src/assets/locales/ca@valencia.json b/src/assets/locales/ca@valencia.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/assets/locales/ca@valencia.json @@ -0,0 +1 @@ +{} From 49fe07b20808d2e776f10bfce2db5b122c2b274c Mon Sep 17 00:00:00 2001 From: Mehdi Date: Sat, 2 Mar 2024 06:22:08 +0000 Subject: [PATCH 15/23] Translated using Weblate (Persian) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/fa/ Author: Mehdi --- src/assets/locales/fa.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/locales/fa.json b/src/assets/locales/fa.json index ef11d120..16e6a8a3 100644 --- a/src/assets/locales/fa.json +++ b/src/assets/locales/fa.json @@ -73,7 +73,7 @@ } }, "errors": { - "badge": "مشکلی پیش آمده", + "badge": "مشکلی رخ داده", "details": "جزئیات خطا", "reloadPage": "صفحه را دوباره بارگذاری کنید", "showError": "نمایش جزئیات خطا", From 9c03cef9419b69c4df36b0ed94428d0bab9792f4 Mon Sep 17 00:00:00 2001 From: Fluhfi Date: Sat, 2 Mar 2024 02:19:27 +0000 Subject: [PATCH 16/23] Translated using Weblate (Punjabi) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/pa/ Author: Fluhfi --- src/assets/locales/pa.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/assets/locales/pa.json b/src/assets/locales/pa.json index ebc8887d..bb0d0812 100644 --- a/src/assets/locales/pa.json +++ b/src/assets/locales/pa.json @@ -57,6 +57,8 @@ }, "host": "ਤੁਸੀਂ <0>{{hostname}} ਨਾਲ ਜੁੜ ਰਹੇ ਹੋ - ਕਿਰਪਾ ਕਰਕੇ ਖਾਤਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇਸ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ", "no": "ਵਾਪਸ ਜਾਓ", + "noHost": "ਸਰਵਰ ਕੌਂਫਿਗਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸਲਈ ਤੁਸੀਂ ਖਾਤਾ ਨਹੀਂ ਬਣਾ ਸਕਦੇ ਹੋ", + "noHostTitle": "ਸਰਵਰ ਕੌਂਫਿਗਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ!", "title": "ਕੀ ਤੁਸੀਂ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ?", "yes": "ਮੈਨੂੰ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਹੈ" }, @@ -118,7 +120,12 @@ "noResults": "ਅਸੀਂ ਕੁਝ ਵੀ ਨਹੀਂ ਲੱਭ ਸਕੇ!", "placeholder": { "default": "ਤੁਸੀਂ ਕੀ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?", - "extra": [] + "extra": [ + "ਤੁਸੀਂ ਕੀ ਪੜਚੋਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?", + "ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ ਸੂਚੀ ਵਿੱਚ ਕੀ ਹੈ?", + "ਤੁਹਾਡੀ ਮਨਪਸੰਦ ਫਿਲਮ ਕਿਹੜੀ ਹੈ?", + "ਤੁਹਾਡੀ ਮਨਪਸੰਦ ਲੜੀ ਕਿਹੜੀ ਹੈ?" + ] }, "sectionTitle": "ਖੋਜ ਨਤੀਜੇ" }, @@ -131,11 +138,15 @@ }, "morning": { "default": "ਤੁਸੀਂ ਅੱਜ ਸਵੇਰੇ ਕੀ ਦੇਖਣਾ ਚਾਹੋਗੇ?", - "extra": ["ਮੈਂ ਸੁਣਦਾ ਹਾਂ ਕਿ ਸੂਰਜ ਚੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਚੰਗਾ ਹੁੰਦਾ ਹੈ"] + "extra": [ + "ਮੈਂ ਸੁਣਦਾ ਹਾਂ ਕਿ ਸੂਰਜ ਚੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਚੰਗਾ ਹੁੰਦਾ ਹੈ" + ] }, "night": { "default": "ਤੁਸੀਂ ਅੱਜ ਰਾਤ ਕੀ ਦੇਖਣਾ ਚਾਹੋਗੇ?", - "extra": ["ਥੱਕ ਗਏ? ਮੈਂ ਸੁਣਿਆ ਹੈ ਕਿ Exorcist ਚੰਗਾ ਹੈ."] + "extra": [ + "ਥੱਕ ਗਏ? ਮੈਂ ਸੁਣਿਆ ਹੈ ਕਿ Exorcist ਚੰਗਾ ਹੈ." + ] } } }, @@ -241,6 +252,7 @@ }, "menus": { "downloads": { + "copyHlsPlaylist": "HLS ਪਲੇਲਿਸਟ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "disclaimer": "ਡਾਊਨਲੋਡ ਸਿੱਧੇ ਪ੍ਰਦਾਤਾ ਤੋਂ ਲਏ ਜਾਂਦੇ ਹਨ. ਮੂਵੀ-ਵੈੱਬ ਦਾ ਇਸ 'ਤੇ ਕੰਟਰੋਲ ਨਹੀਂ ਹੈ ਕਿ ਡਾਊਨਲੋਡ ਕਿਵੇਂ ਪ੍ਰਦਾਨ ਕੀਤੇ ਜਾਂਦੇ ਹਨ.", "downloadSubtitle": "ਮੌਜੂਦਾ ਉਪਸਿਰਲੇਖ ਡਾਊਨਲੋਡ ਕਰੋ", "downloadVideo": "ਵੀਡੀਓ ਡਾਊਨਲੋਡ ਕਰੋ", From f89759e9b97da8002ddc10216624e42a0595ad0b Mon Sep 17 00:00:00 2001 From: aryiu Date: Sat, 2 Mar 2024 15:25:46 +0000 Subject: [PATCH 17/23] Translated using Weblate (Catalan) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/ca/ Author: aryiu --- src/assets/locales/ca.json | 82 +++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 11 deletions(-) diff --git a/src/assets/locales/ca.json b/src/assets/locales/ca.json index a8d7e05d..6d663790 100644 --- a/src/assets/locales/ca.json +++ b/src/assets/locales/ca.json @@ -57,6 +57,8 @@ }, "host": "Us esteu connectant a <0>{{hostname}}. Confirmeu que hi confieu abans de crear un compte", "no": "Torna", + "noHost": "El servidor no s'ha configurat, per tant, no es pot crear un compte", + "noHostTitle": "El servidor no està configurat!", "title": "Confieu en aquest servidor?", "yes": "Confie en aquest servidor" }, @@ -95,6 +97,7 @@ "about": "Quant a", "dmca": "DMCA", "login": "Inicia sessió", + "onboarding": "Configura", "pagetitle": "{{title}} - movie-web", "register": "Registra", "settings": "Configuració" @@ -117,7 +120,12 @@ "noResults": "No hem pogut trobar res!", "placeholder": { "default": "Què voleu mirar?", - "extra": [] + "extra": [ + "Què voleu explorar?", + "Què hi ha a la vostra llista de seguiment?", + "Quina és la vostra pel·lícula preferida?", + "Quina és la vostra sèrie preferida?" + ] }, "sectionTitle": "Resultats de la cerca" }, @@ -130,11 +138,15 @@ }, "morning": { "default": "Què us agradaria mirar aquest matí?", - "extra": ["He sentit que «Abans de l'alba» és bona"] + "extra": [ + "He sentit que «Abans de l'alba» és bona" + ] }, "night": { "default": "Què us agradaria mirar aquesta nit?", - "extra": ["Esteu cansat? He sentit que «L'exorcista» és bona."] + "extra": [ + "Esteu cansat? He sentit que «L'exorcista» és bona." + ] } } }, @@ -167,22 +179,37 @@ "onboarding": { "defaultConfirm": { "cancel": "Cancel·la", + "confirm": "Usa la configuració per defecte", + "description": "La configuració per defecte no té els millors fluxos i pot ser insuportablement lenta.", "title": "Segur?" }, "extension": { "back": "Torna", + "explainer": "Mitjançant l'extensió del navegador, podeu obtenir els millors fluxos que oferim. Amb només una simple instal·lació.", + "explainerIos": "Lamentablement, l'extensió del navegador no és compatible amb iOS, premeu Torna per a triar una altra opció.", + "extensionHelp": "Si heu instal·lat l'extensió, però no es detecta, obriu l'extensió al menú d'extensions del navegador i seguiu els passos en pantalla.", "linkChrome": "Instal·la l'extensió de Chrome", "linkFirefox": "Instal·la l'extensió de Firefox", + "notDetecting": "S'ha instal·lat a Chrome, però el lloc no el detecta? Proveu de recarregar la pàgina.", "notDetectingAction": "Recarrega la pàgina", "status": { - "disallowedAction": "Activa l'extensió" + "disallowed": "L'extensió no està activada per a aquesta pàgina", + "disallowedAction": "Activa l'extensió", + "failed": "No s'ha pogut sol·licitar l'estat", + "loading": "Esperant que instal·leu l'extensió", + "outdated": "La versió de l'extensió és massa antiga", + "success": "L'extensió funciona com s'esperava!" }, - "submit": "Continua" + "submit": "Continua", + "title": "Comencem amb una extensió" }, "proxy": { "back": "Torna", + "explainer": "Amb el mètode del servidor intermediari, podeu obtenir fluxos d'alta qualitat fent un servidor intermediari propi.", "input": { + "errorConnection": "No s'ha pogut connectar al servidor intermediari", "errorInvalidUrl": "URL no vàlid", + "errorNotProxy": "S'esperava un servidor intermediari, però és un lloc web", "label": "URL del servidor intermediari", "placeholder": "https://" }, @@ -191,15 +218,25 @@ "title": "Fem un nou servidor intermediari" }, "start": { + "explainer": "Per a obtenir els millors fluxos possibles, haureu de triar quin mètode de transmissió voleu utilitzar.", "options": { + "default": { + "text": "No vull fluxos de bona qualitat,<0 /> <1>utilitza la configuració per defecte" + }, "extension": { "action": "Instal·la l'extensió", - "quality": "Millor qualitat" + "description": "Instal·leu l'extensió del navegador i accediu a les millors fonts.", + "quality": "Millor qualitat", + "title": "Extensió del navegador" }, "proxy": { - "action": "Configura el servidor intermediari" + "action": "Configura el servidor intermediari", + "description": "Configureu un servidor intermediari en només 5 minuts i accediu a bones fonts.", + "quality": "Bona qualitat", + "title": "Servidor intermediari personalitzat" } - } + }, + "title": "Configurem el movie-web" } }, "overlays": { @@ -215,10 +252,11 @@ }, "menus": { "downloads": { + "copyHlsPlaylist": "Copia l'enllaç de la llista HLS", "disclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.", "downloadSubtitle": "Baixa els subtítols actuals", "downloadVideo": "Baixa el vídeo", - "hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades. Tingueu en compte que esteu baixant una llista de reproducció HLS, destinada als usuaris familiaritzats amb la transmissió multimèdia avançada.", + "hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.

Tingueu en compte que esteu baixant una llista de reproducció HLS, no es recomana baixar-la si no esteu familiaritzat amb formats de transmissió avançats. Proveu diferents fonts per a diferents formats.", "onAndroid": { "1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, manteniu premut el vídeo i, a continuació, seleccioneu Desa.", "shortTitle": "Baixa / Android", @@ -301,8 +339,15 @@ }, "dmca": { "badge": "Eliminat", + "text": "Aquest contingut ja no està disponible a causa d'un avís de retirada o d'una reclamació de drets d'autor.", "title": "El contingut s'ha eliminat" }, + "extensionPermission": { + "badge": "Falta el permís", + "button": "Utilitza l'extensió", + "text": "Teniu l'extensió del navegador, però necessitem el vostre permís per a començar a utilitzar l'extensió.", + "title": "Configureu l'extensió" + }, "failed": { "badge": "Ha fallat", "homeButton": "Vés a l'inici", @@ -436,11 +481,25 @@ }, "setup": { "doSetup": "Configura", + "errorStatus": { + "description": "Sembla que heu de revisar un o més elements de la configuració.", + "title": "S'ha de revisar algun element" + }, + "itemError": "Hi ha alguna cosa malament en la configuració. Torneu a fer la configuració per a solucionar-ho.", "items": { "default": "Configuració per defecte", - "extension": "Extensió" + "extension": "Extensió", + "proxy": "Servidor personalitzat" }, - "redoSetup": "Reconfigura" + "redoSetup": "Reconfigura", + "successStatus": { + "description": "Tot està preparat perquè comenceu a mirar el vostre contingut preferit.", + "title": "Tot està configurat!" + }, + "unsetStatus": { + "description": "Feu clic al botó de la dreta per a iniciar el procés de configuració.", + "title": "No heu fet la configuració" + } }, "title": "Connexions", "workers": { @@ -456,6 +515,7 @@ "language": "Llengua de l'aplicació", "languageDescription": "La llengua s'aplica a tota l'aplicació.", "thumbnail": "Genera miniatures", + "thumbnailDescription": "Majoritàriament, els vídeos no tenen miniatures. Podeu activar aquesta opció per a generar-les sobre la marxa, però poden alentir el vídeo.", "thumbnailLabel": "Genera miniatures", "title": "Configuració" }, From 56413183b67f001fc06a1e8d6c6a3afcb6d432a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matic=20Bon=C4=8Dina?= Date: Sun, 3 Mar 2024 09:23:21 +0000 Subject: [PATCH 18/23] Translated using Weblate (Slovenian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/sl/ Author: Matic Bončina --- src/assets/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/assets/locales/sl.json b/src/assets/locales/sl.json index 4b1a9f70..4b048f45 100644 --- a/src/assets/locales/sl.json +++ b/src/assets/locales/sl.json @@ -57,6 +57,8 @@ }, "host": "Povezujete se z <0>{{hostname}} - pred ustvarjanjem računa potrdite, da mu zaupate", "no": "Nazaj", + "noHost": "Strežnik ni nastavljen, zato ustvarjanje profila ni mogoče", + "noHostTitle": "Strežnik ni nastavljen!", "title": "Ali zaupate temu strežniku?", "yes": "Zaupam strežniku" }, From dc4ce9b91fb098c561d2524004a85be84e436138 Mon Sep 17 00:00:00 2001 From: aryiu Date: Sat, 2 Mar 2024 19:42:16 +0000 Subject: [PATCH 19/23] Translated using Weblate (Catalan) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/ca/ Author: aryiu --- src/assets/locales/ca.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/locales/ca.json b/src/assets/locales/ca.json index 6d663790..aa0888bb 100644 --- a/src/assets/locales/ca.json +++ b/src/assets/locales/ca.json @@ -3,7 +3,7 @@ "description": "movie-web és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.", "faqTitle": "Preguntes freqüents", "q1": { - "body": "movie-web no allotja cap contingut. Quan feu clic a alguna cosa per a mirar-la, es busca a Internet el contingut seleccionat (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu veure quina font utilitzeu). movie-web mai hi puja contingut, tot és a través d'aquest mecanisme de cerca.", + "body": "movie-web no allotja cap contingut. Quan feu clic a un contingut per a mirar-lo, es busca a Internet (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu veure quina font utilitzeu). movie-web mai hi puja contingut, tot és a través d'aquest mecanisme de cerca.", "title": "D'on prové el contingut?" }, "q2": { @@ -503,7 +503,7 @@ }, "title": "Connexions", "workers": { - "addButton": "Afig un «worker»", + "addButton": "Afegeix un «worker»", "description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers». <0>Instruccions.", "emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació", "label": "Utilitza «workers» intermediaris personalitzats", From 078777f952879aa8cab6fdabc0b7aee0f141d6e8 Mon Sep 17 00:00:00 2001 From: aryiu Date: Sat, 2 Mar 2024 19:30:55 +0000 Subject: [PATCH 20/23] Translated using Weblate (Valencian) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/ca@valencia/ Author: aryiu --- src/assets/locales/ca@valencia.json | 548 +++++++++++++++++++++++++++- 1 file changed, 547 insertions(+), 1 deletion(-) diff --git a/src/assets/locales/ca@valencia.json b/src/assets/locales/ca@valencia.json index 0967ef42..8f883342 100644 --- a/src/assets/locales/ca@valencia.json +++ b/src/assets/locales/ca@valencia.json @@ -1 +1,547 @@ -{} +{ + "about": { + "description": "movie-web és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.", + "faqTitle": "Preguntes freqüents", + "q1": { + "body": "movie-web no allotja cap contingut. Quan feu clic en un contingut per a mirar-lo, es busca a Internet (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu mirar quina font utilitzeu). movie-web mai puja contingut, tot és a través del mecanisme de cerca.", + "title": "D'on prové el contingut?" + }, + "q2": { + "body": "No és possible sol·licitar un programa o una pel·lícula, movie-web no gestiona cap contingut. Tot el contingut es visualitza a través de fonts a internet.", + "title": "On puc sol·licitar un programa o una pel·lícula?" + }, + "q3": { + "body": "Els resultats de cerca funcionen amb The Movie Database (TMDB) i es mostren independentment de si les nostres fonts realment tenen el contingut.", + "title": "Els resultats de la cerca mostren el programa o la pel·lícula, per què no puc reproduir-lo?" + }, + "title": "Sobre movie-web" + }, + "actions": { + "copied": "S'ha copiat", + "copy": "Copia" + }, + "auth": { + "createAccount": "Encara no teniu un compte? <0>Creeu un compte.", + "deviceNameLabel": "Nom del dispositiu", + "deviceNamePlaceholder": "Telèfon personal", + "generate": { + "description": "La frase de contrasenya actua com a nom d'usuari i contrasenya. Assegureu-vos de mantindre-la segura, ja que haureu d'introduir-la per a iniciar la sessió al vostre compte", + "next": "He desat la frase de contrasenya", + "passphraseFrameLabel": "Frase de contrasenya", + "title": "La vostra frase de contrasenya" + }, + "hasAccount": "Ja teniu un compte? <0>Inicieu sessió ací.", + "login": { + "description": "Introduïu la vostra frase de contrasenya per a iniciar sessió al vostre compte", + "deviceLengthError": "Introduïu un nom per al dispositiu", + "passphraseLabel": "Frase de contrasenya de 12 paraules", + "passphrasePlaceholder": "Frase de contrasenya", + "submit": "Inicia sessió", + "title": "Inicieu sessió al vostre compte", + "validationError": "Frase de contrasenya incorrecta o incompleta" + }, + "register": { + "information": { + "color1": "Color de perfil 1", + "color2": "Color de perfil 2", + "header": "Introduïu un nom per al dispositiu i trieu els colors i la icona d'usuari que vulgueu", + "icon": "Icona d'usuari", + "next": "Següent", + "title": "Informació del compte" + } + }, + "trust": { + "failed": { + "text": "L'heu configurada correctament?", + "title": "No s'ha pogut accedir al servidor" + }, + "host": "Esteu connectant-vos a <0>{{hostname}}. Confirmeu que hi confieu abans de crear un compte", + "no": "Torna", + "noHost": "El servidor no s'ha configurat, per tant, no es pot crear un compte", + "noHostTitle": "El servidor no està configurat!", + "title": "Confieu en este servidor?", + "yes": "Confie en este servidor" + }, + "verify": { + "description": "Introduïu la vostra frase de contrasenya anterior per a confirmar que l'heu desat, i crear el compte", + "invalidData": "La data no és vàlida", + "noMatch": "La frase de contrasenya no coincideix", + "passphraseLabel": "Frase de contrasenya de 12 paraules", + "recaptchaFailed": "Ha fallat la validació de ReCaptcha", + "register": "Crea el compte", + "title": "Confirmeu la frase de contrasenya" + } + }, + "errors": { + "badge": "S'ha trencat", + "details": "Detalls de l'error", + "reloadPage": "Recarrega la pàgina", + "showError": "Mostra els detalls de l'error", + "title": "Hem trobat un error!" + }, + "footer": { + "legal": { + "disclaimer": "Avís d'exempció de responsabilitat", + "disclaimerText": "movie-web no allotja cap fitxer, només enllaça a serveis de tercers. Els problemes legals s'han d'abordar amb qui allotja i els proveïdors de fitxers. movie-web no es fa responsable del contingut mostrat pels proveïdors de vídeo." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Mireu els vostres programes i pel·lícules preferits amb esta aplicació de codi obert de reproducció en temps real." + }, + "global": { + "name": "movie-web", + "pages": { + "about": "Quant a", + "dmca": "DMCA", + "login": "Inicia sessió", + "onboarding": "Configura", + "pagetitle": "{{title}} - movie-web", + "register": "Registra", + "settings": "Configuració" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Marcadors" + }, + "continueWatching": { + "sectionTitle": "Continueu mirant" + }, + "mediaList": { + "stopEditing": "Deixa d'editar" + }, + "search": { + "allResults": "Això és tot el que tenim!", + "failed": "No s'ha pogut trobar cap contingut, torneu-ho a provar!", + "loading": "S'està carregant…", + "noResults": "No hem pogut trobar res!", + "placeholder": { + "default": "Què voleu mirar?", + "extra": [ + "Què voleu explorar?", + "Què hi ha a la vostra llista de seguiment?", + "Quina és la vostra pel·lícula preferida?", + "Quina és la vostra sèrie preferida?" + ] + }, + "sectionTitle": "Resultats de la cerca" + }, + "titles": { + "day": { + "default": "Què vos agradaria mirar esta vesprada?", + "extra": [ + "Voleu aventura? Jurassic Park podria ser l'elecció perfecta." + ] + }, + "morning": { + "default": "Què vos agradaria mirar este matí?", + "extra": [ + "He sentit que «Abans de l'alba» és bona" + ] + }, + "night": { + "default": "Què vos agradaria mirar esta nit?", + "extra": [ + "Esteu cansat? He sentit que «L'exorcista» és bona." + ] + } + } + }, + "media": { + "episodeDisplay": "T{{season}} E{{episode}}", + "types": { + "movie": "Pel·lícula", + "show": "Sèrie/Programa" + } + }, + "navigation": { + "banner": { + "offline": "Comproveu la connexió a internet" + }, + "menu": { + "about": "Quant a nosaltres", + "donation": "Feu una donació", + "logout": "Tanca la sessió", + "register": "Sincronitza al núvol", + "settings": "Configuració", + "support": "Ajuda" + } + }, + "notFound": { + "badge": "No s'ha trobat", + "goHome": "Torna a l'inici", + "message": "Hem mirat per tot arreu: davall de les papereres, a l'armari, darrere del servidor intermediari, però al remat no hem pogut trobar la pàgina que busqueu.", + "title": "No s'ha pogut trobar la pàgina" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Cancel·la", + "confirm": "Usa la configuració per defecte", + "description": "La configuració per defecte no té els millors fluxos i pot ser insuportablement lenta.", + "title": "Segur?" + }, + "extension": { + "back": "Torna", + "explainer": "Mitjançant l'extensió del navegador, podeu obtindre els millors fluxos que oferim. Amb només una simple instal·lació.", + "explainerIos": "Lamentablement, l'extensió del navegador no és compatible amb iOS, premeu Torna per a triar una altra opció.", + "extensionHelp": "Si heu instal·lat l'extensió, però no es detecta, obriu l'extensió al menú d'extensions del navegador i seguiu els passos en pantalla.", + "linkChrome": "Instal·la l'extensió de Chrome", + "linkFirefox": "Instal·la l'extensió de Firefox", + "notDetecting": "S'ha instal·lat a Chrome, però el lloc no el detecta? Proveu de recarregar la pàgina.", + "notDetectingAction": "Recarrega la pàgina", + "status": { + "disallowed": "L'extensió no està activada per a esta pàgina", + "disallowedAction": "Activa l'extensió", + "failed": "No s'ha pogut sol·licitar l'estat", + "loading": "Esperant que instal·leu l'extensió", + "outdated": "La versió de l'extensió és massa antiga", + "success": "L'extensió funciona com s'esperava!" + }, + "submit": "Continua", + "title": "Comencem amb una extensió" + }, + "proxy": { + "back": "Torna", + "explainer": "Amb el mètode del servidor intermediari, podeu obtindre fluxos d'alta qualitat fent un servidor intermediari propi.", + "input": { + "errorConnection": "No s'ha pogut connectar al servidor intermediari", + "errorInvalidUrl": "URL no vàlid", + "errorNotProxy": "S'esperava un servidor intermediari, però és un lloc web", + "label": "URL del servidor intermediari", + "placeholder": "https://" + }, + "link": "Com fer un servidor intermediari", + "submit": "Envia el servidor intermediari", + "title": "Fem un nou servidor intermediari" + }, + "start": { + "explainer": "Per a obtindre els millors fluxos possibles, haureu de triar quin mètode de transmissió voleu utilitzar.", + "options": { + "default": { + "text": "No vull fluxos de bona qualitat,<0 /> <1>utilitza la configuració per defecte" + }, + "extension": { + "action": "Instal·la l'extensió", + "description": "Instal·leu l'extensió del navegador i accediu a les millors fonts.", + "quality": "Millor qualitat", + "title": "Extensió del navegador" + }, + "proxy": { + "action": "Configura el servidor intermediari", + "description": "Configureu un servidor intermediari en només 5 minuts i accediu a bones fonts.", + "quality": "Bona qualitat", + "title": "Servidor intermediari personalitzat" + } + }, + "title": "Configurem el movie-web" + } + }, + "overlays": { + "close": "Tanca" + }, + "player": { + "back": { + "default": "Torna a l'inici", + "short": "Torna" + }, + "casting": { + "enabled": "S'està emetent al dispositiu…" + }, + "menus": { + "downloads": { + "copyHlsPlaylist": "Copia l'enllaç de la llista HLS", + "disclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.", + "downloadSubtitle": "Baixa els subtítols actuals", + "downloadVideo": "Baixa el vídeo", + "hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.

Tingueu en compte que esteu baixant una llista de reproducció HLS, no es recomana baixar-la si no esteu familiaritzat amb formats de transmissió avançats. Proveu diferents fonts per a diferents formats.", + "onAndroid": { + "1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, manteniu premut el vídeo i, a continuació, seleccioneu Desa.", + "shortTitle": "Baixa / Android", + "title": "Baixada a Android" + }, + "onIos": { + "1": "Per a baixar a iOS, feu clic al botó de baixada i, a la pàgina nova, feu clic a /> i, a continuació, Desa als Arxius .", + "shortTitle": "Baixa / iOS", + "title": "Baixada a iOS" + }, + "onPc": { + "1": "En un PC, feu clic al botó de baixada i, a la pàgina nova, feu clic amb el botó dret al vídeo i seleccioneu Anomena i desa el vídeo", + "shortTitle": "Baixa / PC", + "title": "Baixada a un PC" + }, + "title": "Baixa" + }, + "episodes": { + "button": "Episodi", + "emptyState": "No hi ha episodis en esta temporada, torneu-ho a comprovar més tard!", + "episodeBadge": "E{{episode}}", + "loadingError": "Error en carregar la temporada", + "loadingList": "S'està carregant…", + "loadingTitle": "S'està carregant…", + "unairedEpisodes": "Un o més episodis d'esta temporada s'han desactivat perquè encara no s'han emés." + }, + "playback": { + "speedLabel": "Velocitat de la reproducció", + "title": "Configuració de la reproducció" + }, + "quality": { + "automaticLabel": "Qualitat automàtica", + "hint": "Podeu provar a <0>canviar la font per a obtindre diferents opcions de qualitat.", + "iosNoQuality": "A causa de les limitacions definides per Apple, la selecció de qualitat no està disponible a iOS per a esta font. Podeu provar a <0>canviar a una altra font per a obtindre diferents opcions de qualitat.", + "title": "Qualitat" + }, + "settings": { + "downloadItem": "Baixa", + "enableSubtitles": "Activa els subtítols", + "experienceSection": "Experiència de visualització", + "playbackItem": "Configuració de la reproducció", + "qualityItem": "Qualitat", + "sourceItem": "Fonts de vídeo", + "subtitleItem": "Configuració dels subtítols", + "videoSection": "Configuració de vídeo" + }, + "sources": { + "failed": { + "text": "S'ha produït un error en intentar trobar vídeos, proveu una font diferent.", + "title": "No s'ha pogut obtindre" + }, + "noEmbeds": { + "text": "No hem pogut trobar cap incrustat, proveu una font diferent.", + "title": "No s'ha trobat cap incrustació" + }, + "noStream": { + "text": "esta font no té fluxos per a esta pel·lícula o programa.", + "title": "Cap flux" + }, + "title": "Fonts", + "unknownOption": "Desconeguda" + }, + "subtitles": { + "customChoice": "Selecciona un fitxer de subtítols", + "customizeLabel": "Personalitza", + "offChoice": "Desactivats", + "settings": { + "backlink": "Subtítols personalitzats", + "delay": "Retard dels subtítols", + "fixCapitals": "Corregeix les majúscules/minúscules" + }, + "title": "Subtítols", + "unknownLanguage": "Desconeguda" + } + }, + "metadata": { + "api": { + "text": "No s'han pogut carregar les metadades de l'API, comproveu la connexió a Internet.", + "title": "No s'han pogut carregar les metadades de l'API" + }, + "dmca": { + "badge": "Eliminat", + "text": "este contingut ja no està disponible a causa d'un avís de retirada o d'una reclamació de drets d'autor.", + "title": "El contingut s'ha eliminat" + }, + "extensionPermission": { + "badge": "Falta el permís", + "button": "Utilitza l'extensió", + "text": "Teniu l'extensió del navegador, però necessitem el vostre permís per a començar a utilitzar l'extensió.", + "title": "Configureu l'extensió" + }, + "failed": { + "badge": "Ha fallat", + "homeButton": "Vés a l'inici", + "text": "No s'han pogut carregar les metadades del contingut des de TMDB. Comproveu si TMDB no funciona o està bloquejat a la vostra connexió a Internet.", + "title": "Ha fallat la càrrega de les metadades" + }, + "notFound": { + "badge": "No s'ha trobat", + "homeButton": "Torna a l'inici", + "text": "No hem pogut trobar el contingut sol·licitat. O bé s'ha eliminat o bé heu alterat l'URL.", + "title": "No s'ha trobat el contingut." + } + }, + "nextEpisode": { + "cancel": "Cancel·la", + "next": "Episodi següent" + }, + "playbackError": { + "badge": "Error en la reproducció", + "errors": { + "errorAborted": "S'ha interromput l'obtenció del contingut per petició de l'usuari.", + "errorDecode": "Tot i haver-se determinat prèviament que era utilitzable, s'ha produït un error en intentar descodificar el recurs multimèdia.", + "errorGenericMedia": "S'ha produït un error desconegut al contingut.", + "errorNetwork": "S'ha produït algun tipus d'error de xarxa que ha impedit que el contingut s'obtinga correctament, tot i haver estat disponibles prèviament.", + "errorNotSupported": "El contingut o el proveïdor del contingut no és compatible." + }, + "homeButton": "Torna a l'inici", + "text": "S'ha produït un error en intentar reproduir el contingut. Torneu-ho a provar.", + "title": "No s'ha pogut reproduir el vídeo!" + }, + "scraping": { + "items": { + "failure": "S'ha produït un error", + "notFound": "No té el vídeo", + "pending": "S'estan cercant vídeos…" + }, + "notFound": { + "badge": "No s'ha trobat", + "detailsButton": "Mostra els detalls", + "homeButton": "Torna a l'inici", + "text": "Hem buscat a través dels nostres proveïdors i no trobem el contingut que busqueu! No allotgem contingut i no tenim control sobre què hi ha disponible. Feu clic a «Mostra els detalls» a continuació per a més informació.", + "title": "No s'ha pogut trobar" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restants • Acaba a les {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Verifiqueu que sou humà completant el Captcha de la dreta. Ho fem per a mantindre segura movie-web!", + "error": "No s'ha pogut verificar la humanitat. Torneu-ho a provar.", + "title": "Necessitem verificar que sou humà.", + "verifyingHumanity": "Verificant la vostra humanitat…" + } + }, + "screens": { + "dmca": { + "text": "Vos donem la benvinguda a la pàgina de contacte DMCA de movie-web! Respectem els drets de propietat intel·lectual i volem resoldre qualsevol problema de drets d'autor ràpidament. Si creieu que la vostra obra protegida per drets d'autor s'ha utilitzat incorrectament a la nostra plataforma, envieu un avís detallat de la DMCA al correu electrònic següent. Incloeu una descripció del material protegit per drets d'autor, les vostres dades de contacte i una declaració de creença de bona fe. Ens comprometem a resoldre estes assumptes amb agilitat i agraïm la vostra col·laboració per a mantindre movie-web en un lloc que respecta la creativitat i els drets d'autor.", + "title": "DMCA" + }, + "loadingApp": "S'està carregant l'aplicació", + "loadingUser": "S'està carregant el perfil", + "loadingUserError": { + "logout": "Tanca la sessió", + "reset": "Restableix el servidor personalitzat", + "text": "Ha fallat la càrrega del perfil", + "textWithReset": "Error en carregar el vostre perfil des del servidor personalitzat, voleu restablir el servidor per defecte?" + }, + "migration": { + "failed": "La migració de les dades ha fallat.", + "inProgress": "Espereu, estem migrant les vostres dades. No hauria de tardar massa." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nom del dispositiu", + "deviceNamePlaceholder": "Telèfon personal", + "editProfile": "Edita", + "logoutButton": "Tanca la sessió" + }, + "actions": { + "delete": { + "button": "Elimina el compte", + "confirmButton": "Elimina el compte", + "confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!", + "confirmTitle": "Segur?", + "text": "esta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.", + "title": "Elimina el compte" + }, + "title": "Accions" + }, + "devices": { + "deviceNameLabel": "Nom del dispositiu", + "failed": "La càrrega de sessions ha fallat", + "removeDevice": "Elimina", + "title": "Dispositiu" + }, + "profile": { + "finish": "Finalitza l'edició", + "firstColor": "Color de perfil 1", + "secondColor": "Color de perfil dos", + "title": "Edita la foto de perfil", + "userIcon": "Icona d'usuari" + }, + "register": { + "cta": "Comença", + "text": "Compartiu el progrés de la visualització entre dispositius i manteniu-los sincronitzats.", + "title": "Sincronització amb el núvol" + }, + "title": "Compte" + }, + "appearance": { + "activeTheme": "Actiu", + "themes": { + "blue": "Blau", + "default": "Per defecte", + "gray": "Gris", + "red": "Vermell", + "teal": "Verd blavós" + }, + "title": "Aparença" + }, + "connections": { + "server": { + "description": "Si voleu connectar-vos a un rerefons personalitzat per a emmagatzemar les vostres dades, activeu-ho i proporcioneu l'URL. <0>Instruccions.", + "label": "Servidor personalitzat", + "urlLabel": "URL del servidor personalitzat" + }, + "setup": { + "doSetup": "Configura", + "errorStatus": { + "description": "Sembla que heu de revisar un o més elements de la configuració.", + "title": "S'ha de revisar algun element" + }, + "itemError": "Hi ha alguna cosa malament en la configuració. Torneu a fer la configuració per a solucionar-ho.", + "items": { + "default": "Configuració per defecte", + "extension": "Extensió", + "proxy": "Servidor personalitzat" + }, + "redoSetup": "Reconfigura", + "successStatus": { + "description": "Tot està preparat perquè comenceu a mirar el vostre contingut preferit.", + "title": "Tot està configurat!" + }, + "unsetStatus": { + "description": "Feu clic al botó de la dreta per a iniciar el procés de configuració.", + "title": "No heu fet la configuració" + } + }, + "title": "Connexions", + "workers": { + "addButton": "Afig un «worker»", + "description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers». <0>Instruccions.", + "emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació", + "label": "Utilitza «workers» intermediaris personalitzats", + "urlLabel": "URL dels «workers»", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Llengua de l'aplicació", + "languageDescription": "La llengua s'aplica a tota l'aplicació.", + "thumbnail": "Genera miniatures", + "thumbnailDescription": "Majoritàriament, els vídeos no tenen miniatures. Podeu activar esta opció per a generar-les sobre la marxa, però poden alentir el vídeo.", + "thumbnailLabel": "Genera miniatures", + "title": "Configuració" + }, + "reset": "Restableix", + "save": "Desa", + "sidebar": { + "info": { + "appVersion": "Versió de l'aplicació", + "backendUrl": "URL del rerefons", + "backendVersion": "Versió del rerefons", + "hostname": "Nom de l'amfitrió", + "insecure": "Insegur", + "notLoggedIn": "No heu iniciat sessió", + "secure": "Segur", + "title": "Informació de l'aplicació", + "unknownVersion": "Desconeguda", + "userId": "ID d'usuari" + } + }, + "subtitles": { + "backgroundLabel": "Opacitat del fons", + "colorLabel": "Color", + "previewQuote": "No he de tindre por. La por és l'assassina de la ment.", + "textSizeLabel": "Grandària del text", + "title": "Subtítols" + }, + "unsaved": "Hi ha canvis sense desar" + } +} From 8a973b1d89a93a2f5edd853c28e11d8601b9e16c Mon Sep 17 00:00:00 2001 From: Mehdi Date: Sun, 3 Mar 2024 18:40:54 +0000 Subject: [PATCH 21/23] Translated using Weblate (Persian) Currently translated at 100.0% (327 of 327 strings) Translation: movie-web/website Translate-URL: https://weblate.476328473.xyz/projects/movie-web/website/fa/ Author: Mehdi --- src/assets/locales/fa.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/locales/fa.json b/src/assets/locales/fa.json index 16e6a8a3..a2c31320 100644 --- a/src/assets/locales/fa.json +++ b/src/assets/locales/fa.json @@ -117,7 +117,7 @@ "allResults": "همه چیزی بود که داشتیم!", "failed": "چیزی پیدا نشد، دوباره تلاش کنید!", "loading": "در حال بارگذاری...", - "noResults": "چیزی پیدا نکردیم!", + "noResults": "نتونستیم چیزی پیدا کنیم!", "placeholder": { "default": "چه می‌خواهید تماشا کنید؟", "extra": [ From bada1d12cfd71f9c33c916ab68cb01a6a38b1b09 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 3 Mar 2024 19:13:30 +0000 Subject: [PATCH 22/23] Add Catalan (Valencia) --- src/assets/languages.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/assets/languages.ts b/src/assets/languages.ts index 3068c640..e575d454 100644 --- a/src/assets/languages.ts +++ b/src/assets/languages.ts @@ -2,6 +2,7 @@ import ar from "@/assets/locales/ar.json"; import bg from "@/assets/locales/bg.json"; import bn from "@/assets/locales/bn.json"; import ca from "@/assets/locales/ca.json"; +import caVl from "@/assets/locales/ca@valencia.json"; import cs from "@/assets/locales/cs.json"; import de from "@/assets/locales/de.json"; import el from "@/assets/locales/el.json"; @@ -46,6 +47,7 @@ import zh from "@/assets/locales/zh.json"; export const locales = { en, ca, + "ca-ES": caVl, cs, de, fr, From f33bc583eac7dab285013f244828dd865af9a21b Mon Sep 17 00:00:00 2001 From: qtchaos <72168435+qtchaos@users.noreply.github.com> Date: Sun, 3 Mar 2024 22:47:51 +0200 Subject: [PATCH 23/23] fix: when navigating to own pages, use `useNavigate()` --- src/components/buttons/Button.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/buttons/Button.tsx b/src/components/buttons/Button.tsx index f5c81b8d..8502e506 100644 --- a/src/components/buttons/Button.tsx +++ b/src/components/buttons/Button.tsx @@ -1,5 +1,6 @@ import classNames from "classnames"; import { ReactNode, useCallback } from "react"; +import { useNavigate } from "react-router-dom"; import { Icon, Icons } from "@/components/Icon"; import { Spinner } from "@/components/layout/Spinner"; @@ -20,6 +21,7 @@ interface Props { } export function Button(props: Props) { + const navigate = useNavigate(); const { onClick, href, loading } = props; const cb = useCallback( ( @@ -31,10 +33,14 @@ export function Button(props: Props) { if (loading) return; if (href && !onClick) { event.preventDefault(); - window.open(href, "_blank", "noreferrer"); + if (!href.includes("http")) { + navigate(href); + } else { + window.open(href, "_blank", "noreferrer"); + } } else onClick?.(event); }, - [onClick, href, loading], + [loading, href, onClick, navigate], ); let colorClasses = "bg-white hover:bg-gray-200 text-black";