@@ -2,26 +2,18 @@ import { type PropsWithChildren, useEffect, useMemo, useState } from "react"
22
33import { type I18n , type MessageDescriptor , setupI18n } from "@lingui/core"
44
5- import { messages as de } from "./_de"
6- import { messages as en } from "./_en"
5+ import { messages as de } from "./_de.json "
6+ import { messages as en } from "./_en.json "
77import { createContext } from "../utils/create-context"
88
9- const availableLanguages = new Set ( [ "en" , "de" ] )
10-
9+ const defaultLanguage = "en"
1110const catalog = { en, de }
12-
1311const i18n = setupI18n ( {
14- locales : [ ... availableLanguages ] ,
15- locale : "en" ,
12+ locales : Object . keys ( catalog ) ,
13+ locale : defaultLanguage ,
1614 messages : catalog ,
1715} )
1816
19- const activate = ( languageArg : "en" | "de" ) => {
20- const language = availableLanguages . has ( languageArg ) ? languageArg : "en"
21- i18n . loadAndActivate ( { locale : language , messages : catalog [ language ] } )
22- return language
23- }
24-
2517interface L10nProviderState {
2618 i18n : I18n
2719 locale : string
@@ -31,14 +23,16 @@ const Context = createContext<L10nProviderState>("L10nProvider")
3123
3224export const L10nProvider = ( {
3325 locale,
34- language,
26+ language : languageProp ,
3527 children,
3628} : PropsWithChildren < Omit < L10nProviderState , "i18n" > > ) => {
29+ const language = languageProp in catalog ? languageProp : defaultLanguage
3730 const [ activeLanguage , setActiveLanguage ] = useState < "en" | "de" > ( )
3831
3932 useEffect ( ( ) => {
33+ i18n . activate ( language )
4034 // enforce rerendering consumers when language changes
41- setActiveLanguage ( activate ( language ) )
35+ setActiveLanguage ( language )
4236 } , [ language ] )
4337
4438 return (
0 commit comments