check browser locale and add locale setting to profile

This commit is contained in:
SeungJu Lee 2017-03-21 11:16:47 +09:00 committed by Kwon, Yeong-Eon
parent 315757ff8e
commit 7490e10882
5 changed files with 792 additions and 764 deletions

View File

@ -15,6 +15,7 @@
*/
import injectTapEventPlugin from 'react-tap-event-plugin';
import UrlHandler from './url.handler';
import addLocaleKorean from './locale/locale.constant-ko';
/* eslint-disable import/no-unresolved, import/default */
@ -48,6 +49,14 @@ export default function AppConfig($provide,
$translateProvider.useMissingTranslationHandlerLog();
$translateProvider.addInterpolation('$translateMessageFormatInterpolation');
addLocaleKorean(locales);
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');
}
for (var langKey in locales) {
var translationTable = locales[langKey];
$translateProvider.translations(langKey, translationTable);

File diff suppressed because it is too large Load Diff

View File

@ -774,6 +774,11 @@ export default angular.module('thingsboard.locale', [])
"create-new-widget-type": "Create new widget type",
"widget-type-file": "Widget type file",
"invalid-widget-type-file-error": "Unable to import widget type: Invalid widget type data structure."
},
"language": {
"language": "Language",
"en_US": "English",
"ko_KR": "Korean"
}
}
}

View File

@ -20,25 +20,29 @@ import changePasswordTemplate from './change-password.tpl.html';
/* eslint-enable import/no-unresolved, import/default */
/*@ngInject*/
export default function ProfileController(userService, $scope, $document, $mdDialog) {
export default function ProfileController(userService, $scope, $document, $mdDialog, $translate) {
var vm = this;
vm.profileUser = {};
vm.save = save;
vm.changePassword = changePassword;
vm.languageList = {en_US: {value: "en_US", name: "language.en_US"}, ko_KR: {value : "ko_KR", name: "language.ko_KR"}};
loadProfile();
function loadProfile() {
userService.getUser(userService.getCurrentUser().userId).then(function success(user) {
vm.profileUser = user;
vm.profileUser.lang = $translate.use();
});
}
function save() {
userService.saveUser(vm.profileUser).then(function success(user) {
$translate.use(vm.profileUser.lang);
vm.profileUser = user;
vm.profileUser.lang = $translate.use();
$scope.theForm.$setPristine();
});
}

View File

@ -40,6 +40,14 @@
<label translate>user.last-name</label>
<input name="lastName" ng-model="vm.profileUser.lastName">
</md-input-container>
<md-input-container class="md-block">
<label translate>language.language</label>
<md-select name="language" ng-model="vm.profileUser.lang">
<md-option ng-repeat="lang in vm.languageList" ng-value="lang.value">
{{lang.name | translate}}
</md-option>
</md-select>
</md-input-container>
<md-button ng-disabled="loading" ng-click="vm.changePassword($event)"
class="md-raised md-primary">{{ 'profile.change-password' | translate }}
</md-button>