2014-02-07 16:00:47 -05:00
|
|
|
angular.module('umbraco.services').factory('archetypeLocalizationService', function($http, $q, userService){
|
|
|
|
|
var service = {
|
|
|
|
|
resourceFileLoaded: false,
|
|
|
|
|
dictionary: {},
|
|
|
|
|
localize: function(key) {
|
|
|
|
|
var deferred = $q.defer();
|
|
|
|
|
|
|
|
|
|
if(service.resourceFileLoaded){
|
|
|
|
|
var value = service._lookup(key);
|
|
|
|
|
deferred.resolve(value);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
service.initLocalizedResources().then(function(dictionary){
|
|
|
|
|
var value = service._lookup(key);
|
|
|
|
|
deferred.resolve(value);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return deferred.promise;
|
|
|
|
|
},
|
|
|
|
|
_lookup: function(key){
|
|
|
|
|
return service.dictionary[key];
|
|
|
|
|
},
|
|
|
|
|
initLocalizedResources:function () {
|
|
|
|
|
var deferred = $q.defer();
|
|
|
|
|
userService.getCurrentUser().then(function(user){
|
2015-08-14 14:49:41 +02:00
|
|
|
$http.get("../App_plugins/Archetype/langs/" + user.locale + ".js", { cache: true })
|
2014-02-07 16:00:47 -05:00
|
|
|
.then(function(response){
|
|
|
|
|
service.resourceFileLoaded = true;
|
|
|
|
|
service.dictionary = response.data;
|
|
|
|
|
|
|
|
|
|
return deferred.resolve(service.dictionary);
|
|
|
|
|
}, function(err){
|
|
|
|
|
return deferred.reject("Lang file missing");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
return deferred.promise;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return service;
|
|
|
|
|
});
|