This commit is contained in:
Romulus21
2022-01-22 23:00:21 +01:00
parent 021848b543
commit 62cb27c85e
18 changed files with 347 additions and 107 deletions

View File

@@ -0,0 +1,47 @@
import {en} from "../lang/en"
import {fr} from "../lang/fr"
import {useContext, useEffect, useState} from "preact/hooks"
import {createContext} from "preact"
export const TranslateContext = createContext(null)
export const Text = ({text, count = null}) => {
const lang = useContext(TranslateContext)
const [translate, setTranslate] = useState()
useEffect(() => {
if (lang && lang[text]) {
if (count > 1 && lang[text].many) {
text = lang[text].many
} else if (count <= 1 && lang[text].one) {
text = lang[text].one
} else {
text = lang[text]
}
}
if (count && text.includes('{{count}}')) {
text = text.replace('{{count}}', count)
}
setTranslate(text)
}, [])
return <>{ translate }</>
}
export const TranslateProvider = ({children}) => {
const userLang = navigator.language || navigator.userLanguage
let translate = null
if (userLang === "en") {
translate = en
} else if (userLang === "fr") {
translate = fr
}
return <TranslateContext.Provider value={translate}>
{ children }
</TranslateContext.Provider>
}