From e0cfd43f77b5646a953c3a75a768b82198036962 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 02 2021 12:42:00 +0000
Subject: [PATCH 1/11] added translation


---

diff --git a/package.json b/package.json
index b9a180b..e48dee4 100644
--- a/package.json
+++ b/package.json
@@ -7,12 +7,17 @@
     "@babel/runtime": "^7.14.0",
     "clsx": "^1.1.1",
     "dateformat": "^3.0.3",
+    "i18n-js": "^3.8.0",
+    "i18next": "^20.3.5",
+    "i18next-browser-languagedetector": "^6.1.2",
+    "i18next-http-backend": "^1.3.0",
     "nanoid": "^3.1.22",
     "query-string": "^7.0.0",
     "ramda": "^0.27.1",
     "react": "^16.5.2",
     "react-animate-on-scroll": "^2.1.5",
     "react-dom": "^16.5.2",
+    "react-i18next": "^11.11.4",
     "react-redux": "^7.2.1",
     "react-router-dom": "^5.2.0",
     "react-scripts": "^3.3.0",
diff --git a/src/App.js b/src/App.js
index e04e484..c591221 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,4 +1,4 @@
-import React from "react"
+import React, { useEffect } from "react"
 
 import { Route, Switch } from "react-router"
 import { BrowserRouter } from "react-router-dom"
@@ -6,7 +6,16 @@ import { BrowserRouter } from "react-router-dom"
 import Wizard from "./wizard/Wizard"
 import LandingPage from "./landingpage/LandingPage"
 import NotFound from "./NotFound"
+import { useDispatch } from "react-redux"
+import { changeLanguage } from "./actions/reduxActions"
 const App = () => {
+  const dispatch = useDispatch()
+
+  useEffect(() => {
+    const lang = localStorage.getItem("locale") || "en"
+    dispatch(changeLanguage(lang))
+  }, [])
+
   return (
     <BrowserRouter basename={window.env.SUBDIR}>
       <Switch>
diff --git a/src/NotFound.js b/src/NotFound.js
index 9790a44..86ffa11 100644
--- a/src/NotFound.js
+++ b/src/NotFound.js
@@ -2,8 +2,11 @@ import React from "react"
 import Layout from "./layout/Layout"
 import { Link } from "react-router-dom"
 import { Container } from "reactstrap"
+import { useSelector } from "react-redux"
 
 const Wizard = () => {
+  const { i18n } = useSelector((state) => state.locale)
+
   return (
     <Layout>
       <Container>
@@ -14,7 +17,7 @@ const Wizard = () => {
               😢
             </span>
           </h3>
-          <Link to="/">Go to home page</Link>
+          <Link to="/"> {i18n.t("phrases.go_to_home")}</Link>
         </p>
       </Container>
     </Layout>
diff --git a/src/actions/reduxActions.js b/src/actions/reduxActions.js
index 1c96a21..b32bffc 100644
--- a/src/actions/reduxActions.js
+++ b/src/actions/reduxActions.js
@@ -85,3 +85,8 @@ export const toggleLandingPageModal = (status) => ({
   type: ActionTypes.TOGGLE_LANDING_PAGE_MODAL,
   payload: status,
 })
+
+export const changeLanguage = (lang) => ({
+  type: ActionTypes.CHANGE_LANGUAGE,
+  payload: lang,
+})
diff --git a/src/constants/index.js b/src/constants/index.js
index 7b60f04..f78a042 100644
--- a/src/constants/index.js
+++ b/src/constants/index.js
@@ -6,4 +6,5 @@ export default {
   UPDATE_LANDING_PAGE_API_CALL_STATUS: "UPDATE_LANDING_PAGE_API_CALL_STATUS",
   UPDATE_WIZARD_API_CALL_STATUS: "UPDATE_WIZARD_API_CALL_STATUS",
   TOGGLE_LANDING_PAGE_MODAL: "TOGGLE_LANDING_PAGE_MODAL",
+  CHANGE_LANGUAGE: "CHANGE_LANGUAGE",
 }
diff --git a/src/index.css b/src/index.css
index 44491a1..aef45f7 100644
--- a/src/index.css
+++ b/src/index.css
@@ -279,3 +279,11 @@ ol.steps > li {
 .bottom-padding {
   margin-bottom: 5px;
 }
+
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: inline-flex;
+  vertical-align: middle;
+  padding-left: 39em;
+}
diff --git a/src/index.js b/src/index.js
index ca0b333..55cbe3c 100644
--- a/src/index.js
+++ b/src/index.js
@@ -6,7 +6,6 @@ import "typeface-open-sans"
 
 import App from "./App"
 import * as serviceWorker from "./serviceWorker"
-
 import { createStore, applyMiddleware, compose } from "redux"
 import thunkMiddleware from "redux-thunk"
 import { createLogger } from "redux-logger"
diff --git a/src/landingpage/Blockers.js b/src/landingpage/Blockers.js
index 95e71bf..1cd815a 100644
--- a/src/landingpage/Blockers.js
+++ b/src/landingpage/Blockers.js
@@ -2,23 +2,26 @@ import React from "react"
 import { Row, Card, CardBody } from "reactstrap"
 import SourceLink from "./SourceLink"
 import BugStats from "./common/BugStats"
+import { useSelector } from "react-redux"
 
 const Blockers = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
+
+  console.log(i18n.t("phrases.blockers_and_FEs"))
+
   return (
-    props.data && (
-      <Card className="cards">
-        <CardBody>
-          <h1 className="text-center padded">
-            Fedora {props.release} blockers and FEs{" "}
-            <SourceLink href="https://qa.fedoraproject.org/blockerbugs/" />
-          </h1>
-          <Row>
-            <BugStats milestone={"Beta"} stats={props.data.beta} />
-            <BugStats milestone={"Final"} stats={props.data.final} />
-          </Row>
-        </CardBody>
-      </Card>
-    )
+    <Card className="cards">
+      <CardBody>
+        <h1 className="text-center padded">
+          Fedora {props.release} {i18n.t("phrases.blockers_and_FEs")}{" "}
+          <SourceLink href="https://qa.fedoraproject.org/blockerbugs/" />
+        </h1>
+        <Row>
+          <BugStats milestone={i18n.t("words.beta")} stats={props.data.beta} />
+          <BugStats milestone={i18n.t("words.final")} stats={props.data.final} />
+        </Row>
+      </CardBody>
+    </Card>
   )
 }
 
diff --git a/src/landingpage/Events.js b/src/landingpage/Events.js
index 4b3f87e..05991da 100644
--- a/src/landingpage/Events.js
+++ b/src/landingpage/Events.js
@@ -2,8 +2,11 @@ import React from "react"
 import dateFormat from "dateformat"
 import SourceLink from "./SourceLink"
 import { Card, CardBody, Row, Col } from "reactstrap"
+import { useSelector } from "react-redux"
 
 const Events = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
+
   const meetings = props.data.map((meeting) => {
     const old = new Date(meeting.start)
     var date = old.getDate()
@@ -28,7 +31,7 @@ const Events = (props) => {
     <Card className="cards">
       <CardBody>
         <h1 className="text-center padded">
-          Meetings and testdays in the next 7 days{" "}
+          {i18n.t("phrases.Meetings_and_testdays_in_the_next_7_days")}{" "}
           <SourceLink href="https://apps.fedoraproject.org/calendar/QA/" />
         </h1>
         <Col md={12} className="padded">
diff --git a/src/landingpage/LandingPage.js b/src/landingpage/LandingPage.js
index 7f2b89f..bcd136b 100644
--- a/src/landingpage/LandingPage.js
+++ b/src/landingpage/LandingPage.js
@@ -21,6 +21,7 @@ import { loadData, toggleLandingPageModal } from "../actions/reduxActions"
 import Cookies from "universal-cookie"
 
 const LandingPage = () => {
+  const { i18n } = useSelector((state) => state.locale)
   const cookies = new Cookies()
   let available_components = ["events", "blockers", "minutes"]
   let enabled_components = cookies.get("landingpage_enabled_components")
@@ -109,7 +110,7 @@ const LandingPage = () => {
               {components}
               <Col md={{ size: 12, offset: 2 }} className="text-right">
                 <Modal isOpen={showModal} toggle={toggleModal}>
-                  <ModalHeader>Visibility Configuration</ModalHeader>
+                  <ModalHeader>{i18n.t("phrases.visibility_configuration")}</ModalHeader>
                   <ModalBody>
                     {available_components.map((item) => (
                       <React.Fragment key={item}>
@@ -124,10 +125,10 @@ const LandingPage = () => {
                             />{" "}
                             <label className="custom-control-label clickable" htmlFor={item}>
                               {item === "events"
-                                ? "Meetings and testdays in the next 7 days"
+                                ? i18n.t("phrases.Meetings_and_testdays_in_the_next_7_days")
                                 : item === "minutes"
-                                ? "Fedora QA Meeting Minutes"
-                                : "Fedora 35 blockers and FEs"}
+                                ? i18n.t("phrases.Fedora_QA_Meeting_Minutes")
+                                : i18n.t("phrases.Fedora_35_blockers_and_FEs")}
                             </label>
                           </div>
                         </Col>
@@ -136,7 +137,7 @@ const LandingPage = () => {
                   </ModalBody>
                   <ModalFooter>
                     <Button color="primary" onClick={toggleModal}>
-                      Close
+                      {i18n.t("words.close")}
                     </Button>
                   </ModalFooter>
                 </Modal>
@@ -148,7 +149,7 @@ const LandingPage = () => {
                   className="pad btn btn-primary btn-block btn-wrap-text btn-lg active"
                   to="/wizard"
                   role="button">
-                  Click here, and help us make Fedora better! <i className="fas fa-search"></i>
+                  {i18n.t("phrases.do_you_have_some_spare_time")} <i className="fas fa-search"></i>
                 </Link>
               </Col>
             </Row>
diff --git a/src/landingpage/Minutes.js b/src/landingpage/Minutes.js
index 57d4249..5c7d7e0 100644
--- a/src/landingpage/Minutes.js
+++ b/src/landingpage/Minutes.js
@@ -1,6 +1,9 @@
 import React from "react"
+import { useSelector } from "react-redux"
 import { Card, CardBody } from "reactstrap"
 const Events = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
+
   const old = props.data.date
 
   let date = old.slice(0, 10)
@@ -12,20 +15,20 @@ const Events = (props) => {
   return (
     <Card className="cards">
       <CardBody className="minutes">
-        <h1 className="text-center padded">Fedora QA Meeting Minutes</h1>
+        <h1 className="text-center padded">{i18n.t("phrases.Fedora_QA_Meeting_Minutes")}</h1>
         <div className="events minutes">
           <a target="_blank" href={props.data.link} rel="noopener noreferrer">
             Latest minutes from {dating} {timing}
           </a>
           <br />
-          Visit{" "}
+          {i18n.t("words.Visit")}{" "}
           <a
             target="_blank"
             href="https://meetbot.fedoraproject.org/sresults/?group_id=fedora-qa&type=team"
             rel="noopener noreferrer">
             meetbot
           </a>{" "}
-          to see older.
+          {i18n.t("phrases.to_see_older")}.
           <br />
         </div>
       </CardBody>
diff --git a/src/landingpage/Timeline.js b/src/landingpage/Timeline.js
index 0ebeb64..4ad0ff1 100644
--- a/src/landingpage/Timeline.js
+++ b/src/landingpage/Timeline.js
@@ -1,22 +1,21 @@
 import React, { useState } from "react"
+import { useSelector } from "react-redux"
 import { Card, CardBody, Tooltip } from "reactstrap"
 import SourceLink from "./SourceLink"
 
 const Timeline = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
+
   const [tooltipOpen, setTooltipOpen] = useState(false)
 
   const toggle = () => setTooltipOpen(!tooltipOpen)
 
   const get_title = (summary) => {
     summary = summary.toLowerCase()
-    if (summary.includes("freeze"))
-      return "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted."
-    if (summary === "rawhide")
-      return "Next Fedora release hasn't been branched yet from rolling release branch."
-    if (summary.includes("branch"))
-      return "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release."
-    if (summary.includes("release"))
-      return "Release candidate was accepted (violating no milestone criteria) and was released."
+    if (summary.includes("freeze")) return i18n.t("phrases.freeze_Text")
+    if (summary === "rawhide") return i18n.t("phrases.Rawhide_Text")
+    if (summary.includes("branch")) return i18n.t("phrases.branch_Text")
+    if (summary.includes("release")) return i18n.t("phrases.release_Text")
   }
 
   const line = props.data.map((milestone) => {
@@ -47,7 +46,7 @@ const Timeline = (props) => {
       <Card>
         <CardBody>
           <h1 className="text-center padded" width="150">
-            Current development schedule{" "}
+            {i18n.t("phrases.current_development_schedule")}{" "}
             <span href="#" id="TooltipExample">
               <i className="fas fa-question-circle light"></i>
             </span>
@@ -56,7 +55,7 @@ const Timeline = (props) => {
               isOpen={tooltipOpen}
               target="TooltipExample"
               toggle={toggle}>
-              This is a timeline of current Fedora release schedule
+              {i18n.t("phrases.timeline_Text")}
             </Tooltip>{" "}
             <SourceLink href="https://fedorapeople.org/groups/schedule/" />
           </h1>
diff --git a/src/landingpage/common/BugStats.js b/src/landingpage/common/BugStats.js
index 30aa810..0d42fae 100644
--- a/src/landingpage/common/BugStats.js
+++ b/src/landingpage/common/BugStats.js
@@ -1,9 +1,12 @@
 import React from "react"
+import { useSelector } from "react-redux"
 import { Table, Col } from "reactstrap"
 
 const BugStats = (props) => {
   const { milestone, stats } = props
 
+  const { i18n } = useSelector((state) => state.locale)
+
   return (
     <Col md={6} className="bugscount">
       <Table>
@@ -18,19 +21,19 @@ const BugStats = (props) => {
           {stats && (
             <>
               <tr>
-                <td>Proposed Blockers</td>
+                <td>{i18n.t("phrases.Proposed_Blockers")}</td>
                 <td>{stats.blockers_proposed}</td>
               </tr>
               <tr>
-                <td>Accepted Blockers</td>
+                <td>{i18n.t("phrases.Accepted_Blockers")}</td>
                 <td>{stats.blockers}</td>
               </tr>
               <tr>
-                <td>Proposed FEs</td>
+                <td>{i18n.t("phrases.Proposed_FEs")}</td>
                 <td>{stats.fe_proposed}</td>
               </tr>
               <tr>
-                <td>Accepted FEs</td>
+                <td>{i18n.t("phrases.Accepted_FEs")}</td>
                 <td>{stats.fe}</td>
               </tr>
             </>
diff --git a/src/layout/Footer.js b/src/layout/Footer.js
index f6cd591..f1447ac 100644
--- a/src/layout/Footer.js
+++ b/src/layout/Footer.js
@@ -1,16 +1,18 @@
-import React, { Component } from "react"
+import React from "react"
+import { useSelector } from "react-redux"
 
-class Footer extends Component {
-  render() {
-    return (
-      <div className="footer">
-        <div className="container">
-          <a href="https://pagure.io/fedora-qa/landingpage">Source</a> on Pagure{" "}
-          <span className="float-right">version 0.1.0</span>
-        </div>
+const Footer = () => {
+  const { i18n } = useSelector((state) => state.locale)
+
+  return (
+    <div className="footer">
+      <div className="container">
+        <a href="https://pagure.io/fedora-qa/landingpage">{i18n.t("words.source")}</a>{" "}
+        {i18n.t("phrases.on_Pagure")}{" "}
+        <span className="float-right">{i18n.t("words.version")} 0.1.0</span>
       </div>
-    )
-  }
+    </div>
+  )
 }
 
 export default Footer
diff --git a/src/layout/Masthead.js b/src/layout/Masthead.js
index 6b54173..e428a46 100644
--- a/src/layout/Masthead.js
+++ b/src/layout/Masthead.js
@@ -1,16 +1,34 @@
-import React from "react"
+import React, { useState } from "react"
 import { Link, useLocation } from "react-router-dom"
-import { Container, NavbarBrand, Navbar, Button } from "reactstrap"
+import {
+  Container,
+  NavbarBrand,
+  Navbar,
+  Button,
+  Dropdown,
+  DropdownToggle,
+  DropdownMenu,
+  DropdownItem,
+  ButtonDropdown,
+} from "reactstrap"
 import { API_CALL_STATUS_VALUES } from "../constants/ProjectConstants"
 import { ROUTE } from "../constants/Routes"
 import logo from "./logo.png"
-import { loadData, loadWizardData, toggleLandingPageModal } from "../actions/reduxActions"
+import {
+  changeLanguage,
+  loadData,
+  loadWizardData,
+  toggleLandingPageModal,
+} from "../actions/reduxActions"
 import { shallowEqual, useDispatch, useSelector } from "react-redux"
 
 const selectWizardFromStore = (state) => state.wizard.api_call_status
 const selectLandingPageFromStore = (state) => state.landing_page.api_call_status
 
 const Masthead = () => {
+  const { i18n } = useSelector((state) => state.locale)
+  const [dropdownOpen, setDropdownOpen] = useState(false)
+
   const location = useLocation()
   const dispatch = useDispatch()
 
@@ -48,6 +66,12 @@ const Masthead = () => {
     dispatch(toggleLandingPageModal(modalState))
   }
 
+  const handleClick = (lang) => {
+    dispatch(changeLanguage(lang))
+  }
+
+  const toggle = () => setDropdownOpen((prevState) => !prevState)
+
   return (
     <Navbar className="masthead">
       <Container>
@@ -56,6 +80,16 @@ const Masthead = () => {
             <img src={logo} alt="" />
           </Link>
         </NavbarBrand>
+        {ROUTE.LANDING_PAGE === location.pathname && (
+          <ButtonDropdown isOpen={dropdownOpen} toggle={toggle}>
+            <DropdownToggle caret>{i18n.t("phrases.select_language")}</DropdownToggle>
+            <DropdownMenu>
+              <DropdownItem onClick={() => handleClick("en")}>
+                {i18n.t("words.english")}
+              </DropdownItem>
+            </DropdownMenu>
+          </ButtonDropdown>
+        )}
         <div>
           {api_call_status() === API_CALL_STATUS_VALUES.STARTED ||
           api_call_status() === API_CALL_STATUS_VALUES.RETRYING ? (
@@ -65,7 +99,7 @@ const Masthead = () => {
                   <span className="fa-lg mr-1 text-danger">
                     <i className="fas fa-exclamation-triangle"></i>
                   </span>
-                  <span className="mr-3">Retrying</span>
+                  <span className="mr-3">{i18n.t("words.Retrying")}</span>
                 </>
               )}
               <span className="fa-lg mr-3">
@@ -78,7 +112,7 @@ const Masthead = () => {
               <span className="fa-lg mr-1">
                 <i class="fas fa-exclamation-triangle"></i>
               </span>
-              <span className="mr-3">Failed to fetch data!</span>
+              <span className="mr-3">{i18n.t("phrases.Failed_to_fetch_data")}</span>
               {handleRetry && (
                 <Button outline color="danger" size="sm" onClick={handleRetry}>
                   Retry
@@ -86,6 +120,7 @@ const Masthead = () => {
               )}
             </>
           )}
+
           {ROUTE.LANDING_PAGE === location.pathname && (
             <Button color="primary" onClick={toggleModal}>
               <i className="fas fa-cog"></i>
diff --git a/src/reducers/index.js b/src/reducers/index.js
index c1dad6b..731ecbb 100644
--- a/src/reducers/index.js
+++ b/src/reducers/index.js
@@ -1,4 +1,6 @@
 import ActionTypes from "../constants"
+import i18n from "i18n-js"
+import en from "../translation/en"
 
 const defaultState = {
   landing_page: {
@@ -21,6 +23,9 @@ const defaultState = {
   landing_page_controls: {
     showModal: false,
   },
+  locale: {
+    i18n: i18n,
+  },
 }
 
 export default (state = defaultState, action) => {
@@ -66,6 +71,22 @@ export default (state = defaultState, action) => {
           showModal: action.payload,
         },
       }
+
+    case ActionTypes.CHANGE_LANGUAGE:
+      let locale = action.payload
+      localStorage.setItem("locale", locale)
+      i18n.locale = locale
+      i18n.fallbacks = true
+      i18n.translations = { en }
+      let newI18n = { ...i18n }
+      return {
+        ...state,
+        locale: {
+          ...state.locale,
+          i18n: newI18n,
+        },
+      }
+
     default:
       return {
         ...state,
diff --git a/src/translation/en.js b/src/translation/en.js
new file mode 100644
index 0000000..64a06fb
--- /dev/null
+++ b/src/translation/en.js
@@ -0,0 +1,257 @@
+export default {
+  words: {
+    hello: "Hello",
+    disable: "Disable",
+    enable: "Enable",
+    Rawhide: "Rawhide",
+    Upgrade: "Upgrade",
+    Miscellaneous: "Miscellaneous",
+    Run: "Run",
+    Note: "Note:",
+    final: "Final",
+    Visit: "Visit",
+    enter: "Enter",
+    notes: "Notes",
+    beta: "Beta",
+    close: "Close",
+    source: "Source",
+    version: "version",
+    english: "english",
+    Retrying: "Retrying",
+    Installation: "Installation",
+    the: "The",
+    Desktop: "Desktop",
+    Base: "Base",
+    Server: "Server",
+    Cloud: "Cloud",
+    Bodhi: "Bodhi",
+    Bugs: "Bugs",
+    Preperation: "Preperation",
+    Testing: "Testing",
+    Reporting: "Reporting",
+    Easyfix: "Easyfix",
+    Manual_Testing: "Manual Testing",
+    Beginner_Guide: "Beginner Guide",
+  },
+  phrases: {
+    Bodhi_Karma: "Bodhi Karma",
+    Show_me: "Show me",
+    Fedora_Manual_Testing: "Fedora Manual Testing",
+    Preperation_text:
+      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+    Installation_text0:
+      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+    testing_text:
+      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+    reporting_text:
+      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+    sudo_dnf_update_refresh: "sudo dnf update --refresh",
+    FAS_Sign_up_page: "FAS Sign-up page",
+    Test_Cases: "Test Cases",
+    and_or: "and/or",
+    fedora_easy_karma: "fedora-easy-karma",
+    sections_in_the_detailed_output: "sections in the detailed output.",
+    sudo_dnf_distro_sync: "sudo dnf distro-sync",
+    Update_Feedback_Guidelines: " Update Feedback Guidelines",
+    sudo_dnf_install_fedora_easy_karma: "sudo dnf install fedora-easy-karma",
+    dnf_enablerepo_updates_testing_list_refresh_upgrades:
+      "dnf --enablerepo=updates-testing list --refresh --upgrades",
+    cloud_text: " Even thought the",
+    Cloud_provider_setup: " Cloud provider setup",
+    sudo_dnf_enablerepo_updates_testing_update_PACKAGE_NAME:
+      "sudo dnf --enablerepo=updates-testing update PACKAGE_NAME",
+    fedora_easy_karma_fas_username_FAS_USERNAME: "fedora-easy-karma --fas-username=FAS_USERNAME",
+    guides_for_more_details: " guides for more details.",
+    is_a_group: "Is a group containing several projects. Expand to see more.",
+    cloud_text1:
+      "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
+    Failed_to_fetch_data: "Failed to fetch data!",
+    cloud_text2: "Have a look at the",
+    Installation_text: "testcases generally deal with a part of the installation procedure.",
+    Installation_text1:
+      "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
+    Installation_text2:
+      "some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
+    select_language: "Select Language",
+    base_text: "testcases cover the system's basic functionality just after a clean installation.",
+    on_Pagure: "on Pagure",
+    Pro_tip: " Pro tip",
+    base_text1:
+      "  Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine.",
+    change_language: "Change Language",
+    Desktop_text: "testcases cover basic functionality of the desktop environment.",
+    base_text3:
+      "using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase.",
+    Desktop_text1:
+      "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+    save_changes: "Save changes",
+    configure_visibility: "Configure visibility of the info-cards",
+    test_cases: "Test Cases",
+    go_to_home: "Go to home page ",
+    for_a_web: "for a web-browser",
+    to_see_older: "to see older",
+    User_interface: "User interface",
+    Test_Matrix: "Test Matrix",
+    Few_hours: "Few hours",
+    Task_that_can_take_up_to_Few_Hours: "Task that can take up to Few Hours",
+    update_testing: "updates-testing",
+    section_in_the: "sections in the detailed output.",
+    and_look_for: ",and look for",
+    Storage_devices: "Storage devices",
+    Server_text:
+      "testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+    What_is_Karma: "What is Karma",
+    Several_days: "Several days",
+    Task_that_can_take_up_to_Several_Days: "Task that can take up to Several Days",
+    Im_a_complete_beginner: "I'm a complete beginner",
+    please_guide_to_me_this: "please guide to me this",
+    Ive_already_done_this: "I've already done this",
+    Show_me_the_test_cases: "Show me the test cases",
+    Proposed_FEs: "Proposed FEs",
+    Accepted_FEs: "Accepted FEs",
+    Tell_me_More: "Tell me more!",
+    IoT_Test_Day: "[F34] IoT Test Day",
+    ARM_disk_images: "ARM disk images",
+    Not_sure_how: "Not sure how?",
+    to_skip_it: "to skip it.",
+    repo_by: " repo, by running ",
+    the_name_of: " The name of the ISO image you used ",
+    testcases_generally: "testcases generally deal with a part of the installation procedure.",
+    is_a_group_containing: " - Is a group containing several projects. Expand to see more.",
+    note_what_you_did:
+      "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
+    share_your_notes_on_the:
+      "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net",
+    if_you_are_not_familiar:
+      "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+    you_can_either_install:
+      "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+    the_updates_are: "The updates are kept in",
+    interface_for_submitting:
+      "interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly.",
+    and_choose_a: "and choose a package you know.",
+    and_create_it: "and create it.",
+    brief_description_of_what:
+      " Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
+    try_to_reproduce_the:
+      "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
+    choose_an_update: "Choose an update to test",
+    have_a_look_at: "Have a look at the available packages in ",
+    make_sure_your: "Make sure your system is up-to-date: ",
+    note_the_user: "Note the username and password, you will need it later on.",
+    sure_let_me_do_it: "Sure, let me do it!",
+    somtimes_the_update:
+      " Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it",
+    an_update_can:
+      "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
+    Audio_Test_Day: "[F34] Audio Test Day",
+    it_identifies: "It identifies the packages installed from the ",
+    and_report_what_you_found_out: "and report what you found out.",
+    Install_the_package: "Install the package",
+    repository_and_matches: "repository, and matches them to the updates in Bodhi.",
+    and_test_whether_it_works: "and test whether it works, as you would expect.",
+    Fedora_Media_Writer: "Fedora Media Writer",
+    Choose_an_update_to_test: "Choose an update to test",
+    Install_fedora: "Install fedora-easy-karma tool: ",
+    once_you_get_the_bug_reported:
+      "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
+    we_already_mentioned_bodhi: "We already mentioned Bodhi, several times. Instead of using the",
+    repo_may_be_installed:
+      " repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible.",
+    users_or_automated:
+      "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
+    which_acts_as_a_gatekeeper:
+      "which acts as a gatekeeper between new package releases and the stable repositories. ",
+    Installation_repositories: "Installation repositories",
+    Release_blocking_environments: "elease-blocking environments ",
+    Default_boot_and_install: "Default boot and install (x86_64)",
+    Default_boot_and_install_aarch64: "Default boot and install (aarch64)",
+    Custom_storage_configuration: "Custom storage configuration",
+    Release_blocking_desktops: "Release-blocking desktops",
+    Accepted_Blockers: "Accepted Blockers",
+    Fedora_QA_Meeting: "Fedora QA Meeting",
+    Testing_Bodhi_Karma: "Testing - Bodhi Karma",
+    Programming_Easyfix: "Programming - Easyfix",
+    Proposed_Blockers: "Proposed Blockers	",
+    Need_some_tips: "Need some tips?",
+    Sourceon_Pagure: "Sourceon Pagure",
+    version: "version 0.1.0",
+    still_not_sure: "Still not sure? Just press ",
+    when_you_test: "when you test a text-editor, or",
+    Make_your_choice: "Make your choice!",
+    Restore_the_stable: "Restore the stable-packages on your system by running ",
+    Other_packages_from: "Other packages from",
+    New_to_fedora: "New to fedora-easy-karma?",
+    Dont_have_one_yet: "Don't have one yet?",
+    Nothing_sparked_joy: " Nothing sparked joy?",
+    Beta_Freeze: "Beta Freeze (starts at 1400 UTC)",
+    Final_Freeze: "Final Freeze (starts at 1400 UTC) ",
+    Blocker_Review_Meeting: "Blocker Review Meeting",
+    Fedora_35_blockers_and_FEs: "Fedora 35 blockers and FEs",
+    Fedora_QA_Meeting_Minutes: "Fedora QA Meeting Minutes",
+    blockers_and_FEs: "blockers and FEs",
+    Visit_meetbot_to_see_older: "Visit meetbot to see older.",
+    current_development_schedule: "Current development schedule",
+    Latest_minutes_from: "Latest minutes from 2021-03-22-15.00",
+    i_opened_a_couple: " I opened a couple of tabs, and browsed random pages.",
+    Branch_Fedora_Linux_34_from_Rawhide: "Branch Fedora Linux 34 from Rawhide",
+    Advanced_custom_storage_configuration: "Advanced custom storage configuration",
+    Beta_Release_Public_Availability: "Beta Release Public Availability",
+    Fedora_Accounts_System: "Fedora Accounts System (FAS) account is required.",
+    Final_Release_Public_Availability: "Final Release Public Availability (GA)",
+    Testing_Fedora_Release_validation: "Testing - Fedora Release validation",
+    Meetings_and_testdays_in_the_next_7_days: "Meetings and testdays in the next 7 days",
+    Tell_me_more_about: "Tell me more about the process! ",
+    to_mark_the: "to mark the package as broken.",
+    if_you_dont:
+      " If you don't feel like reading a wall of text, at least pot together a small document containing:",
+    shows_the_URL:
+      "shows the URL of the relevant update near the bottom of the text output - look for URL like",
+    you_can_have_a_look:
+      "You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+    you_are_then_presented:
+      "You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+    to_mark_positive:
+      "to mark positive karma (the update works just fine, as far as you can tell), or",
+    not_sure_you_can: "Not sure you can judge the package's state? Have a look at the",
+    add_a_comment:
+      "Add a comment - even if it works, try to describe what you tested. It can be as easy as",
+    do_you_have_some_spare_time: "Click here, and help us make Fedora better!",
+    The_goal_of_release_validation_testing_is_to_ensure:
+      "The goal of release validation testing is to ensure the release candidate meets the requirements for Fedora releases. You will manually execute test cases to verify installation and basic functionality of the various Fedora products.",
+    Simple_voting_system_that_allows_for_esters_to_provide_feedback_as:
+      "Simple voting system that allows for testers to provide feedback as to whether a given package update works or not.",
+    Number_of_projects_within_Fedora_which_are_looking_for_help:
+      "Number of projects within Fedora which are looking for help. These tasks have been evaluated as easy entrance point.",
+    None_of_the_above_looks_interesting_to_you:
+      "None of the above looks interesting to you? We'd be happy if you looked around at",
+    Before_a_new_version_of_a_package:
+      "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
+    The_Base_testcases_cover_the_system:
+      "The Base testcases cover the system's basic functionality just after a clean installation",
+    Most_times_you_will_be_asked_to_perform_a_clean_Fedora_installation:
+      "Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine",
+    Pro_tip_using_a_snapshot_of_cleanly_installed_Virtual_machine_is_just_fine:
+      "Pro tip: using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase",
+    Even_thought_the_Cloud_testcases_are_best_done_in_the_specific_environments:
+      "Even thought the Cloud testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.Have a look at the Cloud provider setup guides for more details.",
+    The_Desktop_testcases_cover_basic_functionality_of_the_desktop_environment:
+      "The Desktop testcases cover basic functionality of the desktop environment.You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+    The_Installation_testcases_generally_deal_with_a_part_of_the_installation_procedure:
+      "The Installation testcases generally deal with a part of the installation procedure",
+    You_will_certainly_need_an_installation_ISO:
+      "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
+    Absolutely_make_sure:
+      "Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment",
+    i_tried_openning: "I tried openning and editing a document, and it worked",
+    freeze_Text:
+      "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
+    Rawhide_Text: "Next Fedora release hasn't been branched yet from rolling release branch.",
+    branch_Text:
+      "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
+    release_Text:
+      "Release candidate was accepted (violating no milestone criteria) and was released.",
+    timeline_Text: "This is a timeline of current Fedora release schedule",
+    visibility_configuration: "Visibility Configuration",
+  },
+}
diff --git a/src/wizard/Easyfix.js b/src/wizard/Easyfix.js
index 384d63f..1ddaa0f 100644
--- a/src/wizard/Easyfix.js
+++ b/src/wizard/Easyfix.js
@@ -1,6 +1,7 @@
 import React from "react"
 import { CollapsableCard } from "./components"
 import { Col } from "reactstrap"
+import { useSelector } from "react-redux"
 
 export default (props) => {
   return (
@@ -15,6 +16,7 @@ export default (props) => {
 }
 
 const EasyfixSection = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
   var title = props.title
   var subsections = Object.keys(props.data)
 
@@ -34,7 +36,7 @@ const EasyfixSection = (props) => {
     })
     title = (
       <span>
-        <b>{title}</b> - Is a group containing several projects. Expand to see more.
+        <b>{title}</b> - {i18n.t("phrases.is_a_group")}
       </span>
     )
 
diff --git a/src/wizard/FedoraEasyKarma.js b/src/wizard/FedoraEasyKarma.js
index 5c29c4b..3832782 100644
--- a/src/wizard/FedoraEasyKarma.js
+++ b/src/wizard/FedoraEasyKarma.js
@@ -1,129 +1,141 @@
 import React from "react"
+import { useSelector } from "react-redux"
 import { CollapsableBadge, ModalBadge } from "./components"
 
 export default (props) => {
+  const { i18n } = useSelector((state) => state.locale)
   if (props.data === undefined) return null
   else
     return (
       <div>
-        <h1>What is Karma</h1>
-        Before a new version of a package is pushed to the Fedora&apos;s Updates repository, it
-        needs to be tested and proved functional.{" "}
+        <h1>{i18n.t("phrases.What_is_Karma")}</h1>
+        {i18n.t("phrases.Before_a_new_version_of_a_package")}{" "}
         <CollapsableBadge expand_text="Tell me more about the process!">
-          The updates are kept in{" "}
+          {i18n.t("phrases.the_updates_are")}{" "}
           <a target="_blank" rel="noopener noreferrer" href="https://bodhi.fedoraproject.org/">
-            Bodhi
+            {i18n.t("words.Bodhi")}
           </a>
-          , which acts as a gatekeeper between new package releases and the stable repositories.{" "}
-          Users (or automated systems) can then provide feedback in form of positive/negative
-          Karma, marking the update as working (or not) within the scope of their expectations. An
-          update can (and usually does) consist of several packages (rpms), that are going through
-          the acceptance process together.
+          , {i18n.t("phrases.which_acts_as_a_gatekeeper")} {i18n.t("phrases.users_or_automated")}{" "}
+          {i18n.t("phrases.an_update_can")}
         </CollapsableBadge>
-        <h1 style={{ marginTop: 1 + "em" }}>Sure, let me do it!</h1>
+        <h1 style={{ marginTop: 1 + "em" }}>{i18n.t("phrases.sure_let_me_do_it")}</h1>
         <ol className="steps">
           <li>
-            Fedora Accounts System (FAS) account is required.{" "}
+            {i18n.t("phrases.Fedora_Accounts_System")}{" "}
             <CollapsableBadge expand_text="Don&#39;t have one yet?">
               <ul>
                 <li>
-                  Visit{" "}
+                  {i18n.t("words.Visit")}{" "}
                   <a
                     target="_blank"
                     rel="noopener noreferrer"
                     href="https://admin.fedoraproject.org/accounts/user/new">
-                    FAS Sign-up page
+                    {i18n.t("phrases.FAS_Sign_up_page")}
                   </a>{" "}
-                  and create it.
+                  {i18n.t("phrases.and_create_it")}
                 </li>
-                <li>Note the username and password, you will need it later on.</li>
+                <li> {i18n.t("phrases.note_the_user")}</li>{" "}
               </ul>
             </CollapsableBadge>
           </li>
           <li>
-            Make sure your system is up-to-date: <code>sudo dnf update --refresh</code>
+            {i18n.t("phrases.make_sure_your")}
+            <code>{i18n.t("phrases.sudo_dnf_update_refresh")}</code>
           </li>
           <li>
-            Install fedora-easy-karma tool: <code>sudo dnf install fedora-easy-karma</code>
+            {i18n.t("phrases.Install_fedora")}
+            <code>{i18n.t("phrases.sudo_dnf_install_fedora_easy_karma")}</code>
           </li>
           <li>
-            Choose an update to test{" "}
+            {i18n.t("phrases.choose_an_update")}{" "}
             <CollapsableBadge expand_text="Not sure how?">
-              Have a look at the available packages in <code>updates-testing</code> repo, by
-              running <code>dnf --enablerepo=updates-testing list --refresh --upgrades</code> and
-              choose a package you know.
+              {i18n.t("phrases.have_a_look_at")}
+              <code> {i18n.t("phrases.update_testing")}</code> {i18n.t("phrases.repo_by")}
+              <code>
+                {i18n.t("phrases.dnf_enablerepo_updates_testing_list_refresh_upgrades")}
+              </code>{" "}
+              {i18n.t("phrases.and_choose_a")}
             </CollapsableBadge>
           </li>
           <li>
-            Install the package{" "}
-            <code>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME</code>, and test
-            whether it works, as you would expect.
+            {i18n.t("phrases.Install_the_package")}{" "}
+            <code>
+              {i18n.t("phrases.sudo_dnf_enablerepo_updates_testing_update_PACKAGE_NAME")}
+            </code>
+            , {i18n.t("phrases.and_test_whether_it_works")}
             <br />
-            <strong>Note:</strong> Other packages from <code>updates-testing</code> repo may be
-            installed as dependencies (shown during the installation process). Try to test those
-            too, if possible.{" "}
+            <strong> {i18n.t("words.Note")}</strong> {i18n.t("phrases.Other_packages_from")}
+            <code> {i18n.t("phrases.update_testing")}</code>
+            {i18n.t("phrases.repo_may_be_installed")}{" "}
             <CollapsableBadge expand_text="Need some tips?">
-              Sometimes, the update associated with the package you just installed fixes some
-              specific bugs, or has testcases associated with it.
+              {i18n.t("phrases.somtimes_the_update")}.
               <br />
-              Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code>, and look for{" "}
-              <code>Bugs</code>, <code>Test Cases</code>, and/or <code>Notes</code> sections in the
-              detailed output.{" "}
+              {i18n.t("words.Run")}{" "}
+              <code>{i18n.t("phrases.fedora_easy_karma_fas_username_FAS_USERNAME")}</code>,
+              {i18n.t("phrases.and_look_for")} <code>{i18n.t("words.Bugs")}</code>,{" "}
+              <code>{i18n.t("phrases.Test_Cases")}</code>, {i18n.t("phrases.and_or")}{" "}
+              <code>{i18n.t("words.notes")}</code>{" "}
+              {i18n.t("phrases.sections_in_the_detailed_output")}{" "}
               <ModalBadge expand_text="Want something a bit nicer?">
-                We already mentioned Bodhi, several times. Instead of using the{" "}
-                <code>fedora-easy-karma</code> interface for submitting Karma and/or learning about
-                the Update, you can visit Bodhi directly.
+                {i18n.t("phrases.we_already_mentioned_bodhi")}{" "}
+                <code>{i18n.t("phases.fedora-easy-karma")}</code>
+                {i18n.t("phrases.interface_for_submitting")}
                 <br />
-                <code>fedora-easy-karma</code> shows the URL of the relevant update near the bottom
-                of the text output - look for URL like{" "}
+                <code>
+                  {" "}
+                  {i18n.t("phrases.")} {i18n.t("phases.fedora-easy-karma")}
+                </code>{" "}
+                {i18n.t("phrases.shows_the_URL")}{" "}
                 <code>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</code>.
                 <br />
-                You can have a look at other people's comments, the afore-mentioned Bugs or Test
-                Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.
+                {i18n.t("phrases.you_can_have_a_look")}
               </ModalBadge>
             </CollapsableBadge>
           </li>
           <li>
-            Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code> and report what you
-            found out.{" "}
+            {i18n.t("words.Run")}
+            <code>{i18n.t("phrases.fedora_easy_karma_fas_username_FAS_USERNAME")}</code>{" "}
+            {i18n.t("phrases.and_report_what_you_found_out")}{" "}
             <CollapsableBadge expand_text="New to fedora-easy-karma?">
-              It identifies the packages installed from the <code>updates-testing</code>{" "}
-              repository, and matches them to the updates in Bodhi.
+              {i18n.t("phrases.it_identifies")}
+              <code> {i18n.t("phrases.update_testing")}</code>{" "}
+              {i18n.t("phrases.repository_and_matches")}
               <br />
-              You are then presented with the relevant updates one-by-one, to submit Karma and a
-              comment.{" "}
+              {i18n.t("phrases.you_are_then_presented")}{" "}
               <ModalBadge expand_text="Not sure what Karma means?">
                 <ol>
                   <li>
-                    Enter <code>1</code> to mark positive karma (the update works just fine, as far
-                    as you can tell), or <code>-1</code> to mark the package as broken. <br />
-                    Not sure you can judge the package's state? Have a look at the{" "}
+                    {i18n.t("words.enter")}
+                    <code>1</code> {i18n.t("phrases.to_mark_positive")}+ <code>-1</code>{" "}
+                    {i18n.t("phrases.to_mark_the")} <br />
+                    {i18n.t("phrases.not_sure_you_can")}{" "}
                     <a
                       target="_blank"
                       href="https://fedoraproject.org/wiki/QA:Update_feedback_guidelines"
                       rel="noopener noreferrer">
-                      Update Feedback Guidelines
+                      {i18n.t("phrases.Update_Feedback_Guidelines")}
                     </a>
                     <br />
-                    Still not sure? Just press <code>Enter</code> to skip it.
+                    {i18n.t("phrases.still_not_sure")}
+                    <code>{i18n.t("words.enter")}</code>
+                    {i18n.t("phrases.to_skip_it")}
                   </li>
                   <li>
-                    Add a comment - even if it works, try to describe what you tested. It can be as
-                    easy as <code>I tried openning and editing a document, and it worked.</code>{" "}
-                    when you test a text-editor, or{" "}
-                    <code>I opened a couple of tabs, and browsed random pages.</code> for a
-                    web-browser.
+                    {i18n.t("phrases.add_a_comment")}{" "}
+                    <code> {i18n.t("phrases.i_tried_openning")}</code>
+                    {i18n.t("phrases.when_you_test")}{" "}
+                    <code>{i18n.t("phrases.i_opened_a_couple")}</code>{" "}
+                    {i18n.t("phrases.for_a_web")}.
                     <br />
-                    Absolutely make sure to provide reasonable amount of detail, when submitting
-                    negative karma - ideally, you should also create a bugreport, and reference it
-                    in the comment.
+                    {i18n.t("phrases.Absolutely_make_sure")}
                   </li>
                 </ol>
               </ModalBadge>
             </CollapsableBadge>
           </li>
           <li>
-            Restore the stable-packages on your system by running <code>sudo dnf distro-sync</code>
+            {i18n.t("phrases.Restore_the_stable")}{" "}
+            <code>{i18n.t("phrases.sudo_dnf_distro_sync")}</code>
           </li>
         </ol>
       </div>
diff --git a/src/wizard/Manual.js b/src/wizard/Manual.js
index 3583336..db6149b 100644
--- a/src/wizard/Manual.js
+++ b/src/wizard/Manual.js
@@ -3,51 +3,50 @@ import { useHistory, useLocation } from "react-router-dom"
 import queryString from "query-string"
 
 import Tab from "./manualTesting/Tab"
+import { useSelector } from "react-redux"
 
-const data = [
-  {
-    title: "Preperation",
-    description:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  },
-  {
-    title: "Installation",
-    description:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  },
-  {
-    title: "Testing",
-    description:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  },
-  {
-    title: "Reporting",
-    description:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  },
-]
+const Manual = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
 
-const addDetailsToData = (data) => {
-  return data.map(({ description, title }, index) => {
-    return {
-      title,
-      description,
-      id: `box${index + 1}`,
-      nextBox: data.length === index + 1 ? "final" : `box${index + 2}`,
-    }
-  })
-}
+  const data = [
+    {
+      title: i18n.t("words.Preperation"),
+      description: i18n.t("phrases.Preperation_text"),
+    },
+    {
+      title: i18n.t("words.Installation"),
+      description: i18n.t("phrases.Installation_text0"),
+    },
+    {
+      title: i18n.t("words.Testing"),
+      description: i18n.t("phrases.testing_text"),
+    },
+    {
+      title: i18n.t("words.Reporting"),
+      description: i18n.t("phrases.reporting_text"),
+    },
+  ]
 
-const createVisibilityObject = (data) => {
-  const detailedData = addDetailsToData(data)
-  const visibility = {}
-  detailedData.forEach((item) => {
-    visibility[item.id] = 0
-  })
-  return visibility
-}
+  const addDetailsToData = (data) => {
+    return data.map(({ description, title }, index) => {
+      return {
+        title,
+        description,
+        id: `box${index + 1}`,
+        nextBox: data.length === index + 1 ? "final" : `box${index + 2}`,
+      }
+    })
+  }
+
+  const createVisibilityObject = (data) => {
+    const detailedData = addDetailsToData(data)
+    const visibility = {}
+    detailedData.forEach((item) => {
+      visibility[item.id] = 0
+    })
+    return visibility
+  }
 
-const Manual = (props) => {
   const [check, setCheck] = useState([])
   const tabs = addDetailsToData(data) || []
   const [visibility, setVisibility] = useState(createVisibilityObject(data) || {})
diff --git a/src/wizard/Wizard.js b/src/wizard/Wizard.js
index 2459584..862467d 100644
--- a/src/wizard/Wizard.js
+++ b/src/wizard/Wizard.js
@@ -9,6 +9,7 @@ import { useParams } from "react-router"
 import WizardNavigation from "./WizardNavigation"
 
 const Wizard = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
   const { step } = props
   const query = useParams()
   const selectAction = (state) => state.wizard.api_call_status
@@ -35,7 +36,7 @@ const Wizard = (props) => {
             {query.issues || query.provider === "fedora_easy_karma" ? (
               <Col md="12">
                 <h5 className="padded text-center">
-                  None of the above looks interesting to you? We'd be happy if you looked around at{" "}
+                  {i18n.t("phrases.None_of_the_above_looks_interesting_to_you")}{" "}
                   <a href="https://whatcanidoforfedora.org/">https://whatcanidoforfedora.org/</a>!
                 </h5>
               </Col>
diff --git a/src/wizard/WizardNavigation.js b/src/wizard/WizardNavigation.js
index 0e97b99..add31a1 100644
--- a/src/wizard/WizardNavigation.js
+++ b/src/wizard/WizardNavigation.js
@@ -7,7 +7,7 @@ import * as R from "ramda"
 
 function WizardNavigation(props) {
   const query = useParams()
-
+  const { i18n } = useSelector((state) => state.locale)
   const { step } = props
 
   const selectAction = (state) => state.wizard.all_actions
@@ -59,24 +59,24 @@ function WizardNavigation(props) {
     createBreadcrumbItem(
       "Duration",
       step.slice(-1) > "2" ? "enable" : "disabled",
-      query.duration === "few_hours" ? "Few Hours" : "Several Days"
+      query.duration === "few_hours" ? i18n.t("phrases.Few_hours") : i18n.t("phrases.Several_days")
     ),
     createBreadcrumbItem(
       "Provider",
       step.slice(-1) > "3" ? "enable" : "disabled",
       query.provider === "fedora_manual_testing"
-        ? "Fedora Manual Testing"
+        ? i18n.t("phrases.Fedora_Manual_Testing")
         : query.provider === "easyfix"
-        ? "Easyfix"
-        : "Bodhi Karma"
+        ? i18n.t("words.Easyfix")
+        : i18n.t("phrases.Bodhi_Karma")
     ),
     createBreadcrumbItem(
       "Actions",
       step.slice(-1) > "4" ? "enable" : "disabled",
       query.action === "manual_testing"
-        ? "Manual Testing"
+        ? i18n.t("words.Manual_Testing")
         : query.action === "beginner_guide"
-        ? "Beginner Guide"
+        ? i18n.t("words.Beginner_Guide")
         : query.action
         ? getTags().filter((a) => a.toLowerCase() === decodeURIComponent(query.action))[0] ||
           query.action.charAt(0).toUpperCase() + query.action.slice(1)
diff --git a/src/wizard/step/Step1.js b/src/wizard/step/Step1.js
index cd6ae98..6fa7453 100644
--- a/src/wizard/step/Step1.js
+++ b/src/wizard/step/Step1.js
@@ -1,8 +1,10 @@
 import React, { useState } from "react"
+import { useSelector } from "react-redux"
 import { useHistory } from "react-router-dom"
 import { Card, CardText, Col, Row } from "reactstrap"
 
 const Step1 = (props) => {
+  const { i18n } = useSelector((state) => state.locale)
   const [selectedItem, setItem] = useState()
   const history = useHistory()
   const handleStep = (option) => {
@@ -23,9 +25,9 @@ const Step1 = (props) => {
             handleStep("few_hours")
           }}>
           <h1 className="padded">
-            Few Hours <i className="fas fa-calendar-day"></i>
+            {i18n.t("phrases.Few_hours")} <i className="fas fa-calendar-day"></i>
           </h1>
-          <CardText>Task that can take up to Few Hours </CardText>
+          <CardText>{i18n.t("phrases.Task_that_can_take_up_to_Few_Hours")} </CardText>
         </Card>
       </Col>
       <Col sm="6">
@@ -40,9 +42,9 @@ const Step1 = (props) => {
             handleStep("several_days")
           }}>
           <h1 className="padded">
-            Several Days <i className="fas fa-calendar-week"></i>
+            {i18n.t("phrases.Several_days")} <i className="fas fa-calendar-week"></i>
           </h1>
-          <CardText>Task that can take up to Several Days </CardText>
+          <CardText>{i18n.t("phrases.Task_that_can_take_up_to_Several_Days")} </CardText>
         </Card>
       </Col>
     </Row>
diff --git a/src/wizard/step/Step3.js b/src/wizard/step/Step3.js
index 74787c8..90f9220 100644
--- a/src/wizard/step/Step3.js
+++ b/src/wizard/step/Step3.js
@@ -8,6 +8,7 @@ import { useHistory } from "react-router"
 
 const Step3 = (props) => {
   const { query } = props
+  const { i18n } = useSelector((state) => state.locale)
 
   const [selectedItem, setItem] = useState()
   const history = useHistory()
@@ -60,8 +61,8 @@ const Step3 = (props) => {
                 handleStep("beginner_guide")
               }}>
               <CardBody>
-                <h1 className="padded">I'm a complete beginner</h1>
-                <CardText> please guide to me this </CardText>
+                <h1 className="padded">{i18n.t("phrases.Im_a_complete_beginner")}</h1>
+                <CardText> {i18n.t("phrases.please_guide_to_me_this")} </CardText>
               </CardBody>
             </Card>
           </Col>
@@ -72,8 +73,8 @@ const Step3 = (props) => {
                 handleStep("manual_testing")
               }}>
               <CardBody>
-                <h1 className="padded">I've already done this</h1>
-                <CardText>Show me the test cases </CardText>
+                <h1 className="padded">{i18n.t("phrases.Ive_already_done_this")}</h1>
+                <CardText>{i18n.t("phrases.Show_me_the_test_cases")} </CardText>
               </CardBody>
             </Card>
           </Col>
diff --git a/src/wizard/step/Step4.js b/src/wizard/step/Step4.js
index 6b7b3ca..63c2a5a 100644
--- a/src/wizard/step/Step4.js
+++ b/src/wizard/step/Step4.js
@@ -7,6 +7,7 @@ import Manual from "../Manual"
 
 const Step4 = (props) => {
   const { query } = props
+  const { i18n } = useSelector((state) => state.locale)
 
   const history = useHistory()
 
@@ -88,64 +89,59 @@ const Step4 = (props) => {
       case "Installation":
         return (
           <div className="text-left">
-            The <strong>Installation</strong> testcases generally deal with a part of the
-            installation procedure.
+            {i18n.t("words.the")} <strong>{i18n.t("words.Installation")}</strong>{" "}
+            {i18n.t("phrases.Installation_text")}
             <br />
-            You will certainly need an installation ISO, and either a Virtual or Bare-metal machine
-            to run the test.
+            {i18n.t("phrases.Installation_text1")}
             <br />
-            <i>Note:</i> some (not that many, though) of these testcases require Bare-metal
-            machine. Be sure to read the Description of the testcase carefully.
+            <i>{i18n.t("words.Note")}</i> {i18n.t("phrases.Installation_text2")}
           </div>
         )
 
       case "Desktop":
         return (
           <div className="text-left">
-            The <strong>Desktop</strong> testcases cover basic functionality of the desktop
-            environment.
+            {i18n.t("words.the")} <strong>{i18n.t("words.Desktop")}</strong>{" "}
+            {i18n.t("phrases.Desktop_text")}
             <br />
-            You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live
-            image instead.
+            {i18n.t("phrases.Desktop_text1")}
           </div>
         )
 
       case "Base":
         return (
           <div className="text-left">
-            The <strong>Base</strong> testcases cover the system&#x27;s basic functionality just
-            after a clean installation.
+            {i18n.t("words.the")} <strong>{i18n.t("words.Base")}</strong>{" "}
+            {i18n.t("phrases.base_text")}
             <br />
-            Most times, you will be asked to perform a clean Fedora installation. You can use
-            either Virtual or Bare-metal machine.
+            {i18n.t("phrases.base_text1")}
             <br />
-            <i>Pro tip:</i> using a snapshot of cleanly installed Virtual machine is just fine. No
-            need to reinstall for every testcase.
+            <i>{i18n.t("phrases.Pro_tip")}:</i> {i18n.t("phrases.base_text3")}
           </div>
         )
 
       case "Server":
         return (
           <div className="text-left">
-            The <strong>Server</strong> testcases usually require multiple machines to test the
-            server-client behaviour, and might feel a bit advanced.
+            {i18n.t("words.the")} <strong>{i18n.t("words.Server")}</strong>{" "}
+            {i18n.t("phrases.Server_text")}
           </div>
         )
 
       case "Cloud":
         return (
           <div className="text-left">
-            Even thought the <strong>Cloud</strong> testcases are best done in the specific
-            environments like EC2 or Openstack, you can also perform them locally using Testcloud.
+            {i18n.t("cloud_text")} <strong>{i18n.t("words.Cloud")}</strong>{" "}
+            {i18n.t("phrases.cloud_text1")}
             <br />
-            Have a look at the{" "}
+            {i18n.t("phrases.cloud_text2")}{" "}
             <a
               target="_blank"
               rel="noopener noreferrer"
               href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
-              Cloud provider setup
+              {i18n.t("phrases.Cloud_provider_setup")}
             </a>{" "}
-            guides for more details.
+            {i18n.t("phrases.guides_for_more_details")}
           </div>
         )
 
diff --git a/yarn.lock b/yarn.lock
index 27a512e..d3601aa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1136,6 +1136,13 @@
   dependencies:
     regenerator-runtime "^0.13.4"
 
+"@babel/runtime@^7.12.0", "@babel/runtime@^7.14.5", "@babel/runtime@^7.14.6":
+  version "7.14.8"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446"
+  integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
 "@babel/template@^7.12.13", "@babel/template@^7.4.0", "@babel/template@^7.8.6":
   version "7.12.13"
   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
@@ -3273,6 +3280,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
+cross-fetch@3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
+  integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==
+  dependencies:
+    node-fetch "2.6.1"
+
 cross-spawn@7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14"
@@ -5145,6 +5159,13 @@ html-minifier-terser@^5.0.1:
     relateurl "^0.2.7"
     terser "^4.6.3"
 
+html-parse-stringify@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2"
+  integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==
+  dependencies:
+    void-elements "3.1.0"
+
 html-webpack-plugin@4.0.0-beta.11:
   version "4.0.0-beta.11"
   resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz#3059a69144b5aecef97708196ca32f9e68677715"
@@ -5244,6 +5265,32 @@ https-browserify@^1.0.0:
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
+i18n-js@^3.8.0:
+  version "3.8.0"
+  resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-3.8.0.tgz#b8fd6b12e1d88cb71f9806c29bca7c31c012e504"
+  integrity sha512-hDsGgPuvw/2P+lXSbOafAwspK8Ste8YrwuuUg17W3wEcO1JkQxBlPgsN1t2+852nTnz4YSYTjZc/1nAA2PC/nw==
+
+i18next-browser-languagedetector@^6.1.2:
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.2.tgz#68565a28b929cbc98ab6a56826ef2faf0e927ff8"
+  integrity sha512-YDzIGHhMRvr7M+c8B3EQUKyiMBhfqox4o1qkFvt4QXuu5V2cxf74+NCr+VEkUuU0y+RwcupA238eeolW1Yn80g==
+  dependencies:
+    "@babel/runtime" "^7.14.6"
+
+i18next-http-backend@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/i18next-http-backend/-/i18next-http-backend-1.3.0.tgz#fcafb9583cf2942a9c669bd1868ec84a11410536"
+  integrity sha512-49Sf7Dt6GHeFYlCcCTwD39bkaiw7ld8RlGCXw6ZERabN7SXaLM6qRGnd+XbFdPhJHNMHvt/38XiRtJcEgu5Arg==
+  dependencies:
+    cross-fetch "3.1.4"
+
+i18next@^20.3.5:
+  version "20.3.5"
+  resolved "https://registry.yarnpkg.com/i18next/-/i18next-20.3.5.tgz#14308b79a3f1cafb24fdcd8e182d3673baf1e979"
+  integrity sha512-//MGeU6n4TencJmCgG+TCrpdgAD/NDEU/KfKQekYbJX6QV7sD/NjWQdVdBi+bkT0snegnSoB7QhjSeatrk3a0w==
+  dependencies:
+    "@babel/runtime" "^7.12.0"
+
 iconv-lite@0.4.24, iconv-lite@^0.4.24:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -7075,6 +7122,11 @@ no-case@^3.0.4:
     lower-case "^2.0.2"
     tslib "^2.0.3"
 
+node-fetch@2.6.1:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
+  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+
 node-forge@^0.10.0:
   version "0.10.0"
   resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
@@ -8725,6 +8777,14 @@ react-error-overlay@^6.0.7:
   resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a"
   integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==
 
+react-i18next@^11.11.4:
+  version "11.11.4"
+  resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.11.4.tgz#f6f9a1c827e7a5271377de2bf14db04cb1c9e5ce"
+  integrity sha512-ayWFlu8Sc7GAxW1PzMaPtzq+yiozWMxs0P1WeITNVzXAVRhC0Httkzw/IiODBta6seJRBCLrtUeFUSXhAIxlRg==
+  dependencies:
+    "@babel/runtime" "^7.14.5"
+    html-parse-stringify "^3.0.1"
+
 react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4:
   version "16.13.1"
   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
@@ -10634,6 +10694,11 @@ vm-browserify@^1.0.1:
   resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
   integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
 
+void-elements@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09"
+  integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=
+
 w3c-hr-time@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"

From ad08dc196ff4997b42a7b82a848aa83c2a5f9f19 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 03 2021 13:30:13 +0000
Subject: [PATCH 2/11] fixed splits phrases and formatted strings


---

diff --git a/src/App.js b/src/App.js
index c591221..fb0eb5b 100644
--- a/src/App.js
+++ b/src/App.js
@@ -14,7 +14,7 @@ const App = () => {
   useEffect(() => {
     const lang = localStorage.getItem("locale") || "en"
     dispatch(changeLanguage(lang))
-  }, [])
+  }, [dispatch])
 
   return (
     <BrowserRouter basename={window.env.SUBDIR}>
diff --git a/src/landingpage/Blockers.js b/src/landingpage/Blockers.js
index 1cd815a..f716df8 100644
--- a/src/landingpage/Blockers.js
+++ b/src/landingpage/Blockers.js
@@ -7,8 +7,6 @@ import { useSelector } from "react-redux"
 const Blockers = (props) => {
   const { i18n } = useSelector((state) => state.locale)
 
-  console.log(i18n.t("phrases.blockers_and_FEs"))
-
   return (
     <Card className="cards">
       <CardBody>
diff --git a/src/landingpage/Minutes.js b/src/landingpage/Minutes.js
index 5c7d7e0..0f61424 100644
--- a/src/landingpage/Minutes.js
+++ b/src/landingpage/Minutes.js
@@ -18,7 +18,7 @@ const Events = (props) => {
         <h1 className="text-center padded">{i18n.t("phrases.Fedora_QA_Meeting_Minutes")}</h1>
         <div className="events minutes">
           <a target="_blank" href={props.data.link} rel="noopener noreferrer">
-            Latest minutes from {dating} {timing}
+            {i18n.t("phrases.Latest_minutes_from")} {dating} {timing}
           </a>
           <br />
           {i18n.t("words.Visit")}{" "}
@@ -26,7 +26,7 @@ const Events = (props) => {
             target="_blank"
             href="https://meetbot.fedoraproject.org/sresults/?group_id=fedora-qa&type=team"
             rel="noopener noreferrer">
-            meetbot
+            {i18n.t("words.meetbot")}
           </a>{" "}
           {i18n.t("phrases.to_see_older")}.
           <br />
diff --git a/src/layout/Masthead.js b/src/layout/Masthead.js
index e428a46..bc889f2 100644
--- a/src/layout/Masthead.js
+++ b/src/layout/Masthead.js
@@ -5,7 +5,6 @@ import {
   NavbarBrand,
   Navbar,
   Button,
-  Dropdown,
   DropdownToggle,
   DropdownMenu,
   DropdownItem,
diff --git a/src/translation/en.js b/src/translation/en.js
index 64a06fb..ec7cebb 100644
--- a/src/translation/en.js
+++ b/src/translation/en.js
@@ -7,8 +7,10 @@ export default {
     Upgrade: "Upgrade",
     Miscellaneous: "Miscellaneous",
     Run: "Run",
+    Description: "Description",
     Note: "Note:",
     final: "Final",
+    Result: "Result",
     Visit: "Visit",
     enter: "Enter",
     notes: "Notes",
@@ -22,6 +24,7 @@ export default {
     the: "The",
     Desktop: "Desktop",
     Base: "Base",
+    or: "or",
     Server: "Server",
     Cloud: "Cloud",
     Bodhi: "Bodhi",
@@ -32,11 +35,83 @@ export default {
     Easyfix: "Easyfix",
     Manual_Testing: "Manual Testing",
     Beginner_Guide: "Beginner Guide",
+    meetbot: "meetbot",
+    primary: "primary",
+    See: "See!",
+    warning: "warning",
+    Expand: "Expand",
+    Workstation: "Workstation",
+    Minimal: "Minimal",
+    for_the: "for the",
+    Testcase: "Testcase",
+    Setup: "Setup",
+    here: "here",
+    missing_results: "missing results.",
+    web_interface: "web-interface",
+    relval: "relval",
+    matrix: "matrix",
+    Edit: "Edit",
+    danger: "danger",
   },
   phrases: {
+    Tescase_matrix: "Tescase matrix",
+    I_found_a_bug: "I found a bug!",
+    result_fail_your: "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
+    if_you_dont_like_like_reading:
+      "If you don't feel like reading a wall of text, at least pot together a small document containing:",
+    Awesome_Ideally_read_up_on: " Awesome! Ideally read up on",
+    Study_the: "Study the",
+    package_first: " package first), or modify the",
+    directly_by_clicking_on_the: " directly by clicking on the",
+    result_pass_your: "result|pass|YOUR_NAME_HERE|",
+    link_next_to_the_Matrice_header_and_put: " link next to the Matrice's header, and put",
+    in_the_appropriate_spot: "in the appropriate spot.",
+    dont_have_an: "Don't have an IRC client?",
+    on_command_line: "on command line (make sure to install the",
+    relval_report_results: "relval report-results",
+    Great_Either_use: "Great! Either use",
+    Everything_went_well: "Everything went well",
+    should_give_you_a: "should give you a general idea of what is being tested",
+    if_you_are: " If you are not that familiar with IRC, you can use the",
+    The_testcase_structure_is_not_making_sense: "The testcase structure is not making sense?",
+    Get_your_hands: "Get your hands dirty, and test the hell out of it!",
+    Just_enter_a_Nickname:
+      "just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+    The_testcases_are_generally_split_into_four_sections:
+      "The testcases are generally split into four sections:",
+    describes_the_steps: "describes the steps to take before you begin working on the testcase",
+    For_this_particular_testcase: "For this particular testcase,",
+    thoroughly_to_be_sure_you_know_what_to_do: " thoroughly, to be sure you know what to do.",
     Bodhi_Karma: "Bodhi Karma",
+    describes_you_to_check:
+      "describe what you should check while testing in order to decide whether it Passed of Failed",
+    How_to_test: "How to test",
+    based_on_the: "Based on the enviromnent, select and download and appropriate ISO",
+    contains_the_individual:
+      "contains the individual steps to take in order to perform the testcase",
     Show_me: "Show me",
+    Expected_results: "Expected results",
+    Maybe_you_are_stuck:
+      "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
+    Column_which_usually:
+      "column, which usually means you can use any media/architecture available.",
+    testcases_but_you_can: "testcases, but you can also encouter a generic",
+    Have_a_look:
+      "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
+    missing_results: "missing results.",
+    Should_give_you: "should give you a general idea of  what is being tested",
+    briefly_just: " briefly, just to have a general idea of what you will be doing.",
+    Read_the: " Read the",
+    Not_sure_what_that_means: "Not sure what that means?",
+    Not_making_much_sense: "Not making much sense?",
+    Column_which_actually:
+      "column, which usually means you can use any  media/architecture available.",
+    ModalBadge:
+      " Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
+    Identify_the_testcase_and_environment_in_our:
+      "Identify the testcase and `environment` in our ",
     Fedora_Manual_Testing: "Fedora Manual Testing",
+    Not_sure_what_Karma_means: "Not sure what Karma means?",
     Preperation_text:
       " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
     Installation_text0:
@@ -50,6 +125,7 @@ export default {
     Test_Cases: "Test Cases",
     and_or: "and/or",
     fedora_easy_karma: "fedora-easy-karma",
+    fedora_Q_a: "<div><h1>fkfhrry</h1></div>",
     sections_in_the_detailed_output: "sections in the detailed output.",
     sudo_dnf_distro_sync: "sudo dnf distro-sync",
     Update_Feedback_Guidelines: " Update Feedback Guidelines",
@@ -113,6 +189,9 @@ export default {
     IoT_Test_Day: "[F34] IoT Test Day",
     ARM_disk_images: "ARM disk images",
     Not_sure_how: "Not sure how?",
+    Make_sure_to: "Make sure to read about identifying the environment above.",
+    Most_of_the_time:
+      " Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
     to_skip_it: "to skip it.",
     repo_by: " repo, by running ",
     the_name_of: " The name of the ISO image you used ",
@@ -161,7 +240,7 @@ export default {
     users_or_automated:
       "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
     which_acts_as_a_gatekeeper:
-      "which acts as a gatekeeper between new package releases and the stable repositories. ",
+      ", which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together. ",
     Installation_repositories: "Installation repositories",
     Release_blocking_environments: "elease-blocking environments ",
     Default_boot_and_install: "Default boot and install (x86_64)",
@@ -175,6 +254,7 @@ export default {
     Proposed_Blockers: "Proposed Blockers	",
     Need_some_tips: "Need some tips?",
     Sourceon_Pagure: "Sourceon Pagure",
+    Want_something_a_bit_nicer: "Want something a bit nicer?",
     version: "version 0.1.0",
     still_not_sure: "Still not sure? Just press ",
     when_you_test: "when you test a text-editor, or",
@@ -192,7 +272,7 @@ export default {
     blockers_and_FEs: "blockers and FEs",
     Visit_meetbot_to_see_older: "Visit meetbot to see older.",
     current_development_schedule: "Current development schedule",
-    Latest_minutes_from: "Latest minutes from 2021-03-22-15.00",
+    Latest_minutes_from: "Latest minutes from",
     i_opened_a_couple: " I opened a couple of tabs, and browsed random pages.",
     Branch_Fedora_Linux_34_from_Rawhide: "Branch Fedora Linux 34 from Rawhide",
     Advanced_custom_storage_configuration: "Advanced custom storage configuration",
diff --git a/src/wizard/Easyfix.js b/src/wizard/Easyfix.js
index 1ddaa0f..390c40d 100644
--- a/src/wizard/Easyfix.js
+++ b/src/wizard/Easyfix.js
@@ -29,7 +29,11 @@ const EasyfixSection = (props) => {
       )
 
       return (
-        <CollapsableCard key={k} title={title} expand_class="primary" expand_text="See!">
+        <CollapsableCard
+          key={k}
+          title={title}
+          expand_class={i18n.t("words.primary")}
+          expand_text={i18n.t("words.See")}>
           <EasyfixLinksList data={props.data[k]} />
         </CollapsableCard>
       )
@@ -41,7 +45,11 @@ const EasyfixSection = (props) => {
     )
 
     return (
-      <CollapsableCard key={title} title={title} expand_class="warning" expand_text="Expand!">
+      <CollapsableCard
+        key={title}
+        title={title}
+        expand_class={i18n.t("words.warning")}
+        expand_text={i18n.t("words.Expand!")}>
         {subsections}
       </CollapsableCard>
     )
@@ -65,7 +73,11 @@ const EasyfixSection = (props) => {
     ))
 
     return (
-      <CollapsableCard key={title} title={title} expand_class="primary" expand_text="See!">
+      <CollapsableCard
+        key={title}
+        title={title}
+        expand_class={i18n.t("words.primary")}
+        expand_text={i18n.t("words.See")}>
         {links}
       </CollapsableCard>
     )
diff --git a/src/wizard/FedoraEasyKarma.js b/src/wizard/FedoraEasyKarma.js
index 3832782..7274f8a 100644
--- a/src/wizard/FedoraEasyKarma.js
+++ b/src/wizard/FedoraEasyKarma.js
@@ -10,19 +10,18 @@ export default (props) => {
       <div>
         <h1>{i18n.t("phrases.What_is_Karma")}</h1>
         {i18n.t("phrases.Before_a_new_version_of_a_package")}{" "}
-        <CollapsableBadge expand_text="Tell me more about the process!">
+        <CollapsableBadge expand_text={i18n.t("phrases.Tell_me_more_about")}>
           {i18n.t("phrases.the_updates_are")}{" "}
           <a target="_blank" rel="noopener noreferrer" href="https://bodhi.fedoraproject.org/">
             {i18n.t("words.Bodhi")}
           </a>
-          , {i18n.t("phrases.which_acts_as_a_gatekeeper")} {i18n.t("phrases.users_or_automated")}{" "}
-          {i18n.t("phrases.an_update_can")}
+          {i18n.t("phrases.which_acts_as_a_gatekeeper")}
         </CollapsableBadge>
         <h1 style={{ marginTop: 1 + "em" }}>{i18n.t("phrases.sure_let_me_do_it")}</h1>
         <ol className="steps">
           <li>
             {i18n.t("phrases.Fedora_Accounts_System")}{" "}
-            <CollapsableBadge expand_text="Don&#39;t have one yet?">
+            <CollapsableBadge expand_text={i18n.t("phrases.Dont_have_one_yet")}>
               <ul>
                 <li>
                   {i18n.t("words.Visit")}{" "}
@@ -48,7 +47,7 @@ export default (props) => {
           </li>
           <li>
             {i18n.t("phrases.choose_an_update")}{" "}
-            <CollapsableBadge expand_text="Not sure how?">
+            <CollapsableBadge expand_text={i18n.t("phrases.Not_sure_how")}>
               {i18n.t("phrases.have_a_look_at")}
               <code> {i18n.t("phrases.update_testing")}</code> {i18n.t("phrases.repo_by")}
               <code>
@@ -67,7 +66,7 @@ export default (props) => {
             <strong> {i18n.t("words.Note")}</strong> {i18n.t("phrases.Other_packages_from")}
             <code> {i18n.t("phrases.update_testing")}</code>
             {i18n.t("phrases.repo_may_be_installed")}{" "}
-            <CollapsableBadge expand_text="Need some tips?">
+            <CollapsableBadge expand_text={i18n.t("phrases.Need_some_tips")}>
               {i18n.t("phrases.somtimes_the_update")}.
               <br />
               {i18n.t("words.Run")}{" "}
@@ -76,7 +75,7 @@ export default (props) => {
               <code>{i18n.t("phrases.Test_Cases")}</code>, {i18n.t("phrases.and_or")}{" "}
               <code>{i18n.t("words.notes")}</code>{" "}
               {i18n.t("phrases.sections_in_the_detailed_output")}{" "}
-              <ModalBadge expand_text="Want something a bit nicer?">
+              <ModalBadge expand_text={i18n.t("phrases.Want_something_a_bit_nicer")}>
                 {i18n.t("phrases.we_already_mentioned_bodhi")}{" "}
                 <code>{i18n.t("phases.fedora-easy-karma")}</code>
                 {i18n.t("phrases.interface_for_submitting")}
@@ -96,13 +95,13 @@ export default (props) => {
             {i18n.t("words.Run")}
             <code>{i18n.t("phrases.fedora_easy_karma_fas_username_FAS_USERNAME")}</code>{" "}
             {i18n.t("phrases.and_report_what_you_found_out")}{" "}
-            <CollapsableBadge expand_text="New to fedora-easy-karma?">
+            <CollapsableBadge expand_text={i18n.t("phrases.New_to_fedora")}>
               {i18n.t("phrases.it_identifies")}
               <code> {i18n.t("phrases.update_testing")}</code>{" "}
               {i18n.t("phrases.repository_and_matches")}
               <br />
               {i18n.t("phrases.you_are_then_presented")}{" "}
-              <ModalBadge expand_text="Not sure what Karma means?">
+              <ModalBadge expand_text={i18n.t("phrases.Not_sure_what_Karma_means")}>
                 <ol>
                   <li>
                     {i18n.t("words.enter")}
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index aca861a..473f33a 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -1,4 +1,5 @@
 import React, { useState } from "react"
+import { useSelector } from "react-redux"
 import { Modal, ModalHeader, ModalBody, ModalFooter } from "reactstrap"
 import { CollapsableCard, ModalBadge } from "./components"
 
@@ -22,6 +23,7 @@ const FedoraManualTestingItemsListSub2 = (props) => {
 }
 
 export function FedoraManualTestingItemsListSub1(props) {
+  const { i18n } = useSelector((state) => state.locale)
   var subsections = Object.keys(props.data).map((k) => (
     <li key={"li" + k}>
       <span>{k}</span>
@@ -34,65 +36,60 @@ export function FedoraManualTestingItemsListSub1(props) {
   switch (props.title) {
     case "Installation":
       l1 = (
-        <div>
-          The <strong>Installation</strong> testcases generally deal with a part of the
-          installation procedure.
+        <div className="text-left">
+          {i18n.t("words.the")} <strong>{i18n.t("words.Installation")}</strong>{" "}
+          {i18n.t("phrases.Installation_text")}
           <br />
-          You will certainly need an installation ISO, and either a Virtual or Bare-metal machine
-          to run the test.
+          {i18n.t("phrases.Installation_text1")}
           <br />
-          <i>Note:</i> some (not that many, though) of these testcases require Bare-metal machine.
-          Be sure to read the Description of the testcase carefully.
+          <i>{i18n.t("words.Note")}</i> {i18n.t("phrases.Installation_text2")}
         </div>
       )
       break
     case "Desktop":
       l1 = (
-        <div>
-          The <strong>Desktop</strong> testcases cover basic functionality of the desktop
-          environment.
+        <div className="text-left">
+          {i18n.t("words.the")} <strong>{i18n.t("words.Desktop")}</strong>{" "}
+          {i18n.t("phrases.Desktop_text")}
           <br />
-          You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live
-          image instead.
+          {i18n.t("phrases.Desktop_text1")}
         </div>
       )
       break
     case "Base":
       l1 = (
-        <div>
-          The <strong>Base</strong> testcases cover the system&#x27;s basic functionality just
-          after a clean installation.
+        <div className="text-left">
+          {i18n.t("words.the")} <strong>{i18n.t("words.Base")}</strong>{" "}
+          {i18n.t("phrases.base_text")}
           <br />
-          Most times, you will be asked to perform a clean Fedora installation. You can use either
-          Virtual or Bare-metal machine.
+          {i18n.t("phrases.base_text1")}
           <br />
-          <i>Pro tip:</i> using a snapshot of cleanly installed Virtual machine is just fine. No
-          need to reinstall for every testcase.
+          <i>{i18n.t("phrases.Pro_tip")}:</i> {i18n.t("phrases.base_text3")}
         </div>
       )
       break
     case "Server":
       l1 = (
-        <div>
-          The <strong>Server</strong> testcases usually require multiple machines to test the
-          server-client behaviour, and might feel a bit advanced.
+        <div className="text-left">
+          {i18n.t("words.the")} <strong>{i18n.t("words.Server")}</strong>{" "}
+          {i18n.t("phrases.Server_text")}
         </div>
       )
       break
     case "Cloud":
       l1 = (
-        <div>
-          Even thought the <strong>Cloud</strong> testcases are best done in the specific
-          environments like EC2 or Openstack, you can also perform them locally using Testcloud.
+        <div className="text-left">
+          {i18n.t("cloud_text")} <strong>{i18n.t("words.Cloud")}</strong>{" "}
+          {i18n.t("phrases.cloud_text1")}
           <br />
-          Have a look at the{" "}
+          {i18n.t("phrases.cloud_text2")}{" "}
           <a
             target="_blank"
             rel="noopener noreferrer"
             href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
-            Cloud provider setup
+            {i18n.t("phrases.Cloud_provider_setup")}
           </a>{" "}
-          guides for more details.
+          {i18n.t("phrases.guides_for_more_details")}
         </div>
       )
       break
@@ -108,6 +105,7 @@ export function FedoraManualTestingItemsListSub1(props) {
 }
 
 export function FedoraManualTestingItem(props) {
+  const { i18n } = useSelector((state) => state.locale)
   const extra_data = props.data.extra_data
 
   const tc_url = extra_data.testcase_url
@@ -126,21 +124,22 @@ export function FedoraManualTestingItem(props) {
     case "Base":
       environment_examples = (
         <span>
-          <code>Workstation</code>, <code>Server</code>, <code>Xfce</code> or <code>Minimal</code>
+          <code>{i18n.t("words.Workstation")}</code>, <code>{i18n.t("words.Server")}</code>,{" "}
+          <code>Xfce</code> {i18n.t("words.or")} <code>{i18n.t("words.Minimal")}</code>
         </span>
       )
       break
     case "Desktop":
       environment_examples = (
         <span>
-          <code>Workstation</code> or <code>KDE</code>
+          <code>{i18n.t("words.Workstation")}</code> {i18n.t("words.or")} <code>KDE</code>
         </span>
       )
       break
     case "Server":
       environment_examples = (
         <span>
-          <code>x86_64</code> or <code>aarch64</code>
+          <code>x86_64</code> {i18n.t("words.or")} <code>aarch64</code>
         </span>
       )
       break
@@ -154,84 +153,82 @@ export function FedoraManualTestingItem(props) {
     <ModalInfo buttonLabel={name}>
       <ol className="steps">
         <li>
-          Identify the testcase and `environment` in our{" "}
+          {i18n.t("phrases.Identify_the_testcase_and_environment_in_our")}
           <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
-            Tescase matrix
+            {i18n.t("phrases.Tescase_matrix")}
           </a>{" "}
-          <ModalBadge expand_text="Not sure what that means?">
+          <ModalBadge expand_text={i18n.t("phrases.Not_sure_what_that_means")}>
             <ul>
               <li>
-                Have a look at the matrix. The rows are the testcases, and the columns are the
-                environments. Most of the time, these are {environment_examples} for the {testtype}{" "}
-                testcases, but you can also encouter a generic <code>Result</code> column, which
-                usually means you can use any media/architecture available.
+                {i18n.t("phrases.ModalBadge")} {environment_examples} {i18n.t("words.for_the")}{" "}
+                {testtype} {i18n.t("phrases.testcase_but_you_can")}{" "}
+                <code>{i18n.t("words.Result")}</code> {i18n.t("phrases.Column_which_actually")}
               </li>
               <li>
-                For this particular testcase, <code>{extra_data.envs.join(", ")}</code>{" "}
-                {extra_data.envs.length > 1 ? "environments are" : "environment is"} missing
-                results.
+                {i18n.t("phrases.For_this_particular_testcase")}{" "}
+                <code>{extra_data.envs.join(", ")}</code>{" "}
+                {extra_data.envs.length > 1 ? "environments are" : "environment is"}{" "}
+                {i18n.t("phrases.missing_results")}
               </li>
             </ul>
           </ModalBadge>
         </li>
 
         <li>
-          Read the{" "}
+          {i18n.t("phrases.Read_the")}{" "}
           <a target="_blank" rel="noopener noreferrer" href={tc_url}>
-            Testcase
+            {i18n.t("words.Testcase")}
           </a>{" "}
-          briefly, just to have a general idea of what you will be doing.{" "}
-          <ModalBadge expand_text="Not making much sense?">
-            The testcases are generally split into four sections:
+          {i18n.t("phrases.briefly_just")}{" "}
+          <ModalBadge expand_text={i18n.t("phrases.Not_making_much_sense")}>
+            {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections")}
             <ul>
               <li>
-                <strong>Description</strong> should give you a general idea of what is being tested
+                <strong>{i18n.t("words.Description")}</strong> {i18n.t("phrases.Should_give_you")}
               </li>
               <li>
-                <strong>Setup</strong> describes the steps to take before you begin working on the
-                testcase
+                <strong>{i18n.t("words.Setup")}</strong> {i18n.t("phrases.describes_the_steps")}
               </li>
               <li>
-                <strong>How to test</strong> contains the individual steps to take in order to
-                perform the testcase
+                <strong>{i18n.t("phrases.How_to_test")}</strong>{" "}
+                {i18n.t("phrases.contains_the_individual")}
               </li>
               <li>
-                <strong>Expected results</strong> describe what you should check while testing in
-                order to decide whether it Passed of Failed
+                <strong>{i18n.t("phrases.Expected_results")}</strong>{" "}
+                {i18n.t("phrases.describes_you_to_check")}
               </li>
             </ul>
           </ModalBadge>
         </li>
 
         <li>
-          Based on the enviromnent, select and download and appropriate ISO{" "}
+          {i18n.t("phrases.based_on_the")}{" "}
           <a
             target="_blank"
             rel="noopener noreferrer"
             href="https://fedoraproject.org/wiki/Test_Results:Current_Installation_Test#How_to_test">
-            here
+            {i18n.t("words.here")}
           </a>
           .{" "}
-          <ModalBadge expand_text="Not sure how?">
+          <ModalBadge expand_text={i18n.t("phrases.Not_sure_how")}>
             <ul>
+              <li>{i18n.t("phrases.Most_of_the_time")}</li>
               <li>
-                Most of the time Workstation Live, or Server DVD are fine, but sometimes there are
-                specific products (e.g. Xfce) to be tested
-              </li>
-              <li>
-                Make sure to read about identifying the environment above.{" "}
-                <ModalBadge expand_text="See">
+                {i18n.t("phrases.Make_sure_to")}{" "}
+                <ModalBadge expand_text={i18n.t("words.See")}>
                   <ul>
                     <li>
-                      Have a look at the matrix. The rows are the testcases, and the columns are
-                      the environments. Most of the time, these are {environment_examples} for the{" "}
-                      {testtype} testcases, but you can also encouter a generic <code>Result</code>{" "}
-                      column, which usually means you can use any media/architecture available.
+                      {i18n.t("phrases.Have_a_look")} {environment_examples}{" "}
+                      {i18n.t("words.for_the")} {testtype}{" "}
+                      {i18n.t("phrases.testcases_but_you_can")}{" "}
+                      <code>{i18n.t("words.Result")}</code>{" "}
+                      {i18n.t("phrases.Column_which_usually")}
                     </li>
                     <li>
-                      For this particular testcase, <code>{extra_data.envs.join(", ")}</code>{" "}
-                      {extra_data.envs.length > 1 ? "environments are" : "environment is"} missing
-                      results.
+                      {i18n.t("phrases.For_this_particular_testcase")}
+                      <code>{extra_data.envs.join(", ")}</code>{" "}
+                      {extra_data.envs.length > 1 ? "environments are" : "environment is"}{" "}
+                      {i18n.t("phrases.missing_results")}
                     </li>
                   </ul>
                 </ModalBadge>
@@ -241,107 +238,104 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          Study the{" "}
+          {i18n.t("phrases.Study_the")}{" "}
           <a target="_blank" rel="noopener noreferrer" href={tc_url}>
-            Testcase
+            {i18n.t("words.Testcase")}
           </a>{" "}
-          thoroughly, to be sure you know what to do.{" "}
+          {i18n.t("phrases.thoroughly_to_be_sure_you_know_what_to_do")}{" "}
           <ModalBadge expand_text="Feeling a bit lost?">
             <ul>
               <li>
-                The testcase structure is not making sense?{" "}
+                {i18n.t("phrases.The_testcase_structure_is_not_making_sense")}{" "}
                 <ModalBadge expand_text="Click here">
-                  The testcases are generally split into four sections:
+                  {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections")}
                   <ul>
                     <li>
-                      <strong>Description</strong> should give you a general idea of what is being
-                      tested
+                      <strong>{i18n.t("words.Description")}</strong>{" "}
+                      {i18n.t("phrases.should_give_you_a")}
                     </li>
                     <li>
-                      <strong>Setup</strong> describes the steps to take before you begin working
-                      on the testcase
+                      <strong>{i18n.t("words.Setup")}</strong>{" "}
+                      {i18n.t("phrases.describes_the_steps")}
                     </li>
                     <li>
-                      <strong>How to test</strong> contains the individual steps to take in order
-                      to perform the testcase
+                      <strong>{i18n.t("phrases.How_to_test")}</strong>{" "}
+                      {i18n.t("phrases.contains_the_individual")}
                     </li>
                     <li>
-                      <strong>Expected results</strong> describe what you should check while
-                      testing in order to decide whether it Passed of Failed
+                      <strong>{i18n.t("phrases.Expected_results")}</strong>{" "}
+                      {i18n.t("phrases.describes_you_to_check")}
                     </li>
                   </ul>
                 </ModalBadge>
               </li>
               <li>
-                Maybe you are stuck, or just do not understand something? Feel free to ask on our
-                IRC channel #fedora-qa at freenode.net{" "}
-                <ModalBadge expand_text="Don&#39;t have an IRC client?">
-                  If you are not that familiar with IRC, you can use the{" "}
+                {i18n.t("phrases.Maybe_you_are_stuck")}{" "}
+                <ModalBadge expand_text={i18n.t("phrases.dont_have_an")}>
+                  {i18n.t("phrases.if_you_are")}{" "}
                   <a target="_blank" rel="noopener noreferrer" href="http://webchat.freenode.net">
-                    web-interface
+                    {i18n.t("words.web_interface")}
                   </a>{" "}
-                  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the
-                  Channels field, and click Connect.
+                  {i18n.t("phrases.Just_enter_a_Nickname")}
                 </ModalBadge>
               </li>
             </ul>
           </ModalBadge>
         </li>
 
-        <li>Get your hands dirty, and test the hell out of it!</li>
+        <li>{i18n.t("phrases.Get_your_hands")}</li>
         <li>
-          <ModalBadge expand_class="success" expand_text="Everything went well" type="btn">
-            Great! Either use <code>relval report-results</code> on command line (make sure to
-            install the <code>relval</code> package first), or modify the{" "}
+          <ModalBadge
+            expand_class="success"
+            expand_text={i18n.t("phrases.Everything_went_well")}
+            type="btn">
+            {i18n.t("phrases.Great_Either_use")}{" "}
+            <code>{i18n.t("phrases.relval_report_results")}</code>{" "}
+            {i18n.t("phrases.on_command_line")} <code>{i18n.t("words.relval")}</code>
+            {i18n.t("phrases.package_first")}{" "}
             <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
-              matrix
+              {i18n.t("words.matrix")}
             </a>{" "}
-            directly by clicking on the <code>Edit</code> link next to the Matrice's header, and
-            put <code>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</code> in the appropriate
-            spot.
+            {i18n.t("phrases.directly_by_clicking_on_the")} <code>{i18n.t("words.Edit")}</code>{" "}
+            {i18n.t("phrases.link_next_to_the_Matrice_header_and_put")}{" "}
+            <code>&#123;&#123;{i18n.t("phrases.result_pass_your")}&#125;&#125;</code>{" "}
+            {i18n.t("phrases.in_the_appropriate_spot")}
           </ModalBadge>
 
-          <ModalBadge expand_class="danger" expand_text="I found a bug!" type="btn">
-            Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report
+          <ModalBadge
+            expand_class={i18n.t("words.danger")}
+            expand_text={i18n.t("phrases.I_found_a_bug")}
+            type="btn">
+            {i18n.t("phrases.Awesome_Ideally_read_up_on")}{" "}
+            https://fedoraproject.org/wiki/How_to_file_a_bug_report
             <br />
-            If you don't feel like reading a wall of text, at least pot together a small document
-            containing:
+            {i18n.t("phrases.if_you_dont_like_like_reading")}
             <ul>
+              <li>{i18n.t("phrases.brief_description_of_what")}</li>
               <li>
-                Brief description of what went wrong (e.g. "QA:Testcase_dualboot_with_windows -
-                Bootloader does not show the Windows option")
-              </li>
-              <li>
-                The name of the ISO image you used (e.g.
+                {i18n.t("phrases.the_name_of")} (e.g.
                 "Fedora-Server-netinst-i386-Rawhide-20181227.n.0.iso")
               </li>
+              <li>{i18n.t("phrases.note_what_you_did")}</li>
+              <li>{i18n.t("phrases.try_to_reproduce_the")}</li>
               <li>
-                Note what you did, as precisely as possible, in a step-by-step fashion. Even
-                details like "Chose Polish as the languae for the installation process" can matter.
-              </li>
-              <li>
-                Try to reproduce the same state again based on the steps above (you can also
-                experiment a bit, and try to come up with just the critical steps)
-              </li>
-              <li>
-                Share your notes on the internet (you can use fpaste), and ask for help with filing
-                the bug report on our IRC channel #fedora-qa at freenode.net{" "}
+                {i18n.t("phrases.share_your_notes_on_the")}{" "}
                 <ModalBadge expand_text="Don&#39;t have an IRC client?">
-                  If you are not that familiar with IRC, you can use the web-interface[link] just
-                  enter a Nickname of your choice, #fedora-qa (including the hash sign) in the
-                  Channels field, and click Connect.
+                  {i18n.t("phrases.if_you_are_not_familiar")}
                 </ModalBadge>
               </li>
             </ul>
-            Once you get the Bug reported, make sure to also submit the result into the testing
-            matrix. Either use <code>relval report-results</code> on command line (make sure to
-            install the <code>relval</code> package first), or modify the{" "}
+            {i18n.t("phrases.once_you_get_the_bug_reported")}{" "}
+            <code>{i18n.t("phrases.relval_report_results")}</code>{" "}
+            {i18n.t("phrases.on_command_line")} <code>{i18n.t("words.relval")}</code>{" "}
+            {i18n.t("phrases.package_first")}{" "}
             <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
-              matrix
+              {i18n.t("words.matrix")}
             </a>{" "}
-            directly by clicking on the <code>Edit</code> link next to the Matrice's header, and
-            put <code>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</code> in the
-            appropriate spot.
+            {i18n.t("phrases.directly_by_clicking_on_the")} <code>{i18n.t("words.Edit")}</code>{" "}
+            {i18n.t("phrases.link_next_to_the_Matrice_header_and_put")}{" "}
+            <code>&#123;&#123;{i18n.t("phrases.result_fail_your")}&#125;&#125;</code>{" "}
+            {i18n.t("phrases.in_the_appropriate_spot")}
           </ModalBadge>
         </li>
       </ol>

From 74da40d44c2c7c4eb6c0d754b490ee1dae974c0d Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 04 2021 10:29:57 +0000
Subject: [PATCH 3/11] selected language is added to the label


---

diff --git a/src/index.css b/src/index.css
index aef45f7..910c14b 100644
--- a/src/index.css
+++ b/src/index.css
@@ -285,5 +285,5 @@ ol.steps > li {
   position: relative;
   display: inline-flex;
   vertical-align: middle;
-  padding-left: 39em;
+  padding-right: 1em;
 }
diff --git a/src/layout/Masthead.js b/src/layout/Masthead.js
index bc889f2..8295705 100644
--- a/src/layout/Masthead.js
+++ b/src/layout/Masthead.js
@@ -1,4 +1,4 @@
-import React, { useState } from "react"
+import React, { useEffect, useState } from "react"
 import { Link, useLocation } from "react-router-dom"
 import {
   Container,
@@ -24,9 +24,17 @@ import { shallowEqual, useDispatch, useSelector } from "react-redux"
 const selectWizardFromStore = (state) => state.wizard.api_call_status
 const selectLandingPageFromStore = (state) => state.landing_page.api_call_status
 
+const language = [
+  {
+    lang: "en",
+    name: "english",
+  },
+]
+
 const Masthead = () => {
   const { i18n } = useSelector((state) => state.locale)
   const [dropdownOpen, setDropdownOpen] = useState(false)
+  const [lang, setLang] = useState("")
 
   const location = useLocation()
   const dispatch = useDispatch()
@@ -66,9 +74,15 @@ const Masthead = () => {
   }
 
   const handleClick = (lang) => {
+    setLang(lang)
     dispatch(changeLanguage(lang))
   }
 
+  useEffect(() => {
+    const language = localStorage.getItem("locale")
+    setLang(language)
+  }, [])
+
   const toggle = () => setDropdownOpen((prevState) => !prevState)
 
   return (
@@ -79,16 +93,7 @@ const Masthead = () => {
             <img src={logo} alt="" />
           </Link>
         </NavbarBrand>
-        {ROUTE.LANDING_PAGE === location.pathname && (
-          <ButtonDropdown isOpen={dropdownOpen} toggle={toggle}>
-            <DropdownToggle caret>{i18n.t("phrases.select_language")}</DropdownToggle>
-            <DropdownMenu>
-              <DropdownItem onClick={() => handleClick("en")}>
-                {i18n.t("words.english")}
-              </DropdownItem>
-            </DropdownMenu>
-          </ButtonDropdown>
-        )}
+
         <div>
           {api_call_status() === API_CALL_STATUS_VALUES.STARTED ||
           api_call_status() === API_CALL_STATUS_VALUES.RETRYING ? (
@@ -119,6 +124,18 @@ const Masthead = () => {
               )}
             </>
           )}
+          {ROUTE.LANDING_PAGE === location.pathname && (
+            <ButtonDropdown isOpen={dropdownOpen} toggle={toggle}>
+              <DropdownToggle caret>
+                {lang ? lang : i18n.t("phrases.select_language")}
+              </DropdownToggle>
+              <DropdownMenu>
+                {language.map((item) => (
+                  <DropdownItem onClick={() => handleClick(item.lang)}>{item.name}</DropdownItem>
+                ))}
+              </DropdownMenu>
+            </ButtonDropdown>
+          )}
 
           {ROUTE.LANDING_PAGE === location.pathname && (
             <Button color="primary" onClick={toggleModal}>

From e2157dc070906d19ffbe1ac6ddb17931666d2dc3 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 06 2021 14:40:39 +0000
Subject: [PATCH 4/11] removed splits


---

diff --git a/src/translation/en.js b/src/translation/en.js
index ec7cebb..d6507cd 100644
--- a/src/translation/en.js
+++ b/src/translation/en.js
@@ -1,4 +1,63 @@
 export default {
+  Installation_text:
+    "The <1>Installation</1> testcases generally deal with a part of the installation procedure.<2 /> You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<2 /> <3>Note:</3> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
+  Desktop_Text:
+    "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<2 /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  Base_Text:
+    "The <1>Base</1> testcases cover the system&#x27;s basic functionality just after a clean installation. <2 /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <2 /><3>Pro tip:</3> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
+  Server_Text:
+    "The <1>Server</1> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+  cloud_Text:
+    "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<2 />Have a look at the <3  target=_blank  rel=noopener noreferrer  href=https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup>  Cloud provider setup</3>guides for more details.",
+  What_is_Karma_Text:
+    "The updates are kept in   <1 target=_blank rel=noopener noreferrer href=https://bodhi.fedoraproject.org/> Bodhi</a>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
+  Make_sure_you: "Make sure your system is up-to-date: <1>sudo dnf update --refresh</1>",
+  Install_fedora_easy_karma_tool:
+    "Install fedora-easy-karma tool: <1>sudo dnf install fedora-easy-karma</1>",
+  Have_a_look:
+    "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>dnf --enablerepo=updates-testing list --refresh --upgrades</1> and choose a package you know.",
+  Install_the_packages:
+    "Install the package  <1>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME </1>, and test whether it works, as you would expect.<2 /> <2> Note:</2> Other packages from <1>updates-testing</1> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
+  Sometimes_the_update:
+    "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <1 /> Run <2>fedora-easy-karma --fas-username=FAS_USERNAME</2>, and look for  <2>Bugs</2>, <2>Test Cases</2>, and/or <code>Notes</code> sections in the detailed output, ",
+  We_already_mentioned_bodhi:
+    "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <2 /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <1 /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  Run_fedora_easy_karam:
+    "Run <1>fedora-easy-karma --fas-username=FAS_USERNAME</1> and report what you found out. ",
+  It_identifies_installed:
+    "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <2 /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  Enter_to_mark_positive:
+    "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <1>-1</1> to mark the package as broken. <2 /> Not sure you can judge the package's state? Have a look at the <3 target=_blank href=https://fedoraproject.org/wiki/QA:Update_feedback_guidelines rel=noopener noreferrer> Update Feedback Guidelines </3> <2 /> Still not sure? Just press <1>Enter</1> to skip it.",
+  Add_a_comment_even_if:
+    "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <1>I tried openning and editing a document, and it worked.</1> when you test a text-editor, or  <1>I opened a couple of tabs, and browsed random pages.</1> for a web-browser. <2 /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
+  Restore_the_stable:
+    "Restore the stable-packages on your system by running  <1>sudo dnf distro-sync</1>",
+  Identify_The_Testcase:
+    "Identify the testcase and `environment` in our  <1 target=_blank rel=noopener noreferrer href={matrix_url}> Tescase matrix </1>.",
+  Have_a_look_at_the_matrix:
+    "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are {environment_examples} for the {testtype} testcases, but you can also encouter a generic <1>Result</1>  column, which usually means you can use any media/architecture available.",
+  for_this_perticular:
+    "For this particular testcase, <1>{extra_data.envs.join(, )}</1> {extra_data.envs.length > 1 ? environments are : environment is missing results.",
+  Read_the_TestCase:
+    "Read the <1 target=_blank rel=noopener noreferrer href={tc_url}> Testcase </1> briefly, just to have a general idea of what you will be doing.",
+  Description_Text: "<1>Description</1> should give you a general idea of what is being tested",
+  Setup_Text: "<1>Setup</1> describes the steps to take before you begin working on the testcase",
+  How_to_Test:
+    "<1>How to test</1> contains the individual steps to take in order to perform the testcase",
+  Expected_Results:
+    "<1>Expected results</1> describe what you should check while testing in order to decide whether it Passed of Failed",
+  study_the_testcase:
+    "Study the <1 target=_blank rel=noopener noreferrer href={tc_url}> Testcase</1> thoroughly, to be sure you know what to do.",
+  If_you_are_not_familiar:
+    "If you are not that familiar with IRC, you can use the <1 target=_blank rel=noopener noreferrer href=http://webchat.freenode.net> web-interface </1>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  Great_either_use:
+    "Great! Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the  <2 target=_blank rel=noopener noreferrer href={matrix_url}>matrix</2> directly by clicking on the <1>Edit</1> link next to the Matrice's header, andput <1>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</1> in theappropriate spot.",
+  Awesome_ideally_read:
+    "Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report <1 /> If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  Once_you_get_the_bug:
+    " Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the <2 target=_blank rel=noopener noreferrer href={matrix_url}>matrix </2> directly by clicking on the <1>Edit</1> link next to the Matrice's header, and put <1>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</1> in the appropriate spot.",
+  Share_your_notes:
+    "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net  <1 expand_text=Don&#39;t have an IRC client?> If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect. </1>",
   words: {
     hello: "Hello",
     disable: "Disable",
@@ -56,6 +115,7 @@ export default {
   phrases: {
     Tescase_matrix: "Tescase matrix",
     I_found_a_bug: "I found a bug!",
+    Feeling_a_bit_lost: "Feeling a bit lost?",
     result_fail_your: "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
     if_you_dont_like_like_reading:
       "If you don't feel like reading a wall of text, at least pot together a small document containing:",
@@ -96,13 +156,11 @@ export default {
     Column_which_usually:
       "column, which usually means you can use any media/architecture available.",
     testcases_but_you_can: "testcases, but you can also encouter a generic",
-    Have_a_look:
-      "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
     missing_results: "missing results.",
     Should_give_you: "should give you a general idea of  what is being tested",
     briefly_just: " briefly, just to have a general idea of what you will be doing.",
     Read_the: " Read the",
-    Not_sure_what_that_means: "Not sure what that means?",
+    Not_sure_what_that_means: " Not sure what that means?",
     Not_making_much_sense: "Not making much sense?",
     Column_which_actually:
       "column, which usually means you can use any  media/architecture available.",
@@ -130,24 +188,14 @@ export default {
     sudo_dnf_distro_sync: "sudo dnf distro-sync",
     Update_Feedback_Guidelines: " Update Feedback Guidelines",
     sudo_dnf_install_fedora_easy_karma: "sudo dnf install fedora-easy-karma",
-    dnf_enablerepo_updates_testing_list_refresh_upgrades:
-      "dnf --enablerepo=updates-testing list --refresh --upgrades",
     cloud_text: " Even thought the",
     Cloud_provider_setup: " Cloud provider setup",
-    sudo_dnf_enablerepo_updates_testing_update_PACKAGE_NAME:
-      "sudo dnf --enablerepo=updates-testing update PACKAGE_NAME",
-    fedora_easy_karma_fas_username_FAS_USERNAME: "fedora-easy-karma --fas-username=FAS_USERNAME",
     guides_for_more_details: " guides for more details.",
     is_a_group: "Is a group containing several projects. Expand to see more.",
     cloud_text1:
       "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
     Failed_to_fetch_data: "Failed to fetch data!",
     cloud_text2: "Have a look at the",
-    Installation_text: "testcases generally deal with a part of the installation procedure.",
-    Installation_text1:
-      "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
-    Installation_text2:
-      "some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
     select_language: "Select Language",
     base_text: "testcases cover the system's basic functionality just after a clean installation.",
     on_Pagure: "on Pagure",
@@ -191,7 +239,7 @@ export default {
     Not_sure_how: "Not sure how?",
     Make_sure_to: "Make sure to read about identifying the environment above.",
     Most_of_the_time:
-      " Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
+      "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
     to_skip_it: "to skip it.",
     repo_by: " repo, by running ",
     the_name_of: " The name of the ISO image you used ",
@@ -199,15 +247,12 @@ export default {
     is_a_group_containing: " - Is a group containing several projects. Expand to see more.",
     note_what_you_did:
       "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
-    share_your_notes_on_the:
-      "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net",
     if_you_are_not_familiar:
       "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
     you_can_either_install:
       "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
     the_updates_are: "The updates are kept in",
-    interface_for_submitting:
-      "interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly.",
+
     and_choose_a: "and choose a package you know.",
     and_create_it: "and create it.",
     brief_description_of_what:
@@ -215,12 +260,8 @@ export default {
     try_to_reproduce_the:
       "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
     choose_an_update: "Choose an update to test",
-    have_a_look_at: "Have a look at the available packages in ",
-    make_sure_your: "Make sure your system is up-to-date: ",
     note_the_user: "Note the username and password, you will need it later on.",
     sure_let_me_do_it: "Sure, let me do it!",
-    somtimes_the_update:
-      " Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it",
     an_update_can:
       "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
     Audio_Test_Day: "[F34] Audio Test Day",
@@ -228,15 +269,10 @@ export default {
     and_report_what_you_found_out: "and report what you found out.",
     Install_the_package: "Install the package",
     repository_and_matches: "repository, and matches them to the updates in Bodhi.",
-    and_test_whether_it_works: "and test whether it works, as you would expect.",
     Fedora_Media_Writer: "Fedora Media Writer",
     Choose_an_update_to_test: "Choose an update to test",
-    Install_fedora: "Install fedora-easy-karma tool: ",
     once_you_get_the_bug_reported:
       "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
-    we_already_mentioned_bodhi: "We already mentioned Bodhi, several times. Instead of using the",
-    repo_may_be_installed:
-      " repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible.",
     users_or_automated:
       "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
     which_acts_as_a_gatekeeper:
diff --git a/src/wizard/FedoraEasyKarma.js b/src/wizard/FedoraEasyKarma.js
index 7274f8a..ffb83d4 100644
--- a/src/wizard/FedoraEasyKarma.js
+++ b/src/wizard/FedoraEasyKarma.js
@@ -1,21 +1,30 @@
 import React from "react"
 import { useSelector } from "react-redux"
 import { CollapsableBadge, ModalBadge } from "./components"
+import { Trans } from "react-i18next"
 
 export default (props) => {
   const { i18n } = useSelector((state) => state.locale)
+
   if (props.data === undefined) return null
   else
     return (
       <div>
         <h1>{i18n.t("phrases.What_is_Karma")}</h1>
-        {i18n.t("phrases.Before_a_new_version_of_a_package")}{" "}
-        <CollapsableBadge expand_text={i18n.t("phrases.Tell_me_more_about")}>
-          {i18n.t("phrases.the_updates_are")}{" "}
-          <a target="_blank" rel="noopener noreferrer" href="https://bodhi.fedoraproject.org/">
-            {i18n.t("words.Bodhi")}
-          </a>
-          {i18n.t("phrases.which_acts_as_a_gatekeeper")}
+        Before a new version of a package is pushed to the Fedora&apos;s Updates repository, it
+        needs to be tested and proved functional.{" "}
+        <CollapsableBadge expand_text="Tell me more about the process!">
+          <Trans i18nKey="What_is_Karma_Text">
+            The updates are kept in{" "}
+            <a target="_blank" rel="noopener noreferrer" href="https://bodhi.fedoraproject.org/">
+              Bodhi
+            </a>
+            , which acts as a gatekeeper between new package releases and the stable repositories.{" "}
+            Users (or automated systems) can then provide feedback in form of positive/negative
+            Karma, marking the update as working (or not) within the scope of their expectations.
+            An update can (and usually does) consist of several packages (rpms), that are going
+            through the acceptance process together.
+          </Trans>
         </CollapsableBadge>
         <h1 style={{ marginTop: 1 + "em" }}>{i18n.t("phrases.sure_let_me_do_it")}</h1>
         <ol className="steps">
@@ -29,112 +38,125 @@ export default (props) => {
                     target="_blank"
                     rel="noopener noreferrer"
                     href="https://admin.fedoraproject.org/accounts/user/new">
-                    {i18n.t("phrases.FAS_Sign_up_page")}
+                    FAS Sign-up page
                   </a>{" "}
                   {i18n.t("phrases.and_create_it")}
                 </li>
-                <li> {i18n.t("phrases.note_the_user")}</li>{" "}
+                <li>{i18n.t("phrases.note_the_user")}</li>
               </ul>
             </CollapsableBadge>
           </li>
           <li>
-            {i18n.t("phrases.make_sure_your")}
-            <code>{i18n.t("phrases.sudo_dnf_update_refresh")}</code>
+            <Trans i18nKey="Make_sure_you">
+              Make sure your system is up-to-date: <code>sudo dnf update --refresh</code>
+            </Trans>
           </li>
           <li>
-            {i18n.t("phrases.Install_fedora")}
-            <code>{i18n.t("phrases.sudo_dnf_install_fedora_easy_karma")}</code>
+            <Trans i18nKey="Install_fedora_easy_karma_tool">
+              Install fedora-easy-karma tool: <code>sudo dnf install fedora-easy-karma</code>
+            </Trans>
           </li>
           <li>
             {i18n.t("phrases.choose_an_update")}{" "}
             <CollapsableBadge expand_text={i18n.t("phrases.Not_sure_how")}>
-              {i18n.t("phrases.have_a_look_at")}
-              <code> {i18n.t("phrases.update_testing")}</code> {i18n.t("phrases.repo_by")}
-              <code>
-                {i18n.t("phrases.dnf_enablerepo_updates_testing_list_refresh_upgrades")}
-              </code>{" "}
-              {i18n.t("phrases.and_choose_a")}
+              <Trans i18nKey="Have_a_look">
+                Have a look at the available packages in <code>updates-testing</code> repo, by
+                running <code>dnf --enablerepo=updates-testing list --refresh --upgrades</code> and
+                choose a package you know.
+              </Trans>
             </CollapsableBadge>
           </li>
           <li>
-            {i18n.t("phrases.Install_the_package")}{" "}
-            <code>
-              {i18n.t("phrases.sudo_dnf_enablerepo_updates_testing_update_PACKAGE_NAME")}
-            </code>
-            , {i18n.t("phrases.and_test_whether_it_works")}
-            <br />
-            <strong> {i18n.t("words.Note")}</strong> {i18n.t("phrases.Other_packages_from")}
-            <code> {i18n.t("phrases.update_testing")}</code>
-            {i18n.t("phrases.repo_may_be_installed")}{" "}
-            <CollapsableBadge expand_text={i18n.t("phrases.Need_some_tips")}>
-              {i18n.t("phrases.somtimes_the_update")}.
+            <Trans i18nKey="Install_the_packages">
+              Install the package{" "}
+              <code>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME</code>, and test
+              whether it works, as you would expect.
               <br />
-              {i18n.t("words.Run")}{" "}
-              <code>{i18n.t("phrases.fedora_easy_karma_fas_username_FAS_USERNAME")}</code>,
-              {i18n.t("phrases.and_look_for")} <code>{i18n.t("words.Bugs")}</code>,{" "}
-              <code>{i18n.t("phrases.Test_Cases")}</code>, {i18n.t("phrases.and_or")}{" "}
-              <code>{i18n.t("words.notes")}</code>{" "}
-              {i18n.t("phrases.sections_in_the_detailed_output")}{" "}
-              <ModalBadge expand_text={i18n.t("phrases.Want_something_a_bit_nicer")}>
-                {i18n.t("phrases.we_already_mentioned_bodhi")}{" "}
-                <code>{i18n.t("phases.fedora-easy-karma")}</code>
-                {i18n.t("phrases.interface_for_submitting")}
-                <br />
-                <code>
-                  {" "}
-                  {i18n.t("phrases.")} {i18n.t("phases.fedora-easy-karma")}
-                </code>{" "}
-                {i18n.t("phrases.shows_the_URL")}{" "}
-                <code>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</code>.
+              <strong>Note:</strong> Other packages from <code>updates-testing</code> repo may be
+              installed as dependencies (shown during the installation process). Try to test those
+              too, if possible.{" "}
+            </Trans>
+
+            <CollapsableBadge expand_text={i18n.t("phrases.Need_some_tips")}>
+              <Trans i18nKey="Sometimes_the_update">
+                Sometimes, the update associated with the package you just installed fixes some
+                specific bugs, or has testcases associated with it.
                 <br />
-                {i18n.t("phrases.you_can_have_a_look")}
+                Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code>, and look for{" "}
+                <code>Bugs</code>, <code>Test Cases</code>, and/or <code>Notes</code> sections in
+                the detailed output.{" "}
+              </Trans>
+              <ModalBadge expand_text={i18n.t("phrases.Want_something_a_bit_nicer")}>
+                <Trans i18nKey="We_already_mentioned_bodhi">
+                  We already mentioned Bodhi, several times. Instead of using the{" "}
+                  <code>fedora-easy-karma</code> interface for submitting Karma and/or learning
+                  about the Update, you can visit Bodhi directly.
+                  <br />
+                  <code>fedora-easy-karma</code> shows the URL of the relevant update near the
+                  bottom of the text output - look for URL like{" "}
+                  <code>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</code>.
+                  <br />
+                  You can have a look at other people's comments, the afore-mentioned Bugs or Test
+                  Cases, and even submit the Karma directly. Just use your FAS credentials to
+                  log-in.
+                </Trans>
               </ModalBadge>
             </CollapsableBadge>
           </li>
           <li>
-            {i18n.t("words.Run")}
-            <code>{i18n.t("phrases.fedora_easy_karma_fas_username_FAS_USERNAME")}</code>{" "}
-            {i18n.t("phrases.and_report_what_you_found_out")}{" "}
+            <Trans i18nKey="Run_fedora_easy_karam">
+              Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code> and report what you
+              found out.{" "}
+            </Trans>
             <CollapsableBadge expand_text={i18n.t("phrases.New_to_fedora")}>
-              {i18n.t("phrases.it_identifies")}
-              <code> {i18n.t("phrases.update_testing")}</code>{" "}
-              {i18n.t("phrases.repository_and_matches")}
-              <br />
-              {i18n.t("phrases.you_are_then_presented")}{" "}
+              <Trans i18nKey="It_identifies_installed">
+                It identifies the packages installed from the <code>updates-testing</code>{" "}
+                repository, and matches them to the updates in Bodhi.
+                <br />
+                You are then presented with the relevant updates one-by-one, to submit Karma and a
+                comment.{" "}
+              </Trans>
               <ModalBadge expand_text={i18n.t("phrases.Not_sure_what_Karma_means")}>
                 <ol>
                   <li>
-                    {i18n.t("words.enter")}
-                    <code>1</code> {i18n.t("phrases.to_mark_positive")}+ <code>-1</code>{" "}
-                    {i18n.t("phrases.to_mark_the")} <br />
-                    {i18n.t("phrases.not_sure_you_can")}{" "}
-                    <a
-                      target="_blank"
-                      href="https://fedoraproject.org/wiki/QA:Update_feedback_guidelines"
-                      rel="noopener noreferrer">
-                      {i18n.t("phrases.Update_Feedback_Guidelines")}
-                    </a>
-                    <br />
-                    {i18n.t("phrases.still_not_sure")}
-                    <code>{i18n.t("words.enter")}</code>
-                    {i18n.t("phrases.to_skip_it")}
+                    <Trans i18nKey="Enter_to_mark_positive">
+                      Enter <code>1</code> to mark positive karma (the update works just fine, as
+                      far as you can tell), or <code>-1</code> to mark the package as broken.{" "}
+                      <br />
+                      Not sure you can judge the package's state? Have a look at the{" "}
+                      <a
+                        target="_blank"
+                        href="https://fedoraproject.org/wiki/QA:Update_feedback_guidelines"
+                        rel="noopener noreferrer">
+                        Update Feedback Guidelines
+                      </a>
+                      <br />
+                      Still not sure? Just press <code>Enter</code> to skip it.
+                    </Trans>
                   </li>
                   <li>
-                    {i18n.t("phrases.add_a_comment")}{" "}
-                    <code> {i18n.t("phrases.i_tried_openning")}</code>
-                    {i18n.t("phrases.when_you_test")}{" "}
-                    <code>{i18n.t("phrases.i_opened_a_couple")}</code>{" "}
-                    {i18n.t("phrases.for_a_web")}.
-                    <br />
-                    {i18n.t("phrases.Absolutely_make_sure")}
+                    <Trans i18nKey="Add_a_comment_even_if">
+                      Add a comment - even if it works, try to describe what you tested. It can be
+                      as easy as{" "}
+                      <code>I tried openning and editing a document, and it worked.</code> when you
+                      test a text-editor, or{" "}
+                      <code>I opened a couple of tabs, and browsed random pages.</code> for a
+                      web-browser.
+                      <br />
+                      Absolutely make sure to provide reasonable amount of detail, when submitting
+                      negative karma - ideally, you should also create a bugreport, and reference
+                      it in the comment.
+                    </Trans>
                   </li>
                 </ol>
               </ModalBadge>
             </CollapsableBadge>
           </li>
           <li>
-            {i18n.t("phrases.Restore_the_stable")}{" "}
-            <code>{i18n.t("phrases.sudo_dnf_distro_sync")}</code>
+            <Trans i18nKey="Restore_the_stable">
+              Restore the stable-packages on your system by running{" "}
+              <code>sudo dnf distro-sync</code>
+            </Trans>{" "}
           </li>
         </ol>
       </div>
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index 473f33a..eeda471 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -1,7 +1,8 @@
 import React, { useState } from "react"
-import { useSelector } from "react-redux"
 import { Modal, ModalHeader, ModalBody, ModalFooter } from "reactstrap"
 import { CollapsableCard, ModalBadge } from "./components"
+import { Trans } from "react-i18next"
+import { useSelector } from "react-redux"
 
 export default (props) => {
   let sections = Object.keys(props.data).map((k) => (
@@ -36,60 +37,75 @@ export function FedoraManualTestingItemsListSub1(props) {
   switch (props.title) {
     case "Installation":
       l1 = (
-        <div className="text-left">
-          {i18n.t("words.the")} <strong>{i18n.t("words.Installation")}</strong>{" "}
-          {i18n.t("phrases.Installation_text")}
-          <br />
-          {i18n.t("phrases.Installation_text1")}
-          <br />
-          <i>{i18n.t("words.Note")}</i> {i18n.t("phrases.Installation_text2")}
+        <div>
+          <Trans i18nKey="Installation_text">
+            The <strong>Installation</strong> testcases generally deal with a part of the
+            installation procedure.
+            <br />
+            You will certainly need an installation ISO, and either a Virtual or Bare-metal machine
+            to run the test.
+            <br />
+            <i>Note:</i> some (not that many, though) of these testcases require Bare-metal
+            machine. Be sure to read the Description of the testcase carefully.
+          </Trans>
         </div>
       )
       break
     case "Desktop":
       l1 = (
-        <div className="text-left">
-          {i18n.t("words.the")} <strong>{i18n.t("words.Desktop")}</strong>{" "}
-          {i18n.t("phrases.Desktop_text")}
-          <br />
-          {i18n.t("phrases.Desktop_text1")}
+        <div>
+          <Trans i18nKey="Desktop_Text">
+            The <strong>Desktop</strong> testcases cover basic functionality of the desktop
+            environment.
+            <br />
+            You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live
+            image instead.
+          </Trans>
         </div>
       )
       break
     case "Base":
       l1 = (
-        <div className="text-left">
-          {i18n.t("words.the")} <strong>{i18n.t("words.Base")}</strong>{" "}
-          {i18n.t("phrases.base_text")}
-          <br />
-          {i18n.t("phrases.base_text1")}
-          <br />
-          <i>{i18n.t("phrases.Pro_tip")}:</i> {i18n.t("phrases.base_text3")}
+        <div>
+          <Trans i18nKey="Base_Text">
+            The <strong>Base</strong> testcases cover the system&#x27;s basic functionality just
+            after a clean installation.
+            <br />
+            Most times, you will be asked to perform a clean Fedora installation. You can use
+            either Virtual or Bare-metal machine.
+            <br />
+            <i>Pro tip:</i> using a snapshot of cleanly installed Virtual machine is just fine. No
+            need to reinstall for every testcase.
+          </Trans>
         </div>
       )
       break
     case "Server":
       l1 = (
-        <div className="text-left">
-          {i18n.t("words.the")} <strong>{i18n.t("words.Server")}</strong>{" "}
-          {i18n.t("phrases.Server_text")}
+        <div>
+          <Trans i18nKey="Server_Text">
+            The <strong>Server</strong> testcases usually require multiple machines to test the
+            server-client behaviour, and might feel a bit advanced.
+          </Trans>
         </div>
       )
       break
     case "Cloud":
       l1 = (
-        <div className="text-left">
-          {i18n.t("cloud_text")} <strong>{i18n.t("words.Cloud")}</strong>{" "}
-          {i18n.t("phrases.cloud_text1")}
-          <br />
-          {i18n.t("phrases.cloud_text2")}{" "}
-          <a
-            target="_blank"
-            rel="noopener noreferrer"
-            href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
-            {i18n.t("phrases.Cloud_provider_setup")}
-          </a>{" "}
-          {i18n.t("phrases.guides_for_more_details")}
+        <div>
+          <Trans i18nKey="Cloud_Text">
+            Even thought the <strong>Cloud</strong> testcases are best done in the specific
+            environments like EC2 or Openstack, you can also perform them locally using Testcloud.
+            <br />
+            Have a look at the{" "}
+            <a
+              target="_blank"
+              rel="noopener noreferrer"
+              href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
+              Cloud provider setup
+            </a>{" "}
+            guides for more details.
+          </Trans>
         </div>
       )
       break
@@ -98,14 +114,13 @@ export function FedoraManualTestingItemsListSub1(props) {
   }
 
   return (
-    <CollapsableCard title={l1} expand_text="See" expand_class="primary">
+    <CollapsableCard title={l1} expand_text={i18n.t("words.See")} expand_class="primary">
       {subsections}
     </CollapsableCard>
   )
 }
 
 export function FedoraManualTestingItem(props) {
-  const { i18n } = useSelector((state) => state.locale)
   const extra_data = props.data.extra_data
 
   const tc_url = extra_data.testcase_url
@@ -113,18 +128,19 @@ export function FedoraManualTestingItem(props) {
 
   const matrix_url = extra_data.matrix_url
   var environment_examples = undefined
+  const { i18n } = useSelector((state) => state.locale)
   switch (extra_data.testtype) {
     case "Installation":
       environment_examples = (
         <span>
-          <code>x86_64</code> or <code>ARM</code>
+          <code>x86_64</code> {i18n.t("words.or")} <code>ARM</code>
         </span>
       )
       break
     case "Base":
       environment_examples = (
         <span>
-          <code>{i18n.t("words.Workstation")}</code>, <code>{i18n.t("words.Server")}</code>,{" "}
+          <code>{18n.t("words.Workstation")}</code>, <code>{i18n.t("words.Server")}</code>,{" "}
           <code>Xfce</code> {i18n.t("words.or")} <code>{i18n.t("words.Minimal")}</code>
         </span>
       )
@@ -132,7 +148,7 @@ export function FedoraManualTestingItem(props) {
     case "Desktop":
       environment_examples = (
         <span>
-          <code>{i18n.t("words.Workstation")}</code> {i18n.t("words.or")} <code>KDE</code>
+          <code>{18n.t("words.Workstation")}</code> {i18n.t("words.or")} <code>KDE</code>
         </span>
       )
       break
@@ -153,49 +169,67 @@ export function FedoraManualTestingItem(props) {
     <ModalInfo buttonLabel={name}>
       <ol className="steps">
         <li>
-          {i18n.t("phrases.Identify_the_testcase_and_environment_in_our")}
-          <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
-            {i18n.t("phrases.Tescase_matrix")}
-          </a>{" "}
+          <Trans i18nKey="Identify_The_Testcase">
+            Identify the testcase and `environment` in our{" "}
+            <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
+              Tescase matrix{" "}
+            </a>
+          </Trans>
           <ModalBadge expand_text={i18n.t("phrases.Not_sure_what_that_means")}>
             <ul>
               <li>
-                {i18n.t("phrases.ModalBadge")} {environment_examples} {i18n.t("words.for_the")}{" "}
-                {testtype} {i18n.t("phrases.testcase_but_you_can")}{" "}
-                <code>{i18n.t("words.Result")}</code> {i18n.t("phrases.Column_which_actually")}
+                <Trans i18nKey="Have_a_look_at_the_matrix">
+                  Have a look at the matrix. The rows are the testcases, and the columns are the
+                  environments. Most of the time, these are {environment_examples} for the{" "}
+                  {testtype} testcases, but you can also encouter a generic <code>Result</code>{" "}
+                  column, which usually means you can use any media/architecture available.
+                </Trans>
               </li>
               <li>
-                {i18n.t("phrases.For_this_particular_testcase")}{" "}
-                <code>{extra_data.envs.join(", ")}</code>{" "}
-                {extra_data.envs.length > 1 ? "environments are" : "environment is"}{" "}
-                {i18n.t("phrases.missing_results")}
+                <Trans i18nKey="for_this_perticular">
+                  For this particular testcase, <code>{extra_data.envs.join(", ")}</code>{" "}
+                  {extra_data.envs.length > 1 ? "environments are" : "environment is"} missing
+                  results.
+                </Trans>
               </li>
             </ul>
           </ModalBadge>
         </li>
 
         <li>
-          {i18n.t("phrases.Read_the")}{" "}
-          <a target="_blank" rel="noopener noreferrer" href={tc_url}>
-            {i18n.t("words.Testcase")}
-          </a>{" "}
-          {i18n.t("phrases.briefly_just")}{" "}
+          <Trans i18nKey="Read_the_TestCase">
+            Read the{" "}
+            <a target="_blank" rel="noopener noreferrer" href={tc_url}>
+              Testcase
+            </a>{" "}
+            briefly, just to have a general idea of what you will be doing.
+          </Trans>
           <ModalBadge expand_text={i18n.t("phrases.Not_making_much_sense")}>
             {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections")}
             <ul>
               <li>
-                <strong>{i18n.t("words.Description")}</strong> {i18n.t("phrases.Should_give_you")}
+                <Trans i18nKey="Description_Text">
+                  <strong>Description</strong> should give you a general idea of what is being
+                  tested
+                </Trans>
               </li>
               <li>
-                <strong>{i18n.t("words.Setup")}</strong> {i18n.t("phrases.describes_the_steps")}
+                <Trans i18nKey="Setup_Text">
+                  <strong>Setup</strong> describes the steps to take before you begin working on
+                  the testcase
+                </Trans>
               </li>
               <li>
-                <strong>{i18n.t("phrases.How_to_test")}</strong>{" "}
-                {i18n.t("phrases.contains_the_individual")}
+                <Trans i18nKey="How_to_Test">
+                  <strong>How to test</strong> contains the individual steps to take in order to
+                  perform the testcase
+                </Trans>
               </li>
               <li>
-                <strong>{i18n.t("phrases.Expected_results")}</strong>{" "}
-                {i18n.t("phrases.describes_you_to_check")}
+                <Trans i18nKey="Expected_Results">
+                  <strong>Expected results</strong> describe what you should check while testing in
+                  order to decide whether it Passed of Failed
+                </Trans>
               </li>
             </ul>
           </ModalBadge>
@@ -207,7 +241,7 @@ export function FedoraManualTestingItem(props) {
             target="_blank"
             rel="noopener noreferrer"
             href="https://fedoraproject.org/wiki/Test_Results:Current_Installation_Test#How_to_test">
-            {i18n.t("words.here")}
+            here
           </a>
           .{" "}
           <ModalBadge expand_text={i18n.t("phrases.Not_sure_how")}>
@@ -218,17 +252,20 @@ export function FedoraManualTestingItem(props) {
                 <ModalBadge expand_text={i18n.t("words.See")}>
                   <ul>
                     <li>
-                      {i18n.t("phrases.Have_a_look")} {environment_examples}{" "}
-                      {i18n.t("words.for_the")} {testtype}{" "}
-                      {i18n.t("phrases.testcases_but_you_can")}{" "}
-                      <code>{i18n.t("words.Result")}</code>{" "}
-                      {i18n.t("phrases.Column_which_usually")}
+                      <Trans i18nKey="Have_a_look_at_the_matrix">
+                        Have a look at the matrix. The rows are the testcases, and the columns are
+                        the environments. Most of the time, these are {environment_examples} for
+                        the {testtype} testcases, but you can also encouter a generic{" "}
+                        <code>Result</code> column, which usually means you can use any
+                        media/architecture available.
+                      </Trans>
                     </li>
                     <li>
-                      {i18n.t("phrases.For_this_particular_testcase")}
-                      <code>{extra_data.envs.join(", ")}</code>{" "}
-                      {extra_data.envs.length > 1 ? "environments are" : "environment is"}{" "}
-                      {i18n.t("phrases.missing_results")}
+                      <Trans i18nKey="for_this_perticular">
+                        For this particular testcase, <code>{extra_data.envs.join(", ")}</code>{" "}
+                        {extra_data.envs.length > 1 ? "environments are" : "environment is"}{" "}
+                        missing results.
+                      </Trans>
                     </li>
                   </ul>
                 </ModalBadge>
@@ -238,33 +275,43 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          {i18n.t("phrases.Study_the")}{" "}
-          <a target="_blank" rel="noopener noreferrer" href={tc_url}>
-            {i18n.t("words.Testcase")}
-          </a>{" "}
-          {i18n.t("phrases.thoroughly_to_be_sure_you_know_what_to_do")}{" "}
-          <ModalBadge expand_text="Feeling a bit lost?">
+          <Trans i18nKey="study_the_testcase">
+            Study the{" "}
+            <a target="_blank" rel="noopener noreferrer" href={tc_url}>
+              Testcase
+            </a>{" "}
+            thoroughly, to be sure you know what to do.{" "}
+          </Trans>
+          <ModalBadge expand_text={i18n.t("phrases.Feeling_a_bit_lost")}>
             <ul>
               <li>
                 {i18n.t("phrases.The_testcase_structure_is_not_making_sense")}{" "}
-                <ModalBadge expand_text="Click here">
-                  {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections")}
+                <ModalBadge expand_text={i18n.t("words.See")}>
+                  {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections:")}
                   <ul>
                     <li>
-                      <strong>{i18n.t("words.Description")}</strong>{" "}
-                      {i18n.t("phrases.should_give_you_a")}
+                      <Trans i18nKey="Description_Text">
+                        <strong>Description</strong> should give you a general idea of what is
+                        being tested
+                      </Trans>
                     </li>
                     <li>
-                      <strong>{i18n.t("words.Setup")}</strong>{" "}
-                      {i18n.t("phrases.describes_the_steps")}
+                      <Trans i18nKey="Setup_Text">
+                        <strong>Setup</strong> describes the steps to take before you begin working
+                        on the testcase
+                      </Trans>
                     </li>
                     <li>
-                      <strong>{i18n.t("phrases.How_to_test")}</strong>{" "}
-                      {i18n.t("phrases.contains_the_individual")}
+                      <Trans i18nKey="How_to_Test">
+                        <strong>How to test</strong> contains the individual steps to take in order
+                        to perform the testcase
+                      </Trans>
                     </li>
                     <li>
-                      <strong>{i18n.t("phrases.Expected_results")}</strong>{" "}
-                      {i18n.t("phrases.describes_you_to_check")}
+                      <Trans i18nKey="Expected_Results">
+                        <strong>Expected results</strong> describe what you should check while
+                        testing in order to decide whether it Passed of Failed
+                      </Trans>
                     </li>
                   </ul>
                 </ModalBadge>
@@ -272,11 +319,17 @@ export function FedoraManualTestingItem(props) {
               <li>
                 {i18n.t("phrases.Maybe_you_are_stuck")}{" "}
                 <ModalBadge expand_text={i18n.t("phrases.dont_have_an")}>
-                  {i18n.t("phrases.if_you_are")}{" "}
-                  <a target="_blank" rel="noopener noreferrer" href="http://webchat.freenode.net">
-                    {i18n.t("words.web_interface")}
-                  </a>{" "}
-                  {i18n.t("phrases.Just_enter_a_Nickname")}
+                  <Trans i18nKey="If_you_are_not_familiar">
+                    If you are not that familiar with IRC, you can use the{" "}
+                    <a
+                      target="_blank"
+                      rel="noopener noreferrer"
+                      href="http://webchat.freenode.net">
+                      web-interface
+                    </a>{" "}
+                    just enter a Nickname of your choice, #fedora-qa (including the hash sign) in
+                    the Channels field, and click Connect.
+                  </Trans>
                 </ModalBadge>
               </li>
             </ul>
@@ -289,27 +342,28 @@ export function FedoraManualTestingItem(props) {
             expand_class="success"
             expand_text={i18n.t("phrases.Everything_went_well")}
             type="btn">
-            {i18n.t("phrases.Great_Either_use")}{" "}
-            <code>{i18n.t("phrases.relval_report_results")}</code>{" "}
-            {i18n.t("phrases.on_command_line")} <code>{i18n.t("words.relval")}</code>
-            {i18n.t("phrases.package_first")}{" "}
-            <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
-              {i18n.t("words.matrix")}
-            </a>{" "}
-            {i18n.t("phrases.directly_by_clicking_on_the")} <code>{i18n.t("words.Edit")}</code>{" "}
-            {i18n.t("phrases.link_next_to_the_Matrice_header_and_put")}{" "}
-            <code>&#123;&#123;{i18n.t("phrases.result_pass_your")}&#125;&#125;</code>{" "}
-            {i18n.t("phrases.in_the_appropriate_spot")}
+            <Trans i18nKey="Great_either_use">
+              Great! Either use <code>relval report-results</code> on command line (make sure to
+              install the <code>relval</code> package first), or modify the{" "}
+              <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
+                matrix
+              </a>{" "}
+              directly by clicking on the <code>Edit</code> link next to the Matrice's header, and
+              put <code>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</code> in the
+              appropriate spot.
+            </Trans>
           </ModalBadge>
 
           <ModalBadge
-            expand_class={i18n.t("words.danger")}
+            expand_class="danger"
             expand_text={i18n.t("phrases.I_found_a_bug")}
             type="btn">
-            {i18n.t("phrases.Awesome_Ideally_read_up_on")}{" "}
-            https://fedoraproject.org/wiki/How_to_file_a_bug_report
-            <br />
-            {i18n.t("phrases.if_you_dont_like_like_reading")}
+            <Trans i18nKey="Awesome_ideally_read">
+              Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report
+              <br />
+              If you don't feel like reading a wall of text, at least pot together a small document
+              containing:
+            </Trans>
             <ul>
               <li>{i18n.t("phrases.brief_description_of_what")}</li>
               <li>
@@ -319,23 +373,28 @@ export function FedoraManualTestingItem(props) {
               <li>{i18n.t("phrases.note_what_you_did")}</li>
               <li>{i18n.t("phrases.try_to_reproduce_the")}</li>
               <li>
-                {i18n.t("phrases.share_your_notes_on_the")}{" "}
-                <ModalBadge expand_text="Don&#39;t have an IRC client?">
-                  {i18n.t("phrases.if_you_are_not_familiar")}
-                </ModalBadge>
+                <Trans i18nKey="Share_your_notes">
+                  Share your notes on the internet (you can use fpaste), and ask for help with
+                  filing the bug report on our IRC channel #fedora-qa at freenode.net{" "}
+                  <ModalBadge expand_text="Don&#39;t have an IRC client?">
+                    If you are not that familiar with IRC, you can use the web-interface[link] just
+                    enter a Nickname of your choice, #fedora-qa (including the hash sign) in the
+                    Channels field, and click Connect.
+                  </ModalBadge>
+                </Trans>
               </li>
             </ul>
-            {i18n.t("phrases.once_you_get_the_bug_reported")}{" "}
-            <code>{i18n.t("phrases.relval_report_results")}</code>{" "}
-            {i18n.t("phrases.on_command_line")} <code>{i18n.t("words.relval")}</code>{" "}
-            {i18n.t("phrases.package_first")}{" "}
-            <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
-              {i18n.t("words.matrix")}
-            </a>{" "}
-            {i18n.t("phrases.directly_by_clicking_on_the")} <code>{i18n.t("words.Edit")}</code>{" "}
-            {i18n.t("phrases.link_next_to_the_Matrice_header_and_put")}{" "}
-            <code>&#123;&#123;{i18n.t("phrases.result_fail_your")}&#125;&#125;</code>{" "}
-            {i18n.t("phrases.in_the_appropriate_spot")}
+            <Trans i18nKey="Once_you_get_the_bug">
+              Once you get the Bug reported, make sure to also submit the result into the testing
+              matrix. Either use <code>relval report-results</code> on command line (make sure to
+              install the <code>relval</code> package first), or modify the{" "}
+              <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
+                matrix
+              </a>{" "}
+              directly by clicking on the <code>Edit</code> link next to the Matrice's header, and
+              put <code>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</code> in
+              the appropriate spot.
+            </Trans>
           </ModalBadge>
         </li>
       </ol>
@@ -356,7 +415,7 @@ function ModalInfo(props) {
   }
 
   const project = props.buttonLabel.split(":")[0]
-  const ticket = props.buttonLabel.split(":")[1] //strip whitespace?
+  const ticket = props.buttonLabel.split(":")[1]
 
   return (
     <div>
diff --git a/src/wizard/step/Step4.js b/src/wizard/step/Step4.js
index 63c2a5a..7d350c8 100644
--- a/src/wizard/step/Step4.js
+++ b/src/wizard/step/Step4.js
@@ -4,10 +4,10 @@ import { shallowEqual, useSelector } from "react-redux"
 import * as R from "ramda"
 import { useHistory } from "react-router-dom"
 import Manual from "../Manual"
+import { Trans } from "react-i18next"
 
 const Step4 = (props) => {
   const { query } = props
-  const { i18n } = useSelector((state) => state.locale)
 
   const history = useHistory()
 
@@ -89,59 +89,75 @@ const Step4 = (props) => {
       case "Installation":
         return (
           <div className="text-left">
-            {i18n.t("words.the")} <strong>{i18n.t("words.Installation")}</strong>{" "}
-            {i18n.t("phrases.Installation_text")}
-            <br />
-            {i18n.t("phrases.Installation_text1")}
-            <br />
-            <i>{i18n.t("words.Note")}</i> {i18n.t("phrases.Installation_text2")}
+            <Trans i18nKey="Installation_text">
+              The <strong>Installation</strong> testcases generally deal with a part of the
+              installation procedure.
+              <br />
+              You will certainly need an installation ISO, and either a Virtual or Bare-metal
+              machine to run the test.
+              <br />
+              <i>Note:</i> some (not that many, though) of these testcases require Bare-metal
+              machine. Be sure to read the Description of the testcase carefully.
+            </Trans>
           </div>
         )
 
       case "Desktop":
         return (
           <div className="text-left">
-            {i18n.t("words.the")} <strong>{i18n.t("words.Desktop")}</strong>{" "}
-            {i18n.t("phrases.Desktop_text")}
-            <br />
-            {i18n.t("phrases.Desktop_text1")}
+            <Trans i18nKey="Desktop_Text">
+              The <strong>Desktop</strong> testcases cover basic functionality of the desktop
+              environment.
+              <br />
+              You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live
+              image instead.
+            </Trans>
           </div>
         )
 
       case "Base":
         return (
           <div className="text-left">
-            {i18n.t("words.the")} <strong>{i18n.t("words.Base")}</strong>{" "}
-            {i18n.t("phrases.base_text")}
-            <br />
-            {i18n.t("phrases.base_text1")}
-            <br />
-            <i>{i18n.t("phrases.Pro_tip")}:</i> {i18n.t("phrases.base_text3")}
+            <Trans i18nKey="Base_Text">
+              The <strong>Base</strong> testcases cover the system&#x27;s basic functionality just
+              after a clean installation.
+              <br />
+              Most times, you will be asked to perform a clean Fedora installation. You can use
+              either Virtual or Bare-metal machine.
+              <br />
+              <i>Pro tip:</i> using a snapshot of cleanly installed Virtual machine is just fine.
+              No need to reinstall for every testcase.
+            </Trans>
           </div>
         )
 
       case "Server":
         return (
           <div className="text-left">
-            {i18n.t("words.the")} <strong>{i18n.t("words.Server")}</strong>{" "}
-            {i18n.t("phrases.Server_text")}
+            <Trans i18nKey="Server_Text">
+              The <strong>Server</strong> testcases usually require multiple machines to test the
+              server-client behaviour, and might feel a bit advanced.
+            </Trans>
           </div>
         )
 
       case "Cloud":
         return (
           <div className="text-left">
-            {i18n.t("cloud_text")} <strong>{i18n.t("words.Cloud")}</strong>{" "}
-            {i18n.t("phrases.cloud_text1")}
-            <br />
-            {i18n.t("phrases.cloud_text2")}{" "}
-            <a
-              target="_blank"
-              rel="noopener noreferrer"
-              href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
-              {i18n.t("phrases.Cloud_provider_setup")}
-            </a>{" "}
-            {i18n.t("phrases.guides_for_more_details")}
+            <Trans i18nKey="Cloud_Text">
+              Even thought the <strong>Cloud</strong> testcases are best done in the specific
+              environments like EC2 or Openstack, you can also perform them locally using
+              Testcloud.
+              <br />
+              Have a look at the{" "}
+              <a
+                target="_blank"
+                rel="noopener noreferrer"
+                href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
+                Cloud provider setup
+              </a>{" "}
+              guides for more details.
+            </Trans>
           </div>
         )
 

From 0fff86ce6f157dd87aeccdb2473c5928fa326d0f Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 10 2021 11:22:42 +0000
Subject: [PATCH 5/11] implemented react-i18next


---

diff --git a/.gitignore b/.gitignore
index 5504588..e580f24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+#  https://help.github.com/articles/ignoring-files/ for more about ignoring files.
 
 # dependencies
 /node_modules
diff --git a/public/index.html b/public/index.html
index 016a790..6fe2ed2 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,15 +1,15 @@
 <!DOCTYPE html>
 <html lang="en">
   <head>
-    <meta charset="utf-8">
-    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta name="theme-color" content="#000000">
+    <meta charset="utf-8" />
+    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
+    <meta name="theme-color" content="#000000" />
     <!--
       manifest.json provides metadata used when your web app is added to the
-      homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
+      homescreen on Android.  https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
     -->
-    <link rel="manifest" href="%PUBLIC_URL%/manifest.json">
+    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
     <!--
       Notice the use of %PUBLIC_URL% in the tags above.
       It will be replaced with the URL of the `public` folder during the build.
@@ -22,16 +22,21 @@
     <script src="%PUBLIC_URL%/env.js"></script>
     <title>Fedora QA Landingpage</title>
 
-
-    <link href="https://apps.fedoraproject.org/global/fedora-bootstrap-1.5.0/fedora-bootstrap.css" type="text/css" rel="stylesheet" />
+    <link
+      href="https://apps.fedoraproject.org/global/fedora-bootstrap-1.5.0/fedora-bootstrap.css"
+      type="text/css"
+      rel="stylesheet"
+    />
     <!-- <script type="text/javascript" src="https://apps.fedoraproject.org/global/fedora-bootstrap-1.0.3/fedora-bootstrap.js"></script>-->
-    <script defer src="https://use.fontawesome.com/releases/v5.7.1/js/all.js" integrity="sha384-eVEQC9zshBn0rFj4+TU78eNA19HMNigMviK/PU/FFjLXqa/GKPgX58rvt5Z8PLs7" crossorigin="anonymous"></script>
-
+    <script
+      defer
+      src="https://use.fontawesome.com/releases/v5.7.1/js/all.js"
+      integrity="sha384-eVEQC9zshBn0rFj4+TU78eNA19HMNigMviK/PU/FFjLXqa/GKPgX58rvt5Z8PLs7"
+      crossorigin="anonymous"
+    ></script>
   </head>
   <body>
-    <noscript>
-      You need to enable JavaScript to run this app.
-    </noscript>
+    <noscript> You need to enable JavaScript to run this app. </noscript>
     <div id="root"></div>
     <!--
       This HTML file is a template.
diff --git a/src/App.js b/src/App.js
index fb0eb5b..7cefd22 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,21 +1,11 @@
-import React, { useEffect } from "react"
-
+import React from "react"
 import { Route, Switch } from "react-router"
 import { BrowserRouter } from "react-router-dom"
-
 import Wizard from "./wizard/Wizard"
 import LandingPage from "./landingpage/LandingPage"
 import NotFound from "./NotFound"
-import { useDispatch } from "react-redux"
-import { changeLanguage } from "./actions/reduxActions"
+import "./i18n"
 const App = () => {
-  const dispatch = useDispatch()
-
-  useEffect(() => {
-    const lang = localStorage.getItem("locale") || "en"
-    dispatch(changeLanguage(lang))
-  }, [dispatch])
-
   return (
     <BrowserRouter basename={window.env.SUBDIR}>
       <Switch>
diff --git a/src/NotFound.js b/src/NotFound.js
index 86ffa11..d3233ba 100644
--- a/src/NotFound.js
+++ b/src/NotFound.js
@@ -2,10 +2,10 @@ import React from "react"
 import Layout from "./layout/Layout"
 import { Link } from "react-router-dom"
 import { Container } from "reactstrap"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 const Wizard = () => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   return (
     <Layout>
@@ -17,7 +17,7 @@ const Wizard = () => {
               😢
             </span>
           </h3>
-          <Link to="/"> {i18n.t("phrases.go_to_home")}</Link>
+          <Link to="/"> {t("go_to_home")}</Link>
         </p>
       </Container>
     </Layout>
diff --git a/src/actions/reduxActions.js b/src/actions/reduxActions.js
index b32bffc..1c96a21 100644
--- a/src/actions/reduxActions.js
+++ b/src/actions/reduxActions.js
@@ -85,8 +85,3 @@ export const toggleLandingPageModal = (status) => ({
   type: ActionTypes.TOGGLE_LANDING_PAGE_MODAL,
   payload: status,
 })
-
-export const changeLanguage = (lang) => ({
-  type: ActionTypes.CHANGE_LANGUAGE,
-  payload: lang,
-})
diff --git a/src/constants/index.js b/src/constants/index.js
index f78a042..7b60f04 100644
--- a/src/constants/index.js
+++ b/src/constants/index.js
@@ -6,5 +6,4 @@ export default {
   UPDATE_LANDING_PAGE_API_CALL_STATUS: "UPDATE_LANDING_PAGE_API_CALL_STATUS",
   UPDATE_WIZARD_API_CALL_STATUS: "UPDATE_WIZARD_API_CALL_STATUS",
   TOGGLE_LANDING_PAGE_MODAL: "TOGGLE_LANDING_PAGE_MODAL",
-  CHANGE_LANGUAGE: "CHANGE_LANGUAGE",
 }
diff --git a/src/i18n.js b/src/i18n.js
new file mode 100644
index 0000000..97a746e
--- /dev/null
+++ b/src/i18n.js
@@ -0,0 +1,34 @@
+import i18n from "i18next"
+import detector from "i18next-browser-languagedetector"
+import { initReactI18next } from "react-i18next"
+import Backend from "i18next-http-backend"
+import en from "./translation/en.json"
+
+const resources = {
+  en: {
+    translation: en,
+  },
+}
+
+i18n
+  .use(Backend)
+  .use(detector)
+  .use(initReactI18next)
+  .init({
+    react: {
+      useSuspense: false,
+    },
+    fallbackLng: "en",
+    debug: true,
+    keySeparator: false,
+
+    interpolation: {
+      defaultVariables: {
+        screenName: "foo",
+      },
+      escapeValue: false,
+    },
+    resources,
+  })
+
+export default i18n
diff --git a/src/landingpage/Blockers.js b/src/landingpage/Blockers.js
index f716df8..feac4fe 100644
--- a/src/landingpage/Blockers.js
+++ b/src/landingpage/Blockers.js
@@ -2,21 +2,20 @@ import React from "react"
 import { Row, Card, CardBody } from "reactstrap"
 import SourceLink from "./SourceLink"
 import BugStats from "./common/BugStats"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 const Blockers = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
-
+  const { t } = useTranslation()
   return (
     <Card className="cards">
       <CardBody>
         <h1 className="text-center padded">
-          Fedora {props.release} {i18n.t("phrases.blockers_and_FEs")}{" "}
+          Fedora {props.release} {t("blockers_and_FEs")}{" "}
           <SourceLink href="https://qa.fedoraproject.org/blockerbugs/" />
         </h1>
         <Row>
-          <BugStats milestone={i18n.t("words.beta")} stats={props.data.beta} />
-          <BugStats milestone={i18n.t("words.final")} stats={props.data.final} />
+          <BugStats milestone={"Beta"} stats={props.data.beta} />
+          <BugStats milestone={"Final"} stats={props.data.final} />
         </Row>
       </CardBody>
     </Card>
diff --git a/src/landingpage/Events.js b/src/landingpage/Events.js
index 05991da..f8a8ee0 100644
--- a/src/landingpage/Events.js
+++ b/src/landingpage/Events.js
@@ -2,11 +2,10 @@ import React from "react"
 import dateFormat from "dateformat"
 import SourceLink from "./SourceLink"
 import { Card, CardBody, Row, Col } from "reactstrap"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 const Events = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
-
+  const { t } = useTranslation()
   const meetings = props.data.map((meeting) => {
     const old = new Date(meeting.start)
     var date = old.getDate()
@@ -31,7 +30,7 @@ const Events = (props) => {
     <Card className="cards">
       <CardBody>
         <h1 className="text-center padded">
-          {i18n.t("phrases.Meetings_and_testdays_in_the_next_7_days")}{" "}
+          {t("Meetings_and_testdays_in_the_next_7_days")}{" "}
           <SourceLink href="https://apps.fedoraproject.org/calendar/QA/" />
         </h1>
         <Col md={12} className="padded">
diff --git a/src/landingpage/LandingPage.js b/src/landingpage/LandingPage.js
index bcd136b..24ac825 100644
--- a/src/landingpage/LandingPage.js
+++ b/src/landingpage/LandingPage.js
@@ -19,9 +19,10 @@ import * as R from "ramda"
 import { shallowEqual, useDispatch, useSelector } from "react-redux"
 import { loadData, toggleLandingPageModal } from "../actions/reduxActions"
 import Cookies from "universal-cookie"
+import { useTranslation } from "react-i18next"
 
 const LandingPage = () => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   const cookies = new Cookies()
   let available_components = ["events", "blockers", "minutes"]
   let enabled_components = cookies.get("landingpage_enabled_components")
@@ -110,7 +111,7 @@ const LandingPage = () => {
               {components}
               <Col md={{ size: 12, offset: 2 }} className="text-right">
                 <Modal isOpen={showModal} toggle={toggleModal}>
-                  <ModalHeader>{i18n.t("phrases.visibility_configuration")}</ModalHeader>
+                  <ModalHeader>{t("visibility_configuration")}</ModalHeader>
                   <ModalBody>
                     {available_components.map((item) => (
                       <React.Fragment key={item}>
@@ -125,10 +126,10 @@ const LandingPage = () => {
                             />{" "}
                             <label className="custom-control-label clickable" htmlFor={item}>
                               {item === "events"
-                                ? i18n.t("phrases.Meetings_and_testdays_in_the_next_7_days")
+                                ? t("Meetings_and_testdays_in_the_next_7_days")
                                 : item === "minutes"
-                                ? i18n.t("phrases.Fedora_QA_Meeting_Minutes")
-                                : i18n.t("phrases.Fedora_35_blockers_and_FEs")}
+                                ? t("Fedora_QA_Meeting_Minutes")
+                                : t("Fedora_35_blockers_and_FEs")}
                             </label>
                           </div>
                         </Col>
@@ -137,7 +138,7 @@ const LandingPage = () => {
                   </ModalBody>
                   <ModalFooter>
                     <Button color="primary" onClick={toggleModal}>
-                      {i18n.t("words.close")}
+                      {t("close")}
                     </Button>
                   </ModalFooter>
                 </Modal>
@@ -149,7 +150,7 @@ const LandingPage = () => {
                   className="pad btn btn-primary btn-block btn-wrap-text btn-lg active"
                   to="/wizard"
                   role="button">
-                  {i18n.t("phrases.do_you_have_some_spare_time")} <i className="fas fa-search"></i>
+                  {t("do_you_have_some_spare_time")} <i className="fas fa-search"></i>
                 </Link>
               </Col>
             </Row>
diff --git a/src/landingpage/Minutes.js b/src/landingpage/Minutes.js
index 0f61424..ec0f4bf 100644
--- a/src/landingpage/Minutes.js
+++ b/src/landingpage/Minutes.js
@@ -1,8 +1,8 @@
 import React from "react"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 import { Card, CardBody } from "reactstrap"
 const Events = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   const old = props.data.date
 
@@ -15,20 +15,20 @@ const Events = (props) => {
   return (
     <Card className="cards">
       <CardBody className="minutes">
-        <h1 className="text-center padded">{i18n.t("phrases.Fedora_QA_Meeting_Minutes")}</h1>
+        <h1 className="text-center padded">{t("Fedora_QA_Meeting_Minutes")}</h1>
         <div className="events minutes">
           <a target="_blank" href={props.data.link} rel="noopener noreferrer">
-            {i18n.t("phrases.Latest_minutes_from")} {dating} {timing}
+            {t("Latest_minutes_from")} {dating} {timing}
           </a>
           <br />
-          {i18n.t("words.Visit")}{" "}
+          {t("Visit")}{" "}
           <a
             target="_blank"
             href="https://meetbot.fedoraproject.org/sresults/?group_id=fedora-qa&type=team"
             rel="noopener noreferrer">
-            {i18n.t("words.meetbot")}
+            {t("meetbot")}
           </a>{" "}
-          {i18n.t("phrases.to_see_older")}.
+          {t("to_see_older")}.
           <br />
         </div>
       </CardBody>
diff --git a/src/landingpage/Timeline.js b/src/landingpage/Timeline.js
index 4ad0ff1..97a2253 100644
--- a/src/landingpage/Timeline.js
+++ b/src/landingpage/Timeline.js
@@ -1,10 +1,10 @@
 import React, { useState } from "react"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 import { Card, CardBody, Tooltip } from "reactstrap"
 import SourceLink from "./SourceLink"
 
 const Timeline = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   const [tooltipOpen, setTooltipOpen] = useState(false)
 
@@ -12,10 +12,10 @@ const Timeline = (props) => {
 
   const get_title = (summary) => {
     summary = summary.toLowerCase()
-    if (summary.includes("freeze")) return i18n.t("phrases.freeze_Text")
-    if (summary === "rawhide") return i18n.t("phrases.Rawhide_Text")
-    if (summary.includes("branch")) return i18n.t("phrases.branch_Text")
-    if (summary.includes("release")) return i18n.t("phrases.release_Text")
+    if (summary.includes("freeze")) return t("freeze_Text")
+    if (summary === "rawhide") return t("Rawhide_Text")
+    if (summary.includes("branch")) return t("branch_Text")
+    if (summary.includes("release")) return t("release_Text")
   }
 
   const line = props.data.map((milestone) => {
@@ -46,7 +46,7 @@ const Timeline = (props) => {
       <Card>
         <CardBody>
           <h1 className="text-center padded" width="150">
-            {i18n.t("phrases.current_development_schedule")}{" "}
+            {t("current_development_schedule")}{" "}
             <span href="#" id="TooltipExample">
               <i className="fas fa-question-circle light"></i>
             </span>
@@ -55,7 +55,7 @@ const Timeline = (props) => {
               isOpen={tooltipOpen}
               target="TooltipExample"
               toggle={toggle}>
-              {i18n.t("phrases.timeline_Text")}
+              {t("timeline_Text")}
             </Tooltip>{" "}
             <SourceLink href="https://fedorapeople.org/groups/schedule/" />
           </h1>
diff --git a/src/landingpage/common/BugStats.js b/src/landingpage/common/BugStats.js
index 0d42fae..67d7210 100644
--- a/src/landingpage/common/BugStats.js
+++ b/src/landingpage/common/BugStats.js
@@ -1,11 +1,10 @@
 import React from "react"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 import { Table, Col } from "reactstrap"
 
 const BugStats = (props) => {
   const { milestone, stats } = props
-
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   return (
     <Col md={6} className="bugscount">
@@ -21,19 +20,19 @@ const BugStats = (props) => {
           {stats && (
             <>
               <tr>
-                <td>{i18n.t("phrases.Proposed_Blockers")}</td>
+                <td>{t("Proposed_Blockers")}</td>
                 <td>{stats.blockers_proposed}</td>
               </tr>
               <tr>
-                <td>{i18n.t("phrases.Accepted_Blockers")}</td>
+                <td>{t("Accepted_Blockers")}</td>
                 <td>{stats.blockers}</td>
               </tr>
               <tr>
-                <td>{i18n.t("phrases.Proposed_FEs")}</td>
+                <td>{t("Proposed_FEs")}</td>
                 <td>{stats.fe_proposed}</td>
               </tr>
               <tr>
-                <td>{i18n.t("phrases.Accepted_FEs")}</td>
+                <td>{t("Accepted_FEs")}</td>
                 <td>{stats.fe}</td>
               </tr>
             </>
diff --git a/src/layout/Footer.js b/src/layout/Footer.js
index f1447ac..69976ca 100644
--- a/src/layout/Footer.js
+++ b/src/layout/Footer.js
@@ -1,15 +1,14 @@
 import React from "react"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 const Footer = () => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   return (
     <div className="footer">
       <div className="container">
-        <a href="https://pagure.io/fedora-qa/landingpage">{i18n.t("words.source")}</a>{" "}
-        {i18n.t("phrases.on_Pagure")}{" "}
-        <span className="float-right">{i18n.t("words.version")} 0.1.0</span>
+        <a href="https://pagure.io/fedora-qa/landingpage">{t("source")}</a> {t(".on_Pagure")}{" "}
+        <span className="float-right">{t("version")} 0.1.0</span>
       </div>
     </div>
   )
diff --git a/src/layout/Masthead.js b/src/layout/Masthead.js
index 8295705..52bcf2f 100644
--- a/src/layout/Masthead.js
+++ b/src/layout/Masthead.js
@@ -13,13 +13,9 @@ import {
 import { API_CALL_STATUS_VALUES } from "../constants/ProjectConstants"
 import { ROUTE } from "../constants/Routes"
 import logo from "./logo.png"
-import {
-  changeLanguage,
-  loadData,
-  loadWizardData,
-  toggleLandingPageModal,
-} from "../actions/reduxActions"
+import { loadData, loadWizardData, toggleLandingPageModal } from "../actions/reduxActions"
 import { shallowEqual, useDispatch, useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 const selectWizardFromStore = (state) => state.wizard.api_call_status
 const selectLandingPageFromStore = (state) => state.landing_page.api_call_status
@@ -32,7 +28,7 @@ const language = [
 ]
 
 const Masthead = () => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t, i18n } = useTranslation()
   const [dropdownOpen, setDropdownOpen] = useState(false)
   const [lang, setLang] = useState("")
 
@@ -74,8 +70,9 @@ const Masthead = () => {
   }
 
   const handleClick = (lang) => {
+    i18n.changeLanguage(lang)
+    localStorage.setItem("locale", lang)
     setLang(lang)
-    dispatch(changeLanguage(lang))
   }
 
   useEffect(() => {
@@ -103,7 +100,7 @@ const Masthead = () => {
                   <span className="fa-lg mr-1 text-danger">
                     <i className="fas fa-exclamation-triangle"></i>
                   </span>
-                  <span className="mr-3">{i18n.t("words.Retrying")}</span>
+                  <span className="mr-3">{t("Retrying")}</span>
                 </>
               )}
               <span className="fa-lg mr-3">
@@ -116,7 +113,7 @@ const Masthead = () => {
               <span className="fa-lg mr-1">
                 <i class="fas fa-exclamation-triangle"></i>
               </span>
-              <span className="mr-3">{i18n.t("phrases.Failed_to_fetch_data")}</span>
+              <span className="mr-3">{t("Failed_to_fetch_data")}</span>
               {handleRetry && (
                 <Button outline color="danger" size="sm" onClick={handleRetry}>
                   Retry
@@ -124,18 +121,15 @@ const Masthead = () => {
               )}
             </>
           )}
-          {ROUTE.LANDING_PAGE === location.pathname && (
-            <ButtonDropdown isOpen={dropdownOpen} toggle={toggle}>
-              <DropdownToggle caret>
-                {lang ? lang : i18n.t("phrases.select_language")}
-              </DropdownToggle>
-              <DropdownMenu>
-                {language.map((item) => (
-                  <DropdownItem onClick={() => handleClick(item.lang)}>{item.name}</DropdownItem>
-                ))}
-              </DropdownMenu>
-            </ButtonDropdown>
-          )}
+
+          <ButtonDropdown isOpen={dropdownOpen} toggle={toggle}>
+            <DropdownToggle caret>{lang ? lang : t("select_language")}</DropdownToggle>
+            <DropdownMenu>
+              {language.map((item) => (
+                <DropdownItem onClick={() => handleClick(item.lang)}>{item.name}</DropdownItem>
+              ))}
+            </DropdownMenu>
+          </ButtonDropdown>
 
           {ROUTE.LANDING_PAGE === location.pathname && (
             <Button color="primary" onClick={toggleModal}>
diff --git a/src/reducers/index.js b/src/reducers/index.js
index 731ecbb..7f00ae5 100644
--- a/src/reducers/index.js
+++ b/src/reducers/index.js
@@ -1,6 +1,4 @@
 import ActionTypes from "../constants"
-import i18n from "i18n-js"
-import en from "../translation/en"
 
 const defaultState = {
   landing_page: {
@@ -23,9 +21,6 @@ const defaultState = {
   landing_page_controls: {
     showModal: false,
   },
-  locale: {
-    i18n: i18n,
-  },
 }
 
 export default (state = defaultState, action) => {
@@ -72,21 +67,6 @@ export default (state = defaultState, action) => {
         },
       }
 
-    case ActionTypes.CHANGE_LANGUAGE:
-      let locale = action.payload
-      localStorage.setItem("locale", locale)
-      i18n.locale = locale
-      i18n.fallbacks = true
-      i18n.translations = { en }
-      let newI18n = { ...i18n }
-      return {
-        ...state,
-        locale: {
-          ...state.locale,
-          i18n: newI18n,
-        },
-      }
-
     default:
       return {
         ...state,
diff --git a/src/translation/en.js b/src/translation/en.js
deleted file mode 100644
index d6507cd..0000000
--- a/src/translation/en.js
+++ /dev/null
@@ -1,373 +0,0 @@
-export default {
-  Installation_text:
-    "The <1>Installation</1> testcases generally deal with a part of the installation procedure.<2 /> You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<2 /> <3>Note:</3> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
-  Desktop_Text:
-    "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<2 /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  Base_Text:
-    "The <1>Base</1> testcases cover the system&#x27;s basic functionality just after a clean installation. <2 /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <2 /><3>Pro tip:</3> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
-  Server_Text:
-    "The <1>Server</1> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
-  cloud_Text:
-    "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<2 />Have a look at the <3  target=_blank  rel=noopener noreferrer  href=https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup>  Cloud provider setup</3>guides for more details.",
-  What_is_Karma_Text:
-    "The updates are kept in   <1 target=_blank rel=noopener noreferrer href=https://bodhi.fedoraproject.org/> Bodhi</a>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
-  Make_sure_you: "Make sure your system is up-to-date: <1>sudo dnf update --refresh</1>",
-  Install_fedora_easy_karma_tool:
-    "Install fedora-easy-karma tool: <1>sudo dnf install fedora-easy-karma</1>",
-  Have_a_look:
-    "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>dnf --enablerepo=updates-testing list --refresh --upgrades</1> and choose a package you know.",
-  Install_the_packages:
-    "Install the package  <1>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME </1>, and test whether it works, as you would expect.<2 /> <2> Note:</2> Other packages from <1>updates-testing</1> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
-  Sometimes_the_update:
-    "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <1 /> Run <2>fedora-easy-karma --fas-username=FAS_USERNAME</2>, and look for  <2>Bugs</2>, <2>Test Cases</2>, and/or <code>Notes</code> sections in the detailed output, ",
-  We_already_mentioned_bodhi:
-    "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <2 /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <1 /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
-  Run_fedora_easy_karam:
-    "Run <1>fedora-easy-karma --fas-username=FAS_USERNAME</1> and report what you found out. ",
-  It_identifies_installed:
-    "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <2 /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-  Enter_to_mark_positive:
-    "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <1>-1</1> to mark the package as broken. <2 /> Not sure you can judge the package's state? Have a look at the <3 target=_blank href=https://fedoraproject.org/wiki/QA:Update_feedback_guidelines rel=noopener noreferrer> Update Feedback Guidelines </3> <2 /> Still not sure? Just press <1>Enter</1> to skip it.",
-  Add_a_comment_even_if:
-    "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <1>I tried openning and editing a document, and it worked.</1> when you test a text-editor, or  <1>I opened a couple of tabs, and browsed random pages.</1> for a web-browser. <2 /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
-  Restore_the_stable:
-    "Restore the stable-packages on your system by running  <1>sudo dnf distro-sync</1>",
-  Identify_The_Testcase:
-    "Identify the testcase and `environment` in our  <1 target=_blank rel=noopener noreferrer href={matrix_url}> Tescase matrix </1>.",
-  Have_a_look_at_the_matrix:
-    "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are {environment_examples} for the {testtype} testcases, but you can also encouter a generic <1>Result</1>  column, which usually means you can use any media/architecture available.",
-  for_this_perticular:
-    "For this particular testcase, <1>{extra_data.envs.join(, )}</1> {extra_data.envs.length > 1 ? environments are : environment is missing results.",
-  Read_the_TestCase:
-    "Read the <1 target=_blank rel=noopener noreferrer href={tc_url}> Testcase </1> briefly, just to have a general idea of what you will be doing.",
-  Description_Text: "<1>Description</1> should give you a general idea of what is being tested",
-  Setup_Text: "<1>Setup</1> describes the steps to take before you begin working on the testcase",
-  How_to_Test:
-    "<1>How to test</1> contains the individual steps to take in order to perform the testcase",
-  Expected_Results:
-    "<1>Expected results</1> describe what you should check while testing in order to decide whether it Passed of Failed",
-  study_the_testcase:
-    "Study the <1 target=_blank rel=noopener noreferrer href={tc_url}> Testcase</1> thoroughly, to be sure you know what to do.",
-  If_you_are_not_familiar:
-    "If you are not that familiar with IRC, you can use the <1 target=_blank rel=noopener noreferrer href=http://webchat.freenode.net> web-interface </1>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  Great_either_use:
-    "Great! Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the  <2 target=_blank rel=noopener noreferrer href={matrix_url}>matrix</2> directly by clicking on the <1>Edit</1> link next to the Matrice's header, andput <1>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</1> in theappropriate spot.",
-  Awesome_ideally_read:
-    "Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report <1 /> If you don't feel like reading a wall of text, at least pot together a small document containing:",
-  Once_you_get_the_bug:
-    " Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the <2 target=_blank rel=noopener noreferrer href={matrix_url}>matrix </2> directly by clicking on the <1>Edit</1> link next to the Matrice's header, and put <1>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</1> in the appropriate spot.",
-  Share_your_notes:
-    "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net  <1 expand_text=Don&#39;t have an IRC client?> If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect. </1>",
-  words: {
-    hello: "Hello",
-    disable: "Disable",
-    enable: "Enable",
-    Rawhide: "Rawhide",
-    Upgrade: "Upgrade",
-    Miscellaneous: "Miscellaneous",
-    Run: "Run",
-    Description: "Description",
-    Note: "Note:",
-    final: "Final",
-    Result: "Result",
-    Visit: "Visit",
-    enter: "Enter",
-    notes: "Notes",
-    beta: "Beta",
-    close: "Close",
-    source: "Source",
-    version: "version",
-    english: "english",
-    Retrying: "Retrying",
-    Installation: "Installation",
-    the: "The",
-    Desktop: "Desktop",
-    Base: "Base",
-    or: "or",
-    Server: "Server",
-    Cloud: "Cloud",
-    Bodhi: "Bodhi",
-    Bugs: "Bugs",
-    Preperation: "Preperation",
-    Testing: "Testing",
-    Reporting: "Reporting",
-    Easyfix: "Easyfix",
-    Manual_Testing: "Manual Testing",
-    Beginner_Guide: "Beginner Guide",
-    meetbot: "meetbot",
-    primary: "primary",
-    See: "See!",
-    warning: "warning",
-    Expand: "Expand",
-    Workstation: "Workstation",
-    Minimal: "Minimal",
-    for_the: "for the",
-    Testcase: "Testcase",
-    Setup: "Setup",
-    here: "here",
-    missing_results: "missing results.",
-    web_interface: "web-interface",
-    relval: "relval",
-    matrix: "matrix",
-    Edit: "Edit",
-    danger: "danger",
-  },
-  phrases: {
-    Tescase_matrix: "Tescase matrix",
-    I_found_a_bug: "I found a bug!",
-    Feeling_a_bit_lost: "Feeling a bit lost?",
-    result_fail_your: "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
-    if_you_dont_like_like_reading:
-      "If you don't feel like reading a wall of text, at least pot together a small document containing:",
-    Awesome_Ideally_read_up_on: " Awesome! Ideally read up on",
-    Study_the: "Study the",
-    package_first: " package first), or modify the",
-    directly_by_clicking_on_the: " directly by clicking on the",
-    result_pass_your: "result|pass|YOUR_NAME_HERE|",
-    link_next_to_the_Matrice_header_and_put: " link next to the Matrice's header, and put",
-    in_the_appropriate_spot: "in the appropriate spot.",
-    dont_have_an: "Don't have an IRC client?",
-    on_command_line: "on command line (make sure to install the",
-    relval_report_results: "relval report-results",
-    Great_Either_use: "Great! Either use",
-    Everything_went_well: "Everything went well",
-    should_give_you_a: "should give you a general idea of what is being tested",
-    if_you_are: " If you are not that familiar with IRC, you can use the",
-    The_testcase_structure_is_not_making_sense: "The testcase structure is not making sense?",
-    Get_your_hands: "Get your hands dirty, and test the hell out of it!",
-    Just_enter_a_Nickname:
-      "just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-    The_testcases_are_generally_split_into_four_sections:
-      "The testcases are generally split into four sections:",
-    describes_the_steps: "describes the steps to take before you begin working on the testcase",
-    For_this_particular_testcase: "For this particular testcase,",
-    thoroughly_to_be_sure_you_know_what_to_do: " thoroughly, to be sure you know what to do.",
-    Bodhi_Karma: "Bodhi Karma",
-    describes_you_to_check:
-      "describe what you should check while testing in order to decide whether it Passed of Failed",
-    How_to_test: "How to test",
-    based_on_the: "Based on the enviromnent, select and download and appropriate ISO",
-    contains_the_individual:
-      "contains the individual steps to take in order to perform the testcase",
-    Show_me: "Show me",
-    Expected_results: "Expected results",
-    Maybe_you_are_stuck:
-      "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
-    Column_which_usually:
-      "column, which usually means you can use any media/architecture available.",
-    testcases_but_you_can: "testcases, but you can also encouter a generic",
-    missing_results: "missing results.",
-    Should_give_you: "should give you a general idea of  what is being tested",
-    briefly_just: " briefly, just to have a general idea of what you will be doing.",
-    Read_the: " Read the",
-    Not_sure_what_that_means: " Not sure what that means?",
-    Not_making_much_sense: "Not making much sense?",
-    Column_which_actually:
-      "column, which usually means you can use any  media/architecture available.",
-    ModalBadge:
-      " Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
-    Identify_the_testcase_and_environment_in_our:
-      "Identify the testcase and `environment` in our ",
-    Fedora_Manual_Testing: "Fedora Manual Testing",
-    Not_sure_what_Karma_means: "Not sure what Karma means?",
-    Preperation_text:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-    Installation_text0:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-    testing_text:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-    reporting_text:
-      " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-    sudo_dnf_update_refresh: "sudo dnf update --refresh",
-    FAS_Sign_up_page: "FAS Sign-up page",
-    Test_Cases: "Test Cases",
-    and_or: "and/or",
-    fedora_easy_karma: "fedora-easy-karma",
-    fedora_Q_a: "<div><h1>fkfhrry</h1></div>",
-    sections_in_the_detailed_output: "sections in the detailed output.",
-    sudo_dnf_distro_sync: "sudo dnf distro-sync",
-    Update_Feedback_Guidelines: " Update Feedback Guidelines",
-    sudo_dnf_install_fedora_easy_karma: "sudo dnf install fedora-easy-karma",
-    cloud_text: " Even thought the",
-    Cloud_provider_setup: " Cloud provider setup",
-    guides_for_more_details: " guides for more details.",
-    is_a_group: "Is a group containing several projects. Expand to see more.",
-    cloud_text1:
-      "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
-    Failed_to_fetch_data: "Failed to fetch data!",
-    cloud_text2: "Have a look at the",
-    select_language: "Select Language",
-    base_text: "testcases cover the system's basic functionality just after a clean installation.",
-    on_Pagure: "on Pagure",
-    Pro_tip: " Pro tip",
-    base_text1:
-      "  Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine.",
-    change_language: "Change Language",
-    Desktop_text: "testcases cover basic functionality of the desktop environment.",
-    base_text3:
-      "using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase.",
-    Desktop_text1:
-      "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-    save_changes: "Save changes",
-    configure_visibility: "Configure visibility of the info-cards",
-    test_cases: "Test Cases",
-    go_to_home: "Go to home page ",
-    for_a_web: "for a web-browser",
-    to_see_older: "to see older",
-    User_interface: "User interface",
-    Test_Matrix: "Test Matrix",
-    Few_hours: "Few hours",
-    Task_that_can_take_up_to_Few_Hours: "Task that can take up to Few Hours",
-    update_testing: "updates-testing",
-    section_in_the: "sections in the detailed output.",
-    and_look_for: ",and look for",
-    Storage_devices: "Storage devices",
-    Server_text:
-      "testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
-    What_is_Karma: "What is Karma",
-    Several_days: "Several days",
-    Task_that_can_take_up_to_Several_Days: "Task that can take up to Several Days",
-    Im_a_complete_beginner: "I'm a complete beginner",
-    please_guide_to_me_this: "please guide to me this",
-    Ive_already_done_this: "I've already done this",
-    Show_me_the_test_cases: "Show me the test cases",
-    Proposed_FEs: "Proposed FEs",
-    Accepted_FEs: "Accepted FEs",
-    Tell_me_More: "Tell me more!",
-    IoT_Test_Day: "[F34] IoT Test Day",
-    ARM_disk_images: "ARM disk images",
-    Not_sure_how: "Not sure how?",
-    Make_sure_to: "Make sure to read about identifying the environment above.",
-    Most_of_the_time:
-      "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
-    to_skip_it: "to skip it.",
-    repo_by: " repo, by running ",
-    the_name_of: " The name of the ISO image you used ",
-    testcases_generally: "testcases generally deal with a part of the installation procedure.",
-    is_a_group_containing: " - Is a group containing several projects. Expand to see more.",
-    note_what_you_did:
-      "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
-    if_you_are_not_familiar:
-      "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-    you_can_either_install:
-      "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-    the_updates_are: "The updates are kept in",
-
-    and_choose_a: "and choose a package you know.",
-    and_create_it: "and create it.",
-    brief_description_of_what:
-      " Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
-    try_to_reproduce_the:
-      "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
-    choose_an_update: "Choose an update to test",
-    note_the_user: "Note the username and password, you will need it later on.",
-    sure_let_me_do_it: "Sure, let me do it!",
-    an_update_can:
-      "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
-    Audio_Test_Day: "[F34] Audio Test Day",
-    it_identifies: "It identifies the packages installed from the ",
-    and_report_what_you_found_out: "and report what you found out.",
-    Install_the_package: "Install the package",
-    repository_and_matches: "repository, and matches them to the updates in Bodhi.",
-    Fedora_Media_Writer: "Fedora Media Writer",
-    Choose_an_update_to_test: "Choose an update to test",
-    once_you_get_the_bug_reported:
-      "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
-    users_or_automated:
-      "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
-    which_acts_as_a_gatekeeper:
-      ", which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together. ",
-    Installation_repositories: "Installation repositories",
-    Release_blocking_environments: "elease-blocking environments ",
-    Default_boot_and_install: "Default boot and install (x86_64)",
-    Default_boot_and_install_aarch64: "Default boot and install (aarch64)",
-    Custom_storage_configuration: "Custom storage configuration",
-    Release_blocking_desktops: "Release-blocking desktops",
-    Accepted_Blockers: "Accepted Blockers",
-    Fedora_QA_Meeting: "Fedora QA Meeting",
-    Testing_Bodhi_Karma: "Testing - Bodhi Karma",
-    Programming_Easyfix: "Programming - Easyfix",
-    Proposed_Blockers: "Proposed Blockers	",
-    Need_some_tips: "Need some tips?",
-    Sourceon_Pagure: "Sourceon Pagure",
-    Want_something_a_bit_nicer: "Want something a bit nicer?",
-    version: "version 0.1.0",
-    still_not_sure: "Still not sure? Just press ",
-    when_you_test: "when you test a text-editor, or",
-    Make_your_choice: "Make your choice!",
-    Restore_the_stable: "Restore the stable-packages on your system by running ",
-    Other_packages_from: "Other packages from",
-    New_to_fedora: "New to fedora-easy-karma?",
-    Dont_have_one_yet: "Don't have one yet?",
-    Nothing_sparked_joy: " Nothing sparked joy?",
-    Beta_Freeze: "Beta Freeze (starts at 1400 UTC)",
-    Final_Freeze: "Final Freeze (starts at 1400 UTC) ",
-    Blocker_Review_Meeting: "Blocker Review Meeting",
-    Fedora_35_blockers_and_FEs: "Fedora 35 blockers and FEs",
-    Fedora_QA_Meeting_Minutes: "Fedora QA Meeting Minutes",
-    blockers_and_FEs: "blockers and FEs",
-    Visit_meetbot_to_see_older: "Visit meetbot to see older.",
-    current_development_schedule: "Current development schedule",
-    Latest_minutes_from: "Latest minutes from",
-    i_opened_a_couple: " I opened a couple of tabs, and browsed random pages.",
-    Branch_Fedora_Linux_34_from_Rawhide: "Branch Fedora Linux 34 from Rawhide",
-    Advanced_custom_storage_configuration: "Advanced custom storage configuration",
-    Beta_Release_Public_Availability: "Beta Release Public Availability",
-    Fedora_Accounts_System: "Fedora Accounts System (FAS) account is required.",
-    Final_Release_Public_Availability: "Final Release Public Availability (GA)",
-    Testing_Fedora_Release_validation: "Testing - Fedora Release validation",
-    Meetings_and_testdays_in_the_next_7_days: "Meetings and testdays in the next 7 days",
-    Tell_me_more_about: "Tell me more about the process! ",
-    to_mark_the: "to mark the package as broken.",
-    if_you_dont:
-      " If you don't feel like reading a wall of text, at least pot together a small document containing:",
-    shows_the_URL:
-      "shows the URL of the relevant update near the bottom of the text output - look for URL like",
-    you_can_have_a_look:
-      "You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
-    you_are_then_presented:
-      "You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-    to_mark_positive:
-      "to mark positive karma (the update works just fine, as far as you can tell), or",
-    not_sure_you_can: "Not sure you can judge the package's state? Have a look at the",
-    add_a_comment:
-      "Add a comment - even if it works, try to describe what you tested. It can be as easy as",
-    do_you_have_some_spare_time: "Click here, and help us make Fedora better!",
-    The_goal_of_release_validation_testing_is_to_ensure:
-      "The goal of release validation testing is to ensure the release candidate meets the requirements for Fedora releases. You will manually execute test cases to verify installation and basic functionality of the various Fedora products.",
-    Simple_voting_system_that_allows_for_esters_to_provide_feedback_as:
-      "Simple voting system that allows for testers to provide feedback as to whether a given package update works or not.",
-    Number_of_projects_within_Fedora_which_are_looking_for_help:
-      "Number of projects within Fedora which are looking for help. These tasks have been evaluated as easy entrance point.",
-    None_of_the_above_looks_interesting_to_you:
-      "None of the above looks interesting to you? We'd be happy if you looked around at",
-    Before_a_new_version_of_a_package:
-      "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
-    The_Base_testcases_cover_the_system:
-      "The Base testcases cover the system's basic functionality just after a clean installation",
-    Most_times_you_will_be_asked_to_perform_a_clean_Fedora_installation:
-      "Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine",
-    Pro_tip_using_a_snapshot_of_cleanly_installed_Virtual_machine_is_just_fine:
-      "Pro tip: using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase",
-    Even_thought_the_Cloud_testcases_are_best_done_in_the_specific_environments:
-      "Even thought the Cloud testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.Have a look at the Cloud provider setup guides for more details.",
-    The_Desktop_testcases_cover_basic_functionality_of_the_desktop_environment:
-      "The Desktop testcases cover basic functionality of the desktop environment.You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-    The_Installation_testcases_generally_deal_with_a_part_of_the_installation_procedure:
-      "The Installation testcases generally deal with a part of the installation procedure",
-    You_will_certainly_need_an_installation_ISO:
-      "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
-    Absolutely_make_sure:
-      "Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment",
-    i_tried_openning: "I tried openning and editing a document, and it worked",
-    freeze_Text:
-      "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
-    Rawhide_Text: "Next Fedora release hasn't been branched yet from rolling release branch.",
-    branch_Text:
-      "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
-    release_Text:
-      "Release candidate was accepted (violating no milestone criteria) and was released.",
-    timeline_Text: "This is a timeline of current Fedora release schedule",
-    visibility_configuration: "Visibility Configuration",
-  },
-}
diff --git a/src/translation/en.json b/src/translation/en.json
new file mode 100644
index 0000000..05a0dac
--- /dev/null
+++ b/src/translation/en.json
@@ -0,0 +1,288 @@
+{
+  "Installation_text": "The <0>Installation</0> testcases generally deal with a part of the installation procedure.<1 /> You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<1 /> <2>Note:</2> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
+  "Desktop_Text": "The <0>Desktop</0> testcases cover basic functionality of the desktop environment.<1 /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "Base_Text": "The <0>Base</0> testcases cover the system's basic functionality just after a clean installation. <1 /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <1 /><2>Pro tip:</2> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
+  "Server_Text": "The <0>Server</0> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<2 />Have a look at the <0  target=_blank  rel=noopener noreferrer  href=https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup>  Cloud provider setup </0> guides for more details.",
+  "What_is_Karma_Text": "The updates are kept in <0 target=_blank rel=noopener noreferrer href=https://bodhi.fedoraproject.org>Bodhi</0>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
+  "Make_sure_you": "Make sure your system is up-to-date: <1>sudo dnf update --refresh</1>",
+  "Install_fedora_easy_karma_tool": "Install fedora-easy-karma tool: <1>sudo dnf install fedora-easy-karma</1>",
+  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>dnf --enablerepo=updates-testing list --refresh --upgrades</1> and choose a package you know.",
+  "Install_the_packages": "Install the package  <1>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME </1>, and test whether it works, as you would expect.<br /> <0> Note:</0> Other packages from <1>updates-testing</1> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
+  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <0/> Run <1>fedora-easy-karma --fas-username=FAS_USERNAME</1>, and look for  <1>Bugs</1>, <1>Test Cases</1>, and/or <1>Notes</1> sections in the detailed output.",
+  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <2 /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <1 /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "Run_fedora_easy_karam": "Run <1>fedora-easy-karma --fas-username=FAS_USERNAME</1> and report what you found out. ",
+  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <2 /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <1>-1</1> to mark the package as broken. <2 /> Not sure you can judge the package's state? Have a look at the <0 target=_blank href=https://fedoraproject.org/wiki/QA:Update_feedback_guidelines rel=noopener noreferrer> Update Feedback Guidelines </0> <2 /> Still not sure? Just press <1>Enter</1> to skip it.",
+  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <1>I tried openning and editing a document, and it worked.</1> when you test a text-editor, or  <1>I opened a couple of tabs, and browsed random pages.</1> for a web-browser. <0 /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
+  "Restore_the_stable": "Restore the stable-packages on your system by running  <1>sudo dnf distro-sync</1>",
+  "Identify_The_Testcase": "Identify the testcase and `environment` in our  <0 target=_blank rel=noopener noreferrer href={{matrix_url}}> Tescase matrix </0>.",
+  "Have_a_look_at_the_matrix": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are {{environment_examples}} for the {{testtype}} testcases, but you can also encouter a generic <6>Result</6> column, which usually means you can use any media/architecture available.",
+  "Have_a_look_at_the_matrix2": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are {{environment_examples}} for the {{testtype}} testcases, but you can also encouter a generic <7>Result</7> column, which usually means you can use any media/architecture available.",
+  "for_this_particular": "For this particular testcase, <1>{{join}}</1> {{length}} missing results.",
+  "Read_the_TestCase": "Read the <0 target=_blank rel=noopener noreferrer href={tc_url}> Testcase </0> briefly, just to have a general idea of what you will be doing.",
+  "Description_Text": "<0>Description</0> should give you a general idea of what is being tested",
+  "Setup_Text": "<0>Setup</0> describes the steps to take before you begin working on the testcase",
+  "How_to_Test": "<0>How to test</0> contains the individual steps to take in order to perform the testcase",
+  "Expected_Results": "<0>Expected results</0> describe what you should check while testing in order to decide whether it Passed of Failed",
+  "study_the_testcase": "Study the <0 target=_blank rel=noopener noreferrer href={tc_url}> Testcase</0> thoroughly, to be sure you know what to do.",
+  "If_you_are_not_familiar": "If you are not that familiar with IRC, you can use the <0 target=_blank rel=noopener noreferrer href=http://webchat.freenode.net> web-interface </0>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "Great_either_use": "Great! Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the <0 target=blank rel=noopener noreferrer href={matrix_url}> matrix </0> directly by clicking on the <1>Edit</1> link next to the Matrice's header, and put <1>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</1> in the appropriate spot.",
+  "Awesome_ideally_read": "Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report <br /> If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the <0 target=_blank rel=noopener noreferrer href={matrix_url}>matrix </0> directly by clicking on the <1>Edit</1> link next to the Matrice's header, and put <1>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</1> in the appropriate spot.",
+  "Installation_example": "<1><2>x86_64</2> or <6>ARM</6><1>",
+  "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net  <0 expand_text=Don&#39;t have an IRC client?> If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect. </0>",
+  "hello": "Hello",
+  "disable": "Disable",
+  "enable": "Enable",
+  "Rawhide": "Rawhide",
+  "Upgrade": "Upgrade",
+  "Miscellaneous": "Miscellaneous",
+  "Run": "Run",
+  "Description": "Description",
+  "Note": "Note:",
+  "Result": "Result",
+  "Visit": "Visit",
+  "enter": "Enter",
+  "notes": "Notes",
+  "close": "Close",
+  "source": "Source",
+  "version": "version",
+  "english": "english",
+  "Retrying": "Retrying",
+  "Installation": "Installation",
+  "the": "The",
+  "Desktop": "Desktop",
+  "Base": "Base",
+  "or": "or",
+  "Server": "Server",
+  "Cloud": "Cloud",
+  "Bodhi": "Bodhi",
+  "Bugs": "Bugs",
+  "Preperation": "Preperation",
+  "Testing": "Testing",
+  "Reporting": "Reporting",
+  "Easyfix": "Easyfix",
+  "Manual_Testing": "Manual Testing",
+  "Beginner_Guide": "Beginner Guide",
+  "meetbot": "meetbot",
+  "primary": "primary",
+  "See": "See!",
+  "warning": "warning",
+  "Expand": "Expand",
+  "Workstation": "Workstation",
+  "Minimal": "Minimal",
+  "for_the": "for the",
+  "Testcase": "Testcase",
+  "Setup": "Setup",
+  "here": "here",
+  "missing_results": "missing results.",
+  "web_interface": "web-interface",
+  "relval": "relval",
+  "matrix": "matrix",
+  "Edit": "Edit",
+  "danger": "danger",
+  "success": "success",
+
+  "Tescase_matrix": "Tescase matrix",
+  "I_found_a_bug": "I found a bug!",
+  "Feeling_a_bit_lost": "Feeling a bit lost?",
+  "result_fail_your": "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
+  "if_you_dont_like_like_reading": "If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "Study_the": "Study the",
+  "package_first": " package first), or modify the",
+  "directly_by_clicking_on_the": " directly by clicking on the",
+  "result_pass_your": "result|pass|YOUR_NAME_HERE|",
+  "link_next_to_the_Matrice_header_and_put": " link next to the Matrice's header, and put",
+  "in_the_appropriate_spot": "in the appropriate spot.",
+  "dont_have_an": "Don't have an IRC client?",
+  "on_command_line": "on command line (make sure to install the",
+  "relval_report_results": "relval report-results",
+  "Great_Either_use": "Great! Either use",
+  "Everything_went_well": "Everything went well",
+  "should_give_you_a": "should give you a general idea of what is being tested",
+  "if_you_are": " If you are not that familiar with IRC, you can use the",
+  "The_testcase_structure_is_not_making_sense": "The testcase structure is not making sense?",
+  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
+  "Just_enter_a_Nickname": "just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "The_testcases_are_generally_split_into_four_sections": "The testcases are generally split into four sections:",
+  "describes_the_steps": "describes the steps to take before you begin working on the testcase",
+  "For_this_particular_testcase": "For this particular testcase,",
+  "thoroughly_to_be_sure_you_know_what_to_do": " thoroughly, to be sure you know what to do.",
+  "Bodhi_Karma": "Bodhi Karma",
+  "describes_you_to_check": "describe what you should check while testing in order to decide whether it Passed of Failed",
+  "How_to_test": "How to test",
+  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
+  "contains_the_individual": "contains the individual steps to take in order to perform the testcase",
+  "Show_me": "Show me",
+  "Expected_results": "Expected results",
+  "Maybe_you_are_stuck": "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
+  "Column_which_usually": "column, which usually means you can use any media/architecture available.",
+  "testcases_but_you_can": "testcases, but you can also encouter a generic",
+  "Should_give_you": "should give you a general idea of  what is being tested",
+  "briefly_just": " briefly, just to have a general idea of what you will be doing.",
+  "Read_the": " Read the",
+  "Not_sure_what_that_means": " Not sure what that means?",
+  "Not_making_much_sense": "Not making much sense?",
+  "Column_which_actually": "column, which usually means you can use any  media/architecture available.",
+  "ModalBadge": " Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
+  "Identify_the_testcase_and_environment_in_our": "Identify the testcase and `environment` in our ",
+  "Fedora_Manual_Testing": "Fedora Manual Testing",
+  "Not_sure_what_Karma_means": "Not sure what Karma means?",
+  "Preperation_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "Installation_text0": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "testing_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "reporting_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "sudo_dnf_update_refresh": "sudo dnf update --refresh",
+  "FAS_Sign_up_page": "FAS Sign-up page",
+  "Test_Cases": "Test Cases",
+  "and_or": "and/or",
+  "fedora_easy_karma": "fedora-easy-karma",
+  "fedora_Q_a": "<div><h1>fkfhrry</h1></div>",
+  "sections_in_the_detailed_output": "sections in the detailed output.",
+  "sudo_dnf_distro_sync": "sudo dnf distro-sync",
+  "Update_Feedback_Guidelines": " Update Feedback Guidelines",
+  "sudo_dnf_install_fedora_easy_karma": "sudo dnf install fedora-easy-karma",
+  "cloud_text": " Even thought the",
+  "Cloud_provider_setup": " Cloud provider setup",
+  "guides_for_more_details": " guides for more details.",
+  "is_a_group": "Is a group containing several projects. Expand to see more.",
+  "cloud_text1": "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
+  "Failed_to_fetch_data": "Failed to fetch data!",
+  "cloud_text2": "Have a look at the",
+  "select_language": "Select Language",
+  "base_text": "testcases cover the system's basic functionality just after a clean installation.",
+  "on_Pagure": "on Pagure",
+  "Pro_tip": " Pro tip",
+  "base_text1": "  Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine.",
+  "change_language": "Change Language",
+  "Desktop_text": "testcases cover basic functionality of the desktop environment.",
+  "base_text3": "using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase.",
+  "Desktop_text1": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "save_changes": "Save changes",
+  "configure_visibility": "Configure visibility of the info-cards",
+  "test_cases": "Test Cases",
+  "go_to_home": "Go to home page ",
+  "for_a_web": "for a web-browser",
+  "to_see_older": "to see older",
+  "User_interface": "User interface",
+  "Test_Matrix": "Test Matrix",
+  "Few_hours": "Few hours",
+  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
+  "update_testing": "updates-testing",
+  "section_in_the": "sections in the detailed output.",
+  "and_look_for": ",and look for",
+  "Storage_devices": "Storage devices",
+  "Server_text": "testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+  "What_is_Karma": "What is Karma",
+  "Several_days": "Several days",
+  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
+  "Im_a_complete_beginner": "I'm a complete beginner",
+  "please_guide_to_me_this": "please guide to me this",
+  "Ive_already_done_this": "I've already done this",
+  "Show_me_the_test_cases": "Show me the test cases",
+  "Proposed_FEs": "Proposed FEs",
+  "Accepted_FEs": "Accepted FEs",
+  "Tell_me_More": "Tell me more!",
+  "IoT_Test_Day": "[F34] IoT Test Day",
+  "ARM_disk_images": "ARM disk images",
+  "Not_sure_how": "Not sure how?",
+  "Make_sure_to": "Make sure to read about identifying the environment above.",
+  "Most_of_the_time": "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
+  "to_skip_it": "to skip it.",
+  "repo_by": " repo, by running ",
+  "the_name_of": " The name of the ISO image you used ",
+  "testcases_generally": "testcases generally deal with a part of the installation procedure.",
+  "is_a_group_containing": " - Is a group containing several projects. Expand to see more.",
+  "note_what_you_did": "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
+  "if_you_are_not_familiar": "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "you_can_either_install": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "the_updates_are": "The updates are kept in",
+
+  "and_choose_a": "and choose a package you know.",
+  "and_create_it": "and create it.",
+  "brief_description_of_what": " Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
+  "try_to_reproduce_the": "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
+  "choose_an_update": "Choose an update to test",
+  "note_the_user": "Note the username and password, you will need it later on.",
+  "sure_let_me_do_it": "Sure, let me do it!",
+  "an_update_can": "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
+  "Audio_Test_Day": "[F34] Audio Test Day",
+  "it_identifies": "It identifies the packages installed from the ",
+  "and_report_what_you_found_out": "and report what you found out.",
+  "Install_the_package": "Install the package",
+  "repository_and_matches": "repository, and matches them to the updates in Bodhi.",
+  "Fedora_Media_Writer": "Fedora Media Writer",
+  "Choose_an_update_to_test": "Choose an update to test",
+  "once_you_get_the_bug_reported": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
+  "users_or_automated": "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
+  "which_acts_as_a_gatekeeper": ", which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together. ",
+  "Installation_repositories": "Installation repositories",
+  "Release_blocking_environments": "elease-blocking environments ",
+  "Default_boot_and_install": "Default boot and install (x86_64)",
+  "Default_boot_and_install_aarch64": "Default boot and install (aarch64)",
+  "Custom_storage_configuration": "Custom storage configuration",
+  "Release_blocking_desktops": "Release-blocking desktops",
+  "Accepted_Blockers": "Accepted Blockers",
+  "Fedora_QA_Meeting": "Fedora QA Meeting",
+  "Testing_Bodhi_Karma": "Testing - Bodhi Karma",
+  "Programming_Easyfix": "Programming - Easyfix",
+  "Proposed_Blockers": "Proposed Blockers",
+  "Need_some_tips": "Need some tips?",
+  "Sourceon_Pagure": "Sourceon Pagure",
+  "Want_something_a_bit_nicer": "Want something a bit nicer?",
+  "still_not_sure": "Still not sure? Just press ",
+  "when_you_test": "when you test a text-editor, or",
+  "Make_your_choice": "Make your choice!",
+  "Other_packages_from": "Other packages from",
+  "New_to_fedora": "New to fedora-easy-karma?",
+  "Dont_have_one_yet": "Don't have one yet?",
+  "Nothing_sparked_joy": " Nothing sparked joy?",
+  "Beta_Freeze": "Beta Freeze (starts at 1400 UTC)",
+  "Final_Freeze": "Final Freeze (starts at 1400 UTC) ",
+  "Blocker_Review_Meeting": "Blocker Review Meeting",
+  "Fedora_35_blockers_and_FEs": "Fedora 35 blockers and FEs",
+  "Fedora_QA_Meeting_Minutes": "Fedora QA Meeting Minutes",
+  "blockers_and_FEs": "blockers and FEs",
+  "Visit_meetbot_to_see_older": "Visit meetbot to see older.",
+  "current_development_schedule": "Current development schedule",
+  "Latest_minutes_from": "Latest minutes from",
+  "i_opened_a_couple": " I opened a couple of tabs, and browsed random pages.",
+  "Branch_Fedora_Linux_34_from_Rawhide": "Branch Fedora Linux 34 from Rawhide",
+  "Advanced_custom_storage_configuration": "Advanced custom storage configuration",
+  "Beta_Release_Public_Availability": "Beta Release Public Availability",
+  "Fedora_Accounts_System": "Fedora Accounts System (FAS) account is required.",
+  "Final_Release_Public_Availability": "Final Release Public Availability (GA)",
+  "Testing_Fedora_Release_validation": "Testing - Fedora Release validation",
+  "Meetings_and_testdays_in_the_next_7_days": "Meetings and testdays in the next 7 days",
+  "Tell_me_more_about": "Tell me more about the process! ",
+  "to_mark_the": "to mark the package as broken.",
+  "if_you_dont": " If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "shows_the_URL": "shows the URL of the relevant update near the bottom of the text output - look for URL like",
+  "you_can_have_a_look": "You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "you_are_then_presented": "You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  "to_mark_positive": "to mark positive karma (the update works just fine, as far as you can tell), or",
+  "not_sure_you_can": "Not sure you can judge the package's state? Have a look at the",
+  "add_a_comment": "Add a comment - even if it works, try to describe what you tested. It can be as easy as",
+  "do_you_have_some_spare_time": "Click here, and help us make Fedora better!",
+  "The_goal_of_release_validation_testing_is_to_ensure": "The goal of release validation testing is to ensure the release candidate meets the requirements for Fedora releases. You will manually execute test cases to verify installation and basic functionality of the various Fedora products.",
+  "Simple_voting_system_that_allows_for_esters_to_provide_feedback_as": "Simple voting system that allows for testers to provide feedback as to whether a given package update works or not.",
+  "Number_of_projects_within_Fedora_which_are_looking_for_help": "Number of projects within Fedora which are looking for help. These tasks have been evaluated as easy entrance point.",
+  "None_of_the_above_looks_interesting_to_you": "None of the above looks interesting to you? We'd be happy if you looked around at",
+  "Before_a_new_version_of_a_package": "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
+  "The_Base_testcases_cover_the_system": "The Base testcases cover the system's basic functionality just after a clean installation",
+  "Most_times_you_will_be_asked_to_perform_a_clean_Fedora_installation": "Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine",
+  "Pro_tip_using_a_snapshot_of_cleanly_installed_Virtual_machine_is_just_fine": "Pro tip: using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase",
+  "Even_thought_the_Cloud_testcases_are_best_done_in_the_specific_environments": "Even thought the Cloud testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.Have a look at the Cloud provider setup guides for more details.",
+  "The_Desktop_testcases_cover_basic_functionality_of_the_desktop_environment": "The Desktop testcases cover basic functionality of the desktop environment.You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "The_Installation_testcases_generally_deal_with_a_part_of_the_installation_procedure": "The Installation testcases generally deal with a part of the installation procedure",
+  "You_will_certainly_need_an_installation_ISO": "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
+  "Absolutely_make_sure": "Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment",
+  "i_tried_openning": "I tried openning and editing a document, and it worked",
+  "freeze_Text": "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
+  "Rawhide_Text": "Next Fedora release hasn't been branched yet from rolling release branch.",
+  "branch_Text": "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
+  "release_Text": "Release candidate was accepted (violating no milestone criteria) and was released.",
+  "timeline_Text": "This is a timeline of current Fedora release schedule",
+  "visibility_configuration": "Visibility Configuration"
+}
diff --git a/src/wizard/Easyfix.js b/src/wizard/Easyfix.js
index 390c40d..beefbe2 100644
--- a/src/wizard/Easyfix.js
+++ b/src/wizard/Easyfix.js
@@ -1,7 +1,7 @@
 import React from "react"
 import { CollapsableCard } from "./components"
 import { Col } from "reactstrap"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 export default (props) => {
   return (
@@ -16,7 +16,7 @@ export default (props) => {
 }
 
 const EasyfixSection = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   var title = props.title
   var subsections = Object.keys(props.data)
 
@@ -29,18 +29,14 @@ const EasyfixSection = (props) => {
       )
 
       return (
-        <CollapsableCard
-          key={k}
-          title={title}
-          expand_class={i18n.t("words.primary")}
-          expand_text={i18n.t("words.See")}>
+        <CollapsableCard key={k} title={title} expand_class={t("primary")} expand_text={t("See")}>
           <EasyfixLinksList data={props.data[k]} />
         </CollapsableCard>
       )
     })
     title = (
       <span>
-        <b>{title}</b> - {i18n.t("phrases.is_a_group")}
+        <b>{title}</b> - {t("is_a_group")}
       </span>
     )
 
@@ -48,8 +44,8 @@ const EasyfixSection = (props) => {
       <CollapsableCard
         key={title}
         title={title}
-        expand_class={i18n.t("words.warning")}
-        expand_text={i18n.t("words.Expand!")}>
+        expand_class={t("warning")}
+        expand_text={t("Expand!")}>
         {subsections}
       </CollapsableCard>
     )
@@ -76,8 +72,8 @@ const EasyfixSection = (props) => {
       <CollapsableCard
         key={title}
         title={title}
-        expand_class={i18n.t("words.primary")}
-        expand_text={i18n.t("words.See")}>
+        expand_class={t("primary")}
+        expand_text={t("See")}>
         {links}
       </CollapsableCard>
     )
diff --git a/src/wizard/FedoraEasyKarma.js b/src/wizard/FedoraEasyKarma.js
index ffb83d4..73c9f85 100644
--- a/src/wizard/FedoraEasyKarma.js
+++ b/src/wizard/FedoraEasyKarma.js
@@ -1,20 +1,20 @@
 import React from "react"
-import { useSelector } from "react-redux"
 import { CollapsableBadge, ModalBadge } from "./components"
-import { Trans } from "react-i18next"
+import { Trans, useTranslation } from "react-i18next"
 
 export default (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   if (props.data === undefined) return null
   else
     return (
       <div>
-        <h1>{i18n.t("phrases.What_is_Karma")}</h1>
-        Before a new version of a package is pushed to the Fedora&apos;s Updates repository, it
-        needs to be tested and proved functional.{" "}
+        <h1>{t("What_is_Karma")}</h1>
+        {t("Before_a_new_version_of_a_package")}{" "}
         <CollapsableBadge expand_text="Tell me more about the process!">
-          <Trans i18nKey="What_is_Karma_Text">
+          <Trans
+            i18nKey="What_is_Karma_Text"
+            components={[<a href="https://bodhi.fedoraproject.org/"> </a>]}>
             The updates are kept in{" "}
             <a target="_blank" rel="noopener noreferrer" href="https://bodhi.fedoraproject.org/">
               Bodhi
@@ -26,23 +26,23 @@ export default (props) => {
             through the acceptance process together.
           </Trans>
         </CollapsableBadge>
-        <h1 style={{ marginTop: 1 + "em" }}>{i18n.t("phrases.sure_let_me_do_it")}</h1>
+        <h1 style={{ marginTop: 1 + "em" }}>{t("sure_let_me_do_it")}</h1>
         <ol className="steps">
           <li>
-            {i18n.t("phrases.Fedora_Accounts_System")}{" "}
-            <CollapsableBadge expand_text={i18n.t("phrases.Dont_have_one_yet")}>
+            {t("Fedora_Accounts_System")}{" "}
+            <CollapsableBadge expand_text={t("Dont_have_one_yet")}>
               <ul>
                 <li>
-                  {i18n.t("words.Visit")}{" "}
+                  {t("Visit")}{" "}
                   <a
                     target="_blank"
                     rel="noopener noreferrer"
                     href="https://admin.fedoraproject.org/accounts/user/new">
                     FAS Sign-up page
                   </a>{" "}
-                  {i18n.t("phrases.and_create_it")}
+                  {t("and_create_it")}
                 </li>
-                <li>{i18n.t("phrases.note_the_user")}</li>
+                <li>{t("note_the_user")}</li>
               </ul>
             </CollapsableBadge>
           </li>
@@ -57,8 +57,8 @@ export default (props) => {
             </Trans>
           </li>
           <li>
-            {i18n.t("phrases.choose_an_update")}{" "}
-            <CollapsableBadge expand_text={i18n.t("phrases.Not_sure_how")}>
+            {t("choose_an_update")}{" "}
+            <CollapsableBadge expand_text={t("Not_sure_how")}>
               <Trans i18nKey="Have_a_look">
                 Have a look at the available packages in <code>updates-testing</code> repo, by
                 running <code>dnf --enablerepo=updates-testing list --refresh --upgrades</code> and
@@ -67,7 +67,7 @@ export default (props) => {
             </CollapsableBadge>
           </li>
           <li>
-            <Trans i18nKey="Install_the_packages">
+            <Trans i18nKey="Install_the_packages" components={[<strong></strong>]}>
               Install the package{" "}
               <code>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME</code>, and test
               whether it works, as you would expect.
@@ -76,9 +76,10 @@ export default (props) => {
               installed as dependencies (shown during the installation process). Try to test those
               too, if possible.{" "}
             </Trans>
-
-            <CollapsableBadge expand_text={i18n.t("phrases.Need_some_tips")}>
-              <Trans i18nKey="Sometimes_the_update">
+            <CollapsableBadge expand_text={t("Need_some_tips")}>
+              <Trans
+                i18nKey="Sometimes_the_update"
+                components={[<br />, <code>fedora-easy-karma --fas-username=FAS_USERNAME</code>]}>
                 Sometimes, the update associated with the package you just installed fixes some
                 specific bugs, or has testcases associated with it.
                 <br />
@@ -86,7 +87,7 @@ export default (props) => {
                 <code>Bugs</code>, <code>Test Cases</code>, and/or <code>Notes</code> sections in
                 the detailed output.{" "}
               </Trans>
-              <ModalBadge expand_text={i18n.t("phrases.Want_something_a_bit_nicer")}>
+              <ModalBadge expand_text={t("Want_something_a_bit_nicer")}>
                 <Trans i18nKey="We_already_mentioned_bodhi">
                   We already mentioned Bodhi, several times. Instead of using the{" "}
                   <code>fedora-easy-karma</code> interface for submitting Karma and/or learning
@@ -108,7 +109,7 @@ export default (props) => {
               Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code> and report what you
               found out.{" "}
             </Trans>
-            <CollapsableBadge expand_text={i18n.t("phrases.New_to_fedora")}>
+            <CollapsableBadge expand_text={t("New_to_fedora")}>
               <Trans i18nKey="It_identifies_installed">
                 It identifies the packages installed from the <code>updates-testing</code>{" "}
                 repository, and matches them to the updates in Bodhi.
@@ -116,10 +117,17 @@ export default (props) => {
                 You are then presented with the relevant updates one-by-one, to submit Karma and a
                 comment.{" "}
               </Trans>
-              <ModalBadge expand_text={i18n.t("phrases.Not_sure_what_Karma_means")}>
+              <ModalBadge expand_text={t(" Not_sure_what_Karma_means")}>
                 <ol>
                   <li>
-                    <Trans i18nKey="Enter_to_mark_positive">
+                    <Trans
+                      i18nKey="Enter_to_mark_positive"
+                      components={[
+                        <a href="https://fedoraproject.org/wiki/QA:Update_feedback_guidelines">
+                          {" "}
+                        </a>,
+                        <code>1</code>,
+                      ]}>
                       Enter <code>1</code> to mark positive karma (the update works just fine, as
                       far as you can tell), or <code>-1</code> to mark the package as broken.{" "}
                       <br />
@@ -135,7 +143,12 @@ export default (props) => {
                     </Trans>
                   </li>
                   <li>
-                    <Trans i18nKey="Add_a_comment_even_if">
+                    <Trans
+                      i18nKey="Add_a_comment_even_if"
+                      components={[
+                        <br />,
+                        <code>I tried openning and editing a document, and it worked.</code>,
+                      ]}>
                       Add a comment - even if it works, try to describe what you tested. It can be
                       as easy as{" "}
                       <code>I tried openning and editing a document, and it worked.</code> when you
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index eeda471..e82d0e3 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -1,8 +1,7 @@
 import React, { useState } from "react"
 import { Modal, ModalHeader, ModalBody, ModalFooter } from "reactstrap"
 import { CollapsableCard, ModalBadge } from "./components"
-import { Trans } from "react-i18next"
-import { useSelector } from "react-redux"
+import { Trans, useTranslation } from "react-i18next"
 
 export default (props) => {
   let sections = Object.keys(props.data).map((k) => (
@@ -24,7 +23,7 @@ const FedoraManualTestingItemsListSub2 = (props) => {
 }
 
 export function FedoraManualTestingItemsListSub1(props) {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   var subsections = Object.keys(props.data).map((k) => (
     <li key={"li" + k}>
       <span>{k}</span>
@@ -40,10 +39,8 @@ export function FedoraManualTestingItemsListSub1(props) {
         <div>
           <Trans i18nKey="Installation_text">
             The <strong>Installation</strong> testcases generally deal with a part of the
-            installation procedure.
-            <br />
-            You will certainly need an installation ISO, and either a Virtual or Bare-metal machine
-            to run the test.
+            installation procedure. You will certainly need an installation ISO, and either a
+            Virtual or Bare-metal machine to run the test.
             <br />
             <i>Note:</i> some (not that many, though) of these testcases require Bare-metal
             machine. Be sure to read the Description of the testcase carefully.
@@ -114,7 +111,7 @@ export function FedoraManualTestingItemsListSub1(props) {
   }
 
   return (
-    <CollapsableCard title={l1} expand_text={i18n.t("words.See")} expand_class="primary">
+    <CollapsableCard title={l1} expand_text={t("See")} expand_class="primary">
       {subsections}
     </CollapsableCard>
   )
@@ -128,34 +125,34 @@ export function FedoraManualTestingItem(props) {
 
   const matrix_url = extra_data.matrix_url
   var environment_examples = undefined
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   switch (extra_data.testtype) {
     case "Installation":
       environment_examples = (
         <span>
-          <code>x86_64</code> {i18n.t("words.or")} <code>ARM</code>
+          <code>x86_64</code> {t("or")} <code>ARM</code>
         </span>
       )
       break
     case "Base":
       environment_examples = (
         <span>
-          <code>{18n.t("words.Workstation")}</code>, <code>{i18n.t("words.Server")}</code>,{" "}
-          <code>Xfce</code> {i18n.t("words.or")} <code>{i18n.t("words.Minimal")}</code>
+          <code>{t("Workstation")}</code>, <code>{t("Server")}</code>, <code>Xfce</code> {t("or")}{" "}
+          <code>{t("Minimal")}</code>
         </span>
       )
       break
     case "Desktop":
       environment_examples = (
         <span>
-          <code>{18n.t("words.Workstation")}</code> {i18n.t("words.or")} <code>KDE</code>
+          <code>{t("Workstation")}</code> {t("or")} <code>KDE</code>
         </span>
       )
       break
     case "Server":
       environment_examples = (
         <span>
-          <code>x86_64</code> {i18n.t("words.or")} <code>aarch64</code>
+          <code>x86_64</code> {t("or")} <code>aarch64</code>
         </span>
       )
       break
@@ -164,31 +161,32 @@ export function FedoraManualTestingItem(props) {
   }
 
   const testtype = extra_data.testtype
+  const length = extra_data.envs.length > 1 ? "environments are" : "environment is"
+  const join = extra_data.envs.join(", ")
 
   return (
     <ModalInfo buttonLabel={name}>
       <ol className="steps">
         <li>
-          <Trans i18nKey="Identify_The_Testcase">
+          <Trans i18nKey="Identify_The_Testcase" components={[<a href={matrix_url}> </a>]}>
             Identify the testcase and `environment` in our{" "}
             <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
               Tescase matrix{" "}
             </a>
           </Trans>
-          <ModalBadge expand_text={i18n.t("phrases.Not_sure_what_that_means")}>
+          <ModalBadge expand_text={t("Not_sure_what_that_means")}>
             <ul>
               <li>
                 <Trans i18nKey="Have_a_look_at_the_matrix">
                   Have a look at the matrix. The rows are the testcases, and the columns are the
-                  environments. Most of the time, these are {environment_examples} for the{" "}
-                  {testtype} testcases, but you can also encouter a generic <code>Result</code>{" "}
+                  environments. Most of the time, these are {{ environment_examples }} for the{" "}
+                  {{ testtype }} testcases, but you can also encouter a generic <code>Result</code>{" "}
                   column, which usually means you can use any media/architecture available.
                 </Trans>
               </li>
               <li>
-                <Trans i18nKey="for_this_perticular">
-                  For this particular testcase, <code>{extra_data.envs.join(", ")}</code>{" "}
-                  {extra_data.envs.length > 1 ? "environments are" : "environment is"} missing
+                <Trans i18nKey="for_this_particular">
+                  For this particular testcase, <code>{{ join }}</code> {{ length }} missing
                   results.
                 </Trans>
               </li>
@@ -197,15 +195,15 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          <Trans i18nKey="Read_the_TestCase">
+          <Trans i18nKey="Read_the_TestCase" components={[<a href={tc_url}> </a>]}>
             Read the{" "}
             <a target="_blank" rel="noopener noreferrer" href={tc_url}>
               Testcase
             </a>{" "}
             briefly, just to have a general idea of what you will be doing.
           </Trans>
-          <ModalBadge expand_text={i18n.t("phrases.Not_making_much_sense")}>
-            {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections")}
+          <ModalBadge expand_text={t("Not_making_much_sense")}>
+            {t("The_testcases_are_generally_split_into_four_sections")}
             <ul>
               <li>
                 <Trans i18nKey="Description_Text">
@@ -236,7 +234,7 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          {i18n.t("phrases.based_on_the")}{" "}
+          {t("based_on_the")}{" "}
           <a
             target="_blank"
             rel="noopener noreferrer"
@@ -244,27 +242,26 @@ export function FedoraManualTestingItem(props) {
             here
           </a>
           .{" "}
-          <ModalBadge expand_text={i18n.t("phrases.Not_sure_how")}>
+          <ModalBadge expand_text={t("Not_sure_how")}>
             <ul>
-              <li>{i18n.t("phrases.Most_of_the_time")}</li>
+              <li>{t("Most_of_the_time")}</li>
               <li>
-                {i18n.t("phrases.Make_sure_to")}{" "}
-                <ModalBadge expand_text={i18n.t("words.See")}>
+                {t("Make_sure_to")}{" "}
+                <ModalBadge expand_text={t("See")}>
                   <ul>
                     <li>
-                      <Trans i18nKey="Have_a_look_at_the_matrix">
+                      <Trans i18nKey="Have_a_look_at_the_matrix2">
                         Have a look at the matrix. The rows are the testcases, and the columns are
-                        the environments. Most of the time, these are {environment_examples} for
-                        the {testtype} testcases, but you can also encouter a generic{" "}
+                        the environments. Most of the time, these are {{ environment_examples }}{" "}
+                        for the {{ testtype }} testcases, but you can also encouter a generic{" "}
                         <code>Result</code> column, which usually means you can use any
                         media/architecture available.
                       </Trans>
                     </li>
                     <li>
-                      <Trans i18nKey="for_this_perticular">
-                        For this particular testcase, <code>{extra_data.envs.join(", ")}</code>{" "}
-                        {extra_data.envs.length > 1 ? "environments are" : "environment is"}{" "}
-                        missing results.
+                      <Trans i18nKey="for_this_particular">
+                        For this particular testcase, <code>{{ join }}</code> {{ length }} missing
+                        results.
                       </Trans>
                     </li>
                   </ul>
@@ -275,19 +272,19 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          <Trans i18nKey="study_the_testcase">
+          <Trans i18nKey="study_the_testcase" components={[<a href={tc_url}> </a>]}>
             Study the{" "}
             <a target="_blank" rel="noopener noreferrer" href={tc_url}>
               Testcase
             </a>{" "}
             thoroughly, to be sure you know what to do.{" "}
           </Trans>
-          <ModalBadge expand_text={i18n.t("phrases.Feeling_a_bit_lost")}>
+          <ModalBadge expand_text={t("Feeling_a_bit_lost")}>
             <ul>
               <li>
-                {i18n.t("phrases.The_testcase_structure_is_not_making_sense")}{" "}
-                <ModalBadge expand_text={i18n.t("words.See")}>
-                  {i18n.t("phrases.The_testcases_are_generally_split_into_four_sections:")}
+                {t("The_testcase_structure_is_not_making_sense")}{" "}
+                <ModalBadge expand_text={t("See")}>
+                  {t("The_testcases_are_generally_split_into_four_sections")}
                   <ul>
                     <li>
                       <Trans i18nKey="Description_Text">
@@ -317,9 +314,11 @@ export function FedoraManualTestingItem(props) {
                 </ModalBadge>
               </li>
               <li>
-                {i18n.t("phrases.Maybe_you_are_stuck")}{" "}
-                <ModalBadge expand_text={i18n.t("phrases.dont_have_an")}>
-                  <Trans i18nKey="If_you_are_not_familiar">
+                {t("Maybe_you_are_stuck")}{" "}
+                <ModalBadge expand_text={t("dont_have_an")}>
+                  <Trans
+                    i18nKey="If_you_are_not_familiar"
+                    components={[<a href="http://webchat.freenode.net"> </a>]}>
                     If you are not that familiar with IRC, you can use the{" "}
                     <a
                       target="_blank"
@@ -336,13 +335,18 @@ export function FedoraManualTestingItem(props) {
           </ModalBadge>
         </li>
 
-        <li>{i18n.t("phrases.Get_your_hands")}</li>
+        <li>{t("Get_your_hands")}</li>
         <li>
           <ModalBadge
-            expand_class="success"
-            expand_text={i18n.t("phrases.Everything_went_well")}
+            expand_class={t("success")}
+            expand_text={t("Everything_went_well")}
             type="btn">
-            <Trans i18nKey="Great_either_use">
+            <Trans
+              i18nKey="Great_either_use"
+              components={[
+                <a href={matrix_url}> </a>,
+                <code>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</code>,
+              ]}>
               Great! Either use <code>relval report-results</code> on command line (make sure to
               install the <code>relval</code> package first), or modify the{" "}
               <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
@@ -354,10 +358,7 @@ export function FedoraManualTestingItem(props) {
             </Trans>
           </ModalBadge>
 
-          <ModalBadge
-            expand_class="danger"
-            expand_text={i18n.t("phrases.I_found_a_bug")}
-            type="btn">
+          <ModalBadge expand_class={t("danger")} expand_text={t("I_found_a_bug")} type="btn">
             <Trans i18nKey="Awesome_ideally_read">
               Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report
               <br />
@@ -365,18 +366,19 @@ export function FedoraManualTestingItem(props) {
               containing:
             </Trans>
             <ul>
-              <li>{i18n.t("phrases.brief_description_of_what")}</li>
+              <li>{t("brief_description_of_what")}</li>
               <li>
-                {i18n.t("phrases.the_name_of")} (e.g.
-                "Fedora-Server-netinst-i386-Rawhide-20181227.n.0.iso")
+                {t("the_name_of")} (e.g. "Fedora-Server-netinst-i386-Rawhide-20181227.n.0.iso")
               </li>
-              <li>{i18n.t("phrases.note_what_you_did")}</li>
-              <li>{i18n.t("phrases.try_to_reproduce_the")}</li>
+              <li>{t("note_what_you_did")}</li>
+              <li>{t("try_to_reproduce_the")}</li>
               <li>
-                <Trans i18nKey="Share_your_notes">
+                <Trans
+                  i18nKey="Share_your_notes"
+                  components={[<ModalBadge expand_text={t("dont_have_an")}></ModalBadge>]}>
                   Share your notes on the internet (you can use fpaste), and ask for help with
                   filing the bug report on our IRC channel #fedora-qa at freenode.net{" "}
-                  <ModalBadge expand_text="Don&#39;t have an IRC client?">
+                  <ModalBadge expand_text={t("dont_have_an")}>
                     If you are not that familiar with IRC, you can use the web-interface[link] just
                     enter a Nickname of your choice, #fedora-qa (including the hash sign) in the
                     Channels field, and click Connect.
@@ -384,7 +386,9 @@ export function FedoraManualTestingItem(props) {
                 </Trans>
               </li>
             </ul>
-            <Trans i18nKey="Once_you_get_the_bug">
+            <Trans
+              i18nKey="Once_you_get_the_bug"
+              components={[<a href={matrix_url}> </a>, <code></code>]}>
               Once you get the Bug reported, make sure to also submit the result into the testing
               matrix. Either use <code>relval report-results</code> on command line (make sure to
               install the <code>relval</code> package first), or modify the{" "}
diff --git a/src/wizard/Manual.js b/src/wizard/Manual.js
index db6149b..33072ad 100644
--- a/src/wizard/Manual.js
+++ b/src/wizard/Manual.js
@@ -3,27 +3,27 @@ import { useHistory, useLocation } from "react-router-dom"
 import queryString from "query-string"
 
 import Tab from "./manualTesting/Tab"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 
 const Manual = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   const data = [
     {
-      title: i18n.t("words.Preperation"),
-      description: i18n.t("phrases.Preperation_text"),
+      title: t("Preperation"),
+      description: t("Preperation_text"),
     },
     {
-      title: i18n.t("words.Installation"),
-      description: i18n.t("phrases.Installation_text0"),
+      title: t("Installation"),
+      description: t("Installation_text0"),
     },
     {
-      title: i18n.t("words.Testing"),
-      description: i18n.t("phrases.testing_text"),
+      title: t("Testing"),
+      description: t("testing_text"),
     },
     {
-      title: i18n.t("words.Reporting"),
-      description: i18n.t("phrases.reporting_text"),
+      title: t("Reporting"),
+      description: t("reporting_text"),
     },
   ]
 
diff --git a/src/wizard/Wizard.js b/src/wizard/Wizard.js
index 862467d..46dc5c7 100644
--- a/src/wizard/Wizard.js
+++ b/src/wizard/Wizard.js
@@ -7,9 +7,10 @@ import { loadWizardData } from "../actions/reduxActions"
 import WizardStepper from "./WizardStepper"
 import { useParams } from "react-router"
 import WizardNavigation from "./WizardNavigation"
+import { useTranslation } from "react-i18next"
 
 const Wizard = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   const { step } = props
   const query = useParams()
   const selectAction = (state) => state.wizard.api_call_status
@@ -36,7 +37,7 @@ const Wizard = (props) => {
             {query.issues || query.provider === "fedora_easy_karma" ? (
               <Col md="12">
                 <h5 className="padded text-center">
-                  {i18n.t("phrases.None_of_the_above_looks_interesting_to_you")}{" "}
+                  {t("None_of_the_above_looks_interesting_to_you")}{" "}
                   <a href="https://whatcanidoforfedora.org/">https://whatcanidoforfedora.org/</a>!
                 </h5>
               </Col>
diff --git a/src/wizard/WizardNavigation.js b/src/wizard/WizardNavigation.js
index add31a1..474836a 100644
--- a/src/wizard/WizardNavigation.js
+++ b/src/wizard/WizardNavigation.js
@@ -4,10 +4,11 @@ import { Breadcrumb, BreadcrumbItem } from "reactstrap"
 import { Link } from "react-router-dom"
 import { useSelector, shallowEqual } from "react-redux"
 import * as R from "ramda"
+import { useTranslation } from "react-i18next"
 
 function WizardNavigation(props) {
   const query = useParams()
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   const { step } = props
 
   const selectAction = (state) => state.wizard.all_actions
@@ -59,24 +60,24 @@ function WizardNavigation(props) {
     createBreadcrumbItem(
       "Duration",
       step.slice(-1) > "2" ? "enable" : "disabled",
-      query.duration === "few_hours" ? i18n.t("phrases.Few_hours") : i18n.t("phrases.Several_days")
+      query.duration === "few_hours" ? t("Few_hours") : t("Several_days")
     ),
     createBreadcrumbItem(
       "Provider",
       step.slice(-1) > "3" ? "enable" : "disabled",
       query.provider === "fedora_manual_testing"
-        ? i18n.t("phrases.Fedora_Manual_Testing")
+        ? t("Fedora_Manual_Testing")
         : query.provider === "easyfix"
-        ? i18n.t("words.Easyfix")
-        : i18n.t("phrases.Bodhi_Karma")
+        ? t("Easyfix")
+        : t("Bodhi_Karma")
     ),
     createBreadcrumbItem(
       "Actions",
       step.slice(-1) > "4" ? "enable" : "disabled",
       query.action === "manual_testing"
-        ? i18n.t("words.Manual_Testing")
+        ? t("Manual_Testing")
         : query.action === "beginner_guide"
-        ? i18n.t("words.Beginner_Guide")
+        ? t("Beginner_Guide")
         : query.action
         ? getTags().filter((a) => a.toLowerCase() === decodeURIComponent(query.action))[0] ||
           query.action.charAt(0).toUpperCase() + query.action.slice(1)
diff --git a/src/wizard/step/Step1.js b/src/wizard/step/Step1.js
index 6fa7453..2980abf 100644
--- a/src/wizard/step/Step1.js
+++ b/src/wizard/step/Step1.js
@@ -1,10 +1,10 @@
 import React, { useState } from "react"
-import { useSelector } from "react-redux"
+import { useTranslation } from "react-i18next"
 import { useHistory } from "react-router-dom"
 import { Card, CardText, Col, Row } from "reactstrap"
 
 const Step1 = (props) => {
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
   const [selectedItem, setItem] = useState()
   const history = useHistory()
   const handleStep = (option) => {
@@ -25,9 +25,9 @@ const Step1 = (props) => {
             handleStep("few_hours")
           }}>
           <h1 className="padded">
-            {i18n.t("phrases.Few_hours")} <i className="fas fa-calendar-day"></i>
+            {t("Few_hours")} <i className="fas fa-calendar-day"></i>
           </h1>
-          <CardText>{i18n.t("phrases.Task_that_can_take_up_to_Few_Hours")} </CardText>
+          <CardText>{t("Task_that_can_take_up_to_Few_Hours")} </CardText>
         </Card>
       </Col>
       <Col sm="6">
@@ -42,9 +42,9 @@ const Step1 = (props) => {
             handleStep("several_days")
           }}>
           <h1 className="padded">
-            {i18n.t("phrases.Several_days")} <i className="fas fa-calendar-week"></i>
+            {t("Several_days")} <i className="fas fa-calendar-week"></i>
           </h1>
-          <CardText>{i18n.t("phrases.Task_that_can_take_up_to_Several_Days")} </CardText>
+          <CardText>{t("Task_that_can_take_up_to_Several_Days")} </CardText>
         </Card>
       </Col>
     </Row>
diff --git a/src/wizard/step/Step3.js b/src/wizard/step/Step3.js
index 90f9220..c44b4d2 100644
--- a/src/wizard/step/Step3.js
+++ b/src/wizard/step/Step3.js
@@ -5,10 +5,11 @@ import { Card, CardBody, CardTitle, Col, Row, CardText } from "reactstrap"
 import FedoraEasyKarma from "../FedoraEasyKarma"
 import * as R from "ramda"
 import { useHistory } from "react-router"
+import { useTranslation } from "react-i18next"
 
 const Step3 = (props) => {
   const { query } = props
-  const { i18n } = useSelector((state) => state.locale)
+  const { t } = useTranslation()
 
   const [selectedItem, setItem] = useState()
   const history = useHistory()
@@ -61,8 +62,8 @@ const Step3 = (props) => {
                 handleStep("beginner_guide")
               }}>
               <CardBody>
-                <h1 className="padded">{i18n.t("phrases.Im_a_complete_beginner")}</h1>
-                <CardText> {i18n.t("phrases.please_guide_to_me_this")} </CardText>
+                <h1 className="padded">{t("Im_a_complete_beginner")}</h1>
+                <CardText> {t("please_guide_to_me_this")} </CardText>
               </CardBody>
             </Card>
           </Col>
@@ -73,8 +74,8 @@ const Step3 = (props) => {
                 handleStep("manual_testing")
               }}>
               <CardBody>
-                <h1 className="padded">{i18n.t("phrases.Ive_already_done_this")}</h1>
-                <CardText>{i18n.t("phrases.Show_me_the_test_cases")} </CardText>
+                <h1 className="padded">{t("Ive_already_done_this")}</h1>
+                <CardText>{t("Show_me_the_test_cases")} </CardText>
               </CardBody>
             </Card>
           </Col>
diff --git a/src/wizard/step/Step4.js b/src/wizard/step/Step4.js
index 7d350c8..87ff0a9 100644
--- a/src/wizard/step/Step4.js
+++ b/src/wizard/step/Step4.js
@@ -89,12 +89,12 @@ const Step4 = (props) => {
       case "Installation":
         return (
           <div className="text-left">
-            <Trans i18nKey="Installation_text">
+            <Trans
+              i18nKey="Installation_text"
+              components={[<strong>Installation</strong>, <br />, <i>Note:</i>]}>
               The <strong>Installation</strong> testcases generally deal with a part of the
-              installation procedure.
-              <br />
-              You will certainly need an installation ISO, and either a Virtual or Bare-metal
-              machine to run the test.
+              installation procedure. You will certainly need an installation ISO, and either a
+              Virtual or Bare-metal machine to run the test.
               <br />
               <i>Note:</i> some (not that many, though) of these testcases require Bare-metal
               machine. Be sure to read the Description of the testcase carefully.
@@ -105,7 +105,7 @@ const Step4 = (props) => {
       case "Desktop":
         return (
           <div className="text-left">
-            <Trans i18nKey="Desktop_Text">
+            <Trans i18nKey="Desktop_Text" components={[<strong>Installation</strong>, <br />]}>
               The <strong>Desktop</strong> testcases cover basic functionality of the desktop
               environment.
               <br />
@@ -118,7 +118,9 @@ const Step4 = (props) => {
       case "Base":
         return (
           <div className="text-left">
-            <Trans i18nKey="Base_Text">
+            <Trans
+              i18nKey="Base_Text"
+              components={[<strong>Installation</strong>, <br />, <i>Pro tip:</i>]}>
               The <strong>Base</strong> testcases cover the system&#x27;s basic functionality just
               after a clean installation.
               <br />
@@ -134,7 +136,7 @@ const Step4 = (props) => {
       case "Server":
         return (
           <div className="text-left">
-            <Trans i18nKey="Server_Text">
+            <Trans i18nKey="Server_Text" components={[<strong>Installation</strong>, <br />]}>
               The <strong>Server</strong> testcases usually require multiple machines to test the
               server-client behaviour, and might feel a bit advanced.
             </Trans>
@@ -144,7 +146,15 @@ const Step4 = (props) => {
       case "Cloud":
         return (
           <div className="text-left">
-            <Trans i18nKey="Cloud_Text">
+            <Trans
+              i18nKey="Cloud_Text"
+              components={[
+                <a href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
+                  {" "}
+                </a>,
+                <strong>Cloud</strong>,
+                <br />,
+              ]}>
               Even thought the <strong>Cloud</strong> testcases are best done in the specific
               environments like EC2 or Openstack, you can also perform them locally using
               Testcloud.
diff --git a/yarn.lock b/yarn.lock
index d3601aa..a20855b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -849,9 +849,9 @@
   dependencies:
     regenerator-transform "^0.14.2"
 
-"@babel/plugin-transform-reserved-words@^7.12.13", "@babel/plugin-transform-reserved-words@^7.8.3":
+"@babel/plugin-transform-reserved-^7.12.13", "@babel/plugin-transform-reserved-^7.8.3":
   version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved--/plugin-transform-reserved-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"
   integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==
   dependencies:
     "@babel/helper-plugin-utils" "^7.12.13"
@@ -977,7 +977,7 @@
     "@babel/plugin-transform-parameters" "^7.8.7"
     "@babel/plugin-transform-property-literals" "^7.8.3"
     "@babel/plugin-transform-regenerator" "^7.8.7"
-    "@babel/plugin-transform-reserved-words" "^7.8.3"
+    "@babel/plugin-transform-reserved- "^7.8.3"
     "@babel/plugin-transform-shorthand-properties" "^7.8.3"
     "@babel/plugin-transform-spread" "^7.8.3"
     "@babel/plugin-transform-sticky-regex" "^7.8.3"
@@ -1055,7 +1055,7 @@
     "@babel/plugin-transform-parameters" "^7.14.2"
     "@babel/plugin-transform-property-literals" "^7.12.13"
     "@babel/plugin-transform-regenerator" "^7.13.15"
-    "@babel/plugin-transform-reserved-words" "^7.12.13"
+    "@babel/plugin-transform-reserved- "^7.12.13"
     "@babel/plugin-transform-shorthand-properties" "^7.12.13"
     "@babel/plugin-transform-spread" "^7.13.0"
     "@babel/plugin-transform-sticky-regex" "^7.12.13"

From 2d30f58a561e45eebed41086862b24f2f9e52ff4 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 12 2021 11:52:13 +0000
Subject: [PATCH 6/11] moved translation to public folder


---

diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
new file mode 100644
index 0000000..db90b5c
--- /dev/null
+++ b/public/locales/en/translation.json
@@ -0,0 +1,283 @@
+{
+  "Installation_text": "The <1>Installation</1> testcases generally deal with a part of the installation procedure. You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<3 /> <4>Note:</4> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
+  "Desktop_Text": "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<3 /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "Base_Text": "The <1>Base</1> testcases cover the system's basic functionality just after a clean installation. <3 /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <5 /><6>Pro tip:</6> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
+  "Server_Text": "The <1>Server</1> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<3 />Have a look at the <6>  Cloud provider setup </6> guides for more details.",
+  "What_is_Karma_Text": "The updates are kept in <2>Bodhi</2>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
+  "Make_sure_you": "Make sure your system is up-to-date: <1>{{sudo_dnf}}</1>",
+  "Install_fedora_easy_karma_tool": "Install fedora-easy-karma tool: <1>{{sudo_dnf_install}}</1>",
+  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1></1> and choose a package you know.",
+  "Install_the_packages": "Install the package  <2>{{sudo_dnf_enablepo}}</2>, and test whether it works, as you would expect.<4 /> <5> Note:</5> Other packages from <7>updates-testing</7> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
+  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <1/> Run <3>{{fedora_easy_karma}}</3>, and look for  <6>Bugs</6>, <8>Test Cases</8>, and/or <10>Notes</10> sections in the detailed output.",
+  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <2 /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <1 /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "Run_fedora_easy_karam": "Run <1>{{fedora_easy_karma}}</1> and report what you found out. ",
+  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <2 /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <3>-1</3> to mark the package as broken. <6 /> Not sure you can judge the package's state? Have a look at the <9> Update Feedback Guidelines </9> <10/> Still not sure? Just press <12>Enter</12> to skip it.",
+  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <2>I tried openning and editing a document, and it worked.</2> when you test a text-editor, or  <5>I opened a couple of tabs, and browsed random pages.</5> for a web-browser. <7 /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
+  "Restore_the_stable": "Restore the stable-packages on your system by running  <2>{{sudo_dnf_distro}}</2>",
+  "Identify_The_Testcase": "Identify the testcase and `environment` in our  <2> Tescase matrix </2>.",
+  "Have_a_look_at_the_matrix": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are <1></1> for the {{testtype}} testcases, but you can also encouter a generic <6>Result</6> column, which usually means you can use any media/architecture available.",
+  "for_this_particular": "For this particular testcase, <1>{{join}}</1> {{length}} missing results.",
+  "Read_the_TestCase": "Read the <2> Testcase </2> briefly, just to have a general idea of what you will be doing.",
+  "Description_Text": "<0>Description</0> should give you a general idea of what is being tested",
+  "Setup_Text": "<0>Setup</0> describes the steps to take before you begin working on the testcase",
+  "How_to_Test": "<0>How to test</0> contains the individual steps to take in order to perform the testcase",
+  "Expected_Results": "<0>Expected results</0> describe what you should check while testing in order to decide whether it Passed of Failed",
+  "study_the_testcase": "Study the <2> Testcase</2> thoroughly, to be sure you know what to do.",
+  "If_you_are_not_familiar": "If you are not that familiar with IRC, you can use the <1> web-interface </1>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "Great_either_use": "Great! Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6> matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</11> in the appropriate spot.",
+  "Awesome_ideally_read": "Awesome! Ideally read up on <1>How_to_file_a_bug_report</1> <2/> If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6>matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</11> in the appropriate spot.",
+  "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net ",
+  "hello": "Hello",
+  "disable": "Disable",
+  "enable": "Enable",
+  "Rawhide": "Rawhide",
+  "Upgrade": "Upgrade",
+  "Miscellaneous": "Miscellaneous",
+  "Run": "Run",
+  "Description": "Description",
+  "Note": "Note:",
+  "Result": "Result",
+  "Visit": "Visit",
+  "enter": "Enter",
+  "notes": "Notes",
+  "close": "Close",
+  "source": "Source",
+  "version": "version",
+  "english": "english",
+  "Retrying": "Retrying",
+  "Installation": "Installation",
+  "the": "The",
+  "Desktop": "Desktop",
+  "Base": "Base",
+  "or": "or",
+  "Server": "Server",
+  "Cloud": "Cloud",
+  "Bodhi": "Bodhi",
+  "Bugs": "Bugs",
+  "Preperation": "Preperation",
+  "Testing": "Testing",
+  "Reporting": "Reporting",
+  "Easyfix": "Easyfix",
+  "Manual_Testing": "Manual Testing",
+  "Beginner_Guide": "Beginner Guide",
+  "meetbot": "meetbot",
+  "primary": "primary",
+  "See": "See!",
+  "warning": "warning",
+  "Expand": "Expand",
+  "Workstation": "Workstation",
+  "Minimal": "Minimal",
+  "for_the": "for the",
+  "Testcase": "Testcase",
+  "Setup": "Setup",
+  "here": "here",
+  "missing_results": "missing results.",
+  "web_interface": "web-interface",
+  "relval": "relval",
+  "matrix": "matrix",
+  "Edit": "Edit",
+  "danger": "danger",
+  "success": "success",
+
+  "Tescase_matrix": "Tescase matrix",
+  "I_found_a_bug": "I found a bug!",
+  "Feeling_a_bit_lost": "Feeling a bit lost?",
+  "result_fail_your": "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
+  "if_you_dont_like_like_reading": "If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "Study_the": "Study the",
+  "package_first": " package first), or modify the",
+  "directly_by_clicking_on_the": " directly by clicking on the",
+  "result_pass_your": "result|pass|YOUR_NAME_HERE|",
+  "link_next_to_the_Matrice_header_and_put": " link next to the Matrice's header, and put",
+  "in_the_appropriate_spot": "in the appropriate spot.",
+  "dont_have_an": "Don't have an IRC client?",
+  "on_command_line": "on command line (make sure to install the",
+  "relval_report_results": "relval report-results",
+  "Great_Either_use": "Great! Either use",
+  "Everything_went_well": "Everything went well",
+  "should_give_you_a": "should give you a general idea of what is being tested",
+  "if_you_are": " If you are not that familiar with IRC, you can use the",
+  "The_testcase_structure_is_not_making_sense": "The testcase structure is not making sense?",
+  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
+  "Just_enter_a_Nickname": "just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "The_testcases_are_generally_split_into_four_sections": "The testcases are generally split into four sections:",
+  "describes_the_steps": "describes the steps to take before you begin working on the testcase",
+  "For_this_particular_testcase": "For this particular testcase,",
+  "thoroughly_to_be_sure_you_know_what_to_do": " thoroughly, to be sure you know what to do.",
+  "Bodhi_Karma": "Bodhi Karma",
+  "describes_you_to_check": "describe what you should check while testing in order to decide whether it Passed of Failed",
+  "How_to_test": "How to test",
+  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
+  "contains_the_individual": "contains the individual steps to take in order to perform the testcase",
+  "Show_me": "Show me",
+  "Expected_results": "Expected results",
+  "Maybe_you_are_stuck": "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
+  "Column_which_usually": "column, which usually means you can use any media/architecture available.",
+  "testcases_but_you_can": "testcases, but you can also encouter a generic",
+  "Should_give_you": "should give you a general idea of  what is being tested",
+  "briefly_just": " briefly, just to have a general idea of what you will be doing.",
+  "Read_the": " Read the",
+  "Not_sure_what_that_means": " Not sure what that means?",
+  "Not_making_much_sense": "Not making much sense?",
+  "Column_which_actually": "column, which usually means you can use any  media/architecture available.",
+  "ModalBadge": " Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
+  "Identify_the_testcase_and_environment_in_our": "Identify the testcase and `environment` in our ",
+  "Fedora_Manual_Testing": "Fedora Manual Testing",
+  "Not_sure_what_Karma_means": "Not sure what Karma means?",
+  "Preperation_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "Installation_text0": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "testing_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "reporting_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "FAS_Sign_up_page": "FAS Sign-up page",
+  "Test_Cases": "Test Cases",
+  "and_or": "and/or",
+  "fedora_easy_karma": "fedora-easy-karma",
+  "fedora_Q_a": "<div><h1>fkfhrry</h1></div>",
+  "sections_in_the_detailed_output": "sections in the detailed output.",
+  "Update_Feedback_Guidelines": " Update Feedback Guidelines",
+  "cloud_text": " Even thought the",
+  "Cloud_provider_setup": " Cloud provider setup",
+  "guides_for_more_details": " guides for more details.",
+  "is_a_group": "Is a group containing several projects. Expand to see more.",
+  "cloud_text1": "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
+  "Failed_to_fetch_data": "Failed to fetch data!",
+  "cloud_text2": "Have a look at the",
+  "select_language": "Select Language",
+  "base_text": "testcases cover the system's basic functionality just after a clean installation.",
+  "on_Pagure": "on Pagure",
+  "Pro_tip": " Pro tip",
+  "base_text1": "  Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine.",
+  "change_language": "Change Language",
+  "Desktop_text": "testcases cover basic functionality of the desktop environment.",
+  "base_text3": "using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase.",
+  "Desktop_text1": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "save_changes": "Save changes",
+  "configure_visibility": "Configure visibility of the info-cards",
+  "test_cases": "Test Cases",
+  "go_to_home": "Go to home page ",
+  "for_a_web": "for a web-browser",
+  "to_see_older": "to see older",
+  "User_interface": "User interface",
+  "Test_Matrix": "Test Matrix",
+  "Few_hours": "Few hours",
+  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
+  "update_testing": "updates-testing",
+  "section_in_the": "sections in the detailed output.",
+  "and_look_for": ",and look for",
+  "Storage_devices": "Storage devices",
+  "Server_text": "testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+  "What_is_Karma": "What is Karma",
+  "Several_days": "Several days",
+  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
+  "Im_a_complete_beginner": "I'm a complete beginner",
+  "please_guide_to_me_this": "please guide to me this",
+  "Ive_already_done_this": "I've already done this",
+  "Show_me_the_test_cases": "Show me the test cases",
+  "Proposed_FEs": "Proposed FEs",
+  "Accepted_FEs": "Accepted FEs",
+  "Tell_me_More": "Tell me more!",
+  "IoT_Test_Day": "[F34] IoT Test Day",
+  "ARM_disk_images": "ARM disk images",
+  "Not_sure_how": "Not sure how?",
+  "Make_sure_to": "Make sure to read about identifying the environment above.",
+  "Most_of_the_time": "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
+  "to_skip_it": "to skip it.",
+  "repo_by": " repo, by running ",
+  "the_name_of": " The name of the ISO image you used ",
+  "testcases_generally": "testcases generally deal with a part of the installation procedure.",
+  "is_a_group_containing": " - Is a group containing several projects. Expand to see more.",
+  "note_what_you_did": "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
+  "if_you_are_not_familiar": "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "you_can_either_install": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "the_updates_are": "The updates are kept in",
+
+  "and_choose_a": "and choose a package you know.",
+  "and_create_it": "and create it.",
+  "brief_description_of_what": " Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
+  "try_to_reproduce_the": "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
+  "choose_an_update": "Choose an update to test",
+  "note_the_user": "Note the username and password, you will need it later on.",
+  "sure_let_me_do_it": "Sure, let me do it!",
+  "an_update_can": "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
+  "Audio_Test_Day": "[F34] Audio Test Day",
+  "it_identifies": "It identifies the packages installed from the ",
+  "and_report_what_you_found_out": "and report what you found out.",
+  "Install_the_package": "Install the package",
+  "repository_and_matches": "repository, and matches them to the updates in Bodhi.",
+  "Fedora_Media_Writer": "Fedora Media Writer",
+  "Choose_an_update_to_test": "Choose an update to test",
+  "once_you_get_the_bug_reported": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
+  "users_or_automated": "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
+  "which_acts_as_a_gatekeeper": ", which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together. ",
+  "Installation_repositories": "Installation repositories",
+  "Release_blocking_environments": "elease-blocking environments ",
+  "Default_boot_and_install": "Default boot and install (x86_64)",
+  "Default_boot_and_install_aarch64": "Default boot and install (aarch64)",
+  "Custom_storage_configuration": "Custom storage configuration",
+  "Release_blocking_desktops": "Release-blocking desktops",
+  "Accepted_Blockers": "Accepted Blockers",
+  "Fedora_QA_Meeting": "Fedora QA Meeting",
+  "Testing_Bodhi_Karma": "Testing - Bodhi Karma",
+  "Programming_Easyfix": "Programming - Easyfix",
+  "Proposed_Blockers": "Proposed Blockers",
+  "Need_some_tips": "Need some tips?",
+  "Sourceon_Pagure": "Sourceon Pagure",
+  "Want_something_a_bit_nicer": "Want something a bit nicer?",
+  "still_not_sure": "Still not sure? Just press ",
+  "when_you_test": "when you test a text-editor, or",
+  "Make_your_choice": "Make your choice!",
+  "Other_packages_from": "Other packages from",
+  "New_to_fedora": "New to fedora-easy-karma?",
+  "Dont_have_one_yet": "Don't have one yet?",
+  "Nothing_sparked_joy": " Nothing sparked joy?",
+  "Beta_Freeze": "Beta Freeze (starts at 1400 UTC)",
+  "Final_Freeze": "Final Freeze (starts at 1400 UTC) ",
+  "Blocker_Review_Meeting": "Blocker Review Meeting",
+  "Fedora_35_blockers_and_FEs": "Fedora 35 blockers and FEs",
+  "Fedora_QA_Meeting_Minutes": "Fedora QA Meeting Minutes",
+  "blockers_and_FEs": "blockers and FEs",
+  "Visit_meetbot_to_see_older": "Visit meetbot to see older.",
+  "current_development_schedule": "Current development schedule",
+  "Latest_minutes_from": "Latest minutes from",
+  "i_opened_a_couple": " I opened a couple of tabs, and browsed random pages.",
+  "Branch_Fedora_Linux_34_from_Rawhide": "Branch Fedora Linux 34 from Rawhide",
+  "Advanced_custom_storage_configuration": "Advanced custom storage configuration",
+  "Beta_Release_Public_Availability": "Beta Release Public Availability",
+  "Fedora_Accounts_System": "Fedora Accounts System (FAS) account is required.",
+  "Final_Release_Public_Availability": "Final Release Public Availability (GA)",
+  "Testing_Fedora_Release_validation": "Testing - Fedora Release validation",
+  "Meetings_and_testdays_in_the_next_7_days": "Meetings and testdays in the next 7 days",
+  "Tell_me_more_about": "Tell me more about the process! ",
+  "to_mark_the": "to mark the package as broken.",
+  "if_you_dont": " If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "shows_the_URL": "shows the URL of the relevant update near the bottom of the text output - look for URL like",
+  "you_can_have_a_look": "You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "you_are_then_presented": "You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  "to_mark_positive": "to mark positive karma (the update works just fine, as far as you can tell), or",
+  "not_sure_you_can": "Not sure you can judge the package's state? Have a look at the",
+  "add_a_comment": "Add a comment - even if it works, try to describe what you tested. It can be as easy as",
+  "do_you_have_some_spare_time": "Click here, and help us make Fedora better!",
+  "The_goal_of_release_validation_testing_is_to_ensure": "The goal of release validation testing is to ensure the release candidate meets the requirements for Fedora releases. You will manually execute test cases to verify installation and basic functionality of the various Fedora products.",
+  "Simple_voting_system_that_allows_for_esters_to_provide_feedback_as": "Simple voting system that allows for testers to provide feedback as to whether a given package update works or not.",
+  "Number_of_projects_within_Fedora_which_are_looking_for_help": "Number of projects within Fedora which are looking for help. These tasks have been evaluated as easy entrance point.",
+  "None_of_the_above_looks_interesting_to_you": "None of the above looks interesting to you? We'd be happy if you looked around at",
+  "Before_a_new_version_of_a_package": "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
+  "The_Base_testcases_cover_the_system": "The Base testcases cover the system's basic functionality just after a clean installation",
+  "Most_times_you_will_be_asked_to_perform_a_clean_Fedora_installation": "Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine",
+  "Pro_tip_using_a_snapshot_of_cleanly_installed_Virtual_machine_is_just_fine": "Pro tip: using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase",
+  "Even_thought_the_Cloud_testcases_are_best_done_in_the_specific_environments": "Even thought the Cloud testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.Have a look at the Cloud provider setup guides for more details.",
+  "The_Desktop_testcases_cover_basic_functionality_of_the_desktop_environment": "The Desktop testcases cover basic functionality of the desktop environment.You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "The_Installation_testcases_generally_deal_with_a_part_of_the_installation_procedure": "The Installation testcases generally deal with a part of the installation procedure",
+  "You_will_certainly_need_an_installation_ISO": "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
+  "Absolutely_make_sure": "Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment",
+  "i_tried_openning": "I tried openning and editing a document, and it worked",
+  "freeze_Text": "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
+  "Rawhide_Text": "Next Fedora release hasn't been branched yet from rolling release branch.",
+  "branch_Text": "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
+  "release_Text": "Release candidate was accepted (violating no milestone criteria) and was released.",
+  "timeline_Text": "This is a timeline of current Fedora release schedule",
+  "visibility_configuration": "Visibility Configuration"
+}
diff --git a/src/App.js b/src/App.js
index 7cefd22..967492e 100644
--- a/src/App.js
+++ b/src/App.js
@@ -4,7 +4,7 @@ import { BrowserRouter } from "react-router-dom"
 import Wizard from "./wizard/Wizard"
 import LandingPage from "./landingpage/LandingPage"
 import NotFound from "./NotFound"
-import "./i18n"
+
 const App = () => {
   return (
     <BrowserRouter basename={window.env.SUBDIR}>
diff --git a/src/i18n.js b/src/i18n.js
index 97a746e..e485f7f 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -1,18 +1,12 @@
 import i18n from "i18next"
-import detector from "i18next-browser-languagedetector"
+import LanguageDetector from "i18next-browser-languagedetector"
 import { initReactI18next } from "react-i18next"
 import Backend from "i18next-http-backend"
-import en from "./translation/en.json"
 
-const resources = {
-  en: {
-    translation: en,
-  },
-}
 
 i18n
   .use(Backend)
-  .use(detector)
+  .use(LanguageDetector)
   .use(initReactI18next)
   .init({
     react: {
@@ -21,14 +15,14 @@ i18n
     fallbackLng: "en",
     debug: true,
     keySeparator: false,
-
+  
     interpolation: {
       defaultVariables: {
         screenName: "foo",
       },
       escapeValue: false,
     },
-    resources,
   })
+  
 
 export default i18n
diff --git a/src/index.js b/src/index.js
index 55cbe3c..cb9bf6c 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,9 +1,8 @@
 import React from "react"
 import ReactDOM from "react-dom"
-
 import "./index.css"
 import "typeface-open-sans"
-
+import "./i18n"
 import App from "./App"
 import * as serviceWorker from "./serviceWorker"
 import { createStore, applyMiddleware, compose } from "redux"
diff --git a/src/translation/en.json b/src/translation/en.json
deleted file mode 100644
index 05a0dac..0000000
--- a/src/translation/en.json
+++ /dev/null
@@ -1,288 +0,0 @@
-{
-  "Installation_text": "The <0>Installation</0> testcases generally deal with a part of the installation procedure.<1 /> You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<1 /> <2>Note:</2> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
-  "Desktop_Text": "The <0>Desktop</0> testcases cover basic functionality of the desktop environment.<1 /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "Base_Text": "The <0>Base</0> testcases cover the system's basic functionality just after a clean installation. <1 /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <1 /><2>Pro tip:</2> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
-  "Server_Text": "The <0>Server</0> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
-  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<2 />Have a look at the <0  target=_blank  rel=noopener noreferrer  href=https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup>  Cloud provider setup </0> guides for more details.",
-  "What_is_Karma_Text": "The updates are kept in <0 target=_blank rel=noopener noreferrer href=https://bodhi.fedoraproject.org>Bodhi</0>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
-  "Make_sure_you": "Make sure your system is up-to-date: <1>sudo dnf update --refresh</1>",
-  "Install_fedora_easy_karma_tool": "Install fedora-easy-karma tool: <1>sudo dnf install fedora-easy-karma</1>",
-  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>dnf --enablerepo=updates-testing list --refresh --upgrades</1> and choose a package you know.",
-  "Install_the_packages": "Install the package  <1>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME </1>, and test whether it works, as you would expect.<br /> <0> Note:</0> Other packages from <1>updates-testing</1> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
-  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <0/> Run <1>fedora-easy-karma --fas-username=FAS_USERNAME</1>, and look for  <1>Bugs</1>, <1>Test Cases</1>, and/or <1>Notes</1> sections in the detailed output.",
-  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <2 /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <1 /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
-  "Run_fedora_easy_karam": "Run <1>fedora-easy-karma --fas-username=FAS_USERNAME</1> and report what you found out. ",
-  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <2 /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <1>-1</1> to mark the package as broken. <2 /> Not sure you can judge the package's state? Have a look at the <0 target=_blank href=https://fedoraproject.org/wiki/QA:Update_feedback_guidelines rel=noopener noreferrer> Update Feedback Guidelines </0> <2 /> Still not sure? Just press <1>Enter</1> to skip it.",
-  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <1>I tried openning and editing a document, and it worked.</1> when you test a text-editor, or  <1>I opened a couple of tabs, and browsed random pages.</1> for a web-browser. <0 /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
-  "Restore_the_stable": "Restore the stable-packages on your system by running  <1>sudo dnf distro-sync</1>",
-  "Identify_The_Testcase": "Identify the testcase and `environment` in our  <0 target=_blank rel=noopener noreferrer href={{matrix_url}}> Tescase matrix </0>.",
-  "Have_a_look_at_the_matrix": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are {{environment_examples}} for the {{testtype}} testcases, but you can also encouter a generic <6>Result</6> column, which usually means you can use any media/architecture available.",
-  "Have_a_look_at_the_matrix2": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are {{environment_examples}} for the {{testtype}} testcases, but you can also encouter a generic <7>Result</7> column, which usually means you can use any media/architecture available.",
-  "for_this_particular": "For this particular testcase, <1>{{join}}</1> {{length}} missing results.",
-  "Read_the_TestCase": "Read the <0 target=_blank rel=noopener noreferrer href={tc_url}> Testcase </0> briefly, just to have a general idea of what you will be doing.",
-  "Description_Text": "<0>Description</0> should give you a general idea of what is being tested",
-  "Setup_Text": "<0>Setup</0> describes the steps to take before you begin working on the testcase",
-  "How_to_Test": "<0>How to test</0> contains the individual steps to take in order to perform the testcase",
-  "Expected_Results": "<0>Expected results</0> describe what you should check while testing in order to decide whether it Passed of Failed",
-  "study_the_testcase": "Study the <0 target=_blank rel=noopener noreferrer href={tc_url}> Testcase</0> thoroughly, to be sure you know what to do.",
-  "If_you_are_not_familiar": "If you are not that familiar with IRC, you can use the <0 target=_blank rel=noopener noreferrer href=http://webchat.freenode.net> web-interface </0>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  "Great_either_use": "Great! Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the <0 target=blank rel=noopener noreferrer href={matrix_url}> matrix </0> directly by clicking on the <1>Edit</1> link next to the Matrice's header, and put <1>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</1> in the appropriate spot.",
-  "Awesome_ideally_read": "Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report <br /> If you don't feel like reading a wall of text, at least pot together a small document containing:",
-  "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <1>relval</1> package first), or modify the <0 target=_blank rel=noopener noreferrer href={matrix_url}>matrix </0> directly by clicking on the <1>Edit</1> link next to the Matrice's header, and put <1>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</1> in the appropriate spot.",
-  "Installation_example": "<1><2>x86_64</2> or <6>ARM</6><1>",
-  "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net  <0 expand_text=Don&#39;t have an IRC client?> If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect. </0>",
-  "hello": "Hello",
-  "disable": "Disable",
-  "enable": "Enable",
-  "Rawhide": "Rawhide",
-  "Upgrade": "Upgrade",
-  "Miscellaneous": "Miscellaneous",
-  "Run": "Run",
-  "Description": "Description",
-  "Note": "Note:",
-  "Result": "Result",
-  "Visit": "Visit",
-  "enter": "Enter",
-  "notes": "Notes",
-  "close": "Close",
-  "source": "Source",
-  "version": "version",
-  "english": "english",
-  "Retrying": "Retrying",
-  "Installation": "Installation",
-  "the": "The",
-  "Desktop": "Desktop",
-  "Base": "Base",
-  "or": "or",
-  "Server": "Server",
-  "Cloud": "Cloud",
-  "Bodhi": "Bodhi",
-  "Bugs": "Bugs",
-  "Preperation": "Preperation",
-  "Testing": "Testing",
-  "Reporting": "Reporting",
-  "Easyfix": "Easyfix",
-  "Manual_Testing": "Manual Testing",
-  "Beginner_Guide": "Beginner Guide",
-  "meetbot": "meetbot",
-  "primary": "primary",
-  "See": "See!",
-  "warning": "warning",
-  "Expand": "Expand",
-  "Workstation": "Workstation",
-  "Minimal": "Minimal",
-  "for_the": "for the",
-  "Testcase": "Testcase",
-  "Setup": "Setup",
-  "here": "here",
-  "missing_results": "missing results.",
-  "web_interface": "web-interface",
-  "relval": "relval",
-  "matrix": "matrix",
-  "Edit": "Edit",
-  "danger": "danger",
-  "success": "success",
-
-  "Tescase_matrix": "Tescase matrix",
-  "I_found_a_bug": "I found a bug!",
-  "Feeling_a_bit_lost": "Feeling a bit lost?",
-  "result_fail_your": "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
-  "if_you_dont_like_like_reading": "If you don't feel like reading a wall of text, at least pot together a small document containing:",
-  "Study_the": "Study the",
-  "package_first": " package first), or modify the",
-  "directly_by_clicking_on_the": " directly by clicking on the",
-  "result_pass_your": "result|pass|YOUR_NAME_HERE|",
-  "link_next_to_the_Matrice_header_and_put": " link next to the Matrice's header, and put",
-  "in_the_appropriate_spot": "in the appropriate spot.",
-  "dont_have_an": "Don't have an IRC client?",
-  "on_command_line": "on command line (make sure to install the",
-  "relval_report_results": "relval report-results",
-  "Great_Either_use": "Great! Either use",
-  "Everything_went_well": "Everything went well",
-  "should_give_you_a": "should give you a general idea of what is being tested",
-  "if_you_are": " If you are not that familiar with IRC, you can use the",
-  "The_testcase_structure_is_not_making_sense": "The testcase structure is not making sense?",
-  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
-  "Just_enter_a_Nickname": "just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  "The_testcases_are_generally_split_into_four_sections": "The testcases are generally split into four sections:",
-  "describes_the_steps": "describes the steps to take before you begin working on the testcase",
-  "For_this_particular_testcase": "For this particular testcase,",
-  "thoroughly_to_be_sure_you_know_what_to_do": " thoroughly, to be sure you know what to do.",
-  "Bodhi_Karma": "Bodhi Karma",
-  "describes_you_to_check": "describe what you should check while testing in order to decide whether it Passed of Failed",
-  "How_to_test": "How to test",
-  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
-  "contains_the_individual": "contains the individual steps to take in order to perform the testcase",
-  "Show_me": "Show me",
-  "Expected_results": "Expected results",
-  "Maybe_you_are_stuck": "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
-  "Column_which_usually": "column, which usually means you can use any media/architecture available.",
-  "testcases_but_you_can": "testcases, but you can also encouter a generic",
-  "Should_give_you": "should give you a general idea of  what is being tested",
-  "briefly_just": " briefly, just to have a general idea of what you will be doing.",
-  "Read_the": " Read the",
-  "Not_sure_what_that_means": " Not sure what that means?",
-  "Not_making_much_sense": "Not making much sense?",
-  "Column_which_actually": "column, which usually means you can use any  media/architecture available.",
-  "ModalBadge": " Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
-  "Identify_the_testcase_and_environment_in_our": "Identify the testcase and `environment` in our ",
-  "Fedora_Manual_Testing": "Fedora Manual Testing",
-  "Not_sure_what_Karma_means": "Not sure what Karma means?",
-  "Preperation_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "Installation_text0": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "testing_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "reporting_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "sudo_dnf_update_refresh": "sudo dnf update --refresh",
-  "FAS_Sign_up_page": "FAS Sign-up page",
-  "Test_Cases": "Test Cases",
-  "and_or": "and/or",
-  "fedora_easy_karma": "fedora-easy-karma",
-  "fedora_Q_a": "<div><h1>fkfhrry</h1></div>",
-  "sections_in_the_detailed_output": "sections in the detailed output.",
-  "sudo_dnf_distro_sync": "sudo dnf distro-sync",
-  "Update_Feedback_Guidelines": " Update Feedback Guidelines",
-  "sudo_dnf_install_fedora_easy_karma": "sudo dnf install fedora-easy-karma",
-  "cloud_text": " Even thought the",
-  "Cloud_provider_setup": " Cloud provider setup",
-  "guides_for_more_details": " guides for more details.",
-  "is_a_group": "Is a group containing several projects. Expand to see more.",
-  "cloud_text1": "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
-  "Failed_to_fetch_data": "Failed to fetch data!",
-  "cloud_text2": "Have a look at the",
-  "select_language": "Select Language",
-  "base_text": "testcases cover the system's basic functionality just after a clean installation.",
-  "on_Pagure": "on Pagure",
-  "Pro_tip": " Pro tip",
-  "base_text1": "  Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine.",
-  "change_language": "Change Language",
-  "Desktop_text": "testcases cover basic functionality of the desktop environment.",
-  "base_text3": "using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase.",
-  "Desktop_text1": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "save_changes": "Save changes",
-  "configure_visibility": "Configure visibility of the info-cards",
-  "test_cases": "Test Cases",
-  "go_to_home": "Go to home page ",
-  "for_a_web": "for a web-browser",
-  "to_see_older": "to see older",
-  "User_interface": "User interface",
-  "Test_Matrix": "Test Matrix",
-  "Few_hours": "Few hours",
-  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
-  "update_testing": "updates-testing",
-  "section_in_the": "sections in the detailed output.",
-  "and_look_for": ",and look for",
-  "Storage_devices": "Storage devices",
-  "Server_text": "testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
-  "What_is_Karma": "What is Karma",
-  "Several_days": "Several days",
-  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
-  "Im_a_complete_beginner": "I'm a complete beginner",
-  "please_guide_to_me_this": "please guide to me this",
-  "Ive_already_done_this": "I've already done this",
-  "Show_me_the_test_cases": "Show me the test cases",
-  "Proposed_FEs": "Proposed FEs",
-  "Accepted_FEs": "Accepted FEs",
-  "Tell_me_More": "Tell me more!",
-  "IoT_Test_Day": "[F34] IoT Test Day",
-  "ARM_disk_images": "ARM disk images",
-  "Not_sure_how": "Not sure how?",
-  "Make_sure_to": "Make sure to read about identifying the environment above.",
-  "Most_of_the_time": "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
-  "to_skip_it": "to skip it.",
-  "repo_by": " repo, by running ",
-  "the_name_of": " The name of the ISO image you used ",
-  "testcases_generally": "testcases generally deal with a part of the installation procedure.",
-  "is_a_group_containing": " - Is a group containing several projects. Expand to see more.",
-  "note_what_you_did": "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
-  "if_you_are_not_familiar": "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  "you_can_either_install": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "the_updates_are": "The updates are kept in",
-
-  "and_choose_a": "and choose a package you know.",
-  "and_create_it": "and create it.",
-  "brief_description_of_what": " Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
-  "try_to_reproduce_the": "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
-  "choose_an_update": "Choose an update to test",
-  "note_the_user": "Note the username and password, you will need it later on.",
-  "sure_let_me_do_it": "Sure, let me do it!",
-  "an_update_can": "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
-  "Audio_Test_Day": "[F34] Audio Test Day",
-  "it_identifies": "It identifies the packages installed from the ",
-  "and_report_what_you_found_out": "and report what you found out.",
-  "Install_the_package": "Install the package",
-  "repository_and_matches": "repository, and matches them to the updates in Bodhi.",
-  "Fedora_Media_Writer": "Fedora Media Writer",
-  "Choose_an_update_to_test": "Choose an update to test",
-  "once_you_get_the_bug_reported": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
-  "users_or_automated": "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
-  "which_acts_as_a_gatekeeper": ", which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together. ",
-  "Installation_repositories": "Installation repositories",
-  "Release_blocking_environments": "elease-blocking environments ",
-  "Default_boot_and_install": "Default boot and install (x86_64)",
-  "Default_boot_and_install_aarch64": "Default boot and install (aarch64)",
-  "Custom_storage_configuration": "Custom storage configuration",
-  "Release_blocking_desktops": "Release-blocking desktops",
-  "Accepted_Blockers": "Accepted Blockers",
-  "Fedora_QA_Meeting": "Fedora QA Meeting",
-  "Testing_Bodhi_Karma": "Testing - Bodhi Karma",
-  "Programming_Easyfix": "Programming - Easyfix",
-  "Proposed_Blockers": "Proposed Blockers",
-  "Need_some_tips": "Need some tips?",
-  "Sourceon_Pagure": "Sourceon Pagure",
-  "Want_something_a_bit_nicer": "Want something a bit nicer?",
-  "still_not_sure": "Still not sure? Just press ",
-  "when_you_test": "when you test a text-editor, or",
-  "Make_your_choice": "Make your choice!",
-  "Other_packages_from": "Other packages from",
-  "New_to_fedora": "New to fedora-easy-karma?",
-  "Dont_have_one_yet": "Don't have one yet?",
-  "Nothing_sparked_joy": " Nothing sparked joy?",
-  "Beta_Freeze": "Beta Freeze (starts at 1400 UTC)",
-  "Final_Freeze": "Final Freeze (starts at 1400 UTC) ",
-  "Blocker_Review_Meeting": "Blocker Review Meeting",
-  "Fedora_35_blockers_and_FEs": "Fedora 35 blockers and FEs",
-  "Fedora_QA_Meeting_Minutes": "Fedora QA Meeting Minutes",
-  "blockers_and_FEs": "blockers and FEs",
-  "Visit_meetbot_to_see_older": "Visit meetbot to see older.",
-  "current_development_schedule": "Current development schedule",
-  "Latest_minutes_from": "Latest minutes from",
-  "i_opened_a_couple": " I opened a couple of tabs, and browsed random pages.",
-  "Branch_Fedora_Linux_34_from_Rawhide": "Branch Fedora Linux 34 from Rawhide",
-  "Advanced_custom_storage_configuration": "Advanced custom storage configuration",
-  "Beta_Release_Public_Availability": "Beta Release Public Availability",
-  "Fedora_Accounts_System": "Fedora Accounts System (FAS) account is required.",
-  "Final_Release_Public_Availability": "Final Release Public Availability (GA)",
-  "Testing_Fedora_Release_validation": "Testing - Fedora Release validation",
-  "Meetings_and_testdays_in_the_next_7_days": "Meetings and testdays in the next 7 days",
-  "Tell_me_more_about": "Tell me more about the process! ",
-  "to_mark_the": "to mark the package as broken.",
-  "if_you_dont": " If you don't feel like reading a wall of text, at least pot together a small document containing:",
-  "shows_the_URL": "shows the URL of the relevant update near the bottom of the text output - look for URL like",
-  "you_can_have_a_look": "You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
-  "you_are_then_presented": "You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-  "to_mark_positive": "to mark positive karma (the update works just fine, as far as you can tell), or",
-  "not_sure_you_can": "Not sure you can judge the package's state? Have a look at the",
-  "add_a_comment": "Add a comment - even if it works, try to describe what you tested. It can be as easy as",
-  "do_you_have_some_spare_time": "Click here, and help us make Fedora better!",
-  "The_goal_of_release_validation_testing_is_to_ensure": "The goal of release validation testing is to ensure the release candidate meets the requirements for Fedora releases. You will manually execute test cases to verify installation and basic functionality of the various Fedora products.",
-  "Simple_voting_system_that_allows_for_esters_to_provide_feedback_as": "Simple voting system that allows for testers to provide feedback as to whether a given package update works or not.",
-  "Number_of_projects_within_Fedora_which_are_looking_for_help": "Number of projects within Fedora which are looking for help. These tasks have been evaluated as easy entrance point.",
-  "None_of_the_above_looks_interesting_to_you": "None of the above looks interesting to you? We'd be happy if you looked around at",
-  "Before_a_new_version_of_a_package": "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
-  "The_Base_testcases_cover_the_system": "The Base testcases cover the system's basic functionality just after a clean installation",
-  "Most_times_you_will_be_asked_to_perform_a_clean_Fedora_installation": "Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine",
-  "Pro_tip_using_a_snapshot_of_cleanly_installed_Virtual_machine_is_just_fine": "Pro tip: using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase",
-  "Even_thought_the_Cloud_testcases_are_best_done_in_the_specific_environments": "Even thought the Cloud testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.Have a look at the Cloud provider setup guides for more details.",
-  "The_Desktop_testcases_cover_basic_functionality_of_the_desktop_environment": "The Desktop testcases cover basic functionality of the desktop environment.You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "The_Installation_testcases_generally_deal_with_a_part_of_the_installation_procedure": "The Installation testcases generally deal with a part of the installation procedure",
-  "You_will_certainly_need_an_installation_ISO": "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
-  "Absolutely_make_sure": "Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment",
-  "i_tried_openning": "I tried openning and editing a document, and it worked",
-  "freeze_Text": "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
-  "Rawhide_Text": "Next Fedora release hasn't been branched yet from rolling release branch.",
-  "branch_Text": "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
-  "release_Text": "Release candidate was accepted (violating no milestone criteria) and was released.",
-  "timeline_Text": "This is a timeline of current Fedora release schedule",
-  "visibility_configuration": "Visibility Configuration"
-}
diff --git a/src/wizard/FedoraEasyKarma.js b/src/wizard/FedoraEasyKarma.js
index 73c9f85..783c494 100644
--- a/src/wizard/FedoraEasyKarma.js
+++ b/src/wizard/FedoraEasyKarma.js
@@ -4,6 +4,12 @@ import { Trans, useTranslation } from "react-i18next"
 
 export default (props) => {
   const { t } = useTranslation()
+  const sudo_dnf="sudo dnf update --refresh"
+  const sudo_dnf_install="sudo dnf install fedora-easy-karma"
+  const dnf="dnf --enablerepo=updates-testing list --refresh --upgrades"
+  const sudo_dnf_enablepo="sudo dnf --enablerepo=updates-testing update PACKAGE_NAME"
+  const fedora_easy_karma="fedora-easy-karma --fas-username=FAS_USERNAME"
+  const sudo_dnf_distro ="sudo dnf distro-sync"
 
   if (props.data === undefined) return null
   else
@@ -13,8 +19,7 @@ export default (props) => {
         {t("Before_a_new_version_of_a_package")}{" "}
         <CollapsableBadge expand_text="Tell me more about the process!">
           <Trans
-            i18nKey="What_is_Karma_Text"
-            components={[<a href="https://bodhi.fedoraproject.org/"> </a>]}>
+            i18nKey="What_is_Karma_Text">
             The updates are kept in{" "}
             <a target="_blank" rel="noopener noreferrer" href="https://bodhi.fedoraproject.org/">
               Bodhi
@@ -48,12 +53,12 @@ export default (props) => {
           </li>
           <li>
             <Trans i18nKey="Make_sure_you">
-              Make sure your system is up-to-date: <code>sudo dnf update --refresh</code>
+              Make sure your system is up-to-date: <code>{{sudo_dnf}}</code>
             </Trans>
           </li>
           <li>
             <Trans i18nKey="Install_fedora_easy_karma_tool">
-              Install fedora-easy-karma tool: <code>sudo dnf install fedora-easy-karma</code>
+              Install fedora-easy-karma tool: <code>{{sudo_dnf_install}}</code>
             </Trans>
           </li>
           <li>
@@ -61,15 +66,15 @@ export default (props) => {
             <CollapsableBadge expand_text={t("Not_sure_how")}>
               <Trans i18nKey="Have_a_look">
                 Have a look at the available packages in <code>updates-testing</code> repo, by
-                running <code>dnf --enablerepo=updates-testing list --refresh --upgrades</code> and
+                running <code>{{dnf}}</code> and
                 choose a package you know.
               </Trans>
             </CollapsableBadge>
           </li>
           <li>
-            <Trans i18nKey="Install_the_packages" components={[<strong></strong>]}>
+            <Trans i18nKey="Install_the_packages">
               Install the package{" "}
-              <code>sudo dnf --enablerepo=updates-testing update PACKAGE_NAME</code>, and test
+              <code>{{sudo_dnf_enablepo}}</code>, and test
               whether it works, as you would expect.
               <br />
               <strong>Note:</strong> Other packages from <code>updates-testing</code> repo may be
@@ -78,12 +83,11 @@ export default (props) => {
             </Trans>
             <CollapsableBadge expand_text={t("Need_some_tips")}>
               <Trans
-                i18nKey="Sometimes_the_update"
-                components={[<br />, <code>fedora-easy-karma --fas-username=FAS_USERNAME</code>]}>
+                i18nKey="Sometimes_the_update">
                 Sometimes, the update associated with the package you just installed fixes some
                 specific bugs, or has testcases associated with it.
                 <br />
-                Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code>, and look for{" "}
+                Run <code>{{fedora_easy_karma}}</code>, and look for{" "}
                 <code>Bugs</code>, <code>Test Cases</code>, and/or <code>Notes</code> sections in
                 the detailed output.{" "}
               </Trans>
@@ -106,7 +110,7 @@ export default (props) => {
           </li>
           <li>
             <Trans i18nKey="Run_fedora_easy_karam">
-              Run <code>fedora-easy-karma --fas-username=FAS_USERNAME</code> and report what you
+              Run <code>{{fedora_easy_karma}}</code> and report what you
               found out.{" "}
             </Trans>
             <CollapsableBadge expand_text={t("New_to_fedora")}>
@@ -117,17 +121,11 @@ export default (props) => {
                 You are then presented with the relevant updates one-by-one, to submit Karma and a
                 comment.{" "}
               </Trans>
-              <ModalBadge expand_text={t(" Not_sure_what_Karma_means")}>
+              <ModalBadge expand_text={t("Not_sure_what_Karma_means")}>
                 <ol>
                   <li>
                     <Trans
-                      i18nKey="Enter_to_mark_positive"
-                      components={[
-                        <a href="https://fedoraproject.org/wiki/QA:Update_feedback_guidelines">
-                          {" "}
-                        </a>,
-                        <code>1</code>,
-                      ]}>
+                      i18nKey="Enter_to_mark_positive">
                       Enter <code>1</code> to mark positive karma (the update works just fine, as
                       far as you can tell), or <code>-1</code> to mark the package as broken.{" "}
                       <br />
@@ -144,11 +142,7 @@ export default (props) => {
                   </li>
                   <li>
                     <Trans
-                      i18nKey="Add_a_comment_even_if"
-                      components={[
-                        <br />,
-                        <code>I tried openning and editing a document, and it worked.</code>,
-                      ]}>
+                      i18nKey="Add_a_comment_even_if">
                       Add a comment - even if it works, try to describe what you tested. It can be
                       as easy as{" "}
                       <code>I tried openning and editing a document, and it worked.</code> when you
@@ -168,7 +162,7 @@ export default (props) => {
           <li>
             <Trans i18nKey="Restore_the_stable">
               Restore the stable-packages on your system by running{" "}
-              <code>sudo dnf distro-sync</code>
+              <code>{{sudo_dnf_distro}}</code>
             </Trans>{" "}
           </li>
         </ol>
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index e82d0e3..0a2ce35 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -1,4 +1,5 @@
 import React, { useState } from "react"
+import ReactDOMServer from "react-dom/server"
 import { Modal, ModalHeader, ModalBody, ModalFooter } from "reactstrap"
 import { CollapsableCard, ModalBadge } from "./components"
 import { Trans, useTranslation } from "react-i18next"
@@ -137,15 +138,15 @@ export function FedoraManualTestingItem(props) {
     case "Base":
       environment_examples = (
         <span>
-          <code>{t("Workstation")}</code>, <code>{t("Server")}</code>, <code>Xfce</code> {t("or")}{" "}
-          <code>{t("Minimal")}</code>
+          <code>Workstation</code>, <code>Server</code>, <code>{t("or")}</code> or{" "}
+          <code>Minimal</code>
         </span>
       )
       break
     case "Desktop":
       environment_examples = (
         <span>
-          <code>{t("Workstation")}</code> {t("or")} <code>KDE</code>
+          <code>Workstation</code> {t("or")} <code>KDE</code>
         </span>
       )
       break
@@ -163,12 +164,13 @@ export function FedoraManualTestingItem(props) {
   const testtype = extra_data.testtype
   const length = extra_data.envs.length > 1 ? "environments are" : "environment is"
   const join = extra_data.envs.join(", ")
-
+  const environment_variables = {__html: ReactDOMServer.renderToString(environment_examples)}
+  
   return (
     <ModalInfo buttonLabel={name}>
       <ol className="steps">
         <li>
-          <Trans i18nKey="Identify_The_Testcase" components={[<a href={matrix_url}> </a>]}>
+          <Trans i18nKey="Identify_The_Testcase">
             Identify the testcase and `environment` in our{" "}
             <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
               Tescase matrix{" "}
@@ -179,9 +181,10 @@ export function FedoraManualTestingItem(props) {
               <li>
                 <Trans i18nKey="Have_a_look_at_the_matrix">
                   Have a look at the matrix. The rows are the testcases, and the columns are the
-                  environments. Most of the time, these are {{ environment_examples }} for the{" "}
-                  {{ testtype }} testcases, but you can also encouter a generic <code>Result</code>{" "}
-                  column, which usually means you can use any media/architecture available.
+                  environments. Most of the time, these are <span dangerouslySetInnerHTML={environment_variables}></span>
+                  for the {{ testtype }} testcases, but you can also encouter a generic{" "}
+                  <code>Result</code> column, which usually means you can use any
+                  media/architecture available.
                 </Trans>
               </li>
               <li>
@@ -195,7 +198,7 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          <Trans i18nKey="Read_the_TestCase" components={[<a href={tc_url}> </a>]}>
+          <Trans i18nKey="Read_the_TestCase">
             Read the{" "}
             <a target="_blank" rel="noopener noreferrer" href={tc_url}>
               Testcase
@@ -250,13 +253,13 @@ export function FedoraManualTestingItem(props) {
                 <ModalBadge expand_text={t("See")}>
                   <ul>
                     <li>
-                      <Trans i18nKey="Have_a_look_at_the_matrix2">
-                        Have a look at the matrix. The rows are the testcases, and the columns are
-                        the environments. Most of the time, these are {{ environment_examples }}{" "}
-                        for the {{ testtype }} testcases, but you can also encouter a generic{" "}
-                        <code>Result</code> column, which usually means you can use any
-                        media/architecture available.
-                      </Trans>
+                      <Trans i18nKey="Have_a_look_at_the_matrix">
+                  Have a look at the matrix. The rows are the testcases, and the columns are the
+                  environments. Most of the time, these are <span dangerouslySetInnerHTML={environment_variables}></span>
+                  for the {{ testtype }} testcases, but you can also encouter a generic{" "}
+                  <code>Result</code> column, which usually means you can use any
+                  media/architecture available.
+                </Trans>
                     </li>
                     <li>
                       <Trans i18nKey="for_this_particular">
@@ -272,7 +275,7 @@ export function FedoraManualTestingItem(props) {
         </li>
 
         <li>
-          <Trans i18nKey="study_the_testcase" components={[<a href={tc_url}> </a>]}>
+          <Trans i18nKey="study_the_testcase">
             Study the{" "}
             <a target="_blank" rel="noopener noreferrer" href={tc_url}>
               Testcase
@@ -316,19 +319,13 @@ export function FedoraManualTestingItem(props) {
               <li>
                 {t("Maybe_you_are_stuck")}{" "}
                 <ModalBadge expand_text={t("dont_have_an")}>
-                  <Trans
-                    i18nKey="If_you_are_not_familiar"
-                    components={[<a href="http://webchat.freenode.net"> </a>]}>
-                    If you are not that familiar with IRC, you can use the{" "}
-                    <a
-                      target="_blank"
-                      rel="noopener noreferrer"
-                      href="http://webchat.freenode.net">
-                      web-interface
-                    </a>{" "}
-                    just enter a Nickname of your choice, #fedora-qa (including the hash sign) in
-                    the Channels field, and click Connect.
-                  </Trans>
+                <Trans i18nKey="Have_a_look_at_the_matrix">
+                  Have a look at the matrix. The rows are the testcases, and the columns are the
+                  environments. Most of the time, these are <span dangerouslySetInnerHTML={{__html: ReactDOMServer.renderToString(environment_examples)}}></span>
+                  for the {{ testtype }} testcases, but you can also encouter a generic{" "}
+                  <code>Result</code> column, which usually means you can use any
+                  media/architecture available.
+                </Trans>
                 </ModalBadge>
               </li>
             </ul>
@@ -343,10 +340,7 @@ export function FedoraManualTestingItem(props) {
             type="btn">
             <Trans
               i18nKey="Great_either_use"
-              components={[
-                <a href={matrix_url}> </a>,
-                <code>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</code>,
-              ]}>
+              >
               Great! Either use <code>relval report-results</code> on command line (make sure to
               install the <code>relval</code> package first), or modify the{" "}
               <a target="_blank" rel="noopener noreferrer" href={matrix_url}>
@@ -360,7 +354,7 @@ export function FedoraManualTestingItem(props) {
 
           <ModalBadge expand_class={t("danger")} expand_text={t("I_found_a_bug")} type="btn">
             <Trans i18nKey="Awesome_ideally_read">
-              Awesome! Ideally read up on https://fedoraproject.org/wiki/How_to_file_a_bug_report
+              Awesome! Ideally read up on <a target="_blank" rel="noopener noreferrer" href="https://fedoraproject.org/wiki/How_to_file_a_bug_report">How_to_file_a_bug_report</a>
               <br />
               If you don't feel like reading a wall of text, at least pot together a small document
               containing:
@@ -373,22 +367,20 @@ export function FedoraManualTestingItem(props) {
               <li>{t("note_what_you_did")}</li>
               <li>{t("try_to_reproduce_the")}</li>
               <li>
-                <Trans
-                  i18nKey="Share_your_notes"
-                  components={[<ModalBadge expand_text={t("dont_have_an")}></ModalBadge>]}>
+                <Trans i18nKey="Share_your_notes">
                   Share your notes on the internet (you can use fpaste), and ask for help with
                   filing the bug report on our IRC channel #fedora-qa at freenode.net{" "}
+                  </Trans>
                   <ModalBadge expand_text={t("dont_have_an")}>
-                    If you are not that familiar with IRC, you can use the web-interface[link] just
-                    enter a Nickname of your choice, #fedora-qa (including the hash sign) in the
-                    Channels field, and click Connect.
+                    <Trans i18nKey="If_you_are_not_familiar">
+                    If you are not that familiar with IRC, you can use the <a target="_blank" rel="noopener noreferrer" noreferrer href="http://webchat.freenode.net">web-interface </a>
+                    just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect
+                    </Trans>
                   </ModalBadge>
-                </Trans>
               </li>
             </ul>
             <Trans
-              i18nKey="Once_you_get_the_bug"
-              components={[<a href={matrix_url}> </a>, <code></code>]}>
+              i18nKey="Once_you_get_the_bug">
               Once you get the Bug reported, make sure to also submit the result into the testing
               matrix. Either use <code>relval report-results</code> on command line (make sure to
               install the <code>relval</code> package first), or modify the{" "}
diff --git a/src/wizard/step/Step4.js b/src/wizard/step/Step4.js
index 87ff0a9..be4796d 100644
--- a/src/wizard/step/Step4.js
+++ b/src/wizard/step/Step4.js
@@ -90,8 +90,7 @@ const Step4 = (props) => {
         return (
           <div className="text-left">
             <Trans
-              i18nKey="Installation_text"
-              components={[<strong>Installation</strong>, <br />, <i>Note:</i>]}>
+              i18nKey="Installation_text">
               The <strong>Installation</strong> testcases generally deal with a part of the
               installation procedure. You will certainly need an installation ISO, and either a
               Virtual or Bare-metal machine to run the test.
@@ -105,7 +104,7 @@ const Step4 = (props) => {
       case "Desktop":
         return (
           <div className="text-left">
-            <Trans i18nKey="Desktop_Text" components={[<strong>Installation</strong>, <br />]}>
+            <Trans i18nKey="Desktop_Text">
               The <strong>Desktop</strong> testcases cover basic functionality of the desktop
               environment.
               <br />
@@ -118,9 +117,7 @@ const Step4 = (props) => {
       case "Base":
         return (
           <div className="text-left">
-            <Trans
-              i18nKey="Base_Text"
-              components={[<strong>Installation</strong>, <br />, <i>Pro tip:</i>]}>
+            <Trans i18nKey="Base_Text">
               The <strong>Base</strong> testcases cover the system&#x27;s basic functionality just
               after a clean installation.
               <br />
@@ -136,7 +133,7 @@ const Step4 = (props) => {
       case "Server":
         return (
           <div className="text-left">
-            <Trans i18nKey="Server_Text" components={[<strong>Installation</strong>, <br />]}>
+            <Trans i18nKey="Server_Text">
               The <strong>Server</strong> testcases usually require multiple machines to test the
               server-client behaviour, and might feel a bit advanced.
             </Trans>
@@ -147,14 +144,7 @@ const Step4 = (props) => {
         return (
           <div className="text-left">
             <Trans
-              i18nKey="Cloud_Text"
-              components={[
-                <a href="https://fedoraproject.org/wiki/Test_Results:Fedora_Current_Cloud#Cloud_Provider_Setup">
-                  {" "}
-                </a>,
-                <strong>Cloud</strong>,
-                <br />,
-              ]}>
+              i18nKey="Cloud_Text">
               Even thought the <strong>Cloud</strong> testcases are best done in the specific
               environments like EC2 or Openstack, you can also perform them locally using
               Testcloud.

From deb2735707f827093a423adcdff04941eb9cc493 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 16 2021 09:51:17 +0000
Subject: [PATCH 7/11] removed warnings


---

diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index db90b5c..3a53544 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -1,20 +1,20 @@
 {
-  "Installation_text": "The <1>Installation</1> testcases generally deal with a part of the installation procedure. You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<3 /> <4>Note:</4> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
-  "Desktop_Text": "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<3 /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "Base_Text": "The <1>Base</1> testcases cover the system's basic functionality just after a clean installation. <3 /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <5 /><6>Pro tip:</6> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
+  "Installation_text": "The <1>Installation</1> testcases generally deal with a part of the installation procedure. You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<br /> <4>Note:</4> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
+  "Desktop_Text": "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<br /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "Base_Text": "The <1>Base</1> testcases cover the system's basic functionality just after a clean installation. <br /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <br /><6>Pro tip:</6> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
   "Server_Text": "The <1>Server</1> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
-  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<3 />Have a look at the <6>  Cloud provider setup </6> guides for more details.",
+  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<br />Have a look at the <6>  Cloud provider setup </6> guides for more details.",
   "What_is_Karma_Text": "The updates are kept in <2>Bodhi</2>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
   "Make_sure_you": "Make sure your system is up-to-date: <1>{{sudo_dnf}}</1>",
   "Install_fedora_easy_karma_tool": "Install fedora-easy-karma tool: <1>{{sudo_dnf_install}}</1>",
-  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1></1> and choose a package you know.",
-  "Install_the_packages": "Install the package  <2>{{sudo_dnf_enablepo}}</2>, and test whether it works, as you would expect.<4 /> <5> Note:</5> Other packages from <7>updates-testing</7> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
-  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <1/> Run <3>{{fedora_easy_karma}}</3>, and look for  <6>Bugs</6>, <8>Test Cases</8>, and/or <10>Notes</10> sections in the detailed output.",
-  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <2 /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <1 /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>{{dnf}}</1> and choose a package you know.",
+  "Install_the_packages": "Install the package  <2>{{sudo_dnf_enablepo}}</2>, and test whether it works, as you would expect.<br /> <5> Note:</5> Other packages from <7>updates-testing</7> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
+  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <br /> Run <3>{{fedora_easy_karma}}</3>, and look for  <6>Bugs</6>, <8>Test Cases</8>, and/or <10>Notes</10> sections in the detailed output.",
+  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <br /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <br /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
   "Run_fedora_easy_karam": "Run <1>{{fedora_easy_karma}}</1> and report what you found out. ",
-  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <2 /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <3>-1</3> to mark the package as broken. <6 /> Not sure you can judge the package's state? Have a look at the <9> Update Feedback Guidelines </9> <10/> Still not sure? Just press <12>Enter</12> to skip it.",
-  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <2>I tried openning and editing a document, and it worked.</2> when you test a text-editor, or  <5>I opened a couple of tabs, and browsed random pages.</5> for a web-browser. <7 /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
+  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <br /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <3>-1</3> to mark the package as broken. <br /> Not sure you can judge the package's state? Have a look at the <9> Update Feedback Guidelines </9> <br/> Still not sure? Just press <12>Enter</12> to skip it.",
+  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <2>I tried openning and editing a document, and it worked.</2> when you test a text-editor, or  <5>I opened a couple of tabs, and browsed random pages.</5> for a web-browser. <br /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
   "Restore_the_stable": "Restore the stable-packages on your system by running  <2>{{sudo_dnf_distro}}</2>",
   "Identify_The_Testcase": "Identify the testcase and `environment` in our  <2> Tescase matrix </2>.",
   "Have_a_look_at_the_matrix": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are <1></1> for the {{testtype}} testcases, but you can also encouter a generic <6>Result</6> column, which usually means you can use any media/architecture available.",
@@ -27,7 +27,7 @@
   "study_the_testcase": "Study the <2> Testcase</2> thoroughly, to be sure you know what to do.",
   "If_you_are_not_familiar": "If you are not that familiar with IRC, you can use the <1> web-interface </1>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
   "Great_either_use": "Great! Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6> matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</11> in the appropriate spot.",
-  "Awesome_ideally_read": "Awesome! Ideally read up on <1>How_to_file_a_bug_report</1> <2/> If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "Awesome_ideally_read": "Awesome! Ideally read up on <1>How_to_file_a_bug_report</1> <br/> If you don't feel like reading a wall of text, at least pot together a small document containing:",
   "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6>matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</11> in the appropriate spot.",
   "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net ",
   "hello": "Hello",
diff --git a/src/index.js b/src/index.js
index cb9bf6c..b2fef2b 100644
--- a/src/index.js
+++ b/src/index.js
@@ -2,7 +2,6 @@ import React from "react"
 import ReactDOM from "react-dom"
 import "./index.css"
 import "typeface-open-sans"
-import "./i18n"
 import App from "./App"
 import * as serviceWorker from "./serviceWorker"
 import { createStore, applyMiddleware, compose } from "redux"
@@ -10,6 +9,7 @@ import thunkMiddleware from "redux-thunk"
 import { createLogger } from "redux-logger"
 import { Provider } from "react-redux"
 import reducer from "./reducers"
+import i18n from "./i18n"
 
 const loggerMiddleware = createLogger()
 
@@ -20,14 +20,18 @@ const store = createStore(
   composeEnhancers(applyMiddleware(thunkMiddleware, loggerMiddleware))
 )
 
-ReactDOM.render(
-  <React.StrictMode>
-    <Provider store={store}>
-      <App />
-    </Provider>
-  </React.StrictMode>,
-  document.getElementById("root")
-)
+i18n.on("initialized",() => {
+  ReactDOM.render(
+    <React.StrictMode>
+      <Provider store={store}>
+        <App />
+      </Provider>
+    </React.StrictMode>,
+    document.getElementById("root")
+  )
+})
+
+
 
 // If you want your app to work offline and load faster, you can change
 // unregister() to register() below. Note this comes with some pitfalls.
diff --git a/src/landingpage/Events.js b/src/landingpage/Events.js
index f8a8ee0..bfab8d3 100644
--- a/src/landingpage/Events.js
+++ b/src/landingpage/Events.js
@@ -16,7 +16,7 @@ const Events = (props) => {
     }
     return (
       <Event
-        key={meeting.link}
+        key={date}
         date={date}
         month={month}
         time={time}
diff --git a/src/layout/Footer.js b/src/layout/Footer.js
index 69976ca..f089477 100644
--- a/src/layout/Footer.js
+++ b/src/layout/Footer.js
@@ -7,7 +7,7 @@ const Footer = () => {
   return (
     <div className="footer">
       <div className="container">
-        <a href="https://pagure.io/fedora-qa/landingpage">{t("source")}</a> {t(".on_Pagure")}{" "}
+        <a href="https://pagure.io/fedora-qa/landingpage">{t("source")}</a> {t("on_Pagure")}{" "}
         <span className="float-right">{t("version")} 0.1.0</span>
       </div>
     </div>
diff --git a/src/layout/Masthead.js b/src/layout/Masthead.js
index 52bcf2f..a5965f9 100644
--- a/src/layout/Masthead.js
+++ b/src/layout/Masthead.js
@@ -126,7 +126,7 @@ const Masthead = () => {
             <DropdownToggle caret>{lang ? lang : t("select_language")}</DropdownToggle>
             <DropdownMenu>
               {language.map((item) => (
-                <DropdownItem onClick={() => handleClick(item.lang)}>{item.name}</DropdownItem>
+                <DropdownItem  key={item} onClick={() => handleClick(item.lang)}>{item.name}</DropdownItem>
               ))}
             </DropdownMenu>
           </ButtonDropdown>
diff --git a/src/wizard/FedoraEasyKarma.js b/src/wizard/FedoraEasyKarma.js
index 783c494..b04bda9 100644
--- a/src/wizard/FedoraEasyKarma.js
+++ b/src/wizard/FedoraEasyKarma.js
@@ -17,7 +17,7 @@ export default (props) => {
       <div>
         <h1>{t("What_is_Karma")}</h1>
         {t("Before_a_new_version_of_a_package")}{" "}
-        <CollapsableBadge expand_text="Tell me more about the process!">
+        <CollapsableBadge expand_text={t("Tell_me_more_about")}>
           <Trans
             i18nKey="What_is_Karma_Text">
             The updates are kept in{" "}
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index 0a2ce35..18c1da7 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -321,7 +321,7 @@ export function FedoraManualTestingItem(props) {
                 <ModalBadge expand_text={t("dont_have_an")}>
                 <Trans i18nKey="Have_a_look_at_the_matrix">
                   Have a look at the matrix. The rows are the testcases, and the columns are the
-                  environments. Most of the time, these are <span dangerouslySetInnerHTML={{__html: ReactDOMServer.renderToString(environment_examples)}}></span>
+                  environments. Most of the time, these are <span dangerouslySetInnerHTML={environment_variables}></span>
                   for the {{ testtype }} testcases, but you can also encouter a generic{" "}
                   <code>Result</code> column, which usually means you can use any
                   media/architecture available.
diff --git a/src/wizard/components.js b/src/wizard/components.js
index 796886c..802a92a 100644
--- a/src/wizard/components.js
+++ b/src/wizard/components.js
@@ -59,7 +59,7 @@ const CollapsableBadge = (props) => {
         <ModalBody>{children}</ModalBody>
         <ModalFooter>
           <Button color="primary" onClick={toggleModal}>
-            Close <i class="fas fa-times-circle"></i>
+            Close <i className="fas fa-times-circle"></i>
           </Button>
         </ModalFooter>
       </Modal>

From 78e882d4bcd37e2c6673eac609f7e1aec554bd5c Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 16 2021 10:42:15 +0000
Subject: [PATCH 8/11] changed number tag of We_already_mentioned_bodhi


---

diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index 3a53544..444dde4 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -10,7 +10,7 @@
   "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>{{dnf}}</1> and choose a package you know.",
   "Install_the_packages": "Install the package  <2>{{sudo_dnf_enablepo}}</2>, and test whether it works, as you would expect.<br /> <5> Note:</5> Other packages from <7>updates-testing</7> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
   "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <br /> Run <3>{{fedora_easy_karma}}</3>, and look for  <6>Bugs</6>, <8>Test Cases</8>, and/or <10>Notes</10> sections in the detailed output.",
-  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <1>fedora-easy-karma</1> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <br /> <1>fedora-easy-karma</1> shows the URL of the relevant update near the bottom of the text output - look for URL like <2>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</2>. <br /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <2>fedora-easy-karma</2> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <br /> <5>fedora-easy-karma</5> shows the URL of the relevant update near the bottom of the text output - look for URL like <8>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</8>. <br /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
   "Run_fedora_easy_karam": "Run <1>{{fedora_easy_karma}}</1> and report what you found out. ",
   "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <br /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
   "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <3>-1</3> to mark the package as broken. <br /> Not sure you can judge the package's state? Have a look at the <9> Update Feedback Guidelines </9> <br/> Still not sure? Just press <12>Enter</12> to skip it.",

From ae05866ee1aa3f280e93525fc4a5d997cfe9fa59 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 17 2021 11:43:34 +0000
Subject: [PATCH 9/11] removed dead strings


---

diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index 444dde4..db7b571 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -1,41 +1,9 @@
 {
-  "Installation_text": "The <1>Installation</1> testcases generally deal with a part of the installation procedure. You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<br /> <4>Note:</4> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
-  "Desktop_Text": "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<br /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "Base_Text": "The <1>Base</1> testcases cover the system's basic functionality just after a clean installation. <br /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <br /><6>Pro tip:</6> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
-  "Server_Text": "The <1>Server</1> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
-  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<br />Have a look at the <6>  Cloud provider setup </6> guides for more details.",
-  "What_is_Karma_Text": "The updates are kept in <2>Bodhi</2>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
-  "Make_sure_you": "Make sure your system is up-to-date: <1>{{sudo_dnf}}</1>",
-  "Install_fedora_easy_karma_tool": "Install fedora-easy-karma tool: <1>{{sudo_dnf_install}}</1>",
-  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>{{dnf}}</1> and choose a package you know.",
-  "Install_the_packages": "Install the package  <2>{{sudo_dnf_enablepo}}</2>, and test whether it works, as you would expect.<br /> <5> Note:</5> Other packages from <7>updates-testing</7> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
-  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <br /> Run <3>{{fedora_easy_karma}}</3>, and look for  <6>Bugs</6>, <8>Test Cases</8>, and/or <10>Notes</10> sections in the detailed output.",
-  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <2>fedora-easy-karma</2> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <br /> <5>fedora-easy-karma</5> shows the URL of the relevant update near the bottom of the text output - look for URL like <8>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</8>. <br /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
-  "Run_fedora_easy_karam": "Run <1>{{fedora_easy_karma}}</1> and report what you found out. ",
-  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <br /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <3>-1</3> to mark the package as broken. <br /> Not sure you can judge the package's state? Have a look at the <9> Update Feedback Guidelines </9> <br/> Still not sure? Just press <12>Enter</12> to skip it.",
-  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <2>I tried openning and editing a document, and it worked.</2> when you test a text-editor, or  <5>I opened a couple of tabs, and browsed random pages.</5> for a web-browser. <br /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
-  "Restore_the_stable": "Restore the stable-packages on your system by running  <2>{{sudo_dnf_distro}}</2>",
-  "Identify_The_Testcase": "Identify the testcase and `environment` in our  <2> Tescase matrix </2>.",
-  "Have_a_look_at_the_matrix": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are <1></1> for the {{testtype}} testcases, but you can also encouter a generic <6>Result</6> column, which usually means you can use any media/architecture available.",
-  "for_this_particular": "For this particular testcase, <1>{{join}}</1> {{length}} missing results.",
-  "Read_the_TestCase": "Read the <2> Testcase </2> briefly, just to have a general idea of what you will be doing.",
-  "Description_Text": "<0>Description</0> should give you a general idea of what is being tested",
-  "Setup_Text": "<0>Setup</0> describes the steps to take before you begin working on the testcase",
-  "How_to_Test": "<0>How to test</0> contains the individual steps to take in order to perform the testcase",
-  "Expected_Results": "<0>Expected results</0> describe what you should check while testing in order to decide whether it Passed of Failed",
-  "study_the_testcase": "Study the <2> Testcase</2> thoroughly, to be sure you know what to do.",
-  "If_you_are_not_familiar": "If you are not that familiar with IRC, you can use the <1> web-interface </1>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  "Great_either_use": "Great! Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6> matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</11> in the appropriate spot.",
-  "Awesome_ideally_read": "Awesome! Ideally read up on <1>How_to_file_a_bug_report</1> <br/> If you don't feel like reading a wall of text, at least pot together a small document containing:",
-  "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6>matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</11> in the appropriate spot.",
-  "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net ",
   "hello": "Hello",
   "disable": "Disable",
   "enable": "Enable",
   "Rawhide": "Rawhide",
   "Upgrade": "Upgrade",
-  "Miscellaneous": "Miscellaneous",
   "Run": "Run",
   "Description": "Description",
   "Note": "Note:",
@@ -74,210 +42,126 @@
   "Testcase": "Testcase",
   "Setup": "Setup",
   "here": "here",
-  "missing_results": "missing results.",
-  "web_interface": "web-interface",
   "relval": "relval",
   "matrix": "matrix",
   "Edit": "Edit",
   "danger": "danger",
   "success": "success",
-
-  "Tescase_matrix": "Tescase matrix",
   "I_found_a_bug": "I found a bug!",
-  "Feeling_a_bit_lost": "Feeling a bit lost?",
-  "result_fail_your": "result|fail|YOUR_NAME_HERE|BUG_NUMBER|",
-  "if_you_dont_like_like_reading": "If you don't feel like reading a wall of text, at least pot together a small document containing:",
   "Study_the": "Study the",
-  "package_first": " package first), or modify the",
-  "directly_by_clicking_on_the": " directly by clicking on the",
-  "result_pass_your": "result|pass|YOUR_NAME_HERE|",
-  "link_next_to_the_Matrice_header_and_put": " link next to the Matrice's header, and put",
-  "in_the_appropriate_spot": "in the appropriate spot.",
-  "dont_have_an": "Don't have an IRC client?",
-  "on_command_line": "on command line (make sure to install the",
-  "relval_report_results": "relval report-results",
-  "Great_Either_use": "Great! Either use",
-  "Everything_went_well": "Everything went well",
-  "should_give_you_a": "should give you a general idea of what is being tested",
-  "if_you_are": " If you are not that familiar with IRC, you can use the",
-  "The_testcase_structure_is_not_making_sense": "The testcase structure is not making sense?",
-  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
-  "Just_enter_a_Nickname": "just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  "The_testcases_are_generally_split_into_four_sections": "The testcases are generally split into four sections:",
-  "describes_the_steps": "describes the steps to take before you begin working on the testcase",
-  "For_this_particular_testcase": "For this particular testcase,",
-  "thoroughly_to_be_sure_you_know_what_to_do": " thoroughly, to be sure you know what to do.",
+  "Show_me": "Show me",
   "Bodhi_Karma": "Bodhi Karma",
-  "describes_you_to_check": "describe what you should check while testing in order to decide whether it Passed of Failed",
   "How_to_test": "How to test",
-  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
-  "contains_the_individual": "contains the individual steps to take in order to perform the testcase",
-  "Show_me": "Show me",
-  "Expected_results": "Expected results",
-  "Maybe_you_are_stuck": "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
-  "Column_which_usually": "column, which usually means you can use any media/architecture available.",
-  "testcases_but_you_can": "testcases, but you can also encouter a generic",
-  "Should_give_you": "should give you a general idea of  what is being tested",
-  "briefly_just": " briefly, just to have a general idea of what you will be doing.",
   "Read_the": " Read the",
-  "Not_sure_what_that_means": " Not sure what that means?",
-  "Not_making_much_sense": "Not making much sense?",
-  "Column_which_actually": "column, which usually means you can use any  media/architecture available.",
-  "ModalBadge": " Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are",
-  "Identify_the_testcase_and_environment_in_our": "Identify the testcase and `environment` in our ",
-  "Fedora_Manual_Testing": "Fedora Manual Testing",
-  "Not_sure_what_Karma_means": "Not sure what Karma means?",
-  "Preperation_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "Installation_text0": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "testing_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "reporting_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "FAS_Sign_up_page": "FAS Sign-up page",
-  "Test_Cases": "Test Cases",
-  "and_or": "and/or",
-  "fedora_easy_karma": "fedora-easy-karma",
-  "fedora_Q_a": "<div><h1>fkfhrry</h1></div>",
-  "sections_in_the_detailed_output": "sections in the detailed output.",
-  "Update_Feedback_Guidelines": " Update Feedback Guidelines",
-  "cloud_text": " Even thought the",
-  "Cloud_provider_setup": " Cloud provider setup",
-  "guides_for_more_details": " guides for more details.",
-  "is_a_group": "Is a group containing several projects. Expand to see more.",
-  "cloud_text1": "testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.",
-  "Failed_to_fetch_data": "Failed to fetch data!",
-  "cloud_text2": "Have a look at the",
-  "select_language": "Select Language",
-  "base_text": "testcases cover the system's basic functionality just after a clean installation.",
   "on_Pagure": "on Pagure",
   "Pro_tip": " Pro tip",
-  "base_text1": "  Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine.",
-  "change_language": "Change Language",
-  "Desktop_text": "testcases cover basic functionality of the desktop environment.",
-  "base_text3": "using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase.",
-  "Desktop_text1": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "save_changes": "Save changes",
-  "configure_visibility": "Configure visibility of the info-cards",
-  "test_cases": "Test Cases",
   "go_to_home": "Go to home page ",
-  "for_a_web": "for a web-browser",
   "to_see_older": "to see older",
-  "User_interface": "User interface",
-  "Test_Matrix": "Test Matrix",
   "Few_hours": "Few hours",
-  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
-  "update_testing": "updates-testing",
-  "section_in_the": "sections in the detailed output.",
-  "and_look_for": ",and look for",
+  "Everything_went_well": "Everything went well",
+  "Feeling_a_bit_lost": "Feeling a bit lost?",
   "Storage_devices": "Storage devices",
-  "Server_text": "testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
   "What_is_Karma": "What is Karma",
   "Several_days": "Several days",
-  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
-  "Im_a_complete_beginner": "I'm a complete beginner",
-  "please_guide_to_me_this": "please guide to me this",
-  "Ive_already_done_this": "I've already done this",
+  "Test_Cases": "Test Cases",
   "Show_me_the_test_cases": "Show me the test cases",
   "Proposed_FEs": "Proposed FEs",
   "Accepted_FEs": "Accepted FEs",
   "Tell_me_More": "Tell me more!",
-  "IoT_Test_Day": "[F34] IoT Test Day",
-  "ARM_disk_images": "ARM disk images",
   "Not_sure_how": "Not sure how?",
-  "Make_sure_to": "Make sure to read about identifying the environment above.",
-  "Most_of_the_time": "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
-  "to_skip_it": "to skip it.",
-  "repo_by": " repo, by running ",
-  "the_name_of": " The name of the ISO image you used ",
-  "testcases_generally": "testcases generally deal with a part of the installation procedure.",
-  "is_a_group_containing": " - Is a group containing several projects. Expand to see more.",
-  "note_what_you_did": "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
-  "if_you_are_not_familiar": "If you are not that familiar with IRC, you can use the web-interface[link] just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
-  "you_can_either_install": "You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "the_updates_are": "The updates are kept in",
-
-  "and_choose_a": "and choose a package you know.",
-  "and_create_it": "and create it.",
-  "brief_description_of_what": " Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
-  "try_to_reproduce_the": "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
-  "choose_an_update": "Choose an update to test",
-  "note_the_user": "Note the username and password, you will need it later on.",
-  "sure_let_me_do_it": "Sure, let me do it!",
-  "an_update_can": "An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together.",
-  "Audio_Test_Day": "[F34] Audio Test Day",
-  "it_identifies": "It identifies the packages installed from the ",
-  "and_report_what_you_found_out": "and report what you found out.",
-  "Install_the_package": "Install the package",
-  "repository_and_matches": "repository, and matches them to the updates in Bodhi.",
-  "Fedora_Media_Writer": "Fedora Media Writer",
-  "Choose_an_update_to_test": "Choose an update to test",
-  "once_you_get_the_bug_reported": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use",
-  "users_or_automated": "Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations.",
-  "which_acts_as_a_gatekeeper": ", which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. An update can (and usually does) consist of several packages (rpms), that are going through the acceptance process together. ",
-  "Installation_repositories": "Installation repositories",
-  "Release_blocking_environments": "elease-blocking environments ",
-  "Default_boot_and_install": "Default boot and install (x86_64)",
-  "Default_boot_and_install_aarch64": "Default boot and install (aarch64)",
-  "Custom_storage_configuration": "Custom storage configuration",
-  "Release_blocking_desktops": "Release-blocking desktops",
+  "dont_have_an": "Don't have an IRC client?",
   "Accepted_Blockers": "Accepted Blockers",
   "Fedora_QA_Meeting": "Fedora QA Meeting",
-  "Testing_Bodhi_Karma": "Testing - Bodhi Karma",
-  "Programming_Easyfix": "Programming - Easyfix",
   "Proposed_Blockers": "Proposed Blockers",
   "Need_some_tips": "Need some tips?",
   "Sourceon_Pagure": "Sourceon Pagure",
   "Want_something_a_bit_nicer": "Want something a bit nicer?",
-  "still_not_sure": "Still not sure? Just press ",
-  "when_you_test": "when you test a text-editor, or",
-  "Make_your_choice": "Make your choice!",
-  "Other_packages_from": "Other packages from",
   "New_to_fedora": "New to fedora-easy-karma?",
   "Dont_have_one_yet": "Don't have one yet?",
-  "Nothing_sparked_joy": " Nothing sparked joy?",
-  "Beta_Freeze": "Beta Freeze (starts at 1400 UTC)",
-  "Final_Freeze": "Final Freeze (starts at 1400 UTC) ",
-  "Blocker_Review_Meeting": "Blocker Review Meeting",
   "Fedora_35_blockers_and_FEs": "Fedora 35 blockers and FEs",
   "Fedora_QA_Meeting_Minutes": "Fedora QA Meeting Minutes",
   "blockers_and_FEs": "blockers and FEs",
-  "Visit_meetbot_to_see_older": "Visit meetbot to see older.",
+  "Expected_results": "Expected results",
   "current_development_schedule": "Current development schedule",
   "Latest_minutes_from": "Latest minutes from",
-  "i_opened_a_couple": " I opened a couple of tabs, and browsed random pages.",
-  "Branch_Fedora_Linux_34_from_Rawhide": "Branch Fedora Linux 34 from Rawhide",
-  "Advanced_custom_storage_configuration": "Advanced custom storage configuration",
-  "Beta_Release_Public_Availability": "Beta Release Public Availability",
   "Fedora_Accounts_System": "Fedora Accounts System (FAS) account is required.",
-  "Final_Release_Public_Availability": "Final Release Public Availability (GA)",
-  "Testing_Fedora_Release_validation": "Testing - Fedora Release validation",
   "Meetings_and_testdays_in_the_next_7_days": "Meetings and testdays in the next 7 days",
   "Tell_me_more_about": "Tell me more about the process! ",
-  "to_mark_the": "to mark the package as broken.",
-  "if_you_dont": " If you don't feel like reading a wall of text, at least pot together a small document containing:",
-  "shows_the_URL": "shows the URL of the relevant update near the bottom of the text output - look for URL like",
-  "you_can_have_a_look": "You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
-  "you_are_then_presented": "You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
-  "to_mark_positive": "to mark positive karma (the update works just fine, as far as you can tell), or",
-  "not_sure_you_can": "Not sure you can judge the package's state? Have a look at the",
-  "add_a_comment": "Add a comment - even if it works, try to describe what you tested. It can be as easy as",
+  "fedora_easy_karma": "fedora-easy-karma",
+  "sections_in_the_detailed_output": "sections in the detailed output.",
+  "is_a_group": "Is a group containing several projects. Expand to see more.",
+  "Failed_to_fetch_data": "Failed to fetch data!",
+  "change_language": "Change Language",
+  "save_changes": "Save changes",
+  "to_skip_it": "to skip it.",
+  "visibility_configuration": "Visibility Configuration",
+  "repo_by": "repo, by running ",
+  "the_name_of": " The name of the ISO image you used ",
+  "Not_sure_what_that_means": " Not sure what that means?",
+  "Not_making_much_sense": "Not making much sense?",
+  "Fedora_Manual_Testing": "Fedora Manual Testing",
+  "and_create_it": "and create it.",
+  "Not_sure_what_Karma_means": "Not sure what Karma means?",
   "do_you_have_some_spare_time": "Click here, and help us make Fedora better!",
-  "The_goal_of_release_validation_testing_is_to_ensure": "The goal of release validation testing is to ensure the release candidate meets the requirements for Fedora releases. You will manually execute test cases to verify installation and basic functionality of the various Fedora products.",
-  "Simple_voting_system_that_allows_for_esters_to_provide_feedback_as": "Simple voting system that allows for testers to provide feedback as to whether a given package update works or not.",
-  "Number_of_projects_within_Fedora_which_are_looking_for_help": "Number of projects within Fedora which are looking for help. These tasks have been evaluated as easy entrance point.",
+  "Installation_text": "The <1>Installation</1> testcases generally deal with a part of the installation procedure. You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<br /> <4>Note:</4> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
+  "Desktop_Text": "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<br /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
+  "Base_Text": "The <1>Base</1> testcases cover the system's basic functionality just after a clean installation. <br /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <br /><6>Pro tip:</6> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
+  "Server_Text": "The <1>Server</1> testcases usually require multiple machines to test the server-client behaviour, and might feel a bit advanced.",
+  "Cloud_Text": "Even thought the <1>Cloud</1> testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.<br />Have a look at the <6>  Cloud provider setup </6> guides for more details.",
+  "What_is_Karma_Text": "The updates are kept in <2>Bodhi</2>, which acts as a gatekeeper between new package releases and the stable repositories. Users (or automated systems) can then provide feedback in form of positive/negative Karma, marking the update as working (or not) within the scope of their expectations. Anupdate can (and usually does) consist of several packages (rpms), that are going throughthe acceptance process together.",
+  "Make_sure_you": "Make sure your system is up-to-date: <1>{{sudo_dnf}}</1>",
+  "Install_fedora_easy_karma_tool": "Install fedora-easy-karma tool: <1>{{sudo_dnf_install}}</1>",
+  "Have_a_look": "Have a look at the available packages in <1>updates-testing</1> repo, by running <1>{{dnf}}</1> and choose a package you know.",
+  "Install_the_packages": "Install the package  <2>{{sudo_dnf_enablepo}}</2>, and test whether it works, as you would expect.<br /> <5> Note:</5> Other packages from <7>updates-testing</7> repo may be installed as dependencies (shown during the installation process). Try to test those too, if possible. ",
+  "Sometimes_the_update": "Sometimes, the update associated with the package you just installed fixes some specific bugs, or has testcases associated with it. <br /> Run <3>{{fedora_easy_karma}}</3>, and look for  <6>Bugs</6>, <8>Test Cases</8>, and/or <10>Notes</10> sections in the detailed output.",
+  "We_already_mentioned_bodhi": "We already mentioned Bodhi, several times. Instead of using the <2>fedora-easy-karma</2> interface for submitting Karma and/or learning about the Update, you can visit Bodhi directly. <br /> <5>fedora-easy-karma</5> shows the URL of the relevant update near the bottom of the text output - look for URL like <8>https://bodhi.fedoraproject.org/updates/FEDORA-2019-00870e8bfc</8>. <br /> You can have a look at other people's comments, the afore-mentioned Bugs or Test Cases, and even submit the Karma directly. Just use your FAS credentials to log-in.",
+  "Run_fedora_easy_karam": "Run <1>{{fedora_easy_karma}}</1> and report what you found out. ",
+  "It_identifies_installed": "It identifies the packages installed from the <1>updates-testing</1> repository, and matches them to the updates in Bodhi. <br /> You are then presented with the relevant updates one-by-one, to submit Karma and a comment.",
+  "Enter_to_mark_positive": "Enter <1>1</1> to mark positive karma (the update works just fine, as far as you can tell), or <3>-1</3> to mark the package as broken. <br /> Not sure you can judge the package's state? Have a look at the <9> Update Feedback Guidelines </9> <br/> Still not sure? Just press <12>Enter</12> to skip it.",
+  "Add_a_comment_even_if": "Add a comment - even if it works, try to describe what you tested. It can be as easy as  <2>I tried openning and editing a document, and it worked.</2> when you test a text-editor, or  <5>I opened a couple of tabs, and browsed random pages.</5> for a web-browser. <br /> Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment.",
+  "Restore_the_stable": "Restore the stable-packages on your system by running  <2>{{sudo_dnf_distro}}</2>",
+  "Identify_The_Testcase": "Identify the testcase and `environment` in our  <2> Tescase matrix </2>.",
+  "Have_a_look_at_the_matrix": "Have a look at the matrix. The rows are the testcases, and the columns are the environments. Most of the time, these are <1></1> for the {{testtype}} testcases, but you can also encouter a generic <6>Result</6> column, which usually means you can use any media/architecture available.",
+  "for_this_particular": "For this particular testcase, <1>{{join}}</1> {{length}} missing results.",
+  "Read_the_TestCase": "Read the <2> Testcase </2> briefly, just to have a general idea of what you will be doing.",
+  "Description_Text": "<0>Description</0> should give you a general idea of what is being tested",
+  "Setup_Text": "<0>Setup</0> describes the steps to take before you begin working on the testcase",
+  "How_to_Test": "<0>How to test</0> contains the individual steps to take in order to perform the testcase",
+  "Expected_Results": "<0>Expected results</0> describe what you should check while testing in order to decide whether it Passed of Failed",
+  "study_the_testcase": "Study the <2> Testcase</2> thoroughly, to be sure you know what to do.",
+  "If_you_are_not_familiar": "If you are not that familiar with IRC, you can use the <1> web-interface </1>  just enter a Nickname of your choice, #fedora-qa (including the hash sign) in the Channels field, and click Connect.",
+  "Great_either_use": "Great! Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the  <6> matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11></11> in the appropriate spot.",
+  "Awesome_ideally_read": "Awesome! Ideally read up on <1>How_to_file_a_bug_report</1> <br/> If you don't feel like reading a wall of text, at least pot together a small document containing:",
+  "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6>matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11></11> in the appropriate spot.",
+  "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net ",
+  "The_testcase_structure_is_not_making_sense": "The testcase structure is not making sense?",
+  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
+  "The_testcases_are_generally_split_into_four_sections": "The testcases are generally split into four sections:",
+  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
+  "Maybe_you_are_stuck": "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
+  "Preperation_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "Installation_text0": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "testing_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "reporting_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
+  "configure_visibility": "Configure visibility of the info-cards",
+  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
+  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
+  "Im_a_complete_beginner": "I'm a complete beginner",
+  "please_guide_to_me_this": "please guide to me this",
+  "Ive_already_done_this": "I've already done this",
+  "Make_sure_to": "Make sure to read about identifying the environment above.",
+  "Most_of_the_time": "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
+  "note_what_you_did": "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
+  "brief_description_of_what": "Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
+  "try_to_reproduce_the": "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
+  "choose_an_update": "Choose an update to test",
+  "note_the_user": "Note the username and password, you will need it later on.",
+  "sure_let_me_do_it": "Sure, let me do it!",
   "None_of_the_above_looks_interesting_to_you": "None of the above looks interesting to you? We'd be happy if you looked around at",
   "Before_a_new_version_of_a_package": "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
-  "The_Base_testcases_cover_the_system": "The Base testcases cover the system's basic functionality just after a clean installation",
-  "Most_times_you_will_be_asked_to_perform_a_clean_Fedora_installation": "Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine",
-  "Pro_tip_using_a_snapshot_of_cleanly_installed_Virtual_machine_is_just_fine": "Pro tip: using a snapshot of cleanly installed Virtual machine is just fine. No need to reinstall for every testcase",
-  "Even_thought_the_Cloud_testcases_are_best_done_in_the_specific_environments": "Even thought the Cloud testcases are best done in the specific environments like EC2 or Openstack, you can also perform them locally using Testcloud.Have a look at the Cloud provider setup guides for more details.",
-  "The_Desktop_testcases_cover_basic_functionality_of_the_desktop_environment": "The Desktop testcases cover basic functionality of the desktop environment.You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
-  "The_Installation_testcases_generally_deal_with_a_part_of_the_installation_procedure": "The Installation testcases generally deal with a part of the installation procedure",
-  "You_will_certainly_need_an_installation_ISO": "You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.",
-  "Absolutely_make_sure": "Absolutely make sure to provide reasonable amount of detail, when submitting negative karma - ideally, you should also create a bugreport, and reference it in the comment",
-  "i_tried_openning": "I tried openning and editing a document, and it worked",
   "freeze_Text": "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
   "Rawhide_Text": "Next Fedora release hasn't been branched yet from rolling release branch.",
   "branch_Text": "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
   "release_Text": "Release candidate was accepted (violating no milestone criteria) and was released.",
-  "timeline_Text": "This is a timeline of current Fedora release schedule",
-  "visibility_configuration": "Visibility Configuration"
+  "timeline_Text": "This is a timeline of current Fedora release schedule"
 }
diff --git a/src/i18n.js b/src/i18n.js
index e485f7f..dc77dab 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -22,6 +22,7 @@ i18n
       },
       escapeValue: false,
     },
+   
   })
   
 
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index 18c1da7..bdf4b80 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -165,6 +165,8 @@ export function FedoraManualTestingItem(props) {
   const length = extra_data.envs.length > 1 ? "environments are" : "environment is"
   const join = extra_data.envs.join(", ")
   const environment_variables = {__html: ReactDOMServer.renderToString(environment_examples)}
+  const success_variables = {__html: ReactDOMServer.renderToString(<>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</>) }
+  const fail_variables = {__html: ReactDOMServer.renderToString(<>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</>)}
   
   return (
     <ModalInfo buttonLabel={name}>
@@ -347,7 +349,7 @@ export function FedoraManualTestingItem(props) {
                 matrix
               </a>{" "}
               directly by clicking on the <code>Edit</code> link next to the Matrice's header, and
-              put <code>&#123;&#123;result|pass|YOUR_NAME_HERE|&#125;&#125;</code> in the
+              put <code dangerouslySetInnerHTML={success_variables}></code> in the
               appropriate spot.
             </Trans>
           </ModalBadge>
@@ -388,7 +390,7 @@ export function FedoraManualTestingItem(props) {
                 matrix
               </a>{" "}
               directly by clicking on the <code>Edit</code> link next to the Matrice's header, and
-              put <code>&#123;&#123;result|fail|YOUR_NAME_HERE|BUG_NUMBER|&#125;&#125;</code> in
+              put <code dangerouslySetInnerHTML={fail_variables}></code> in
               the appropriate spot.
             </Trans>
           </ModalBadge>

From 578e5936953317703dfa7ab13b7602137f802eb7 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 17 2021 17:54:15 +0000
Subject: [PATCH 10/11] removed unused strings


---

diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index db7b571..b2d0a3b 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -1,108 +1,70 @@
 {
-  "hello": "Hello",
-  "disable": "Disable",
-  "enable": "Enable",
-  "Rawhide": "Rawhide",
-  "Upgrade": "Upgrade",
-  "Run": "Run",
-  "Description": "Description",
-  "Note": "Note:",
-  "Result": "Result",
   "Visit": "Visit",
-  "enter": "Enter",
-  "notes": "Notes",
   "close": "Close",
   "source": "Source",
   "version": "version",
-  "english": "english",
   "Retrying": "Retrying",
-  "Installation": "Installation",
-  "the": "The",
-  "Desktop": "Desktop",
-  "Base": "Base",
   "or": "or",
-  "Server": "Server",
-  "Cloud": "Cloud",
-  "Bodhi": "Bodhi",
-  "Bugs": "Bugs",
+  "on": "on",
+  "See": "See!",
   "Preperation": "Preperation",
   "Testing": "Testing",
   "Reporting": "Reporting",
-  "Easyfix": "Easyfix",
-  "Manual_Testing": "Manual Testing",
   "Beginner_Guide": "Beginner Guide",
   "meetbot": "meetbot",
   "primary": "primary",
-  "See": "See!",
   "warning": "warning",
   "Expand": "Expand",
-  "Workstation": "Workstation",
-  "Minimal": "Minimal",
-  "for_the": "for the",
-  "Testcase": "Testcase",
-  "Setup": "Setup",
-  "here": "here",
-  "relval": "relval",
-  "matrix": "matrix",
-  "Edit": "Edit",
   "danger": "danger",
   "success": "success",
   "I_found_a_bug": "I found a bug!",
-  "Study_the": "Study the",
-  "Show_me": "Show me",
-  "Bodhi_Karma": "Bodhi Karma",
-  "How_to_test": "How to test",
-  "Read_the": " Read the",
-  "on_Pagure": "on Pagure",
-  "Pro_tip": " Pro tip",
   "go_to_home": "Go to home page ",
   "to_see_older": "to see older",
   "Few_hours": "Few hours",
   "Everything_went_well": "Everything went well",
   "Feeling_a_bit_lost": "Feeling a bit lost?",
-  "Storage_devices": "Storage devices",
   "What_is_Karma": "What is Karma",
   "Several_days": "Several days",
-  "Test_Cases": "Test Cases",
   "Show_me_the_test_cases": "Show me the test cases",
   "Proposed_FEs": "Proposed FEs",
   "Accepted_FEs": "Accepted FEs",
-  "Tell_me_More": "Tell me more!",
   "Not_sure_how": "Not sure how?",
   "dont_have_an": "Don't have an IRC client?",
   "Accepted_Blockers": "Accepted Blockers",
-  "Fedora_QA_Meeting": "Fedora QA Meeting",
   "Proposed_Blockers": "Proposed Blockers",
   "Need_some_tips": "Need some tips?",
-  "Sourceon_Pagure": "Sourceon Pagure",
+  "select_language": "Select Language",
   "Want_something_a_bit_nicer": "Want something a bit nicer?",
   "New_to_fedora": "New to fedora-easy-karma?",
   "Dont_have_one_yet": "Don't have one yet?",
-  "Fedora_35_blockers_and_FEs": "Fedora 35 blockers and FEs",
   "Fedora_QA_Meeting_Minutes": "Fedora QA Meeting Minutes",
   "blockers_and_FEs": "blockers and FEs",
-  "Expected_results": "Expected results",
   "current_development_schedule": "Current development schedule",
   "Latest_minutes_from": "Latest minutes from",
   "Fedora_Accounts_System": "Fedora Accounts System (FAS) account is required.",
   "Meetings_and_testdays_in_the_next_7_days": "Meetings and testdays in the next 7 days",
   "Tell_me_more_about": "Tell me more about the process! ",
-  "fedora_easy_karma": "fedora-easy-karma",
-  "sections_in_the_detailed_output": "sections in the detailed output.",
   "is_a_group": "Is a group containing several projects. Expand to see more.",
   "Failed_to_fetch_data": "Failed to fetch data!",
-  "change_language": "Change Language",
-  "save_changes": "Save changes",
-  "to_skip_it": "to skip it.",
   "visibility_configuration": "Visibility Configuration",
-  "repo_by": "repo, by running ",
   "the_name_of": " The name of the ISO image you used ",
-  "Not_sure_what_that_means": " Not sure what that means?",
+  "Not_sure_what_that_means": "Not sure what that means?",
   "Not_making_much_sense": "Not making much sense?",
-  "Fedora_Manual_Testing": "Fedora Manual Testing",
   "and_create_it": "and create it.",
   "Not_sure_what_Karma_means": "Not sure what Karma means?",
   "do_you_have_some_spare_time": "Click here, and help us make Fedora better!",
+  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
+  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
+  "Im_a_complete_beginner": "I'm a complete beginner",
+  "please_guide_to_me_this": "please guide to me this",
+  "Ive_already_done_this": "I've already done this",
+  "choose_an_update": "Choose an update to test",
+  "sure_let_me_do_it": "Sure, let me do it!",
+  "note_the_user": "Note the username and password, you will need it later on.",
+  "Make_sure_to": "Make sure to read about identifying the environment above.",
+  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
+  "timeline_Text": "This is a timeline of current Fedora release schedule",
+  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
   "Installation_text": "The <1>Installation</1> testcases generally deal with a part of the installation procedure. You will certainly need an installation ISO, and either a Virtual or Bare-metal machine to run the test.<br /> <4>Note:</4> some (not that many, though) of these testcases require Bare-metal machine. Be sure to read the Description of the testcase carefully.",
   "Desktop_Text": "The <1>Desktop</1> testcases cover basic functionality of the desktop environment.<br /> You can either install Fedora onto clean Virtual or Bare-metal machine, or use a Live image instead.",
   "Base_Text": "The <1>Base</1> testcases cover the system's basic functionality just after a clean installation. <br /> Most times, you will be asked to perform a clean Fedora installation. You can use either Virtual or Bare-metal machine. <br /><6>Pro tip:</6> using a snapshot of cleanly installed Virtual machine is just fine. Noneed to reinstall for every testcase.",
@@ -135,33 +97,20 @@
   "Once_you_get_the_bug": "Once you get the Bug reported, make sure to also submit the result into the testing matrix. Either use <1>relval report-results</1> on command line (make sure to install the <3>relval</3> package first), or modify the <6>matrix </6> directly by clicking on the <9>Edit</9> link next to the Matrice's header, and put <11></11> in the appropriate spot.",
   "Share_your_notes": "Share your notes on the internet (you can use fpaste), and ask for help with filing the bug report on our IRC channel #fedora-qa at freenode.net ",
   "The_testcase_structure_is_not_making_sense": "The testcase structure is not making sense?",
-  "Get_your_hands": "Get your hands dirty, and test the hell out of it!",
   "The_testcases_are_generally_split_into_four_sections": "The testcases are generally split into four sections:",
-  "based_on_the": "Based on the enviromnent, select and download and appropriate ISO",
   "Maybe_you_are_stuck": "Maybe you are stuck, or just do not understand something? Feel free to ask on our IRC channel #fedora-qa at freenode.net",
   "Preperation_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
   "Installation_text0": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
   "testing_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
   "reporting_text": " Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISOLorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO Lorem ipsum some clever text where to get ISO",
-  "configure_visibility": "Configure visibility of the info-cards",
-  "Task_that_can_take_up_to_Few_Hours": "Task that can take up to Few Hours",
-  "Task_that_can_take_up_to_Several_Days": "Task that can take up to Several Days",
-  "Im_a_complete_beginner": "I'm a complete beginner",
-  "please_guide_to_me_this": "please guide to me this",
-  "Ive_already_done_this": "I've already done this",
-  "Make_sure_to": "Make sure to read about identifying the environment above.",
   "Most_of_the_time": "Most of the time Workstation Live, or Server DVD are fine, but sometimes there are specific products (e.g. Xfce) to be tested",
   "note_what_you_did": "Note what you did, as precisely as possible, in a step-by-step fashion. Even details like 'Chose Polish as the languae for the installation process' can matter.",
   "brief_description_of_what": "Brief description of what went wrong (e.g. QA:Testcase_dualboot_with_windows -Bootloader does not show the Windows option)",
   "try_to_reproduce_the": "Try to reproduce the same state again based on the steps above (you can also experiment a bit, and try to come up with just the critical steps)",
-  "choose_an_update": "Choose an update to test",
-  "note_the_user": "Note the username and password, you will need it later on.",
-  "sure_let_me_do_it": "Sure, let me do it!",
   "None_of_the_above_looks_interesting_to_you": "None of the above looks interesting to you? We'd be happy if you looked around at",
   "Before_a_new_version_of_a_package": "Before a new version of a package is pushed to the Fedora's Updates repository, it needs to be tested and proved functional.",
   "freeze_Text": "At the milestone freeze, pushes from the updates-testing to the stable repository are suspended until the release candidate is accepted.",
   "Rawhide_Text": "Next Fedora release hasn't been branched yet from rolling release branch.",
   "branch_Text": "Next version of Fedora that was 'branched' from the rolling Rawhide tree and in the future will become the next stable Fedora release.",
-  "release_Text": "Release candidate was accepted (violating no milestone criteria) and was released.",
-  "timeline_Text": "This is a timeline of current Fedora release schedule"
-}
+  "release_Text": "Release candidate was accepted (violating no milestone criteria) and was released."
+}
\ No newline at end of file
diff --git a/src/landingpage/LandingPage.js b/src/landingpage/LandingPage.js
index 24ac825..3d8ad6c 100644
--- a/src/landingpage/LandingPage.js
+++ b/src/landingpage/LandingPage.js
@@ -129,7 +129,7 @@ const LandingPage = () => {
                                 ? t("Meetings_and_testdays_in_the_next_7_days")
                                 : item === "minutes"
                                 ? t("Fedora_QA_Meeting_Minutes")
-                                : t("Fedora_35_blockers_and_FEs")}
+                                : "Fedora 35 blockers and FEs"}
                             </label>
                           </div>
                         </Col>
diff --git a/src/layout/Footer.js b/src/layout/Footer.js
index f089477..0d3ad20 100644
--- a/src/layout/Footer.js
+++ b/src/layout/Footer.js
@@ -7,7 +7,7 @@ const Footer = () => {
   return (
     <div className="footer">
       <div className="container">
-        <a href="https://pagure.io/fedora-qa/landingpage">{t("source")}</a> {t("on_Pagure")}{" "}
+        <a href="https://pagure.io/fedora-qa/landingpage">{t("source")}</a> {t("on")} Pagure {" "}
         <span className="float-right">{t("version")} 0.1.0</span>
       </div>
     </div>
diff --git a/src/wizard/WizardNavigation.js b/src/wizard/WizardNavigation.js
index 474836a..c5fef0a 100644
--- a/src/wizard/WizardNavigation.js
+++ b/src/wizard/WizardNavigation.js
@@ -66,16 +66,16 @@ function WizardNavigation(props) {
       "Provider",
       step.slice(-1) > "3" ? "enable" : "disabled",
       query.provider === "fedora_manual_testing"
-        ? t("Fedora_Manual_Testing")
+        ? "Fedora Manual Testing"
         : query.provider === "easyfix"
-        ? t("Easyfix")
-        : t("Bodhi_Karma")
+        ? "Easyfix"
+        : "Bodhi Karma"
     ),
     createBreadcrumbItem(
       "Actions",
       step.slice(-1) > "4" ? "enable" : "disabled",
       query.action === "manual_testing"
-        ? t("Manual_Testing")
+        ? "Manual Testing"
         : query.action === "beginner_guide"
         ? t("Beginner_Guide")
         : query.action

From cb1e9ec68c0d35dbb39880e515df797ca5ee8116 Mon Sep 17 00:00:00 2001
From: manisha <manisha_kanyal.scsebtech@galgotiasuniversity.edu.in>
Date: Aug 18 2021 07:20:22 +0000
Subject: [PATCH 11/11] removed unused strings


---

diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index b2d0a3b..18b8e6e 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -12,11 +12,6 @@
   "Reporting": "Reporting",
   "Beginner_Guide": "Beginner Guide",
   "meetbot": "meetbot",
-  "primary": "primary",
-  "warning": "warning",
-  "Expand": "Expand",
-  "danger": "danger",
-  "success": "success",
   "I_found_a_bug": "I found a bug!",
   "go_to_home": "Go to home page ",
   "to_see_older": "to see older",
diff --git a/src/wizard/Easyfix.js b/src/wizard/Easyfix.js
index beefbe2..2d1032a 100644
--- a/src/wizard/Easyfix.js
+++ b/src/wizard/Easyfix.js
@@ -29,7 +29,7 @@ const EasyfixSection = (props) => {
       )
 
       return (
-        <CollapsableCard key={k} title={title} expand_class={t("primary")} expand_text={t("See")}>
+        <CollapsableCard key={k} title={title} expand_class="primary" expand_text={t("See")}>
           <EasyfixLinksList data={props.data[k]} />
         </CollapsableCard>
       )
@@ -44,7 +44,7 @@ const EasyfixSection = (props) => {
       <CollapsableCard
         key={title}
         title={title}
-        expand_class={t("warning")}
+        expand_class="warning"
         expand_text={t("Expand!")}>
         {subsections}
       </CollapsableCard>
@@ -72,7 +72,7 @@ const EasyfixSection = (props) => {
       <CollapsableCard
         key={title}
         title={title}
-        expand_class={t("primary")}
+        expand_class="primary"
         expand_text={t("See")}>
         {links}
       </CollapsableCard>
diff --git a/src/wizard/FedoraManualTesting.js b/src/wizard/FedoraManualTesting.js
index bdf4b80..b76bd9e 100644
--- a/src/wizard/FedoraManualTesting.js
+++ b/src/wizard/FedoraManualTesting.js
@@ -337,7 +337,7 @@ export function FedoraManualTestingItem(props) {
         <li>{t("Get_your_hands")}</li>
         <li>
           <ModalBadge
-            expand_class={t("success")}
+            expand_class="success"
             expand_text={t("Everything_went_well")}
             type="btn">
             <Trans
@@ -354,7 +354,7 @@ export function FedoraManualTestingItem(props) {
             </Trans>
           </ModalBadge>
 
-          <ModalBadge expand_class={t("danger")} expand_text={t("I_found_a_bug")} type="btn">
+          <ModalBadge expand_class="danger" expand_text={t("I_found_a_bug")} type="btn">
             <Trans i18nKey="Awesome_ideally_read">
               Awesome! Ideally read up on <a target="_blank" rel="noopener noreferrer" href="https://fedoraproject.org/wiki/How_to_file_a_bug_report">How_to_file_a_bug_report</a>
               <br />

