diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-09-28 18:28:33 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-09-28 18:28:33 +0200 |
| commit | f9337bbe280878c2a2d9d713873c4c06b54325cd (patch) | |
| tree | bbc30d1b0dfb5c3589af609e28db04b12c11b237 /apps/kit/src/lib/i18n/i18n-util.async.ts | |
| parent | 59a4a340c77aad97e299aac47155bf4bff7a3c30 (diff) | |
| download | greatoffice-f9337bbe280878c2a2d9d713873c4c06b54325cd.tar.xz greatoffice-f9337bbe280878c2a2d9d713873c4c06b54325cd.zip | |
refactor: !WIP Use i18n namespaces
Diffstat (limited to 'apps/kit/src/lib/i18n/i18n-util.async.ts')
| -rw-r--r-- | apps/kit/src/lib/i18n/i18n-util.async.ts | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/apps/kit/src/lib/i18n/i18n-util.async.ts b/apps/kit/src/lib/i18n/i18n-util.async.ts index 3ccef5f..a114495 100644 --- a/apps/kit/src/lib/i18n/i18n-util.async.ts +++ b/apps/kit/src/lib/i18n/i18n-util.async.ts @@ -2,12 +2,20 @@ /* eslint-disable */ import { initFormatters } from './formatters' -import type { Locales, Translations } from './i18n-types' +import type { Locales, Namespaces, Translations } from './i18n-types' import { loadedFormatters, loadedLocales, locales } from './i18n-util' const localeTranslationLoaders = { en: () => import('./en'), - nb: () => import('./nb'), +} + +const localeNamespaceLoaders = { + en: { + app: () => import('./en/app'), + 'reset-password': () => import('./en/reset-password'), + 'sign-in': () => import('./en/sign-in'), + 'sign-up': () => import('./en/sign-up') + } } const updateDictionary = (locale: Locales, dictionary: Partial<Translations>) => @@ -25,3 +33,9 @@ export const loadAllLocalesAsync = (): Promise<void[]> => Promise.all(locales.ma export const loadFormatters = (locale: Locales): void => void (loadedFormatters[locale] = initFormatters(locale)) + +export const importNamespaceAsync = async<Namespace extends Namespaces>(locale: Locales, namespace: Namespace) => + (await localeNamespaceLoaders[locale][namespace]()).default as unknown as Translations[Namespace] + +export const loadNamespaceAsync = async <Namespace extends Namespaces>(locale: Locales, namespace: Namespace): Promise<void> => + void updateDictionary(locale, { [namespace]: await importNamespaceAsync(locale, namespace )}) |
