初步编写IDEA\AndroidStudio翻译插件

本文档介绍了如何开发IDEA和AndroidStudio的翻译插件,基于有道翻译API,通过GSON进行JSON解析。首先,需要在IDEA中创建插件工程,并配置plugin.xml。接着,创建Action类并实现翻译功能,调用有道API并显示翻译结果。最后,编译生成安装包,供个人使用。
摘要由CSDN通过智能技术生成

声明:作者是根据 Hongyang的博客自己实践之后,根据自己的理解写的,有什么不对的地方还望指正。
先放两张效果图
en2cn cn2en

一、准备
  • 由于AndroidStudio不具备开发插件的功能,需要安装IDEA
  • 翻译使用的是有道的翻译接口,需要申请,接口申请的网址点这里
  • json解析使用的是GSON
二、创建工程

在此处创建的plugin工程,如下图所示
左侧选择Itellij Platform Plugin
填写完工程名之后, 创建的工程结构如下所示
这里写图片描述
其中plugin.xml就和j2ee中web.xml功能类似,是配置插件属性的地方。

三、撸代码

首先,new一个Action,在弹出界面简单填写类的信息,如下图
这里写图片描述
其中第一部分是类相关的信息,ActionID表示一个独一无二的名字,就像Android清单文件中的包名一样。
第二部分是将这个功能添加到哪个菜单中去,当前选择的是添加到Edit菜单中并且作为第一个子菜单。
第三部分是这个功能的快捷键,可将光标置于输入框内,点击键盘进行输入
可以看到在生成的类中有public void actionPerformed(AnActionEvent e) 这个方法,关键的地方就在这个方法中,在IDE中几乎所有操作都可以在此方法中捕捉到。如下图
actionPerformed(AnActionEvent e)
首先获取选中的文字,调用以下api

    final Editor mEditor = e.getData(PlatformDataKeys.EDITOR);
        if (null == mEditor) {
            return;
        }
        SelectionModel model = mEditor.getSelectionModel();
        final String selectedText = model.getSelectedText();
        if (TextUtils.isEmpty(selectedText)) {
            return;
        }

获取到选中的文字之后,就可以调用申请到的有道翻译接口进行翻译,要翻译的文本,必须是UTF-8编码,字符长度不能超过200个字符,需要进行urlencode编码。翻译完成之后就可以以一个类似popupWindow的窗口将接口展示出来了。

 private void showPopupBalloon(final Editor editor, final String result) {
        ApplicationManager.getApplication().invokeLater(new Runnable() {
            public void run() {
                JBPopupFactory factory = JBPopupFactory.getInstance();
                factory.createHtmlTextBalloonBuilder(result, null, new JBColor(new Color(186, 238, 186), new Color(73, 117, 73)), null)
                        .setFadeoutTime(5000)
                        .createBalloon()
                        .show(factory.guessBestPopupLoc
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值