Google’s ML Kit On-Device Translation for Flutter

Pub Version analysis Star on Github License: MIT

A Flutter plugin to use Google’s ML Kit On-Device Translation to dynamically translate text between more than 50 languages.

Getting Started

Before you get started read about the requirements and known issues of this plugin here.

Usage guidelines for ML Kit on-device translation

In order to use Google’s on-device Translation API in your application, you need to comply with the following guidelines. These guidelines may change from time to time, and without prior notice from Google. Your continued use of the on-device Translation API is contingent upon your adherence to these guidelines. If you’re uncomfortable with any of these branding guidelines, discontinue your use of the API and contact Google with your concerns. See more about the usage guidelines here.

Supported languages

ML Kit can translate between the following languages.


On-Device Translation

Create an instance of OnDeviceTranslator

final TranslateLanguage sourceLanguage;
final TranslateLanguage targetLanguage;

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

Process text

final String response = await onDeviceTranslator.translateText(text);

Make sure you download both source and target language models before translating any text.

Release resources with close()


Managing remote models

Create an instance of model manager

final modelManager = OnDeviceTranslatorModelManager();

Check if model is downloaded

final bool response = await modelManager.isModelDownloaded(TranslateLanguage.english.bcpCode);

Download model

final bool response = await modelManager.downloadModel(TranslateLanguage.english.bcpCode);

Delete model

final bool response = await modelManager.deleteModel(TranslateLanguage.english.bcpCode);

Example app

Find the example app here.


Contributions are welcome. In case of any problems look at existing issues, if you cannot find anything related to your problem then open an issue. Create an issue before opening a pull request for non trivial fixes. In case of trivial fixes open a pull request directly.


View Github