Commit 2f7f6b1af6911d6a01cf46310cb827958cbd9648

Authored by Igor Kulikov
1 parent ef6441a0

Improve user language management.

@@ -283,6 +283,12 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi @@ -283,6 +283,12 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
283 ); 283 );
284 } 284 }
285 285
  286 + function updateUserLang() {
  287 + if (currentUserDetails.additionalInfo && currentUserDetails.additionalInfo.lang) {
  288 + $translate.use(currentUserDetails.additionalInfo.lang);
  289 + }
  290 + }
  291 +
286 function procceedJwtTokenValidate() { 292 function procceedJwtTokenValidate() {
287 validateJwtToken(doTokenRefresh).then(function success() { 293 validateJwtToken(doTokenRefresh).then(function success() {
288 var jwtToken = store.get('jwt_token'); 294 var jwtToken = store.get('jwt_token');
@@ -299,6 +305,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi @@ -299,6 +305,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
299 getUser(currentUser.userId).then( 305 getUser(currentUser.userId).then(
300 function success(user) { 306 function success(user) {
301 currentUserDetails = user; 307 currentUserDetails = user;
  308 + updateUserLang();
302 $rootScope.forceFullscreen = false; 309 $rootScope.forceFullscreen = false;
303 if (userForceFullscreen()) { 310 if (userForceFullscreen()) {
304 $rootScope.forceFullscreen = true; 311 $rootScope.forceFullscreen = true;
@@ -46,7 +46,7 @@ export default function AppConfig($provide, @@ -46,7 +46,7 @@ export default function AppConfig($provide,
46 $urlRouterProvider.otherwise(UrlHandler); 46 $urlRouterProvider.otherwise(UrlHandler);
47 storeProvider.setCaching(false); 47 storeProvider.setCaching(false);
48 48
49 - $translateProvider.useSanitizeValueStrategy('sce'); 49 + $translateProvider.useSanitizeValueStrategy(null);
50 $translateProvider.preferredLanguage('en_US'); 50 $translateProvider.preferredLanguage('en_US');
51 $translateProvider.useLocalStorage(); 51 $translateProvider.useLocalStorage();
52 $translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler'); 52 $translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler');
@@ -59,15 +59,17 @@ export default function AppConfig($provide, @@ -59,15 +59,17 @@ export default function AppConfig($provide,
59 59
60 var $window = angular.injector(['ng']).get('$window'); 60 var $window = angular.injector(['ng']).get('$window');
61 var lang = $window.navigator.language || $window.navigator.userLanguage; 61 var lang = $window.navigator.language || $window.navigator.userLanguage;
62 - if (lang === 'ko') {  
63 - $translateProvider.useSanitizeValueStrategy(null);  
64 - $translateProvider.preferredLanguage('ko_KR');  
65 - } else if (lang === 'zh') {  
66 - $translateProvider.useSanitizeValueStrategy(null);  
67 - $translateProvider.preferredLanguage('zh_CN');  
68 - } else if (lang === 'es') {  
69 - $translateProvider.useSanitizeValueStrategy(null);  
70 - $translateProvider.preferredLanguage('es_ES'); 62 + if (lang) {
  63 + lang = lang.toLowerCase();
  64 + if (lang.startsWith('ko')) {
  65 + $translateProvider.preferredLanguage('ko_KR');
  66 + } else if (lang.startsWith('zh')) {
  67 + $translateProvider.preferredLanguage('zh_CN');
  68 + } else if (lang.startsWith('es')) {
  69 + $translateProvider.preferredLanguage('es_ES');
  70 + } else if (lang.startsWith('ru')) {
  71 + $translateProvider.preferredLanguage('ru_RU');
  72 + }
71 } 73 }
72 74
73 for (var langKey in locales) { 75 for (var langKey in locales) {
@@ -40,15 +40,19 @@ export default function ProfileController(userService, $scope, $document, $mdDia @@ -40,15 +40,19 @@ export default function ProfileController(userService, $scope, $document, $mdDia
40 function loadProfile() { 40 function loadProfile() {
41 userService.getUser(userService.getCurrentUser().userId).then(function success(user) { 41 userService.getUser(userService.getCurrentUser().userId).then(function success(user) {
42 vm.profileUser = user; 42 vm.profileUser = user;
43 - vm.profileUser.lang = $translate.use(); 43 + if (!vm.profileUser.additionalInfo) {
  44 + vm.profileUser.additionalInfo = {};
  45 + }
  46 + if (!vm.profileUser.additionalInfo.lang) {
  47 + vm.profileUser.additionalInfo.lang = $translate.use();
  48 + }
44 }); 49 });
45 } 50 }
46 51
47 function save() { 52 function save() {
48 userService.saveUser(vm.profileUser).then(function success(user) { 53 userService.saveUser(vm.profileUser).then(function success(user) {
49 - $translate.use(vm.profileUser.lang); 54 + $translate.use(vm.profileUser.additionalInfo.lang);
50 vm.profileUser = user; 55 vm.profileUser = user;
51 - vm.profileUser.lang = $translate.use();  
52 $scope.theForm.$setPristine(); 56 $scope.theForm.$setPristine();
53 }); 57 });
54 } 58 }
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 </md-input-container> 42 </md-input-container>
43 <md-input-container class="md-block"> 43 <md-input-container class="md-block">
44 <label translate>language.language</label> 44 <label translate>language.language</label>
45 - <md-select name="language" ng-model="vm.profileUser.lang"> 45 + <md-select name="language" ng-model="vm.profileUser.additionalInfo.lang">
46 <md-option ng-repeat="lang in vm.languageList" ng-value="lang.value"> 46 <md-option ng-repeat="lang in vm.languageList" ng-value="lang.value">
47 {{lang.name | translate}} 47 {{lang.name | translate}}
48 </md-option> 48 </md-option>