IFreeOvO / i18n-cli

支持将vue、react项目里的中文替换成 i18n 国际化标记,并支持自动翻译的命令行工具
MIT License
119 stars 36 forks source link

修复一些使用过程中发现的问题 #101

Closed KennanChan closed 11 months ago

KennanChan commented 11 months ago

问题描述如下: 1、翻译词条的key和value,目前的处理混在一起,会导致i18n的用法(我对接的i18next,主要是字符串模板,双花括号的)与js语法(Vue template 双花括号执行代码)出现冲突,虽然原仓库针对的是i18n,但是我依然觉得key和value的处理分开会更好,因此抽提了相关修改做PR。 2、从@babel/core中引入types,解决t没有类型支持的问题,同时修复部分相关用法 3、对js代码的处理,考虑了中文作为对象Key的情况,解决特定情况下生成的代码出现语法错误的问题

IFreeOvO commented 11 months ago

第3点的'特定情况',能举个例子么

KennanChan commented 11 months ago

有的代码会使用中文作为对象属性key,比如:

const statusIconMap = {
   "等待": "pending.png",
   "上传中": "uploading.png"
}

这里面的中文如果只当作普通的StringLiteral处理的话,会导致AST节点错误无法生成代码

IFreeOvO commented 11 months ago
const statusIconMap = {
   "等待": "pending.png",
   "上传中": "uploading.png"
}

这个我本地验证下并没有出现报错。转换后中文能提取到json,不过中文没有被$t替换。可以加q群46847850讨论下