From c004962331934886167df1168611c02bbb643927 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 14 Jan 2024 16:00:10 -0300 Subject: support for date-fns locale --- packages/web-util/src/context/translation.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'packages/web-util/src/context') diff --git a/packages/web-util/src/context/translation.ts b/packages/web-util/src/context/translation.ts index 53ca87f9d..fb6efc40a 100644 --- a/packages/web-util/src/context/translation.ts +++ b/packages/web-util/src/context/translation.ts @@ -18,6 +18,13 @@ import { i18n, setupI18n } from "@gnu-taler/taler-util"; import { ComponentChildren, createContext, h, VNode } from "preact"; import { useContext, useEffect } from "preact/hooks"; import { useLang } from "../hooks/index.js"; +import { Locale } from "date-fns"; +import { + es as esLocale, + enGB as enLocale, + fr as frLocale, + de as deLocale +} from "date-fns/locale" export type InternationalizationAPI = typeof i18n; @@ -26,6 +33,7 @@ interface Type { supportedLang: { [id in keyof typeof supportedLang]: string }; changeLanguage: (l: string) => void; i18n: InternationalizationAPI; + dateLocale: Locale, } const supportedLang = { @@ -38,13 +46,14 @@ const supportedLang = { navigator: "Defined by navigator", }; -const initial = { +const initial: Type = { lang: "en", supportedLang, changeLanguage: () => { // do not change anything }, i18n, + dateLocale: enLocale }; const Context = createContext(initial); @@ -63,6 +72,7 @@ export const TranslationProvider = ({ source, }: Props): VNode => { const { value: lang, update: changeLanguage } = useLang(initial); + useEffect(() => { if (forceLang) { changeLanguage(forceLang); @@ -77,8 +87,13 @@ export const TranslationProvider = ({ setupI18n(lang, source); } + const dateLocale = lang === "es" ? esLocale : + lang === "fr" ? frLocale : + lang === "de" ? deLocale : + enLocale; + return h(Context.Provider, { - value: { lang, changeLanguage, supportedLang, i18n }, + value: { lang, changeLanguage, supportedLang, i18n, dateLocale }, children, }); }; -- cgit v1.2.3