From 27ffaa425c8a3c3996291c60728e2151f6bb5c08 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 10 Mar 2021 21:31:50 +0100 Subject: [PATCH] Language switch implemented --- pages/[[...slug]].tsx | 11 ++++++---- utils/language.ts | 47 +++++++++++++++++++++++++++++++++++++++++++ utils/languages.json | 13 ++++++------ utils/reducer.ts | 33 ++++++++++++++++++++++-------- utils/translate.ts | 10 +++------ 5 files changed, 89 insertions(+), 25 deletions(-) create mode 100644 utils/language.ts diff --git a/pages/[[...slug]].tsx b/pages/[[...slug]].tsx index 1f18253..653e20d 100644 --- a/pages/[[...slug]].tsx +++ b/pages/[[...slug]].tsx @@ -4,7 +4,7 @@ import { useRouter } from "next/router"; import Error from "next/error"; import { googleScrape, extractSlug } from "../utils/translate"; import Languages from "../components/Languages"; -import { languages, exceptions } from "../utils/languages.json"; +import { retrieveFiltered } from "../utils/language"; import langReducer, { Actions, initialState } from "../utils/reducer"; const Page: FC> = ({ translation, error, initial }) => { @@ -43,12 +43,15 @@ const Page: FC> = ({ translation, useEffect(updateTranslation, [source, target]); - const langs = Object.entries(languages); - const sourceLangs = langs.filter(([code]) => !exceptions.source.includes(code)); - const targetLangs = langs.filter(([code]) => !exceptions.target.includes(code)); + const { sourceLangs, targetLangs } = retrieveFiltered(source, target); return (
+
+ +