firebase_mlkit_language 1.1.0 firebase_mlkit_language: ^1.1.0 copied to clipboard
Firebase ML Kit Language Plugin for Flutter, enables Language Detection and Translation between 59 Languages
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!
Usage #
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).
iOS #
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 #
Note #
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.
modelManager.viewModels()