@@ -4,6 +4,7 @@ import { I18nObjects } from "./locales/types";
44import { initlanguageMeta , languagesMetadata } from "./languagesMeta" ;
55import { ReactNode } from "react" ;
66import { getLanguage } from "util/editor"
7+ import { getLanguageJson , getLanguageObjJson , setLanguageJson , setLanguageObjJson } from "@lowcoder-ee/util/language" ;
78
89type transType = ( key : any , variables ?: any ) => string ;
910type transToNodeType = ( key : any , variables ?: any ) => ReactNode ;
@@ -12,14 +13,24 @@ let trans: transType;
1213let transToNode : transToNodeType ;
1314let language : string = getLanguage ( ) ;
1415export let languageList : any [ ] ;
15-
1616export let i18nObjs : I18nObjects ;
17+ let langJson : object ;
18+
1719export const initTranslator = async ( langs ? : string ) => {
1820 const lang = langs || language ;
1921 const objFileName = ( REACT_APP_LANGUAGES || language ) + "Obj" ;
20- let langJson = await ( localeData as any ) [ lang ] ( )
21- let langObjJson = await ( localeData as any ) [ objFileName ] ( )
22- langJson = { [ lang ] : langJson , [ ( REACT_APP_LANGUAGES || language ) + "Obj" ] : langObjJson }
22+ if ( ! getLanguageJson ( lang ) ) {
23+ langJson = await ( localeData as any ) [ lang ] ( ) ;
24+ let langObjJson = await ( localeData as any ) [ objFileName ] ( ) ;
25+ setLanguageJson ( lang , { [ lang ] : langJson } ) ;
26+ setLanguageObjJson ( objFileName , { [ objFileName ] : langObjJson } ) ;
27+ langJson = { [ lang ] : langJson , [ objFileName ] : langObjJson }
28+ }
29+ else {
30+ const langJson2 = getLanguageJson ( lang ) ;
31+ const langObjJson = getLanguageObjJson ( objFileName ) ;
32+ langJson = { [ lang ] : langJson2 , [ objFileName ] : langObjJson }
33+ }
2334 await initlanguageMeta ( ) ;
2435 i18nObjs = getI18nObjects < I18nObjects > ( langJson , REACT_APP_LANGUAGES || language ) ;
2536 languageList = Object . keys ( languagesMetadata ) . map ( code => ( {
@@ -34,8 +45,8 @@ export const initTranslator = async (langs? : string) => {
3445 ) ;
3546
3647 language = translator . language ;
37- transToNode = ( key : any , variables ?: any ) => translator . transToNode ?.( key , variables ) ;
38- trans = ( key : any , variables ?: any ) => translator . trans ?.( key , variables ) ;
48+ transToNode = ( key : any , variables ?: any ) => translator . transToNode ?.( key as never , variables ) ;
49+ trans = ( key : any , variables ?: any ) => translator . trans ?.( key as never , variables ) ;
3950}
4051
4152export { language , trans , transToNode } ;
0 commit comments