diff --git a/sites/org/components/header/index.mjs b/sites/org/components/header/index.mjs
index c4b1b5be3aa..abbb3171d3d 100644
--- a/sites/org/components/header/index.mjs
+++ b/sites/org/components/header/index.mjs
@@ -24,6 +24,8 @@ import { WordMark } from 'shared/components/wordmark.mjs'
import Link from 'next/link'
import { useTranslation } from 'next-i18next'
import { ModalThemePicker } from 'shared/components/modal/theme-picker.mjs'
+import { ModalLocalePicker } from 'shared/components/modal/locale-picker.mjs'
+import { Search, ns as searchNs } from 'site/components/search.mjs'
export const ns = [...new Set(['header', ...themeNs, ...localeNs])]
@@ -52,7 +54,7 @@ const NavSpacer = () => (
|
)
-const NavIcons = ({ app }) => {
+const NavIcons = ({ app, setSearch }) => {
const { t } = useTranslation(['header'])
const iconSize = 'h-6 w-6 lg:h-12 lg:w-12'
@@ -95,7 +97,11 @@ const NavIcons = ({ app }) => {
>
-
+ app.setModal()}
+ label={t('header:language')}
+ color="indigo"
+ >
setSearch(true)} label={t('header:search')} color="violet">
@@ -147,12 +153,12 @@ export const Header = ({ app, setSearch }) => {
{/* Non-mobile content */}
-
+
{/* Mobile content */}
-
+
diff --git a/sites/shared/components/locale-picker/locales.en.yaml b/sites/shared/components/locale-picker/locales.en.yaml
index f66de4caa96..d30e4e3a479 100644
--- a/sites/shared/components/locale-picker/locales.en.yaml
+++ b/sites/shared/components/locale-picker/locales.en.yaml
@@ -3,3 +3,4 @@ en: English
es: Spanish
fr: French
nl: Dutch
+chooseYourLanguage: Choose your language
diff --git a/sites/shared/components/modal/locale-picker.mjs b/sites/shared/components/modal/locale-picker.mjs
new file mode 100644
index 00000000000..00d74d30bd9
--- /dev/null
+++ b/sites/shared/components/modal/locale-picker.mjs
@@ -0,0 +1,49 @@
+// Dependencies
+import { Fragment } from 'react'
+import { useRouter } from 'next/router'
+import { useTranslation } from 'next-i18next'
+import { Popover, Transition } from '@headlessui/react'
+import Link from 'next/link'
+// Components
+import { I18nIcon, DownIcon } from 'shared/components/icons.mjs'
+// Languages
+import en from 'site/public/locales/en/locales.json'
+import es from 'site/public/locales/es/locales.json'
+import de from 'site/public/locales/de/locales.json'
+import fr from 'site/public/locales/fr/locales.json'
+import nl from 'site/public/locales/nl/locales.json'
+
+export const ns = ['locales']
+
+const translations = {
+ en: en.en,
+ es: es.es,
+ nl: nl.nl,
+ de: de.de,
+ fr: fr.fr,
+}
+
+export const ModalLocalePicker = ({ iconOnly = false, bottom = false }) => {
+ const { t } = useTranslation(ns)
+ const router = useRouter()
+
+ return (
+
+
{t('locales:chooseYourLanguage')}
+ {router.locales.map((locale) => (
+
+ {t(locale)}
+
+ {translations[locale]}
+
+ ))}
+
+ )
+}