This is a duplicate of the old asynchronicity problem, but there's a second issue as well -- scope.
First of all, scope. The lan
variable is defined inside the internal function, and so cannot be seen from outside.
function getLanguage(){
var lan;
navigator.globalization.getLocaleName(
function(locale){
lan = locale.value;
},
function(){
lan = null;
}
);
return lan;
}
That was easy. But it still won't work, due to asynchronity. You have to set up your function to use a callback instead:
function getLanguage(callback){
navigator.globalization.getLocaleName(
function(locale){
callback(locale.value);
},
function(){
callback(null);
}
);
}
Also, by now, we don't even need the variable, so i got rid of it.
Then, you call it as:
getLanguage(function(lan){
// something with lan here
});