Jhipster为用户更新i18n语言

时间:2015-05-19 07:50:31

标签: internationalization jhipster

我有一个Jhipster应用程序,并且已经更改了应用程序中的默认语言以使用法语。

app.js

$translateProvider.preferredLanguage('fr');

但我无法更改为用户设置的语言。我使用的是使用应用程序创建的默认用户帐户:" user"。 当我登录应用程序并将语言更改为法语并保存用户信息时,默认的用户表不会更改。所以当我再次登录时,语言是英语。

lang_key 字段在表格中仍为 en

您知道如何更改用户的语言吗?

谢谢,

2 个答案:

答案 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参数中。