Skip to content

HJunLong601/AndroidCodeTranslation

Repository files navigation

Android 原生工程 中文硬编码抽取

将工程里面的中文硬编码抽取到string

功能支持

  • java/kotlin代码
  • xml 布局文件
  • kotlin模版字符串
  • 自动生成xmlkey值、防重复策略
  • 自动替换引用
  • 自动导包
  • 生成新增的strings文件内容 拷贝到粘贴板

使用步骤

  • 使用步骤
  1. 初始化配置,配置路径、是否仅扫描等
val modulePath = "E:\\AndroidProject\\LWanAndroid\\commonlib"
// 预设的 中文 - key 映射表
val keyMap = LinkedHashMap<String, String>()
val presetKeyMap = LinkedHashMap<String, String>()

val config = TranslateConfig(presetKeyMap, keyMap, modulePath, false, false)
  1. 配置处理流程 包括 初始化、设置预置key、处理java、kt、XML文件以及结果输出
        val processors = arrayListOf(
        InitProcessor(), // todo:   必须 初始化配置 ,在里面设置翻译实例实现
        PresetKeyProcessor(arrayOf(XMLKeyParser("$modulePath/src/main/res/values/strings.xml"))), // 可选 预设的key值
        XMLFileProcessor(), // 可选 转换 xml 代码
        CodeFileProcessor(filterFileName), // 可选 转换 kotlin、java代码
        ResultOutputProcessor(), // 必须 结果输出,可自行修改为json等格式
//                GenerateEnglishProcessor() // 可选,输出英文
)
  1. 配置预设的key值,默认为模块的strings文件
  (arrayOf(XMLKeyParser("$modulePath/src/main/res/values/strings.xml"))), // 可选 预设的key值
  1. 替换百度翻译api的appid和key,或者自行实现翻译功能,默认提供百度、随机key生成,参考ITranslateAPI和子类
   InitProcessor() // todo:   必须 初始化配置 ,在里面设置翻译实例实现
  1. 配置自动导包的内容,根据项目自行实现
// todo: 根据项目 返回对应的生成的字符串模版
// todo: 根据项目 返回对应自动导入的包
val config = TranslateConfig(presetKeyMap, keyMap, modulePath, { xmlKey: String? ->
    return@TranslateConfig "BaseApplication.getApplication().getString(R.string.$xmlKey)"
},
        importArray = arrayOf("import com.hjl.commonlib.base.BaseApplication", "import com.hjl.commonlib.R")
)
  1. 配置需要过滤的代码文件,默认自带log等,具体参考ICodeStringFilter和子类实现
// TransCodeUtils.kt
// 代码匹配过滤器
val codeFilter = listOf(NoteCodeFilter(), LogCodeFilter())
  1. 运行Main.kt文件,并可以根据项目需要自行新增processor,例如英文的文件输出
  GenerateEnglishProcessor() // 可选,输出英文XML

流程示意

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages