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
.
All the supported languages can be found here.
Furthermore, they can be found within the SupportedLanguages
class.
Initialize a LanguageIdentifier
.
final LanguageIdentifier languageIdentifier = FirebaseLanguage.instance.languageIdentifier()
processText(String)
returns List<LanguageLabel>
in decreasing order of probability of detected language.
final List<LanguageLabel> labels = await languageIdentifier.processText('Sample Text');
<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;
}
Get an instance of ModelManager
, and download the needed translation models(optional, results in faster first-use).
FirebaseLanguage.instance.modelManager().downloadModel(SupportedLanguages.lang);
Initialize a LanguageTranslator
.
final FirebaseLanguage.instance.languageTranslator(SupportedLanguages.lang, SupportedLanguages.lang);
processText(String)
returns a string containing the text translated to the target language.
final String translatedString = await languageTranslator.processText('Sample Text');
Initialize a ModelManager
final ModelManager modelManager = FirebaseLanguage.instance.modelManager()
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)
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)
viewModels()
returns a list of the BCP-47 language codes of all the languages downloaded onto the local storage of the device.
modelManager.viewModels()