replace old client with new client from commafeed-ui repository

This commit is contained in:
Athou
2022-08-13 10:56:07 +02:00
parent ac7b6eeb21
commit 04894f118b
183 changed files with 20326 additions and 12678 deletions

View File

@@ -0,0 +1,56 @@
import { i18n, Messages } from "@lingui/core"
import { useAppSelector } from "app/store"
import dayjs from "dayjs"
import "dayjs/locale/en"
import "dayjs/locale/fr"
import { en, fr } from "make-plural"
import { useEffect } from "react"
import { messages as enMessages } from "./locales/en/messages"
import { messages as frMessages } from "./locales/fr/messages"
interface Locale {
key: string
label: string
messages: Messages
plurals?: (n: number | string, ord?: boolean) => string
}
// add an object to the array to add a new locale
// don't forget to also add it to the 'locales' array in .linguirc
export const locales: Locale[] = [
{
key: "en",
label: "English",
messages: enMessages,
plurals: en,
},
{
key: "fr",
label: "Français",
messages: frMessages,
plurals: fr,
},
]
locales.forEach(l => {
i18n.loadLocaleData({
[l.key]: {
plurals: l.plurals,
},
})
i18n.load({
[l.key]: l.messages,
})
})
function activateLocale(locale: string) {
i18n.activate(locale)
dayjs.locale(locale)
}
export const useI18n = () => {
const locale = useAppSelector(state => state.user.settings?.language)
useEffect(() => {
activateLocale(locale ?? "en")
}, [locale])
}