diff --git a/src/plays/language-translater/LanguageTranslater.jsx b/src/plays/language-translater/LanguageTranslater.jsx
new file mode 100644
index 0000000000..222a24472e
--- /dev/null
+++ b/src/plays/language-translater/LanguageTranslater.jsx
@@ -0,0 +1,215 @@
+import PlayHeader from 'common/playlists/PlayHeader';
+import './styles.css';
+import { useEffect, useState } from 'react';
+import languages from './Languages';
+import copy from './icons/Copy.svg';
+import sound from './icons/sound_max_fill.svg';
+import { debounce } from 'lodash';
+import switchLang from './icons/Horizontal_top_left_main.svg';
+
+// WARNING: Do not change the entry componenet name
+function LanguageTranslater(props) {
+ const [inputText, setInputText] = useState('Hello, How are you?'); // set input text for initial render
+ const [translatedText, setTranslatedText] = useState('');
+ const [sourceLang, setSourceLang] = useState('Autodetect'); // set initial sourceLang to Autodetect
+ const [targetLang, setTargetLang] = useState('fr'); // set initial targetLang to french
+
+ // used useEffect to translation during initial render
+ useEffect(() => {
+ translate();
+ }, []);
+
+ // fetching the data from API
+ const translate = async () => {
+ try {
+ const response = await fetch(
+ `https://api.mymemory.translated.net/get?q=${encodeURIComponent(inputText)}!&langpair=${sourceLang}|${targetLang}`
+ );
+ const data = await response.json();
+ setTranslatedText(data.responseData.translatedText);
+ } catch (err) {
+ window.alert('Error translating text:', err);
+ }
+ };
+
+ // used debounce for limiting the rate at which the translation function is called
+ const debouncedTranslate = debounce(translate, 300);
+
+ // function for initializing translation
+ const handleTranslate = () => {
+ debouncedTranslate();
+ };
+
+ // function to switch source and target languages
+ const switchLanguage = () => {
+ if (sourceLang !== 'Autodetect') {
+ const temp = sourceLang;
+ setSourceLang(targetLang);
+ setTargetLang(temp);
+ } else {
+ window.alert('Cannot switch language when source language is Autodetect');
+ }
+ };
+
+ // clipboard copy function
+ const handleCopy = (text) => {
+ navigator.clipboard.writeText(text);
+ };
+
+ // text to speech function
+ const handleListen = async (text, language) => {
+ try {
+ const utterence = new SpeechSynthesisUtterance(text);
+ utterence.language = language;
+ await window.speechSynthesis.speak(utterence);
+ } catch (err) {
+ window.alert(`Listening error: `, err);
+ }
+ };
+
+ return (
+ <>
+
+
+
+ {/* Your Code Starts Here */}
+
+
+
+
+
+
+
+
+
+
+
+
+

handleCopy(inputText)}
+ />
+

handleListen(inputText, sourceLang)}
+ />
+
+
+ Translate
+
+
+
+
+
+
+
+
+
+
+
+
+ {translatedText.length}/500
+
+
+
+

handleCopy(translatedText)}
+ />
+

