Browse Source

1月15日,用户登录信息的多语言翻译

milestone-20260113-现金管理0109
wangguorui 1 day ago
parent
commit
dc91786fc1
  1. 65
      src/main/java/com/example/demo/controller/coin/AdminController.java

65
src/main/java/com/example/demo/controller/coin/AdminController.java

@ -50,9 +50,18 @@ public class AdminController {
public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) { public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) {
try { try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将输入的翻译字段转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertLoginFieldsToChinese(admin, languageCode);
}
admin = adminService.login(admin); admin = adminService.login(admin);
String token = JWTUtil.createJWT(admin); String token = JWTUtil.createJWT(admin);
// System.out.println(token);
// 对返回的管理员信息进行多语言转换
translateAdminInfoForLogin(admin, lang);
admin.setPassword(null); admin.setPassword(null);
return Result.success(token, admin); return Result.success(token, admin);
@ -133,6 +142,37 @@ public class AdminController {
} }
/** /**
* 为登录接口翻译管理员信息
*/
private void translateAdminInfoForLogin(Admin admin, String lang) {
if (admin != null) {
// 翻译市场权限信息如果markets是逗号分隔的多个市场
if (admin.getMarkets() != null && !admin.getMarkets().isEmpty()) {
String[] markets = admin.getMarkets().split(",");
StringBuilder translatedMarkets = new StringBuilder();
for (int i = 0; i < markets.length; i++) {
if (i > 0) {
translatedMarkets.append(",");
}
String translatedMarket = languageTranslationUtil.translate(markets[i].trim(), lang);
translatedMarkets.append(translatedMarket);
}
admin.setMarkets(translatedMarkets.toString());
}
// 翻译职位信息
if (admin.getPostiton() != null && !admin.getPostiton().isEmpty()) {
String translatedPosition = languageTranslationUtil.translate(admin.getPostiton(), lang);
admin.setPostiton(translatedPosition);
}
// 翻译备注
if (admin.getRemark() != null && !admin.getRemark().isEmpty()) {
String translatedRemark = languageTranslationUtil.translate(admin.getRemark(), lang);
admin.setRemark(translatedRemark);
}
}
}
/**
* 转换管理员信息的多语言字段 * 转换管理员信息的多语言字段
*/ */
private void translateAdminInfo(Admin admin, String lang) { private void translateAdminInfo(Admin admin, String lang) {
@ -182,6 +222,29 @@ public class AdminController {
} }
/** /**
* 将登录时的翻译字段转换为中文简体
*/
private void convertLoginFieldsToChinese(Admin admin, String languageCode) {
if (admin != null) {
// 登录时通常不需要转换账号字段因为账号是固定标识
// 如果需要对职位信息进行反查如果登录时涉及到职位查询
if (admin.getPostiton() != null && !admin.getPostiton().isEmpty()) {
String chinesePosition = translationService.findChineseSimplifiedByTranslation(
admin.getPostiton(), languageCode);
admin.setPostiton(chinesePosition);
}
// 如果需要对备注信息进行反查
if (admin.getRemark() != null && !admin.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
admin.getRemark(), languageCode);
admin.setRemark(chineseRemark);
}
}
}
/**
* 将翻译后的字段转换为中文简体 * 将翻译后的字段转换为中文简体
*/ */
private void convertTranslatedFieldsToChinese(Admin admin, String languageCode) { private void convertTranslatedFieldsToChinese(Admin admin, String languageCode) {

Loading…
Cancel
Save