File tree Expand file tree Collapse file tree 3 files changed +20
-1
lines changed Expand file tree Collapse file tree 3 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,8 @@ let sharedInstance: I18n = null
21
21
const DEFAULT_OPTIONS : OptionsInterface = {
22
22
lang : ! isServer && document . documentElement . lang ? document . documentElement . lang . replace ( '-' , '_' ) : null ,
23
23
fallbackLang : 'en' ,
24
- resolve : ( lang : string ) => new Promise ( ( resolve ) => resolve ( { default : { } } ) )
24
+ resolve : ( lang : string ) => new Promise ( ( resolve ) => resolve ( { default : { } } ) ) ,
25
+ onLoad : ( lang : string ) => { }
25
26
}
26
27
27
28
/**
@@ -305,6 +306,7 @@ export class I18n {
305
306
}
306
307
}
307
308
309
+ this . options . onLoad ( lang )
308
310
return lang
309
311
}
310
312
Original file line number Diff line number Diff line change @@ -7,4 +7,5 @@ export interface OptionsInterface {
7
7
lang ?: string
8
8
fallbackLang ?: string
9
9
resolve ?( lang : string ) : Promise < LanguageJsonFileInterface >
10
+ onLoad ?: ( lang : string ) => void
10
11
}
Original file line number Diff line number Diff line change @@ -68,3 +68,19 @@ it('allows resetting all data', async () => {
68
68
expect ( i18n . getActiveLanguage ( ) ) . toBe ( 'en' )
69
69
expect ( i18n . trans ( 'Welcome!' ) ) . toBe ( 'Welcome!' )
70
70
} )
71
+
72
+ it ( 'calls onLoad when loaded' , async ( ) => {
73
+ const onLoadFunction = jest . fn ( )
74
+
75
+ const i18n = new I18n ( {
76
+ lang : 'pt' ,
77
+ resolve : lang => import ( `./fixtures/lang/${ lang } .json` ) ,
78
+ onLoad : onLoadFunction
79
+ } )
80
+
81
+ await i18n . loadLanguageAsync ( 'en' )
82
+
83
+ expect ( onLoadFunction ) . toHaveBeenCalledTimes ( 2 )
84
+ expect ( onLoadFunction ) . toHaveBeenCalledWith ( 'en' )
85
+ expect ( onLoadFunction ) . toHaveBeenCalledWith ( 'pt' )
86
+ } )
You can’t perform that action at this time.
0 commit comments