kiwi icon indicating copy to clipboard operation
kiwi copied to clipboard

推荐下java工程的国际化解决kiwi-java

Open zt8989 opened this issue 2 years ago • 0 comments

kiwi-java是受 Kiwi-国际化全流程解决方案启发的项目

kiwi-java

kiwi-java是一个智能国际化java工程的一个工具,采用groovy编写

智能翻译

kiwi-java使用ast解析完成翻译,可以识别以下内容并跳过翻译

  • 注释
  • log中的中文
  • 配置文件中排除的中文
  • 参与业务逻辑的中文比如 “中文”.equsals(“中文”)
  • 正则匹配的中文字符(只包含标点)
  • 存在于注解中的中文
  • 存在于枚举的中文
  • 注释中添加了kiwi-disable-method

智能转换

kiwi-java可以将特定语法转换成适应国际化的语法

  • 拼接的文案。"用户" + user.name + "不能为空",会做占位符转换, 变成"用户{0}不能为空", 然后替换成对应的code
  • 注解中的文案。 @NotNull(message = "用户不能为空"),替换成@NotNull(message = "{user_name_not_empty}")
  • MessageFormat.format中的文案。MessageFormat.format("用户名{0}不能为空", user.name)替换成I18nUtils.getMessage("user_name_not_empty", new Object[]{ user.name })。
  • 字段中的字符串。private static String abc = "你好"替换成
private String getAbc(){
  return I18nUtils.getMessage("hello")
}

地址:https://github.com/zt8989/kiwi-java

zt8989 avatar Jul 20 '22 02:07 zt8989