Files
documenso/packages/lib/client-only/providers/i18n.client.tsx
2025-02-13 14:10:38 +11:00

29 lines
667 B
TypeScript

import { useState } from 'react';
import { type Messages, setupI18n } from '@lingui/core';
import { I18nProvider } from '@lingui/react';
import type { I18nLocaleData } from '../../constants/i18n';
export function I18nClientProvider({
children,
initialLocaleData,
initialMessages,
}: {
children: React.ReactNode;
initialLocaleData: I18nLocaleData;
initialMessages: Messages;
}) {
const { lang, locales } = initialLocaleData;
const [i18n] = useState(() => {
return setupI18n({
locale: lang,
locales: locales,
messages: { [lang]: initialMessages },
});
});
return <I18nProvider i18n={i18n}>{children}</I18nProvider>;
}