怎么在list中进行翻译

怎么在list中进行翻译
例如一个list中有:[{"action":"add"},{“action”:"eduit"},{},很多]
怎么能把对应的action翻译成中文,例如翻译后:
[{"action":"add","actionName":"新增"},{“action”:"eduit","actionName":"编辑"},{},...]
就是action有好几百个,对应的要翻译也要有几百个。有什么简便的方法吗?
我一开始想把每个定义成一个枚举,
然后遍历;

public enum ActionDescription {


    ADD("add", "新增"),
    EDIT("edit", "编辑");
    ...
}

但是不知道怎么实现?

定义枚举字典库直接翻译,可以参考下;有些异常细节自己完善下,不在赘述

@Getter
public enum ActionDescriptionEnum {
 
 
    ADD("add", "新增"),

    EDIT("edit", "编辑");

    ActionDescriptionEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    private String code;

    private String msg;

    public static ActionDescriptionEnum getEnumByCode(String code) {
        for (ActionDescriptionEnum actionDescriptionEnum : ActionDescriptionEnum.values()) {
            if (StrUtil.equals(code, actionDescriptionEnum.getCode())) {
                return actionDescriptionEnum;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        Stream.of(BillRuleDTO.builder().action("add").build(),BillRuleDTO.builder().action("edit").build())
                .map(billRuleDTO -> {
                    String action = billRuleDTO.getAction();
                    ActionDescriptionEnum actionName = ActionDescriptionEnum.getEnumByCode(action);
                    billRuleDTO.setActionName(actionName.getMsg());
                    return billRuleDTO;
                }).forEach(System.out::println);
    }
}

创建一个翻译字典,通过字典来映射到需要翻译的文字内容。

private Map<String,String> actionMap = new HashMap<>(); 
// 记得初始化actionMap, key是"action", value是对应中文意思

public void translateAction(List<Map<String,String>> list) {
  for (Map<String,String> item : list) {
    if (item.containsKey("action")) {
      String action = item.get("action");
      if (actionMap.containsKey(action)) {
        item.put("actionName", actionMap.get(action));
      }
    }
  }
}

```java



```

使用枚举的话可以类似这样,通过getName方法来翻译action


public enum ActionDescription {
    ADD("add", "新增"),
    EDIT("edit", "编辑");

    String action;
    String name;

    private static ActionDescription[] values = values();

    ActionDescription(String action, String name) {
        this.action = action;
        this.name = name;
    }

    public static String getName(String action) {
        if (action == null) {
            return null;
        }

        for (ActionDescription value : values) {
            if (action.equals(value.action)) {
                return value.name;
            }
        }
        return null;
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^