diff --git a/frontend/public/flags/UK.png b/frontend/public/flags/en.png similarity index 100% rename from frontend/public/flags/UK.png rename to frontend/public/flags/en.png diff --git a/frontend/public/flags/ES.png b/frontend/public/flags/es.png similarity index 100% rename from frontend/public/flags/ES.png rename to frontend/public/flags/es.png diff --git a/frontend/public/flags/FR.png b/frontend/public/flags/fr.png similarity index 100% rename from frontend/public/flags/FR.png rename to frontend/public/flags/fr.png diff --git a/frontend/public/flags/IT.png b/frontend/public/flags/it.png similarity index 100% rename from frontend/public/flags/IT.png rename to frontend/public/flags/it.png diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 7b75bbcbc7..a956d29825 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -11,6 +11,7 @@ import FrontDesk from "./FrontDesk"; import { BrowserRouter, useLocation, useRoutes } from "react-router-dom"; import LocaleContext from "./IntlProvider"; import FooterVisibilityContext from "./FooterVisibilityContext"; +import Cookies from "js-cookie"; function App() { const messageMap = { @@ -19,7 +20,8 @@ function App() { fr: messagesFr, it: messagesIt, }; - const [locale, setLocale] = useState("en"); + const initialLocale = Cookies.get("wildbookLangCode") || "en"; + const [locale, setLocale] = useState(initialLocale); const [visible, setVisible] = useState(true); const containerStyle = { maxWidth: "1440px", @@ -29,6 +31,7 @@ function App() { const handleLocaleChange = (newLocale) => { setLocale(newLocale); + Cookies.set("wildbookLangCode", newLocale); }; return ( diff --git a/frontend/src/components/navBar/MultiLanguageDropdown.jsx b/frontend/src/components/navBar/MultiLanguageDropdown.jsx index 94dc3b9394..4de193ad92 100644 --- a/frontend/src/components/navBar/MultiLanguageDropdown.jsx +++ b/frontend/src/components/navBar/MultiLanguageDropdown.jsx @@ -1,59 +1,54 @@ -import React, { useContext, useState }from 'react'; -import Dropdown from 'react-bootstrap/Dropdown'; -import DownIcon from '../svg/DownIcon'; -import LocaleContext from '../../IntlProvider'; -import { locales, localeMap, languageMap } from '../../constants/locales'; +import React, { useContext, useState } from "react"; +import Dropdown from "react-bootstrap/Dropdown"; +import DownIcon from "../svg/DownIcon"; +import LocaleContext from "../../IntlProvider"; +import { locales, localeMap, languageMap } from "../../constants/locales"; +import Cookies from "js-cookie"; export default function MultiLanguageDropdown() { + const { onLocaleChange } = useContext(LocaleContext); + const initialLocale = Cookies.get("wildbookLangCode") || "en"; + const [flag, setFlag] = useState(initialLocale); + return ( +