1- String . prototype . format = function ( ) {
2- 'use strict' ;
3- var str = this . toString ( ) ;
4-
5- var t = typeof arguments [ 0 ] ;
6- var args ;
7- if ( arguments . length == 0 ) args = { } ;
8- else
9- args =
10- 'string' === t || 'number' === t
11- ? Array . prototype . slice . call ( arguments )
12- : arguments [ 0 ] ;
1+ function format ( string , ...args ) {
2+ var t = typeof args [ 0 ] ;
3+ var values ;
4+ if ( args . length == 0 ) values = { } ;
5+ else values = 'string' === t || 'number' === t ? args : args [ 0 ] ;
136
147 var splits = [ ] ;
158
16- var s = str ;
9+ var s = string ;
1710 while ( s . length > 0 ) {
1811 var m = s . match ( / \{ (? ! \{ ) ( [ \w \d ] + ) \} (? ! \} ) / ) ;
1912 if ( m !== null ) {
@@ -24,18 +17,18 @@ String.prototype.format = function () {
2417 splits . push ( left ) ;
2518 if ( n != n ) {
2619 // not a number
27- splits . push ( args [ m [ 1 ] ] ) ;
20+ splits . push ( values [ m [ 1 ] ] ) ;
2821 } else {
2922 // a numbered argument
30- splits . push ( args [ n ] ) ;
23+ splits . push ( values [ n ] ) ;
3124 }
3225 } else {
3326 splits . push ( s ) ;
3427 s = '' ;
3528 }
3629 }
3730 return splits ;
38- } ;
31+ }
3932
4033export function language ( ) {
4134 return window . language || document . documentElement . lang || 'en' ;
@@ -61,14 +54,15 @@ export function t(trans, lang, debug, key) {
6154 if ( value === undefined ) {
6255 if ( debug ) {
6356 console . log (
64- '[missing translation: {lang}/{key}]'
65- . format ( { key : kl . join ( '/' ) , lang : lang } )
66- . join ( '' )
57+ format ( '[missing translation: {lang}/{key}]' , {
58+ key : kl . join ( '/' ) ,
59+ lang : lang
60+ } ) . join ( '' )
6761 ) ;
6862 }
6963 return false ;
7064 }
7165 const params = Array . prototype . slice . call ( arguments , 4 ) ;
72- if ( params . length > 0 ) return value . format ( ...params ) ;
66+ if ( params . length > 0 ) return format ( value , ...params ) ;
7367 return value ;
7468}
0 commit comments