2015-05-19 3 views
0

У меня есть приложение Jhipster и уже изменил язык по умолчанию в приложении, чтобы использовать французский.Jhipster update i18n язык для пользователя

В app.js:

$translateProvider.preferredLanguage('fr'); 

Но я не могу изменить язык, который был установлен для пользователя. Я использую учетную запись пользователя по умолчанию, созданную с приложением: «пользователь». Когда я вошел в систему и изменил язык на французский и сохранил информацию о пользователе, таблица пользователя по умолчанию не будет изменена. Поэтому, когда я снова вошел в систему, язык английский.

lang_key Поле по-прежнему ru в таблице.

Вы знаете, как изменить язык для пользователя?

Спасибо,

ответ

0

Похоже, что это не реализован в Jhipster. Таким образом, lang_key устанавливается только при создании нового пользователя. я добавил его к моему заявлению, выполнив следующие действия:

ПРИМЕЧАНИЕ: Это изменение языка текущего пользователя, установив его на текущем языке использования в приложении.

UserService.java

Добавьте langKey методу:

public void updateUserInformation(String firstName, String lastName, String email, String langKey) { 
    ... 
    currentUser.setLangKey(langKey); 
    ... 
} 

AccountResource.java

В Post Request (добавить langKey, получая его из userDTO):

userService.updateUserInformation(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail(), userDTO.getLangKey()); 

settings.controller.JS

Наконец в контроллере настройки установить язык в использовании (только после того, как счет забирается)

$scope.settingsAccount = account; 
$scope.settingsAccount.langKey = $translate.use(); 

Вам нужно будет добавить $ перевести к параметру функции контроллера.

0

Если вы хотите установить язык для каждого пользователя, вы можете установить его в LiquiBase, users.csv. И в этом файле найдите столбец - "lang_key". и установить язык. По умолчанию это «en».

Я сделал, что всегда был только один язык. В любых ролях и для любых пользователей. Найти этот блок в app.js:

$translateProvider.useLoader('$translatePartialLoader', { 
      urlTemplate: 'i18n/{lang}/{part}.json' 
     }); 

и изменение линии

urlTemplate: 'i18n/{lang}/{part}.json' 

в

urlTemplate: 'i18n/fr/{part}.json' 

В этом случае всегда будет французский язык

+0

Хорошо, спасибо. Я собираюсь изучить его, чтобы проверить, есть ли другой способ. Ваше решение, похоже, заставляет шаблон использовать только «fr», но я скорее хочу найти решение более настраиваемым. – Sqrt

+0

Если вы его нашли - скажите, пожалуйста)) –

Смежные вопросы