字节笔记本

2026年2月22日

google_mlkit_translation:Flutter 设备端翻译插件

本文介绍 google_mlkit_translation,一个 Flutter 插件,用于在设备端实现 Google ML Kit 的文本翻译功能,支持超过 50 种语言之间的动态翻译。

项目简介

google_mlkit_translation 是由 flutter-ml.dev 维护的开源 Flutter 插件,截至目前已获得 64 个 likes 和超过 20,000 次下载。该插件封装了 Google ML Kit 的设备端翻译 API,让 Flutter 开发者能够轻松集成强大的机器翻译功能到移动应用中。

核心特性

  • 设备端翻译:无需网络连接即可翻译文本,保护用户隐私
  • 多语言支持:支持超过 50 种语言之间的相互翻译
  • 模型管理:提供完整的语言模型下载、检查和删除功能
  • 跨平台:同时支持 Android 和 iOS 平台
  • MIT 开源协议:可自由用于商业项目

技术栈

  • Flutter:跨平台移动应用框架
  • Google ML Kit:Google 的移动端机器学习 SDK
  • Dart:Flutter 开发语言
  • 平台通道:用于 Flutter 与原生平台通信

安装指南

依赖配置

pubspec.yaml 中添加依赖:

yaml
dependencies:
  google_mlkit_translation: ^0.13.1

Android 配置要求

  • minSdkVersion: 21
  • targetSdkVersion: 35
  • compileSdkVersion: 35

iOS 配置要求

  • 最低 iOS 部署目标:15.5
  • Xcode 15.3.0 或更新版本
  • Swift 5

重要提示:ML Kit 不支持 32 位架构(i386 和 armv7),需要在 Xcode 中排除 armv7 架构。

配置 ios/Podfile

ruby
platform :ios, '15.5'

$iOSVersion = '15.5'

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7"
    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
  end

  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
      end
    end
  end
end

快速开始

创建翻译器实例

dart
import 'package:google_mlkit_translation/google_mlkit_translation.dart';

final TranslateLanguage sourceLanguage = TranslateLanguage.english;
final TranslateLanguage targetLanguage = TranslateLanguage.chinese;

final onDeviceTranslator = OnDeviceTranslator(
  sourceLanguage: sourceLanguage,
  targetLanguage: targetLanguage,
);

翻译文本

dart
final String text = 'Hello, world!';
final String response = await onDeviceTranslator.translateText(text);
print(response); // 输出: 你好,世界!

释放资源

dart
onDeviceTranslator.close();

模型管理

翻译前需要确保源语言和目标语言的模型已下载到设备。

创建模型管理器

dart
final modelManager = OnDeviceTranslatorModelManager();

检查模型是否已下载

dart
final bool isDownloaded = await modelManager.isModelDownloaded(
  TranslateLanguage.english.bcpCode,
);

下载模型

dart
final bool success = await modelManager.downloadModel(
  TranslateLanguage.english.bcpCode,
);

删除模型

dart
final bool deleted = await modelManager.deleteModel(
  TranslateLanguage.english.bcpCode,
);

支持的语言

ML Kit 翻译支持超过 50 种语言,包括但不限于:

  • 中文(简体/繁体)
  • 英语
  • 日语
  • 韩语
  • 法语
  • 德语
  • 西班牙语
  • 俄语
  • 阿拉伯语
  • 印地语

完整语言列表请参考 Google 官方文档

使用注意事项

  1. 模型大小:每种语言的模型约占用 30-40MB 存储空间
  2. 首次使用:需要先下载语言模型才能进行翻译
  3. 隐私保护:设备端翻译意味着文本不会发送到 Google 服务器
  4. 使用条款:使用 Google ML Kit 设备端翻译 API 需要遵守 Google 的品牌和使用指南

项目链接

版本信息

  • 当前版本:0.13.1
  • 发布时间:17 天前
  • 许可证:MIT
  • 下载量:20.9k+
分享: