1import { initializeGTSPA } from "gt-react";
2
3import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "./locales";
4
5// English is the source text, so it never loads a chunk.
6async function loadTranslations(locale: string): Promise<unknown> {
7 if (locale === DEFAULT_LOCALE) return {};
8 const module: { default: unknown } = await import(`./translations/${locale}.json`);
9 return module.default;
10}
11
12/** Sets up GT's singletons. `onLocaleRequest` receives GT's own locale changes. */
13export function initializeI18n(onLocaleRequest: (locale: string) => void): void {
14 void initializeGTSPA({
15 defaultLocale: DEFAULT_LOCALE,
16 locales: [...SUPPORTED_LOCALES],
17 locale: DEFAULT_LOCALE,
18 loadTranslations,
19 _reload: (state) => onLocaleRequest(state.locale),
20 });
21}