@@ -31,7 +31,10 @@ export function fromMap(map: Record<string, string>) {
31
31
return map [ getLocale ( ) ] || map [ getLocale2 ( ) ] || map [ defaultLocale ]
32
32
}
33
33
34
- export default ( plugin : string , namespace = 'resources' ) : ( ( key : string , ...parameters : string [ ] ) => string ) => {
34
+ export default (
35
+ plugin : string ,
36
+ namespace = 'resources'
37
+ ) : ( ( key : string , ...parameters : ( string | number ) [ ] ) => string ) => {
35
38
// eslint-disable-next-line @typescript-eslint/no-var-requires
36
39
const defaultStrings : Record < string , string > = require ( `@kui-shell/${ plugin } /i18n/${ namespace } _en_US.json` )
37
40
@@ -55,10 +58,16 @@ export default (plugin: string, namespace = 'resources'): ((key: string, ...para
55
58
56
59
const _strings = i18n ( locale )
57
60
58
- return function ( key : string , ...parameters : string [ ] ) : string {
59
- const str = _strings [ key ] || defaultStrings [ key ] || key
61
+ return function ( key : string , ...parameters : ( string | number ) [ ] ) : string {
62
+ const str : string = _strings [ key ] || defaultStrings [ key ] || key
60
63
61
64
if ( ! parameters ) return str
62
- else return parameters . reduce ( ( str , param , idx ) => str . replace ( new RegExp ( `\\{${ idx } \\}` , 'g' ) , param ) , str ) // e.g. replace all occurrences of {0} in the str
65
+ else
66
+ return parameters
67
+ . map ( _ => _ . toString ( ) ) // only needed due to https://github.com/microsoft/TypeScript/issues/7014
68
+ . reduce ( ( str : string , param , idx ) => {
69
+ // e.g. replace all occurrences of {0} in the str
70
+ return str . replace ( new RegExp ( `\\{${ idx } \\}` , 'g' ) , param . toString ( ) )
71
+ } , str )
63
72
}
64
73
}
0 commit comments