Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lmislm/vue-i18n-getchinese

scan .vue, export Chinese Text Json and set $t() by Chinese key
https://github.com/lmislm/vue-i18n-getchinese

chinese-translation gettext i18n tools vue2

Last synced: about 1 month ago
JSON representation

scan .vue, export Chinese Text Json and set $t() by Chinese key

Awesome Lists containing this project

README

        

# 说明
项目处于`dev状态`,没有完善一键运行脚本,可以提供简单的脚本思路。

**用法:** 可以拷贝本项目文件中到指定项目中,然后`运行`。

scan .vue, export Chinese Text Json and set $t() by Chinese key

提取vue文件中的中文字符到一个指定的json文件格式中,并将原有的字符串加上vue-i18n的$t()或者this.$t()规则。

以中文字符作为key。
## 运行
ts-node ./src/bin/index.ts tests/
## 遗留问题:
- [ ] 文字中间有变量,如: `试用期剩余{{leftDays}}天`,被替换为`{{$t('试用期剩余')}}{{$t('天')}}`
- [ ] 文字中间有页面标签,如:`升级为正式版需保证账户余额达到{0}元,请前往账户中心充值。`,作为json文件中的key时有符号问题。
- [ ] 文字中间变量应该加转义符号,如:"当前余额不足,请联系"{0}"的超级管理员充值",应该为"当前余额不足,请联系{0}的超级管理员充值"。
- [ ] 两个文件的JSON被合并到一个文件中,导致一个文件有两个`[{}]`、`[{}]`。
- [ ] 多变量替换时,出现乱码,如:`let content = $\{this.packageName\[discount\]\},文档导出${discount * 10}折,${formatTime}到期`,被替换为`let content = this.$t('{0},文档导出{1}折,{2}到期', [this.packageName[discount],discount * 10$$%33%$$formatTime])`,应该为:`let content = this.$t('{0},文档导出{1}折,{2}到期', [this.packageName[discount],discount * 10,formatTime])`
- [ ] 变量间隔替换问题,如:`

文档优惠({{discount * 10}}折):-{{(totalPrice - discountPrice) | priceFormat}}
`,被替换为`
{{$t('文档优惠(')}}{{$t('折):-')}}scount * 10}}折):-{{(totalPrice - discountPrice) | priceFormat}}
`
- [ ] `jsx`语法不支持,如:
```javascript
renderTimeHeader (h, { column, $index }) {
// element 2.4.2不支持slot header
return (

开始日期


结束日期

)
}
```
## ToDo
- [ ] 一键脚本
- [ ] 出现国际化特征文案如`$t() `字符的不再次进行替换成`$t($t())`
- [ ] 选出迭代更新的文件
- [ ] key值转为小写填充到vue文件中

# 贡献
项目核心代码来自:**https://github.com/laden666666/vue-i18n-tools**

本项目只是`修复部分bug`,并进行了多文件提取中文字符串和回填字符串的`脚本化`,当初并没有考虑到fork,等到想fork再改的时候已经晚了,特此说明。

更多内容还**请关注:** https://github.com/laden666666/