Google's ML Kit On-Device Translation for Flutter
Google’s ML Kit On-Device Translation for Flutter
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.
Usage
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()
onDeviceTranslator.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.
Contributing
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.