一、背景
做国际化的时候,一般至少会做一个英文的翻译。这不是难事,国际化的步骤也简单,无非是所有的地方改成引用string的方式、然后设置环境、保存用户设置信息等,然后把翻译文件给到翻译人员。之后等待许久(一般也要几天吧)后拿到文件替换。哟,格式不对啊,没有大写啊,上千行的英文字母去手动改啊?
于是,算了,还是写个插件来格式化吧。写着写着,就想到,好像还可以做个功能直接将中文翻译成英文啊。So, 那就do吧!
(应该适用于所有IntelliJ 的IDE,在Plugin中搜索ReplaceStrings
)
二、 图示
1. 格式化英文
只做了首个单词的首字母小写转换。(要做非介词外的其它单词首字母大写么?一般不用!)
2. 中文翻译成英文
(ps:上千行的字符串翻译速度要是有gif中表现得那样快么?
答:码啥卡!!! 你以为翻译是从本地数据库掏出来的么:smirk:,一般的话10-20秒差不多吧。)
翻译成中文肯定是要接入api的,这里选用的是有道的api。https://ai.youdao.com/doc.s#docs
然后建个应用得到应用ID和应用密钥,在使用插件的时候填入即可(api的翻译次数及字数限制,个人用一般是足够了)。
3. 开发过程中的小坑
小坑主要是这方面的资料少,需要摸索的地方多,时间有限,以实现功能为主。
a. 安装插件后有报错
安装插件后,IDE会提示重启后才能生效。重启后,可以看到插件安装是否成功,可以通过IDE给出的弹窗信息来看,一般也就是在右下角可以看到。
点开查看:
com.intellij.diagnostic.PluginException: While loading class com.ganshenml.widget.ConsoleWin: com/ganshenml/widget/ConsoleWin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 [Plugin: com.ganshenml.unique.plugin.id]
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:221)
at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:165)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:73)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
譬如:上面就很明确地指出是Java Runtime版本不一致的原因。然后去IntelliJ中更改File->Project Strucature... ->Project等处的版本为一致(或低于要安装插件的的Java Runtime版本),重新打包安装即可。
b. 插件使用时的错误
信息表明没有找到这个类,说明插件包中没有这个jar包。那么在打包的时候将这个jar包添加进lib下并add as library。
三、小结
也没什么特殊的,功能很小,如果对翻译要求不太高,还是对项目的进度有一些促进作用的。测试也不可能太全,若使用过程中有问题的话...
网友评论