(function () { "use strict"; angular .module("app.helpers") .service("helpers.localization", localizationHelper); function localizationHelper($translate, eventEmitterService) { this.defaultLanguage = 'en'; this.eventEmitter = new eventEmitterService.EventEmitter(); this.setLanguage = function (lang) { $translate.use(lang); window.appLocalStorage.set('app_lang', lang); document.documentElement.setAttribute('lang', lang); setTimeout(function () { this.eventEmitter.emit('onLanguageChangedEvent', lang); }.bind(this), 100); } this.getCurrentLanguage = function () { var languageCode = window.appLocalStorage.get("app_lang"); if (languageCode) { return languageCode; } return this.defaultLanguage; } var timerId = setInterval(function () { if (window.appLocalStorage) { clearTimeout(timerId); this.setLanguage(this.getCurrentLanguage()); } }.bind(this), 50); } // IoC container. localizationHelper.$inject = [ "$translate", "appModels.eventEmitterService" ]; })();