我有一个Jhipster应用程序,并且已经更改了应用程序中的默认语言以使用法语。
在 app.js :
$translateProvider.preferredLanguage('fr');
但我无法更改为用户设置的语言。我使用的是使用应用程序创建的默认用户帐户:" user"。 当我登录应用程序并将语言更改为法语并保存用户信息时,默认的用户表不会更改。所以当我再次登录时,语言是英语。
lang_key 字段在表格中仍为 en 。
您知道如何更改用户的语言吗?
谢谢,
答案 0 :(得分: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'
在这种情况下,始终是法语
答案 1 :(得分: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中(通过从userDTO获取langKey来添加langKey):
userService.updateUserInformation(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail(), userDTO.getLangKey());
<强> settings.controller.js 强>
最后在设置控制器中设置正在使用的语言(在获取帐户之后)
$scope.settingsAccount = account;
$scope.settingsAccount.langKey = $translate.use();
您需要将 $ translate 添加到控制器的function参数中。