开发Android studio 插件:项目国际化与Excel文件双向导入,并支持在线翻译。

开发一个将Android项目的国际化资源与Excel表格互导的插件

  • 安装使用方式
  • 插件开发流程
  • 国际化资源与Excel互导脚本开发
  • 当一个项目从非国际化(只有单言语类型)转向国际化(多语言支持)亦或项目过于庞大Module数量众多每期迭代都需要从各个Module抽取和填补翻译时就会有了个很烦恼的事情,这么多的语言资源靠手动整理那得到猴年马月,等整理完也练就了一双麒麟臂了。(以上纯属抱怨可忽略)😄

    言归正传,如同以上机械式工作作为一名程序猿当然是交给程序去处理喽,所以需要写一个能够遍历读取识别并提取项目中的语言资源文件,并将资源导出成Excel文件以方便交给其他工具人(手动狗头)进行翻译的脚本,翻译完成后还需要将Excel文件转换成项目中的资源格式并原路存储进去。为了更加方便的在各个项目中使用当然还是把上面写的脚本套上Intellij plugin的皮囊一起食用更佳。

    支持功能:

  • 将项目的res->values-xx-> strings.xml资源导出至excel文件(请勿修改表格的格式)
  • 将excel文件文件中的资源导回至项目中(资源会原路径写入)
  • 支持导出资源时自动在线翻译缺失的语言类型资源,并写入Excel中。(在线翻译使用的百度API,大量翻译可能会限制IP)
  • 支持将Excel导回项目中时自动补全缺失的语言资源,以Excel中已存在的资源为准。
  • 支持Excel导回项目时对资源中的 占位符进行修正,eg:(% S,s%,% D d%)修正 (%s,%d)。一般这种异常占位符由机器翻译引起。
  • 支持自定义选择导入\导出Module
  • 支持自定义选择导入\导出语言类型
  • 支持导入时自动创建缺失的语言类型对应的资源文件以及文件夹
  • 支持数组类型资源
  • 支持导出的资源使用颜色高亮状态 新增 覆盖 异常
    Tip:当前插件v1.0.1版本未经过大量测试,所以使用前务必先提交项目代码,以防不必要的损失。
    

    安装使用方式

    在线搜索 "LangResExport"

    插件jar包下载地址:https://github.com/LucasDevelop/LangTransExcel/blob/master/LangTransExcel-V1.0.1.zip
    使用本地安装,随后重启IDE。

    如果插件要可安装在最近android studio版本请务必配置红框内容,否则会导致无法安装在Android studio上。
    intellij {
    version = '2020.1' // 因为Android Studio 4.1是基于IDEA 2020.1 Community版本开发的,所以这里调试也指定为此版本
    plugins = ['android']
    patchPluginXml {
    changeNotes = """
    V1.0.0:实现基本双向导入功能.

    <em></em>"""
    sinceBuild = '191' // 插件适用的IDEA版本范围,此范围基本涵盖了Android Studio最近两三年的版本
    untilBuild = '212.*'

    主要是基于poi和dom4j的API进行文件操作,API 对应的Gradle依赖如下
    implementation group: 'org.apache.poi', name: 'poi', version: '3.9'
    // https://mvnrepository.com/artifact/org.dom4j/dom4j
    implementation group: 'org.dom4j', name: 'dom4j', version: '2.1.1'
    implementation group: 'jaxen', name: 'jaxen', version: '1.2.0'