基于 AST 的前端中文迁移国际化代码提取替换工具

111 天前
 lisongeee

源代码 -> https://github.com/lisonge/i18n-ast-convert

leader 叫我写用来给公司项目快速迁移用的,个人感觉效果还不错,开源出来给大家参考参考

基于 AST 的中文迁移国际化代码提取替换工具

表达式 提取模版 替换结果
'苹果' 苹果 $t('key')
a+'个苹果' {0}个苹果 $t('key', [a])
`${a}个苹果和${b}个香蕉${c}` {0}个苹果和${1}个香蕉${2} $t('key', [a, b, c])
a+'个苹果和'+b+'个香蕉'+c {0}个苹果和${1}个香蕉${2} $t('key', [a, b, c])
<div title="苹果" /> 苹果 <div :title="$t('key')" />
<div>{{a}}个苹果</div> {0}个苹果 <div>{{$t('key', [a])}}</div>

以及它们互相连续和嵌套的情况

使用

安装

git clone https://github.com/lisonge/i18n-ast-convert.git
cd i18n-ast-convert
pnpm i

运行

pnpm start -d your-project-path

这将自动转换该项目代码并生成 zh-CN.json 文件

1786 次点击
所在节点    分享创造
4 条回复
shylockhg
110 天前
哥们真胆大啊,公司项目开源了。
snarkprayer
110 天前
能自动添加 useTranslation 吗?
lisongeee
110 天前
@snarkprayer #2

这个只会在当前文件顶部添加一条导入语句,因为普通的 js 文件(非组件)在模块作用域 也有转换

你说的这个要自定义判断特定作用域实现
7gugu
74 天前
正想着做这么一个工具了,没想到立刻就有人做了,太棒了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1134439

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX