aboutsummaryrefslogtreecommitdiffstats
path: root/apps/kit/src/lib/i18n/i18n-util.async.ts
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-09-28 18:28:33 +0200
committerivarlovlie <git@ivarlovlie.no>2022-09-28 18:28:33 +0200
commitf9337bbe280878c2a2d9d713873c4c06b54325cd (patch)
treebbc30d1b0dfb5c3589af609e28db04b12c11b237 /apps/kit/src/lib/i18n/i18n-util.async.ts
parent59a4a340c77aad97e299aac47155bf4bff7a3c30 (diff)
downloadgreatoffice-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.ts18
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 )})