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 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 292 function procceedJwtTokenValidate() {
287 293 validateJwtToken(doTokenRefresh).then(function success() {
288 294 var jwtToken = store.get('jwt_token');
... ... @@ -299,6 +305,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
299 305 getUser(currentUser.userId).then(
300 306 function success(user) {
301 307 currentUserDetails = user;
  308 + updateUserLang();
302 309 $rootScope.forceFullscreen = false;
303 310 if (userForceFullscreen()) {
304 311 $rootScope.forceFullscreen = true;
... ...
... ... @@ -46,7 +46,7 @@ export default function AppConfig($provide,
46 46 $urlRouterProvider.otherwise(UrlHandler);
47 47 storeProvider.setCaching(false);
48 48
49   - $translateProvider.useSanitizeValueStrategy('sce');
  49 + $translateProvider.useSanitizeValueStrategy(null);
50 50 $translateProvider.preferredLanguage('en_US');
51 51 $translateProvider.useLocalStorage();
52 52 $translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler');
... ... @@ -59,15 +59,17 @@ export default function AppConfig($provide,
59 59
60 60 var $window = angular.injector(['ng']).get('$window');
61 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 75 for (var langKey in locales) {
... ...
... ... @@ -40,15 +40,19 @@ export default function ProfileController(userService, $scope, $document, $mdDia
40 40 function loadProfile() {
41 41 userService.getUser(userService.getCurrentUser().userId).then(function success(user) {
42 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 52 function save() {
48 53 userService.saveUser(vm.profileUser).then(function success(user) {
49   - $translate.use(vm.profileUser.lang);
  54 + $translate.use(vm.profileUser.additionalInfo.lang);
50 55 vm.profileUser = user;
51   - vm.profileUser.lang = $translate.use();
52 56 $scope.theForm.$setPristine();
53 57 });
54 58 }
... ...
... ... @@ -42,7 +42,7 @@
42 42 </md-input-container>
43 43 <md-input-container class="md-block">
44 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 46 <md-option ng-repeat="lang in vm.languageList" ng-value="lang.value">
47 47 {{lang.name | translate}}
48 48 </md-option>
... ...