分享一个 VSCode 翻译插件(du-i18n)

8,210 阅读5分钟

如果你还在为翻译而烦恼,今天给你安利一波翻译插件,让你的工作效率飞跃~

du i18n翻译插件为本地开发工作提供敏捷的开发模式,提供扫描中文、提取文案、文案回显、同步翻译、文案上传、拉取线上文案、文案漏检、切换语言以及分析统计等功能。兼容vue2,vue3,react,同时满足不同阶段多语言发展的开发模式,无论是本地保存文案模式,还是线上保存文案模式皆可适用。

项目地址:github.com/ctq123/du-i…

1. 功能

  • 支持文案回显

  • 支持一键扫描中文

  • 支持中文提取到指定文件

  • 支持本地或远程在线翻译

  • 支持文案上传到远程服务

  • 支持拉取线上文案,定位文案的代码位置

  • 支持翻译漏检功能

  • 支持语言切换显示

  • 支持分析统计

  • 支持配置化,满足不同开发场景

  • 更多新增功能请看(麻烦点个赞):github.com/ctq123/du-i…

2. 技术栈

  • i18n + vue + js/ts
  • i18n + vue3 + js/ts
  • i18n + react + js/ts

3. 兼容性

开发模式:支持多种不同阶段多语言发展的开发模式,保存在本地的模式,保存在线上的模式; 技术栈:兼容vue2,vue3,react(含js和ts)

4. 安装与配置

1)安装du-i18n插件,输入du i18n即可搜索

image.png

2)配置 安装好之后,点击设置,自动生成配置文件du-i18n.config.json

序号字段说明配置内容备注
1quoteKeys引用key集合["this.t","t", "t", "i18n.t"]可以配置引用key
2defaultLang默认显示语言'zh'默认取tempLangs第一个元素
3tempLangs扩展语言集合['zh', 'en']扩展语言集合
4transSourcePaths翻译源文件路径/src/i18n/source/本地同步翻译的源文案文件夹,中文作为key,翻译对的内容作为value,如{"你好": "hello"},文件名即是语言(如/i18n/source/en.json),同时会自动与线上已有的翻译源合并,线上的优先级更高
5tempPaths新增翻译文案路径/src/i18n/temp/新增翻译文案的文件夹,默认生成随机文件,可通过tempFileName指定固定文件
6tempFileName翻译指定生成文件新增翻译文案的文件,若不指定,每次生成随机文件名
7multiFolders复杂文件夹['src', 'pages']复杂文件夹,用于分割模块
8uncheckMissKeys跳过翻译漏检-key集合[]设置的key,会跳过翻译漏检机制,用于打标某些key空值是合法的
9isOverWriteLocal是否覆盖本地已填写的翻译false是否覆盖本地用户已填写的翻译,默认false,若设置为true,用户即使填写了会被远程的文案覆盖
......
15bigFileLineCount大文件行数1000可自定义大文件行数
17langPaths拆分语言文件路径/src/i18n/locale/本地使用,线上的忽略,对本地生成的语言包,按照语言拆分成多个语言json文件,文件名即为语言
18isSingleQuotekey的引用是单引号还是双引号truekey的引用是单引号还是双引号,默认是单引号
19isOnlineTrans是否支持在线翻译true直接调用百度在线翻译
……

5. 使用

1)回显文案

2)扫描中文

在/src/i18n/temp/自动生成随机文件,路径和文件名都可以自主配置,生成随机文件名主要是解决代码冲突问题

3)线上翻译
分三种场景:
1)场景1:接入deyi,这种场景下,会直接调用deyi上该项目的已有的文案进行翻译;
2)场景2:没有接入deyi,创建本地翻译源文案/src/i18n/source/,会采用这里的翻译源进行翻译,如下图;
3)场景3:没有接入deyi,直接调用百度在线翻译API进行翻译,需要配置isOnlineTrans=true;

下面是直接调用百度在线翻译的场景:

理论上可以进行任意的语言转换(比如中文翻译英文,日语翻译韩语),只要切换默认语言即可,下面就以英文翻译其他语言为例,如图

切换英文en,以英文翻译其他语言,如图

更多的语言code请参考fanyi-api.baidu.com/doc/21 ,在配置文件du-i18n.config.json中配置tempLangs扩展语言code即可。

4)翻译漏检

主要用于检查翻译遗漏情况,哪些没有翻译的文案会检测出来

5)批量操作

如批量扫描中文 会将选择的文件夹中所有文件进行扫描中文,提取中文操作

6)语言切换

6. 常见问题

1)react项目中如何配置quoteKeys?

答:原则上你可以配置任何的key,但需要注意,在js/ts文件中,默认引用最后一个key。比如quoteKeys: ["props.t", "i18n.t"],那么jsx/tsx中引用key是props.t,而ts/js则是i18n.t。

2)是否支持将各种文件拆分一个个单独的语言文件?

答:支持,你可以集中在其中一个json文件,也可以按语言拆分不同json文件,这些都是可以配置的。

如遇任何问题,欢迎咨询。

项目开源地址:github.com/ctq123/du-i…

该项目开源不久,还没这篇博客老😓,如该项目对您有帮助,也欢迎大家在github中给个星,您的支持是我努力前行的最大动力!!!