@@ -18,13 +18,14 @@ http://keith-wood.name/localisation.html
18
18
} ;
19
19
$ . defaultLanguage = normaliseLang ( navigator . languages && navigator . languages . length > 0 ? navigator . languages [ 0 ] : navigator . language || navigator . userLanguage ) ;
20
20
$ . localize = function ( pkg , options ) {
21
- var defaultCallback , fileExtension , intermediateLangData , jsonCall , lang , loadLanguage , localizeElement , localizeForSpecialKeys , localizeImageElement , localizeInputElement , localizeOptgroupElement , notifyDelegateLanguageLoaded , regexify , setAttrFromValueForKey , setTextFromValueForKey , valueForKey , wrappedSet ;
21
+ var defaultCallback , deferred , fileExtension , intermediateLangData , jsonCall , lang , loadLanguage , localizeElement , localizeForSpecialKeys , localizeImageElement , localizeInputElement , localizeOptgroupElement , notifyDelegateLanguageLoaded , regexify , setAttrFromValueForKey , setTextFromValueForKey , valueForKey , wrappedSet ;
22
22
if ( options == null ) {
23
23
options = { } ;
24
24
}
25
25
wrappedSet = this ;
26
26
intermediateLangData = { } ;
27
27
fileExtension = options . fileExtension || "json" ;
28
+ deferred = $ . Deferred ( ) ;
28
29
loadLanguage = function ( pkg , lang , level ) {
29
30
var file ;
30
31
if ( level == null ) {
@@ -46,6 +47,8 @@ http://keith-wood.name/localisation.html
46
47
case 3 :
47
48
file = "" + pkg + "-" + ( lang . split ( '-' ) . slice ( 0 , 2 ) . join ( '-' ) ) + "." + fileExtension ;
48
49
return jsonCall ( file , pkg , lang , level ) ;
50
+ default :
51
+ return deferred . resolve ( ) ;
49
52
}
50
53
} ;
51
54
jsonCall = function ( file , pkg , lang , level ) {
@@ -68,7 +71,7 @@ http://keith-wood.name/localisation.html
68
71
ajaxOptions = {
69
72
url : file ,
70
73
dataType : "json" ,
71
- async : false ,
74
+ async : true ,
72
75
timeout : options . timeout != null ? options . timeout : 500 ,
73
76
success : successFunc ,
74
77
error : errorFunc
@@ -178,9 +181,12 @@ http://keith-wood.name/localisation.html
178
181
}
179
182
} ;
180
183
lang = normaliseLang ( options . language ? options . language : $ . defaultLanguage ) ;
181
- if ( ! ( options . skipLanguage && lang . match ( regexify ( options . skipLanguage ) ) ) ) {
184
+ if ( options . skipLanguage && lang . match ( regexify ( options . skipLanguage ) ) ) {
185
+ deferred . resolve ( ) ;
186
+ } else {
182
187
loadLanguage ( pkg , lang , 1 ) ;
183
188
}
189
+ wrappedSet . localizePromise = deferred ;
184
190
return wrappedSet ;
185
191
} ;
186
192
$ . fn . localize = $ . localize ;
0 commit comments