43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
(function () {
|
|
global.dashModule.config(['$translateProvider', function ($translateProvider) {
|
|
$translateProvider.useUrlLoader('translate/api/getTranslation');
|
|
const lang = hasLanguageInStorage() ? localStorage.lang : 'en';
|
|
$translateProvider.preferredLanguage(lang);
|
|
$translateProvider.useSanitizeValueStrategy('escape');
|
|
}]);
|
|
|
|
global.dashModule
|
|
.controller('translateCtrl', ['$translate', '$scope', 'dataTableHelper', translateCtrl])
|
|
.directive('translateMain', [translateMain]);
|
|
|
|
function translateMain() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'translate/html/languagesTemplate'
|
|
};
|
|
}
|
|
|
|
function translateCtrl($translate, $scope, dataTableHelper) {
|
|
$scope.lang = hasLanguageInStorage() ? localStorage.lang : 'en';
|
|
$scope.changeLanguage = changeLanguage;
|
|
|
|
function changeLanguage() {
|
|
$translate.use($scope.lang).then(() => {
|
|
setLanguageInStorage($scope.lang);
|
|
dataTableHelper.setDataTableLanguage();
|
|
});
|
|
}
|
|
}
|
|
|
|
function hasLanguageInStorage() {
|
|
return typeof Storage !== 'undefined' && typeof localStorage.lang !== 'undefined';
|
|
}
|
|
|
|
function setLanguageInStorage(lang) {
|
|
if (typeof Storage !== 'undefined') {
|
|
localStorage.setItem('lang', lang);
|
|
}
|
|
}
|
|
|
|
})();
|