summaryrefslogtreecommitdiff
path: root/app_expo/i18n/i18n.ts
diff options
context:
space:
mode:
authorKirill Rogovoy <[email protected]>2021-07-20 21:24:52 +0300
committerKirill Rogovoy <[email protected]>2021-07-20 21:24:52 +0300
commit5f4611d65e40eae3ca6191a15f68d69ea5a1c4cb (patch)
tree273dfc086444533d86d580961c92ba8d14781a67 /app_expo/i18n/i18n.ts
parentf0bf4e7afdcd8b02a62be45ab3e7d047ed865a79 (diff)
WIP
Diffstat (limited to 'app_expo/i18n/i18n.ts')
-rw-r--r--app_expo/i18n/i18n.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/app_expo/i18n/i18n.ts b/app_expo/i18n/i18n.ts
new file mode 100644
index 0000000..b29e80b
--- /dev/null
+++ b/app_expo/i18n/i18n.ts
@@ -0,0 +1,22 @@
+import * as Localization from 'expo-localization'
+import i18n from 'i18n-js'
+import en from './en.json'
+import ja from './ja.json'
+
+i18n.fallbacks = true
+i18n.translations = { en, ja }
+
+i18n.locale = Localization.locale || 'en'
+
+/**
+ * Builds up valid keypaths for translations.
+ * Update to your default locale of choice if not English.
+ */
+type DefaultLocale = typeof en
+export type TxKeyPath = RecursiveKeyOf<DefaultLocale>
+
+type RecursiveKeyOf<TObj extends Record<string, any>> = {
+ [TKey in keyof TObj & string]: TObj[TKey] extends Record<string, any>
+ ? `${TKey}` | `${TKey}.${RecursiveKeyOf<TObj[TKey]>}`
+ : `${TKey}`
+}[keyof TObj & string]