# 插件介绍

MT 管理器的插件系统允许开发者为 MT 扩展功能,创建强大的自定义工具。通过编写插件,您可以添加翻译引擎、扩展文本编辑器等功能,而这些都可以完全由您自己实现。

# 插件可以实现的功能

MT 插件系统提供了多种接口,涵盖翻译、文本编辑等功能。

# 翻译引擎

实现自定义翻译引擎,为 MT 管理器的翻译模式功能和文本输入框的翻译菜单提供服务。

主要接口:

  • TranslationEngine - 基础翻译引擎,逐条翻译文本
  • BatchTranslationEngine - 批量翻译引擎,翻译模式中一次性翻译大量词条,提升翻译效率

应用场景:

  • 对接在线翻译服务(如 Google 翻译、DeepL、百度翻译等)
  • 实现本地翻译引擎
  • 创建专业领域的词汇翻译工具
  • 实现文本转换工具(如大小写转换、繁简转换等)

示例:

public class MyTranslationEngine extends BaseTranslationEngine {
    @Override
    public String name() {
        return "我的翻译引擎";
    }

    @Override
    public List<String> loadSourceLanguages() {
        // 返回支持的源语言列表
        return Arrays.asList("auto", "en", "zh-CN", "ru");
    }

    @Override
    public List<String> loadTargetLanguages(String sourceLanguage) {
        // 返回支持的目标语言列表
        return Arrays.asList("en", "zh-CN", "ru");
    }

    @Override
    public String translate(String text, String sourceLanguage, String targetLanguage) {
        // 实现翻译逻辑(调用翻译 API 或本地翻译)
        String translatedText = callTranslationAPI(text, sourceLanguage, targetLanguage);
        return translatedText;
    }
}

# 文本编辑器扩展

为 MT 管理器的文本编辑器添加自定义功能,提升编辑效率。

主要接口:

  • TextEditorFunction - 快捷功能扩展,在底部功能栏添加自定义编辑操作
  • TextEditorFloatingMenu - 浮动菜单扩展,在选中文本时显示快捷操作
  • TextEditorToolMenu - 工具菜单扩展,在编辑器工具栏添加菜单项

应用场景:

  • 文本处理工具(如正则替换、批量修改、查找替换)
  • 文本加密解密(如 Base64 编解码、AES 加密)
  • 文本分析统计(如字数统计、行数统计)
  • 选中文本快捷操作(如复制、删除、转换)

示例:

public class TextEncryptor extends BaseTextEditorFunction {
    @Override
    public String name() {
        return "Base64 编码";
    }

    @Override
    public boolean supportEditTextView() {
        return true;
    }

    @Override
    public boolean supportRepeat() {
        return false;
    }

    @Override
    public void doFunction(PluginUI pluginUI, TextEditor editor, JSONObject data) {
        // 获取选中的位置
        int start = editor.getSelectionStart();
        int end = editor.getSelectionEnd();
        // 获取选中的文本
        String selected = editor.subText(start, end);
        // Base64 编码
        String encoded = Base64.encodeToString(selected.getBytes(), Base64.DEFAULT);
        // 替换选中文本
        editor.replaceText(start, end, encoded);
    }
}

# 设置界面

创建插件的配置界面,提供设置选项和信息展示功能。

主要接口:

  • PluginPreference - 设置界面构建器,提供开关、输入框、列表等设置选项

应用场景:

  • 配置插件参数(如 API 密钥、服务器地址)
  • 提供功能开关
  • 展示插件信息(如版本、作者、使用说明)
  • 创建多级设置界面

示例:

public class MyPreference implements PluginPreference {
    @Override
    public void onBuild(PluginContext context, Builder builder) {
        builder.title("插件设置");

        builder.addInput("API 密钥", "api_key")
                .defaultValue("")
                .valueAsSummary();

        builder.addSwitch("启用调试模式", "debug_mode")
                .defaultValue(false)
                .summaryOn("已启用")
                .summaryOff("已禁用");
    }
}

# 开发语言支持

MT 插件支持使用主流的 Android 开发语言。

# Java

推荐使用 Java 11 或更高版本进行开发。MT 插件系统支持现代 Java 特性,如 Lambda 表达式、Stream API、var 关键字等。

# Kotlin

完全支持 Kotlin 开发,推荐使用最新稳定版本。

# 语言特性支持

得益于 AGP 的 Desugaring 支持,插件可以使用许多现代 Java 特性,即使运行在低版本 Android 系统上:

  • Java 8+ API(如 Stream、Optional、LocalDateTime)
  • Lambda 表达式和方法引用
  • 接口默认方法
  • Try-with-resources

# 版本要求

开发和运行 MT 插件需要满足以下版本要求。

# MT 管理器版本

  • 最低版本:MT 管理器 2.19.5+
  • 推荐版本:最新稳定版

提示:MT 插件 V3 目前处于测试阶段,正式版发布后此处将更新具体的版本要求。测试期间请参考 Demo 项目 (opens new window) 了解最新版本信息。

# Android SDK 版本

插件编译和运行需要满足以下 Android SDK 要求:

  • minSdk:21(Android 5.0)

# 开发工具版本

  • Android Studio:Hedgehog (2023.1.1) 或更高版本
  • Gradle:由 Android Studio 自动管理
  • AGP (Android Gradle Plugin):8.1.0 或更高版本

# VIP 要求

  • 插件开发和测试需要 MT 管理器 VIP 权限
  • 仅 VIP 用户可以在 MT 管理器中安装和运行插件
  • 非 VIP 用户无法安装插件,即使是自己开发的插件

# 下一步

准备好开始开发 MT 插件了吗?请继续阅读:

# 相关资源

欢迎加入 MT 插件开发 QQ 交流群,与其他开发者交流经验、分享作品!

MT插件V3交流群