From ed1bac977ac1e3b9e730d9dc2914bda663ff6faf Mon Sep 17 00:00:00 2001 From: Juan Date: Wed, 9 Nov 2022 12:20:23 +0100 Subject: [PATCH 1/3] feat(): add all languages used in google translate api --- src/Components/Language/LanguageData.tsx | 136 +++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 src/Components/Language/LanguageData.tsx diff --git a/src/Components/Language/LanguageData.tsx b/src/Components/Language/LanguageData.tsx new file mode 100644 index 0000000..5b2283c --- /dev/null +++ b/src/Components/Language/LanguageData.tsx @@ -0,0 +1,136 @@ +export const languages = [ +{language: "Afrikaans" ,key: "af"}, +{language: "Albanian" ,key: "sq"}, +{language: "Amharic" ,key: "am"}, +{language: "Arabic" ,key: "ar"}, +{language: "Armenian" ,key: "hy"}, +{language: "Assamese" ,key: "as"}, +{language: "Aymara" ,key: "ay"}, +{language: "Azerbaijani" ,key: "az"}, +{language: "Bambara" ,key: "bm"}, +{language: "Basque" ,key: "eu"}, +{language: "Belarusian" ,key: "be"}, +{language: "Bengali" ,key: "bn"}, +{language: "Bhojpuri" ,key: "bho"}, +{language: "Bosnian" ,key: "bs"}, +{language: "Bulgarian" ,key: "bg"}, +{language: "Catalan" ,key: "ca"}, +{language: "Cebuano" ,key: "ceb"}, +{language: "Chinese (Simplified)" ,key: "zh-CN"}, +{language: "Chinese (Traditional)" ,key: "zh-TW"}, +{language: "Corsican" ,key: "co"}, +{language: "Croatian" ,key: "hr"}, +{language: "Czech" ,key: "cs"}, +{language: "Danish" ,key: "da"}, +{language: "Dhivehi" ,key: "dv"}, +{language: "Dogri" ,key: "doi"}, +{language: "Dutch" ,key: "nl"}, +{language: "English" ,key: "en"}, +{language: "Esperanto" ,key: "eo"}, +{language: "Estonian" ,key: "et"}, +{language: "Ewe" ,key: "ee"}, +{language: "Filipino (Tagalog)" ,key: "fil"}, +{language: "Finnish" ,key: "fi"}, +{language: "French" ,key: "fr"}, +{language: "Frisian" ,key: "fy"}, +{language: "Galician" ,key: "gl"}, +{language: "Georgian" ,key: "ka"}, +{language: "German" ,key: "de"}, +{language: "Greek" ,key: "el"}, +{language: "Guarani" ,key: "gn"}, +{language: "Gujarati" ,key: "gu"}, +{language: "Haitian Creole" ,key: "ht"}, +{language: "Hausa" ,key: "ha"}, +{language: "Hawaiian" ,key: "haw"}, +{language: "Hebrew" ,key: "he"}, +{language: "Hindi" ,key: "hi"}, +{language: "Hmong" ,key: "hmn"}, +{language: "Hungarian" ,key: "hu"}, +{language: "Icelandic" ,key: "is"}, +{language: "Igbo" ,key: "ig"}, +{language: "Ilocano" ,key: "ilo"}, +{language: "Indonesian" ,key: "id"}, +{language: "Irish" ,key: "ga"}, +{language: "Italian" ,key: "it"}, +{language: "Japanese" ,key: "ja"}, +{language: "Javanese" ,key: "jv"}, +{language: "Kannada" ,key: "kn"}, +{language: "Kazakh" ,key: "kk"}, +{language: "Khmer" ,key: "km"}, +{language: "Kinyarwanda" ,key: "rw"}, +{language: "Konkani" ,key: "gom"}, +{language: "Korean" ,key: "ko"}, +{language: "Krio" ,key: "kri"}, +{language: "Kurdish" ,key: "ku"}, +{language: "Kurdish (Sorani)" ,key: "ckb"}, +{language: "Kyrgyz" ,key: "ky"}, +{language: "Lao" ,key: "lo"}, +{language: "Latin" ,key: "la"}, +{language: "Latvian" ,key: "lv"}, +{language: "Lingala" ,key: "ln"}, +{language: "Lithuanian" ,key: "lt"}, +{language: "Luganda" ,key: "lg"}, +{language: "Luxembourgish" ,key: "lb"}, +{language: "Macedonian" ,key: "mk"}, +{language: "Maithili" ,key: "mai"}, +{language: "Malagasy" ,key: "mg"}, +{language: "Malay" ,key: "ms"}, +{language: "Malayalam" ,key: "ml"}, +{language: "Maltese" ,key: "mt"}, +{language: "Maori" ,key: "mi"}, +{language: "Marathi" ,key: "mr"}, +{language: "Meiteilon (Manipuri)" ,key: "mni-Mtei"}, +{language: "Mizo" ,key: "lus"}, +{language: "Mongolian" ,key: "mn"}, +{language: "Myanmar (Burmese)" ,key: "my"}, +{language: "Nepali" ,key: "ne"}, +{language: "Norwegian" ,key: "no"}, +{language: "Nyanja (Chichewa)" ,key: "ny"}, +{language: "Odia (Oriya)" ,key: "or"}, +{language: "Oromo" ,key: "om"}, +{language: "Pashto" ,key: "ps"}, +{language: "Persian" ,key: "fa"}, +{language: "Polish" ,key: "pl"}, +{language: "Portuguese (Portugal, Brazil)" ,key: "pt"}, +{language: "Punjabi" ,key: "pa"}, +{language: "Quechua" ,key: "qu"}, +{language: "Romanian" ,key: "ro"}, +{language: "Russian" ,key: "ru"}, +{language: "Samoan" ,key: "sm"}, +{language: "Sanskrit" ,key: "sa"}, +{language: "Scots Gaelic" ,key: "gd"}, +{language: "Sepedi" ,key: "nso"}, +{language: "Serbian" ,key: "sr"}, +{language: "Sesotho" ,key: "st"}, +{language: "Shona" ,key: "sn"}, +{language: "Sindhi" ,key: "sd"}, +{language: "Sinhala (Sinhalese)" ,key: "si"}, +{language: "Slovak" ,key: "sk"}, +{language: "Slovenian" ,key: "sl"}, +{language: "Somali" ,key: "so"}, +{language: "Spanish" ,key: "es"}, +{language: "Sundanese" ,key: "su"}, +{language: "Swahili" ,key: "sw"}, +{language: "Swedish" ,key: "sv"}, +{language: "Tagalog (Filipino)" ,key: "tl"}, +{language: "Tajik" ,key: "tg"}, +{language: "Tamil" ,key: "ta"}, +{language: "Tatar" ,key: "tt"}, +{language: "Telugu" ,key: "te"}, +{language: "Thai" ,key: "th"}, +{language: "Tigrinya" ,key: "ti"}, +{language: "Tsonga" ,key: "ts"}, +{language: "Turkish" ,key: "tr"}, +{language: "Turkmen" ,key: "tk"}, +{language: "Twi (Akan)" ,key: "ak"}, +{language: "Ukrainian" ,key: "uk"}, +{language: "Urdu" ,key: "ur"}, +{language: "Uyghur" ,key: "ug"}, +{language: "Uzbek" ,key: "uz"}, +{language: "Vietnamese" ,key: "vi"}, +{language: "Welsh" ,key: "cy"}, +{language: "Xhosa" ,key: "xh"}, +{language: "Yiddish" ,key: "yi"}, +{language: "Yoruba" ,key: "yo"}, +{language: "Zulu" ,key: "zu"}, +] \ No newline at end of file From 6fa6a1c0c85b49e5bf632bbaab4844b747ca5179 Mon Sep 17 00:00:00 2001 From: Juan Date: Wed, 9 Nov 2022 12:20:36 +0100 Subject: [PATCH 2/3] feat(subtitles): add subtitles page --- src/Components/Subtitles/Subtitles.tsx | 102 +++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 6 deletions(-) diff --git a/src/Components/Subtitles/Subtitles.tsx b/src/Components/Subtitles/Subtitles.tsx index 259e058..6833494 100644 --- a/src/Components/Subtitles/Subtitles.tsx +++ b/src/Components/Subtitles/Subtitles.tsx @@ -1,11 +1,101 @@ -import React from 'react'; +import { Switch } from "@mui/material"; +import { Box } from "@mui/system"; +import React from "react"; +import CSS from 'csstype'; +import InputLabel from '@mui/material/InputLabel'; +import MenuItem from '@mui/material/MenuItem'; +import FormHelperText from '@mui/material/FormHelperText'; +import FormControl from '@mui/material/FormControl'; +import Select, { SelectChangeEvent } from '@mui/material/Select'; +import { languages } from "../Language/LanguageData"; +import Grid from '@mui/material/Grid'; +import { LocalStorage } from "../../LocalStorage/LocalStorage"; export const Subtitles = () => { - return ( - <> -

Subtitles

- - ); + + const boxStyles: CSS.Properties = { + border: "solid", + borderColor: "#FD7014", + borderWidth: "4", + paddingLeft: "3vw", + paddingRight: "3vw", + paddingTop: "2vh", + paddingBottom: "2vh", + backgroundColor: "#222831", + borderRadius: "15px", + alignItems: "center", + cursor: "pointer", + borderCollapse: "separate", + borderSpacing: "0 0vh", + marginBottom: "1vh", + position: "relative", + minWidth: "calc(40vw + 231px)", + maxWidth: "calc(40vw + 231px)", + lineHeight: 1.6, + justifyContent: "center", + }; + + const itemStyles: CSS.Properties = { + padding: "25px !important", + justifyContent: "center", + alignItems: "center" + }; + + const [subtitlesActivated, setSubtitlesActivated] = React.useState(LocalStorage.getItemObject("subtitlesActivated") || false); + const [languageSelected, setLanguageSelected] = React.useState(LocalStorage.getItemObject("languageSelected") || "en"); + + const handleToggleChange = (event: SelectChangeEvent) => { + LocalStorage.setItemObject("subtitlesActivated", !subtitlesActivated) + setSubtitlesActivated(!subtitlesActivated); + }; + + const handleSelectChange = (event: any) => { + LocalStorage.setItemObject("languageSelected", event.target.value) + setLanguageSelected(event.target.value); + }; + + return ( + <> + + + +

Enable subtitles during the stream:

+ +
+ + { + subtitlesActivated === true ? ( + + + + Language + + Select language + + + ) : (<>) + } +
+
+ + ); } export default Subtitles; \ No newline at end of file From e2ce8657a1c4889974f1ce332d4dd9305c16538c Mon Sep 17 00:00:00 2001 From: Juan Date: Wed, 9 Nov 2022 12:25:06 +0100 Subject: [PATCH 3/3] fix(test): remove old & useless subtitles test --- src/Components/Testing/Subtitles.test.tsx | 24 ----------------------- 1 file changed, 24 deletions(-) delete mode 100644 src/Components/Testing/Subtitles.test.tsx diff --git a/src/Components/Testing/Subtitles.test.tsx b/src/Components/Testing/Subtitles.test.tsx deleted file mode 100644 index 9cb8a1d..0000000 --- a/src/Components/Testing/Subtitles.test.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react' -import { render, unmountComponentAtNode } from "react-dom"; -import { Subtitles } from '../Subtitles/Subtitles'; -import { act } from "react-dom/test-utils"; - -let container: any = null; -beforeEach(() => { - // met en place un élément DOM comme cible de rendu - container = document.createElement("div"); - document.body.appendChild(container); -}); - -afterEach(() => { - // nettoie en sortie de test - unmountComponentAtNode(container); - container.remove(); - container = null; -}); - -it("Testing Subtitles", () => { - act(() => { - render(, container); - }); -});