From e3807d31c1737d94e914dfbb1255ec746f70b6e5 Mon Sep 17 00:00:00 2001 From: Jip Fr Date: Sat, 16 Dec 2023 01:48:26 +0100 Subject: [PATCH 1/4] Add minionlang --- src/assets/languages.ts | 2 + src/assets/locales/minion.json | 417 +++++++++++++++++++++++++++++++++ src/components/FlagIcon.tsx | 11 + src/setup/i18n.ts | 9 + 4 files changed, 439 insertions(+) create mode 100644 src/assets/locales/minion.json diff --git a/src/assets/languages.ts b/src/assets/languages.ts index 7fb52914..13b06541 100644 --- a/src/assets/languages.ts +++ b/src/assets/languages.ts @@ -3,6 +3,7 @@ import de from "@/assets/locales/de.json"; import en from "@/assets/locales/en.json"; import fr from "@/assets/locales/fr.json"; import it from "@/assets/locales/it.json"; +import minion from "@/assets/locales/minion.json"; import nl from "@/assets/locales/nl.json"; import pirate from "@/assets/locales/pirate.json"; import pl from "@/assets/locales/pl.json"; @@ -22,4 +23,5 @@ export const locales = { vi, zh, pirate, + minion, }; diff --git a/src/assets/locales/minion.json b/src/assets/locales/minion.json new file mode 100644 index 00000000..22f90fb3 --- /dev/null +++ b/src/assets/locales/minion.json @@ -0,0 +1,417 @@ +{ + "auth": { + "deviceNameLabel": "Device name", + "deviceNamePlaceholder": "Banana phone", + "hasAccount": "Bello! Already have an account? <0>Login here.", + "createAccount": "Whaaaat? Don't have an account yet? <0>Create an account.", + "register": { + "information": { + "title": "Account information", + "color1": "Profile color one", + "color2": "Profile color two", + "icon": "Minion icon", + "header": "Whaaat? Enter a name for your device and pick colors and a minion icon of your choosing", + "next": "Banana!" + } + }, + "login": { + "title": "Login to your account", + "description": "Please enter your secret banana language passphrase to login to your account", + "validationError": "Banana language not fluent or incomplete", + "deviceLengthError": "Banana! Please enter a device name", + "submit": "Bello! Login", + "passphraseLabel": "12-Banana passphrase", + "passphrasePlaceholder": "Banana Passphrase" + }, + "generate": { + "title": "Your banana passphrase", + "next": "I have saved my banana passphrase", + "description": "Your banana passphrase acts as your banana username and banana password. Make sure to keep it safe as you will need to enter it to banana to your account" + }, + "trust": { + "title": "Do you trust this server?", + "host": "You are connecting to <0>{{hostname}} - please confirm you trust it before making a banana account", + "failed": { + "title": "Failed to reach server", + "text": "Did you configure it correctly?" + }, + "yes": "I trust this server, banana!", + "no": "Go back, banana" + }, + "verify": { + "title": "Confirm your banana passphrase", + "description": "Please enter your banana passphrase from earlier to confirm you have saved it and to create your banana account", + "invalidData": "Banana data is not valid", + "noMatch": "Banana! Passphrase doesn't match", + "recaptchaFailed": "Banana! ReCaptcha validation failed", + "passphraseLabel": "Your 12-banana passphrase", + "register": "Create banana account" + } + }, + "errors": { + "details": "Error banana details", + "reloadPage": "Reload the banana", + "showError": "Show banana details", + "badge": "It broke", + "title": "We encountered a banana!" + }, + "notFound": { + "badge": "Not found", + "title": "Couldn't find that banana", + "message": "We looked everywhere: under the banana, in the banana, behind the banana but ultimately couldn't find the banana you are looking for.", + "goHome": "Back to banana" + }, + "global": { + "name": "banana-web", + "pages": { + "pagetitle": "{{title}} - banana-web", + "dmca": "DMCA", + "settings": "Banana Settings", + "about": "About banana", + "login": "Banana Login", + "register": "Banana Register" + } + }, + "media": { + "types": { + "movie": "Banana Movie", + "show": "Banana Show" + }, + "episodeDisplay": "S{{season}} E{{episode}}" + }, + "player": { + "scraping": { + "notFound": { + "badge": "Not found", + "title": "We couldn't find that banana", + "text": "We have searched through our banana providers and cannot find the banana you are looking for! We do not host the banana and have no control over what is available. Please click 'Show details' below for more details.", + "homeButton": "Go home", + "detailsButton": "Show details" + }, + "items": { + "pending": "Checking for banana videos...", + "notFound": "Doesn't have the banana video", + "failure": "Error banana occurred" + } + }, + "casting": { + "enabled": "Casting to banana..." + }, + "playbackError": { + "badge": "Banana Playback error", + "title": "Failed to play banana video!", + "text": "There was an error trying to play the banana. Please try again.", + "homeButton": "Go home", + "errors": { + "errorAborted": "The fetching of the banana was aborted by the user's banana.", + "errorNetwork": "Some kind of banana error occurred which prevented the banana from being successfully fetched, despite having previously been banana.", + "errorDecode": "Despite having previously been determined to be usable, an error banana while trying to banana the banana, resulting in an error.", + "errorNotSupported": "The banana or banana provider object is not banana.", + "errorGenericMedia": "Unknown banana error occurred." + } + }, + "metadata": { + "notFound": { + "badge": "Banana Not found", + "title": "Couldn't find that banana.", + "text": "We couldn't find the banana you requested. Either it's been banana or you tampered with the banana.", + "homeButton": "Back to banana" + }, + "failed": { + "badge": "Banana Failed", + "title": "Failed to load banana metadata", + "text": "Could not banana the banana's banana from TMDB. Please banana whether TMDB is down or banana on your banana connection.", + "homeButton": "Go banana" + } + }, + "back": { + "default": "Back to banana", + "short": "Back banana" + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "shortRegular": "{{timeWatched}}", + "remaining": "{{timeLeft}} left • Finish at {{timeFinished, datetime}}", + "shortRemaining": "-{{timeLeft}}" + }, + "nextEpisode": { + "next": "Next banana", + "cancel": "Banana" + }, + "menus": { + "settings": { + "videoSection": "Banana Video settings", + "experienceSection": "Banana Viewing experience", + "enableCaptions": "Enable banana", + "captionItem": "Banana settings", + "sourceItem": "Banana sources", + "playbackItem": "Banana settings", + "downloadItem": "Banana", + "qualityItem": "Banana" + }, + "episodes": { + "button": "Banana", + "loadingTitle": "Loading...", + "loadingList": "Loading...", + "loadingError": "Error loading banana", + "emptyState": "There are no banana in this banana, check back banana!", + "episodeBadge": "E{{episode}}" + }, + "sources": { + "title": "Banana", + "unknownOption": "Banana", + "noStream": { + "title": "Banana stream", + "text": "This banana has no banana for this banana or banana." + }, + "noEmbeds": { + "title": "No banana found", + "text": "We were unable to banana any banana, please try a different banana." + }, + "failed": { + "title": "Banana to banana", + "text": "There was an banana while trying to banana any banana, please try a different banana." + } + }, + "captions": { + "title": "Banana", + "customizeLabel": "Banana", + "settings": { + "fixCapitals": "Banana", + "delay": "Banana" + }, + "customChoice": "Banana", + "offChoice": "Banana", + "unknownLanguage": "Banana" + }, + "downloads": { + "title": "Banana", + "disclaimer": "Downloads are taken directly from the banana. banana-web does not have banana over how the banana are banana.", + "hlsExplanation": "This banana is a banana banana which cannot be banana on banana-web.", + "downloadVideo": "Banana", + "downloadCaption": "Banana", + "onPc": { + "1": "On PC, click the banana banana then, on the new banana, right click the banana and select Banana", + "title": "Banana", + "shortTitle": "Banana / PC" + }, + "onAndroid": { + "1": "To banana on Banana, click the banana banana then, on the new banana, tap and hold on the banana, then select banana.", + "title": "Banana", + "shortTitle": "Banana / Banana" + }, + "onIos": { + "1": "To banana on Banana, click the banana banana then, on the new banana, click , then Banana to banana .", + "title": "Banana", + "shortTitle": "Banana / Banana" + } + }, + "playback": { + "title": "Banana settings", + "speedLabel": "Banana speed" + }, + "quality": { + "title": "Banana", + "automaticLabel": "Banana", + "hint": "You can banana <0>banana to get different banana banana.", + "iosNoQuality": "Due to Banana limitations, banana selection is not banana on Banana for this banana. You can banana <0>banana to get different banana banana." + } + } + }, + "home": { + "mediaList": { + "stopEditing": "Stop banana" + }, + "titles": { + "morning": { + "default": "What would you like to banana this banana?", + "extra": ["Banana! I hear Banana Sunrise is banana"] + }, + "day": { + "default": "What would you like to banana this banana?", + "extra": [] + }, + "night": { + "default": "What would you like to banana banana?", + "extra": ["Banana? I hear The Banana is banana."] + } + }, + "search": { + "loading": "Loading...", + "sectionTitle": "Banana results", + "allResults": "Banana's all we banana!", + "noResults": "We couldn't banana anything!", + "failed": "Failed to banana banana, try again!", + "placeholder": "Banana do you want to banana?" + }, + "continueWatching": { + "sectionTitle": "Continue Banana" + }, + "bookmarks": { + "sectionTitle": "Banana" + } + }, + "overlays": { + "close": "Banana" + }, + "screens": { + "loadingUser": "Loading your banana", + "loadingApp": "Loading banana", + "loadingUserError": { + "text": "Failed to banana your banana", + "textWithReset": "Failed to banana your banana from your banana banana, banana to banana back to the banana banana?", + "reset": "Banana banana banana", + "logout": "Banana" + }, + "migration": { + "failed": "Banana to banana your banana.", + "inProgress": "Please banana, we are banana your banana. This shouldn't banana long." + }, + "dmca": { + "title": "DMCA", + "text": "Welcome to Minion-web's DMCA contact banana! We respect banana property rights and want to address any banana concerns swiftly. If you believe your banana work has been improperly used on our banana, please send a detailed banana notice to the banana below. Please include a banana of the banana material, your banana details, and a banana of good faith belief. We're committed to resolving these bananas promptly and appreciate your cooperation in keeping Minion-web a banana that respects creativity and banana." + } + }, + "navigation": { + "banner": { + "offline": "Check your banana connection" + }, + "menu": { + "register": "Banana to banana", + "settings": "Banana", + "about": "Banana us", + "donation": "Banana", + "support": "Banana", + "logout": "Banana out" + } + }, + "actions": { + "copy": "Banana", + "copied": "Banana" + }, + "settings": { + "unsaved": "Whaaat? You have unsaved bananas", + "reset": "Banana", + "save": "Banana", + "sidebar": { + "info": { + "title": "Banana information", + "hostname": "Banana", + "backendUrl": "Banana URL", + "userId": "Minion ID", + "notLoggedIn": "You are not banana in", + "appVersion": "Banana version", + "backendVersion": "Banana version", + "unknownVersion": "Unknown", + "secure": "Banana", + "insecure": "Banana" + } + }, + "appearance": { + "title": "Banana", + "activeTheme": "Banana", + "themes": { + "default": "Banana", + "blue": "Banana", + "teal": "Banana", + "red": "Banana", + "gray": "Banana" + } + }, + "account": { + "title": "Banana", + "register": { + "title": "Banana to the banana", + "text": "Banana your banana banana between banana and keep them synced.", + "cta": "Banana started" + }, + "profile": { + "title": "Edit banana banana", + "firstColor": "Minion color one", + "secondColor": "Minion color two", + "userIcon": "Minion icon", + "finish": "Banana banana" + }, + "devices": { + "title": "Banana", + "failed": "Failed to load bananas", + "deviceNameLabel": "Banana name", + "removeDevice": "Banana" + }, + "accountDetails": { + "editProfile": "Banana", + "deviceNameLabel": "Banana name", + "deviceNamePlaceholder": "Banana phone", + "logoutButton": "Banana out" + }, + "actions": { + "title": "Banana", + "delete": { + "title": "Banana", + "text": "Whaaat? This banana is irreversible. All bananas will be banana and nothing can be banana.", + "button": "Banana", + "confirmTitle": "Banana you banana?", + "confirmDescription": "Banana you banana to banana your banana? All your bananas will be banana!", + "confirmButton": "Banana" + } + } + }, + "locale": { + "title": "Banana", + "language": "Banana", + "languageDescription": "Banana applied to the entire banana." + }, + "captions": { + "title": "Banana", + "previewQuote": "I must not banana. Banana is the banana-killer.", + "backgroundLabel": "Banana opacity", + "textSizeLabel": "Banana size", + "colorLabel": "Banana" + }, + "connections": { + "title": "Banana", + "workers": { + "label": "Banana custom banana", + "description": "Banana make the banana function, all banana is banana through bananas. Banana this if you banana to banana your own bananas.", + "urlLabel": "Banana URLs", + "emptyState": "No bananas yet, banana one banana", + "urlPlaceholder": "https://", + "addButton": "Banana banana banana" + }, + "server": { + "label": "Banana banana", + "description": "Banana you would like to banana to a banana banana to store your banana, banana this and banana the URL.", + "urlLabel": "Banana banana URL" + } + } + }, + "about": { + "title": "About Minion-web", + "description": "Minion-web is a banana application that searches the banana for bananas. The banana aims for a mostly banana approach to consuming banana.", + "faqTitle": "Banana questions", + "q1": { + "title": "Where does the banana come from?", + "body": "Minion-web does not banana any banana. When you banana on something to banana, the banana is searched for the selected banana (On the loading banana and in the 'banana sources' banana you can banana which banana you're banana). Banana never gets banana by Minion-web, everything is banana this banana mechanism." + }, + "q2": { + "title": "Banana can I banana a banana or banana?", + "body": "It's not banana to banana a banana or banana, Minion-web does not banana any banana. All banana is banana through bananas on the banana." + }, + "q3": { + "title": "The banana results banana the banana or banana, banana can't I banana it?", + "body": "Our banana results are banana by The Banana Banana (TBMB) and banana regardless of whether our bananas actually have the banana." + } + }, + "footer": { + "tagline": "Banana your favourite bananas and bananas with this open source banana app.", + "links": { + "github": "Banana", + "dmca": "Banana", + "discord": "Banana" + }, + "legal": { + "disclaimer": "Banana", + "disclaimerText": "Minion-web does not banana any bananas, it merely banana to 3rd banana bananas. Banana issues should be banana up with the banana bananas and bananas. Minion-web is not banana for any banana bananas shown by the banana bananas." + } + } +} diff --git a/src/components/FlagIcon.tsx b/src/components/FlagIcon.tsx index d512e6e0..fd3b2056 100644 --- a/src/components/FlagIcon.tsx +++ b/src/components/FlagIcon.tsx @@ -35,6 +35,17 @@ export function FlagIcon(props: FlagIconProps) { ); + if (countryCode === "minion") + return ( +
+
+
+
+
+
+
+ ); + return ( { nativeName: "Pirate Tongue", }; } + + if (lang === "minion") { + return { + code: "minion", + name: "Minion", + nativeName: "Minionese", + }; + } + const [langObj] = ISO6391.getLanguages([lang]); if (!langObj) throw new Error(`Language with code ${lang} cannot be found in database`); From 2c63615c007dd9f354959f88d95c3a85e661bb6d Mon Sep 17 00:00:00 2001 From: Jip Fr Date: Sat, 16 Dec 2023 01:49:26 +0100 Subject: [PATCH 2/4] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a8a0b05c..b2bbd592 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "movie-web", - "version": "4.0.1", + "version": "4.0.2", "private": true, "homepage": "https://movie-web.app", "scripts": { From 101122ec54768816e0641f1fc88d10cb44f3b61b Mon Sep 17 00:00:00 2001 From: Jip Fr Date: Sat, 16 Dec 2023 14:49:02 +0100 Subject: [PATCH 3/4] Revert to normal DMCA text --- src/assets/locales/minion.json | 2 +- src/assets/locales/pirate.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/locales/minion.json b/src/assets/locales/minion.json index 22f90fb3..8568d927 100644 --- a/src/assets/locales/minion.json +++ b/src/assets/locales/minion.json @@ -269,7 +269,7 @@ }, "dmca": { "title": "DMCA", - "text": "Welcome to Minion-web's DMCA contact banana! We respect banana property rights and want to address any banana concerns swiftly. If you believe your banana work has been improperly used on our banana, please send a detailed banana notice to the banana below. Please include a banana of the banana material, your banana details, and a banana of good faith belief. We're committed to resolving these bananas promptly and appreciate your cooperation in keeping Minion-web a banana that respects creativity and banana." + "text": "Welcome to movie-web's DMCA contact page! We respect intellectual property rights and want to address any copyright concerns swiftly. If you believe your copyrighted work has been improperly used on our platform, please send a detailed DMCA notice to the email below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation in keeping movie-web a place that respects creativity and copyrights." } }, "navigation": { diff --git a/src/assets/locales/pirate.json b/src/assets/locales/pirate.json index 0abcc5d5..c36ce4fc 100644 --- a/src/assets/locales/pirate.json +++ b/src/assets/locales/pirate.json @@ -260,7 +260,7 @@ }, "screens": { "dmca": { - "text": "In an effort to address the copyright concerns associated with the website known as \"movie-web,\" the DMCA, or Digital Jolly Roger Copyright Act, has been initiated to safeguard the intellectual property rights of content creators by reportin' infringements on this platform, thereby adherin' to legal protocols for takedown requests, which, like, ye know, it's all about, like, maintainin' the integrity of intellectual property, and, um, makin' sure, like, creators get their fair share, but then, it's, like, this intricate dance of digital legalities, where ye have to, uh, like, navigate this labyrinth of code and bytes and, uh, send, ye know, these, like, electronic documents that, um, point out the, uh, alleged infringement, and it's, like, this whole, like, teeter-totter of legality, where ye're, like, balancin', um, the rights of the, ye know, creators and the, um, operation of this, like, online, uh, entity, and, like, the DMCA, it's, like, this, um, powerful tool, but, uh, it's also, like, this, um, complex puzzle, where, ye know, ye're, like, seekin' justice in the digital wilderness, and, uh, strivin' for harmony amidst the chaos of the internet, and, um, yeah, that's, like, the whole, like, DMCA-ing thing with movie-web, ye know?", + "text": "Welcome to movie-web's DMCA contact page! We respect intellectual property rights and want to address any copyright concerns swiftly. If you believe your copyrighted work has been improperly used on our platform, please send a detailed DMCA notice to the email below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation in keeping movie-web a place that respects creativity and copyrights.", "title": "DMCA" }, "loadingApp": "Loadin' application", From 762c4b0be7868bfc3df0b7b1fc2133f6796ca4e9 Mon Sep 17 00:00:00 2001 From: Jip Fr Date: Sat, 16 Dec 2023 14:49:45 +0100 Subject: [PATCH 4/4] YEET! --- src/assets/locales/minion.json | 4 ---- src/assets/locales/pirate.json | 4 ---- 2 files changed, 8 deletions(-) diff --git a/src/assets/locales/minion.json b/src/assets/locales/minion.json index 8568d927..a07ffd4d 100644 --- a/src/assets/locales/minion.json +++ b/src/assets/locales/minion.json @@ -266,10 +266,6 @@ "migration": { "failed": "Banana to banana your banana.", "inProgress": "Please banana, we are banana your banana. This shouldn't banana long." - }, - "dmca": { - "title": "DMCA", - "text": "Welcome to movie-web's DMCA contact page! We respect intellectual property rights and want to address any copyright concerns swiftly. If you believe your copyrighted work has been improperly used on our platform, please send a detailed DMCA notice to the email below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation in keeping movie-web a place that respects creativity and copyrights." } }, "navigation": { diff --git a/src/assets/locales/pirate.json b/src/assets/locales/pirate.json index c36ce4fc..ce9e4113 100644 --- a/src/assets/locales/pirate.json +++ b/src/assets/locales/pirate.json @@ -259,10 +259,6 @@ } }, "screens": { - "dmca": { - "text": "Welcome to movie-web's DMCA contact page! We respect intellectual property rights and want to address any copyright concerns swiftly. If you believe your copyrighted work has been improperly used on our platform, please send a detailed DMCA notice to the email below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation in keeping movie-web a place that respects creativity and copyrights.", - "title": "DMCA" - }, "loadingApp": "Loadin' application", "loadingUser": "Loadin' yer pirate profile", "loadingUserError": {