@@ -68,11 +68,13 @@ let defaultConfig = {
6868type recoilConfig = {
6969 config : configClass ,
7070 themeObj : themeClass ,
71- localeString : LocaleStringTypes .localeStrings ,
72- constantString : LocaleStringTypes .constantStrings ,
71+ localeString : LocaleDataType .localeStrings ,
72+ constantString : LocaleDataType .constantStrings ,
7373 showLoader : bool ,
7474}
7575
76+ @val external importJSON : string => promise <LocaleDataType .localeStrings > = "import"
77+
7678let getLocaleObject = async string => {
7779 try {
7880 let locale = if string == "auto" {
@@ -81,48 +83,63 @@ let getLocaleObject = async string => {
8183 string
8284 }
8385
84- let promiseLocale = switch locale -> LocaleStringHelper .mapLocalStringToTypeLocale {
85- | EN => Js .import (EnglishLocale .localeStrings )
86- | HE => Js .import (HebrewLocale .localeStrings )
87- | FR => Js .import (FrenchLocale .localeStrings )
88- | EN_GB => Js .import (EnglishGBLocale .localeStrings )
89- | AR => Js .import (ArabicLocale .localeStrings )
90- | JA => Js .import (JapaneseLocale .localeStrings )
91- | DE => Js .import (DeutschLocale .localeStrings )
92- | FR_BE => Js .import (FrenchBelgiumLocale .localeStrings )
93- | ES => Js .import (SpanishLocale .localeStrings )
94- | CA => Js .import (CatalanLocale .localeStrings )
95- | ZH => Js .import (ChineseLocale .localeStrings )
96- | PT => Js .import (PortugueseLocale .localeStrings )
97- | IT => Js .import (ItalianLocale .localeStrings )
98- | PL => Js .import (PolishLocale .localeStrings )
99- | NL => Js .import (DutchLocale .localeStrings )
100- | SV => Js .import (SwedishLocale .localeStrings )
101- | RU => Js .import (RussianLocale .localeStrings )
102- | ZH_HANT => Js .import (TraditionalChineseLocale .localeStrings )
86+ let localeFileName = switch locale -> LocaleDataType .localeStringToType {
87+ | Some (En ) => "en"
88+ | Some (He ) => "he"
89+ | Some (Fr ) => "fr"
90+ | Some (En_GB ) => "en-GB"
91+ | Some (Ar ) => "ar"
92+ | Some (Ja ) => "ja"
93+ | Some (De ) => "de"
94+ | Some (Fr_BE ) => "fr-BE"
95+ | Some (Es ) => "es"
96+ | Some (Ca ) => "ca"
97+ // | Some(Zh) => "zh" // Pending support
98+ | Some (Pt ) => "pt"
99+ | Some (It ) => "it"
100+ | Some (Pl ) => "pl"
101+ | Some (Nl ) => "nl"
102+ | Some (NI_BE ) => "nI-BE"
103+ | Some (Sv ) => "sv"
104+ | Some (Ru ) => "ru"
105+ // | Some(Zh_HANT) => "zh-Hant" // Pending support
106+ | Some (Lt ) => "lt"
107+ | Some (Cs ) => "cs"
108+ | Some (Sk ) => "sk"
109+ | Some (Ls ) => "ls"
110+ | Some (Cy ) => "cy"
111+ | Some (El ) => "el"
112+ | Some (Et ) => "et"
113+ | Some (Fi ) => "fi"
114+ | Some (Nb ) => "nb"
115+ | Some (Bs ) => "bs"
116+ | Some (Da ) => "da"
117+ | Some (Ms ) => "ms"
118+ | Some (Tr_CY ) => "tr-CY"
119+ | None => "en" // Default fallback
103120 }
104-
105- let awaitedLocaleValue = await promiseLocale
106- awaitedLocaleValue
121+
122+ // Use template literal for webpack to analyze and create chunks
123+ await importJSON ( ` ../shared-code/assets/v1/jsons/locales/${localeFileName}.json` )
107124 } catch {
108- | _ => EnglishLocale . localeStrings
125+ | _ => LocaleDataType . defaultLocale
109126 }
110127}
111128
112129let getConstantStringsObject = async () => {
113130 try {
114- let promiseConstantStrings = Js .import (ConstantStrings . constantStrings )
131+ let promiseConstantStrings = Js .import (LocaleDataType . defaultConstantStrings )
115132 await promiseConstantStrings
116133 } catch {
117- | _ => ConstantStrings . constantStrings
134+ | _ => LocaleDataType . defaultConstantStrings
118135 }
119136}
120137
121138let defaultRecoilConfig : recoilConfig = {
122139 config : defaultConfig ,
123140 themeObj : defaultConfig .appearance .variables ,
124- localeString : EnglishLocale . localeStrings ,
125- constantString : ConstantStrings . constantStrings ,
141+ localeString : LocaleDataType . defaultLocale ,
142+ constantString : LocaleDataType . defaultConstantStrings ,
126143 showLoader : false ,
127144}
128145
0 commit comments