Jhipster 为用户更新 i18n 语言
Jhipster update i18n language for a user
我有一个 Jhipster 应用程序,并且已经将应用程序中的默认语言更改为使用法语。
在app.js:
$translateProvider.preferredLanguage('fr');
但我无法更改为用户设置的语言。我正在使用通过应用程序创建的默认用户帐户:"user"。
当我登录应用程序并将语言更改为法语并保存用户信息时,默认用户 table 没有更改。所以当我再次登录时,语言是英语。
lang_key字段在table.
中仍然是en
您知道如何更改用户的语言吗?
谢谢,
如果你想为每个用户设置语言,你可以在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'
在这种情况下始终是法语
Jhipster 中似乎没有实现。因此 lang_key 仅在您创建新用户时设置。
我通过执行以下操作将其添加到我的应用程序中:
注意:这是通过应用程序中使用的当前语言设置来更改当前用户的语言。
UserService.java
将 langKey 添加到方法中:
public void updateUserInformation(String firstName, String lastName, String email, String langKey) {
...
currentUser.setLangKey(langKey);
...
}
AccountResource.java
在Post请求中(通过从userDTO获取添加langKey):
userService.updateUserInformation(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail(), userDTO.getLangKey());
settings.controller.js
最后在设置控制器中设置使用的语言(在获取帐户之后)
$scope.settingsAccount = account;
$scope.settingsAccount.langKey = $translate.use();
您需要在控制器的功能参数中添加$translate。
我有一个 Jhipster 应用程序,并且已经将应用程序中的默认语言更改为使用法语。
在app.js:
$translateProvider.preferredLanguage('fr');
但我无法更改为用户设置的语言。我正在使用通过应用程序创建的默认用户帐户:"user"。 当我登录应用程序并将语言更改为法语并保存用户信息时,默认用户 table 没有更改。所以当我再次登录时,语言是英语。
lang_key字段在table.
中仍然是en您知道如何更改用户的语言吗?
谢谢,
如果你想为每个用户设置语言,你可以在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'
在这种情况下始终是法语
Jhipster 中似乎没有实现。因此 lang_key 仅在您创建新用户时设置。 我通过执行以下操作将其添加到我的应用程序中:
注意:这是通过应用程序中使用的当前语言设置来更改当前用户的语言。
UserService.java
将 langKey 添加到方法中:
public void updateUserInformation(String firstName, String lastName, String email, String langKey) {
...
currentUser.setLangKey(langKey);
...
}
AccountResource.java
在Post请求中(通过从userDTO获取添加langKey):
userService.updateUserInformation(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail(), userDTO.getLangKey());
settings.controller.js
最后在设置控制器中设置使用的语言(在获取帐户之后)
$scope.settingsAccount = account;
$scope.settingsAccount.langKey = $translate.use();
您需要在控制器的功能参数中添加$translate。