about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnsh <anshnanda10@gmail.com>2023-11-24 12:35:25 -0800
committerGitHub <noreply@github.com>2023-11-24 12:35:25 -0800
commit4b59a21cacc36d3c05e68d22379538c0f32550c9 (patch)
treedfb8fc715ebffa52dfe43a41bb258a7b81ea0687
parent43c8fb6f03989208b3506c35bbdb35871198bb7a (diff)
downloadvoidsky-4b59a21cacc36d3c05e68d22379538c0f32550c9.tar.zst
Allow dynamic locale imports for web (#1971)
* allow dynamic locale imports for web

* remove unnecessary file
-rw-r--r--src/locale/i18n.ts1
-rw-r--r--src/locale/i18n.web.ts29
2 files changed, 29 insertions, 1 deletions
diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts
index c64a914f8..73fa785ea 100644
--- a/src/locale/i18n.ts
+++ b/src/locale/i18n.ts
@@ -18,7 +18,6 @@ export const defaultLocale = 'en'
  * @param locale any locale string
  */
 export async function dynamicActivate(locale: string) {
-  console.log('dynamicActivate', locale)
   if (locale === 'en') {
     i18n.loadAndActivate({locale, messages: messagesEn})
     return
diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts
new file mode 100644
index 000000000..0ea69d1ae
--- /dev/null
+++ b/src/locale/i18n.web.ts
@@ -0,0 +1,29 @@
+import {useLanguagePrefs} from '#/state/preferences'
+import {i18n} from '@lingui/core'
+import {useEffect} from 'react'
+
+export const locales = {
+  en: 'English',
+  cs: 'Česky',
+  fr: 'Français',
+  hi: 'हिंदी',
+  es: 'Español',
+}
+export const defaultLocale = 'en'
+
+/**
+ * We do a dynamic import of just the catalog that we need
+ * @param locale any locale string
+ */
+export async function dynamicActivate(locale: string) {
+  const {messages} = await import(`./locales/${locale}/messages`)
+  i18n.load(locale, messages)
+  i18n.activate(locale)
+}
+
+export async function useLocaleLanguage() {
+  const {appLanguage} = useLanguagePrefs()
+  useEffect(() => {
+    dynamicActivate(appLanguage)
+  }, [appLanguage])
+}