ML Kit Natural Language Plugin #

A Flutter plugin to use the ML Kit Natural Language for Firebase API.

For Flutter plugins for other Firebase products, see FlutterFire.md.

Note: This plugin is still under development, and some APIs might not be available yet. Feedback and Pull Requests are most welcome!

To use this plugin, add firebase_mlkit_language as a dependency in your pubspec.yaml file. You must also configure Firebase for each platform project: Android and iOS (see the example folder or https://codelabs.developers.google.com/codelabs/flutter-firebase/#4 for step by step details).

Versions 1.0.0+ use the latest ML Kit for Firebase version which requires a minimum deployment target of 9.0. You can add the line platform :ios, '9.0' in your iOS project Podfile .

Supported Languages #

All the supported languages can be found here.

Furthermore, they can be found within the SupportedLanguages class.

Using the ML Kit Language Identifier #

1. Create an instance of a language identifier #

Initialize a LanguageIdentifier .

final LanguageIdentifier languageIdentifier = FirebaseLanguage.instance.languageIdentifier()

2. Call processText(String) with languageIdentifier #

processText(String) returns List<LanguageLabel> in decreasing order of probability of detected language.

final List<LanguageLabel> labels = await languageIdentifier.processText('Sample Text');

3. Extract data #

<LanguageLabel> contains the language names and confidence of the prediction, accessible via .text and .confidence .

for (LanguageLabel label in labels) { final String text = label.text; final double confidence = label.confidence; }

Using the ML Kit Language Translator #

Get an instance of ModelManager , and download the needed translation models(optional, results in faster first-use).

FirebaseLanguage.instance.modelManager().downloadModel(SupportedLanguages.lang);

1. Create an instance of a language translator #

Initialize a LanguageTranslator .

final FirebaseLanguage.instance.languageTranslator(SupportedLanguages.lang, SupportedLanguages.lang);

2. Call processText(String) with languageTranslator #

processText(String) returns a string containing the text translated to the target language.

final String translatedString = await languageTranslator.processText('Sample Text');

Using the ML Kit Model Manager #

1. Create an instance of a model manager #

Initialize a ModelManager

final ModelManager modelManager = FirebaseLanguage.instance.modelManager()

2. Download Model using the model manager #

downloadModel() downloads the specified model to the device's local storage. It is recommended to download all the models needed to be used before translating to ensure a fast first-use. On a successful download, the string "Downloaded" will be returned.

modelManager.downloadModel(SupportedLanguages.lang)

3. Delete Model using the model manager #

deleteModel() deletes the specified model from the device's local storage. On a successful delete, the string "Deleted" will be returned. If the model specified is not present on the device, the string "Model not downloaded" will be returned.

modelManager.deleteModel(SupportedLanguages.lang)

4. View Models #

viewModels() returns a list of the BCP-47 language codes of all the languages downloaded onto the local storage of the device.