Flutter谷歌ML Kit翻译功能插件google_mlkit_translation_no_ios的使用

Flutter谷歌ML Kit翻译功能插件google_mlkit_translation_no_ios的使用

Google’s ML Kit On-Device Translation for Flutter




一个用于在Flutter应用中使用Google的ML Kit离线翻译的插件,支持动态翻译超过50种语言。


开始使用

在开始之前,请阅读此插件的需求和已知问题


使用ML Kit离线翻译的指南

为了在您的应用中使用Google的离线翻译API,您需要遵守以下指南。这些指南可能会随时更改,且无需提前通知Google。继续使用离线翻译API的前提是您必须遵循这些指南。如果您对这些品牌指南有任何不适,请停止使用该API,并通过[a href=“https://developers.google.com/ml-kit/community”]联系Google[/a]。更多关于使用指南的信息可以查看这里


支持的语言

ML Kit可以翻译以下语言


使用方法

离线翻译

创建OnDeviceTranslator实例

final TranslateLanguage sourceLanguage; // 源语言
final TranslateLanguage targetLanguage; // 目标语言

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

处理文本

final String response = await onDeviceTranslator.translateText('Hello World');

注意: 在翻译任何文本之前,请确保已经下载了源语言和目标语言模型。

释放资源

onDeviceTranslator.close(); // 关闭翻译器以释放资源

管理远程模型

创建模型管理器实例

final modelManager = OnDeviceTranslatorModelManager();

检查模型是否已下载

final bool isDownloaded = await modelManager.isModelDownloaded('en'); // 'en' 是英语的BCP代码

下载模型

final bool isDownloaded = await modelManager.downloadModel('en'); // 下载英语模型

删除模型

final bool isDeleted = await modelManager.deleteModel('en'); // 删除英语模型

示例代码

完整的示例代码可以在以下位置找到:

https://github.com/bharat-biradar/Google-Ml-Kit-plugin/tree/master/packages/google_ml_kit/example


更多关于Flutter谷歌ML Kit翻译功能插件google_mlkit_translation_no_ios的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter谷歌ML Kit翻译功能插件google_mlkit_translation_no_ios的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


google_mlkit_translation_no_ios 是一个 Flutter 插件,用于在 Android 平台上使用 Google ML Kit 的翻译功能。这个插件目前不支持 iOS 平台,因此它的名称中包含了 no_ios

安装插件

首先,你需要在 pubspec.yaml 文件中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  google_mlkit_translation_no_ios: ^0.0.1

然后运行 flutter pub get 来安装插件。

使用插件

以下是一个简单的示例,展示如何使用 google_mlkit_translation_no_ios 插件进行文本翻译。

import 'package:flutter/material.dart';
import 'package:google_mlkit_translation_no_ios/google_mlkit_translation_no_ios.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: TranslationDemo(),
    );
  }
}

class TranslationDemo extends StatefulWidget {
  [@override](/user/override)
  _TranslationDemoState createState() => _TranslationDemoState();
}

class _TranslationDemoState extends State<TranslationDemo> {
  final _translationController = TextEditingController();
  String _translatedText = '';

  Future<void> _translateText() async {
    // 创建翻译器实例
    final translator = OnDeviceTranslator(
      sourceLanguage: TranslateLanguage.english,
      targetLanguage: TranslateLanguage.spanish,
    );

    // 翻译文本
    final translatedText = await translator.translateText(_translationController.text);

    setState(() {
      _translatedText = translatedText;
    });

    // 释放资源
    translator.close();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('ML Kit Translation Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _translationController,
              decoration: InputDecoration(
                labelText: 'Enter text to translate',
              ),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _translateText,
              child: Text('Translate'),
            ),
            SizedBox(height: 20),
            Text('Translated Text: $_translatedText'),
          ],
        ),
      ),
    );
  }
}
回到顶部