Browse Source

Improve user language management.

pull/346/head
Igor Kulikov 9 years ago
parent
commit
2f7f6b1af6
  1. 7
      ui/src/app/api/user.service.js
  2. 22
      ui/src/app/app.config.js
  3. 10
      ui/src/app/profile/profile.controller.js
  4. 2
      ui/src/app/profile/profile.tpl.html

7
ui/src/app/api/user.service.js

@ -283,6 +283,12 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
);
}
function updateUserLang() {
if (currentUserDetails.additionalInfo && currentUserDetails.additionalInfo.lang) {
$translate.use(currentUserDetails.additionalInfo.lang);
}
}
function procceedJwtTokenValidate() {
validateJwtToken(doTokenRefresh).then(function success() {
var jwtToken = store.get('jwt_token');
@ -299,6 +305,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
getUser(currentUser.userId).then(
function success(user) {
currentUserDetails = user;
updateUserLang();
$rootScope.forceFullscreen = false;
if (userForceFullscreen()) {
$rootScope.forceFullscreen = true;

22
ui/src/app/app.config.js

@ -46,7 +46,7 @@ export default function AppConfig($provide,
$urlRouterProvider.otherwise(UrlHandler);
storeProvider.setCaching(false);
$translateProvider.useSanitizeValueStrategy('sce');
$translateProvider.useSanitizeValueStrategy(null);
$translateProvider.preferredLanguage('en_US');
$translateProvider.useLocalStorage();
$translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler');
@ -59,15 +59,17 @@ export default function AppConfig($provide,
var $window = angular.injector(['ng']).get('$window');
var lang = $window.navigator.language || $window.navigator.userLanguage;
if (lang === 'ko') {
$translateProvider.useSanitizeValueStrategy(null);
$translateProvider.preferredLanguage('ko_KR');
} else if (lang === 'zh') {
$translateProvider.useSanitizeValueStrategy(null);
$translateProvider.preferredLanguage('zh_CN');
} else if (lang === 'es') {
$translateProvider.useSanitizeValueStrategy(null);
$translateProvider.preferredLanguage('es_ES');
if (lang) {
lang = lang.toLowerCase();
if (lang.startsWith('ko')) {
$translateProvider.preferredLanguage('ko_KR');
} else if (lang.startsWith('zh')) {
$translateProvider.preferredLanguage('zh_CN');
} else if (lang.startsWith('es')) {
$translateProvider.preferredLanguage('es_ES');
} else if (lang.startsWith('ru')) {
$translateProvider.preferredLanguage('ru_RU');
}
}
for (var langKey in locales) {

10
ui/src/app/profile/profile.controller.js

@ -40,15 +40,19 @@ export default function ProfileController(userService, $scope, $document, $mdDia
function loadProfile() {
userService.getUser(userService.getCurrentUser().userId).then(function success(user) {
vm.profileUser = user;
vm.profileUser.lang = $translate.use();
if (!vm.profileUser.additionalInfo) {
vm.profileUser.additionalInfo = {};
}
if (!vm.profileUser.additionalInfo.lang) {
vm.profileUser.additionalInfo.lang = $translate.use();
}
});
}
function save() {
userService.saveUser(vm.profileUser).then(function success(user) {
$translate.use(vm.profileUser.lang);
$translate.use(vm.profileUser.additionalInfo.lang);
vm.profileUser = user;
vm.profileUser.lang = $translate.use();
$scope.theForm.$setPristine();
});
}

2
ui/src/app/profile/profile.tpl.html

@ -42,7 +42,7 @@
</md-input-container>
<md-input-container class="md-block">
<label translate>language.language</label>
<md-select name="language" ng-model="vm.profileUser.lang">
<md-select name="language" ng-model="vm.profileUser.additionalInfo.lang">
<md-option ng-repeat="lang in vm.languageList" ng-value="lang.value">
{{lang.name | translate}}
</md-option>

Loading…
Cancel
Save