一个用于扫描Intl和将中文转为Intl的工具,目前支持三种格式的intl
:
Hzero Intl
格式,即intl.get(code, params).d()
,其导出格式为csv
Umi Intl
格式,目前并没有直接支持其intl.formatMessage
格式,而是需要通过工具函数改为intl.get.d
,其导出格式为JS
对象Vue i18n
格式,即intl(code, params).d()
或this.intl().d()
,导出格式为JSON
由于是使用babel
在语法树的层面对调用表达式进行检测,所以不用考虑注释,字符串不会有引号的问题,不会有代码格式的问题。
代码中有对模板字符串的检测逻辑:
get
中的模板字符串支持插入变量,但该变量必须在该文件的最外层定义,并且为字符串常量d
中的模板字符串同样支持插入变量和表达式,根据intl
的使用规范,d
中插入了变量,必须在get
中的第二个参数提供该变量,这同样在代码中有检测。注意,如果使用了模板字符串中使用了比较复杂的表达式可能会造成问题
我并没有找到合适的Vue AST
工具,目前使用的是vue-eslint-parser
转化为语法树并检测,其中template
中的中文转intl
是手动字符串替换,因为vue-eslint-parser
并没有提供好的工具函数,恼(
Vue
中的script
仍然是使用babel
处理,目前还存在一些问题,比如uniapp
预编译注释的会使babel
解析报错(比如在不同的预编译注释里面重复定义了变量)
electron -- 主线程代码
generate -- 代码或AST节点生成相关
parse -- 代码解析为AST
traverse -- 遍历AST相关
main.ts -- 主线程入口
Manager.ts -- 管理数据的类
src -- 渲染线程代码
Use a package manager of your choice (npm, yarn, etc.) in order to install all dependencies
yarn
Just run start
script.
yarn start
To generate the project package based on the OS you're running on, just run:
yarn package
Pull requests are always welcome 😃.