handleListen(translatedText, targetLang)}
+ />
+
+
+
+
+
+ {/* Your Code Ends Here */}
+
+
+ >
+ );
+}
+
+export default LanguageTranslater;
diff --git a/src/plays/language-translater/Languages.jsx b/src/plays/language-translater/Languages.jsx
new file mode 100644
index 0000000000..05d0d7302b
--- /dev/null
+++ b/src/plays/language-translater/Languages.jsx
@@ -0,0 +1,156 @@
+// initializing a array of languages and their respective language_codes
+const languages = [
+ { code: 'af-ZA', name: 'Afrikaans' },
+ { code: 'sq-AL', name: 'Albanian' },
+ { code: 'am-ET', name: 'Amharic' },
+ { code: 'ar-SA', name: 'Arabic' },
+ { code: 'hy-AM', name: 'Armenian' },
+ { code: 'az-AZ', name: 'Azerbaijani' },
+ { code: 'bjs-BB', name: 'Bajan' },
+ { code: 'rm-RO', name: 'Balkan Gipsy' },
+ { code: 'eu-ES', name: 'Basque' },
+ { code: 'bem-ZM', name: 'Bemba' },
+ { code: 'bn-IN', name: 'Bengali' },
+ { code: 'be-BY', name: 'Belarus' },
+ { code: 'bi-VU', name: 'Bislama' },
+ { code: 'bs-BA', name: 'Bosnian' },
+ { code: 'br-FR', name: 'Breton' },
+ { code: 'bg-BG', name: 'Bulgarian' },
+ { code: 'my-MM', name: 'Burmese' },
+ { code: 'ca-ES', name: 'Catalan' },
+ { code: 'ceb-PH', name: 'Cebuano' },
+ { code: 'ch-GU', name: 'Chamorro' },
+ { code: 'zh-CN', name: 'Chinese (Simplified)' },
+ { code: 'zh-TW', name: 'Chinese Traditional' },
+ { code: 'zdj-KM', name: 'Comorian (Ngazidja)' },
+ { code: 'cop-EG', name: 'Coptic' },
+ { code: 'aig-AG', name: 'Creole English (Antigua and Barbuda)' },
+ { code: 'bah-BS', name: 'Creole English (Bahamas)' },
+ { code: 'gcl-GD', name: 'Creole English (Grenadian)' },
+ { code: 'gyn-GY', name: 'Creole English (Guyanese)' },
+ { code: 'jam-JM', name: 'Creole English (Jamaican)' },
+ { code: 'svc-VC', name: 'Creole English (Vincentian)' },
+ { code: 'vic-US', name: 'Creole English (Virgin Islands)' },
+ { code: 'ht-HT', name: 'Creole French (Haitian)' },
+ { code: 'acf-LC', name: 'Creole French (Saint Lucian)' },
+ { code: 'crs-SC', name: 'Creole French (Seselwa)' },
+ { code: 'pov-GW', name: 'Creole Portuguese (Upper Guinea)' },
+ { code: 'hr-HR', name: 'Croatian' },
+ { code: 'cs-CZ', name: 'Czech' },
+ { code: 'da-DK', name: 'Danish' },
+ { code: 'nl-NL', name: 'Dutch' },
+ { code: 'dz-BT', name: 'Dzongkha' },
+ { code: 'en-GB', name: 'English' },
+ { code: 'eo-EU', name: 'Esperanto' },
+ { code: 'et-EE', name: 'Estonian' },
+ { code: 'fn-FNG', name: 'Fanagalo' },
+ { code: 'fo-FO', name: 'Faroese' },
+ { code: 'fi-FI', name: 'Finnish' },
+ { code: 'fr-FR', name: 'French' },
+ { code: 'gl-ES', name: 'Galician' },
+ { code: 'ka-GE', name: 'Georgian' },
+ { code: 'de-DE', name: 'German' },
+ { code: 'el-GR', name: 'Greek' },
+ { code: 'grc-GR', name: 'Greek (Classical)' },
+ { code: 'gu-IN', name: 'Gujarati' },
+ { code: 'ha-NE', name: 'Hausa' },
+ { code: 'haw-US', name: 'Hawaiian' },
+ { code: 'he-IL', name: 'Hebrew' },
+ { code: 'hi-IN', name: 'Hindi' },
+ { code: 'hu-HU', name: 'Hungarian' },
+ { code: 'is-IS', name: 'Icelandic' },
+ { code: 'id-ID', name: 'Indonesian' },
+ { code: 'kl-GL', name: 'Inuktitut (Greenlandic)' },
+ { code: 'ga-IE', name: 'Irish Gaelic' },
+ { code: 'it-IT', name: 'Italian' },
+ { code: 'ja-JP', name: 'Japanese' },
+ { code: 'jv-ID', name: 'Javanese' },
+ { code: 'kea-CV', name: 'Kabuverdianu' },
+ { code: 'kab-DZ', name: 'Kabylian' },
+ { code: 'kn-IN', name: 'Kannada' },
+ { code: 'kk-KZ', name: 'Kazakh' },
+ { code: 'km-KM', name: 'Khmer' },
+ { code: 'rw-RW', name: 'Kinyarwanda' },
+ { code: 'rn-BI', name: 'Kirundi' },
+ { code: 'ko-KR', name: 'Korean' },
+ { code: 'ku-TR', name: 'Kurdish' },
+ { code: 'ckb-IQ', name: 'Kurdish Sorani' },
+ { code: 'ky-KG', name: 'Kyrgyz' },
+ { code: 'lo-LA', name: 'Lao' },
+ { code: 'la-VA', name: 'Latin' },
+ { code: 'lv-LV', name: 'Latvian' },
+ { code: 'lt-LT', name: 'Lithuanian' },
+ { code: 'lb-LU', name: 'Luxembourgish' },
+ { code: 'mk-MK', name: 'Macedonian' },
+ { code: 'mg-MG', name: 'Malagasy' },
+ { code: 'ms-MY', name: 'Malay' },
+ { code: 'dv-MV', name: 'Maldivian' },
+ { code: 'mt-MT', name: 'Maltese' },
+ { code: 'gv-IM', name: 'Manx Gaelic' },
+ { code: 'mi-NZ', name: 'Maori' },
+ { code: 'mh-MH', name: 'Marshallese' },
+ { code: 'men-SL', name: 'Mende' },
+ { code: 'mn-MN', name: 'Mongolian' },
+ { code: 'mfe-MU', name: 'Morisyen' },
+ { code: 'ne-NP', name: 'Nepali' },
+ { code: 'niu-NU', name: 'Niuean' },
+ { code: 'no-NO', name: 'Norwegian' },
+ { code: 'ny-MW', name: 'Nyanja' },
+ { code: 'ur-PK', name: 'Pakistani' },
+ { code: 'pau-PW', name: 'Palauan' },
+ { code: 'pa-IN', name: 'Panjabi' },
+ { code: 'pap-CW', name: 'Papiamentu' },
+ { code: 'ps-PK', name: 'Pashto' },
+ { code: 'fa-IR', name: 'Persian' },
+ { code: 'pis-SB', name: 'Pijin' },
+ { code: 'pl-PL', name: 'Polish' },
+ { code: 'pt-PT', name: 'Portuguese' },
+ { code: 'pot-US', name: 'Potawatomi' },
+ { code: 'qu-PE', name: 'Quechua' },
+ { code: 'ro-RO', name: 'Romanian' },
+ { code: 'ru-RU', name: 'Russian' },
+ { code: 'sm-WS', name: 'Samoan' },
+ { code: 'sg-CF', name: 'Sango' },
+ { code: 'gd-GB', name: 'Scots Gaelic' },
+ { code: 'sr-RS', name: 'Serbian' },
+ { code: 'sn-ZW', name: 'Shona' },
+ { code: 'si-LK', name: 'Sinhala' },
+ { code: 'sk-SK', name: 'Slovak' },
+ { code: 'sl-SI', name: 'Slovenian' },
+ { code: 'so-SO', name: 'Somali' },
+ { code: 'st-ST', name: 'Sotho, Southern' },
+ { code: 'es-ES', name: 'Spanish' },
+ { code: 'srn-SR', name: 'Sranan Tongo' },
+ { code: 'sw-SZ', name: 'Swahili' },
+ { code: 'sv-SE', name: 'Swedish' },
+ { code: 'de-CH', name: 'Swiss German' },
+ { code: 'syc-TR', name: 'Syriac (Aramaic)' },
+ { code: 'tl-PH', name: 'Tagalog' },
+ { code: 'tg-TJ', name: 'Tajik' },
+ { code: 'tmh-DZ', name: 'Tamashek (Tuareg)' },
+ { code: 'ta-LK', name: 'Tamil' },
+ { code: 'te-IN', name: 'Telugu' },
+ { code: 'tet-TL', name: 'Tetum' },
+ { code: 'th-TH', name: 'Thai' },
+ { code: 'bo-CN', name: 'Tibetan' },
+ { code: 'ti-TI', name: 'Tigrinya' },
+ { code: 'tpi-PG', name: 'Tok Pisin' },
+ { code: 'tkl-TK', name: 'Tokelauan' },
+ { code: 'to-TO', name: 'Tongan' },
+ { code: 'tn-BW', name: 'Tswana' },
+ { code: 'tr-TR', name: 'Turkish' },
+ { code: 'tk-TM', name: 'Turkmen' },
+ { code: 'tvl-TV', name: 'Tuvaluan' },
+ { code: 'uk-UA', name: 'Ukrainian' },
+ { code: 'ppk-ID', name: 'Uma' },
+ { code: 'uz-UZ', name: 'Uzbek' },
+ { code: 'vi-VN', name: 'Vietnamese' },
+ { code: 'wls-WF', name: 'Wallisian' },
+ { code: 'cy-GB', name: 'Welsh' },
+ { code: 'wo-SN', name: 'Wolof' },
+ { code: 'xh-ZA', name: 'Xhosa' },
+ { code: 'yi-YD', name: 'Yiddish' },
+ { code: 'zu-ZA', name: 'Zulu' }
+];
+
+export default languages;
diff --git a/src/plays/language-translater/Readme.md b/src/plays/language-translater/Readme.md
new file mode 100644
index 0000000000..1157e05cbb
--- /dev/null
+++ b/src/plays/language-translater/Readme.md
@@ -0,0 +1,42 @@
+# Language Translater
+
+Language Translator is a web application built with React.js that allows users to translate text from one language to another using an API. This project provides a user-friendly interface where users can input text, select the desired source and target languages, and instantly receive the translated text. It utilizes a reliable translation API to ensure accurate and efficient translations.
+
+## Play Demographic
+
+- Language: js
+- Level: Intermediate
+
+## Creator Information
+
+- User: Venkat-3010
+- Gihub Link: https://github.com/Venkat-3010
+- Blog:
+- Video:
+
+## Implementation Details
+
+Technologies Used
+
+- React.js
+- Fetch API
+- Lodash
+- SpeechSynthesisUtterance
+
+The `Language Translator` is implemented with below steps.
+
+- Made a list of all the languages and their codes available in the API and saved it as `Languages.jsx`.
+- Imported the `Languages.jsx` in the `LanguageTranslator.jsx` and used it as source and target languages for translation.
+- Input text area for entering the text and displaying the tranlated text.
+- Translate button: Initiates the translation using `Fetch API`.
+- Copy button: uses `clipboard` to copy the input and translated text.
+- Listen button: Reads out the the input and translated text using `SpeechSynthesisUtterance`.
+- Language Switch: Allows users to swap the source and target languages.
+
+## Consideration
+
+Update all considerations(if any)
+
+## Resources
+
+API source: https://mymemory.translated.net/
\ No newline at end of file
diff --git a/src/plays/language-translater/cover.png b/src/plays/language-translater/cover.png
new file mode 100644
index 0000000000..d01f61d0d6
Binary files /dev/null and b/src/plays/language-translater/cover.png differ
diff --git a/src/plays/language-translater/icons/Copy.svg b/src/plays/language-translater/icons/Copy.svg
new file mode 100644
index 0000000000..704144405d
--- /dev/null
+++ b/src/plays/language-translater/icons/Copy.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/plays/language-translater/icons/Expand_down.svg b/src/plays/language-translater/icons/Expand_down.svg
new file mode 100644
index 0000000000..97b7e3ddcc
--- /dev/null
+++ b/src/plays/language-translater/icons/Expand_down.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/plays/language-translater/icons/Horizontal_top_left_main.svg b/src/plays/language-translater/icons/Horizontal_top_left_main.svg
new file mode 100644
index 0000000000..443749d861
--- /dev/null
+++ b/src/plays/language-translater/icons/Horizontal_top_left_main.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/plays/language-translater/icons/Sort_alfa.svg b/src/plays/language-translater/icons/Sort_alfa.svg
new file mode 100644
index 0000000000..9191823041
--- /dev/null
+++ b/src/plays/language-translater/icons/Sort_alfa.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/plays/language-translater/icons/hero_img.jpg b/src/plays/language-translater/icons/hero_img.jpg
new file mode 100644
index 0000000000..1da7333494
Binary files /dev/null and b/src/plays/language-translater/icons/hero_img.jpg differ
diff --git a/src/plays/language-translater/icons/logo.svg b/src/plays/language-translater/icons/logo.svg
new file mode 100644
index 0000000000..ed58a77332
--- /dev/null
+++ b/src/plays/language-translater/icons/logo.svg
@@ -0,0 +1,7 @@
+
diff --git a/src/plays/language-translater/icons/sound_max_fill.svg b/src/plays/language-translater/icons/sound_max_fill.svg
new file mode 100644
index 0000000000..b318b7bef8
--- /dev/null
+++ b/src/plays/language-translater/icons/sound_max_fill.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/plays/language-translater/styles.css b/src/plays/language-translater/styles.css
new file mode 100644
index 0000000000..03124a1f43
--- /dev/null
+++ b/src/plays/language-translater/styles.css
@@ -0,0 +1,131 @@
+/* enter stlyes here */
+.Language-Translator_body {
+ background-image: url('./icons/hero_img.jpg');
+ background-repeat: no-repeat;
+ background-size: cover;
+}
+
+.Language-Translator_container {
+ display: flex;
+ margin-top: 2rem;
+ justify-content: center;
+ gap: 2rem;
+}
+
+.Language-Translator_sourceLang,
+.Language-Translator_targetLang {
+ backdrop-filter: blur(25px) saturate(120%);
+ -webkit-backdrop-filter: blur(25px) saturate(120%);
+ background-color: rgba(24, 66, 142, 0.43);
+ border-radius: 20px;
+ border: 1px solid rgba(120, 5, 5, 0.271);
+ width: 40vw;
+ height: 50%;
+ padding: 1rem;
+}
+
+.Language-Translator_languages {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 1rem;
+}
+
+.Language-Translator_buttons {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 1rem;
+}
+
+.Language-Translator_textbox {
+ margin-bottom: 1rem;
+}
+
+.Language-Translator_translateBtn {
+ padding: 5px 10px;
+ background-color: #0b78b6;
+ border-radius: 5px;
+ color: #ffffff;
+ cursor: pointer;
+}
+
+.Language-Translator_wordCount {
+ color: #ffffff;
+ display: flex;
+ justify-content: flex-end;
+ font-size: 12px;
+ font-weight: 400;
+}
+
+.Language-Translator_imgBtns {
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ gap: 10px;
+}
+
+.Language-Translator_textarea {
+ resize: none;
+ background: none;
+ padding: 5px;
+ color: #ffffff;
+ height: 85%;
+ scrollbar-width: none;
+}
+
+.Language-Translator_img {
+ width: 30px;
+ height: 30px;
+ padding: 5px;
+ cursor: pointer;
+ background-color: #0b78b6;
+ border-radius: 7px;
+}
+
+.Language-Translator_langSelectBtn {
+ background: none;
+ width: 100px;
+}
+
+.Language-Translator_langSelectBtn,
+.Language-Translator_langButtons {
+ border-radius: 10px;
+ padding: 0 5px;
+ color: #ffffff;
+}
+
+.selected {
+ background-color: #5b60ab;
+}
+
+.Language-Translator_langSelectBtn:hover,
+.Language-Translator_langButtons:hover,
+.Language-Translator_langSelectBtn:focus {
+ background-color: #5b60ab;
+}
+
+.Language-Translator_textarea:focus,
+.Language-Translator_langButtons:focus {
+ outline: none;
+}
+
+.Language-Translator_img:hover,
+.Language-Translator_translateBtn:hover {
+ opacity: 1;
+ background-color: #0916d3;
+}
+
+@media (max-width: 1024px) {
+ .Language-Translator_body{
+ font-size: small;
+ }
+ .Language-Translator_container{
+ flex-direction: column;
+ align-items: center;
+ margin: 0;
+ }
+
+ .Language-Translator_sourceLang, .Language-Translator_targetLang{
+ width: 80vw;
+ height: 60%;
+ }
+}