rishabnayak / firebase_mlkit_language

Firebase ML Kit Language Plugin for Flutter
BSD 3-Clause "New" or "Revised" License
18 stars 21 forks source link

[Error] LanguageTranslator.processText Error 3 #27

Closed juanagu closed 5 years ago

juanagu commented 5 years ago

Environment: iPhone X Simulator

text that I want to translate: Google LLCl is an American multinational technology company that specializes in Internet-related services and products, which include online advertising technologies, search engine, cloud computing, software, and hardware. It is considered one of the Big Four technology companies, alongside Amazon, Apple and Facebook (6|171 Google was founded in 1998 by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University in California. Together they own about 14 percent of its shares and control 56 percent of the stockholder voting power through supervoting stock. They incorporated Google as a privately held company on September 4, 1998. An initial public offering (IPO) took place on August 19, 2004, and Google moved to its headquarters in Mountain View, California, nicknamed the Googleplex. In August 2015, Google announced plans to reorganize its various interests as a conglomerate called Alphabet Inc. Google is Alphabet's leading subsidiary and will continue to be.

Error:

Unhandled Exception: PlatformException(Error 3, com.firebase.ml, Asked to download an unsupported language.)

[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: PlatformException(Error 3, com.firebase.ml, Asked to download an unsupported language.)

0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)

1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:302:33)

#2 LanguageTranslator.processText (package:firebase_mlkit_language/src/language_translator.dart:31:10) #3 FirebaseVisionHelper.translate (package:tech_talk_ml_kit/firebase_vision_helper.dart:54:41) #4 LanguageTranslatorPageState.readText (package:tech_talk_ml_kit/language_translator_page.dart:47:58) #5 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:511:14) #6 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:566:30) [VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: PlatformException(Error 3, com.firebase.ml, Asked to download an unsupported language.) #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7) #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:302:33) #2 LanguageTranslator.processText (package:firebase_mlkit_language/src/language_translator.dart:31:10) #3 FirebaseVisionHelper.translate (package:tech_talk_ml_kit/firebase_vision_helper.dart:48:41) #4 LanguageTranslatorPageState.readText (package:tech_talk_ml_kit/language_translator_page.dart:45:58) #5 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:511:14) #6 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:566:30) #7 GestureRecognizer.invokeCallback (package:flutter/src/ge<…>

Code:

List<LanguageLabel> languages =
        await FirebaseLanguage.instance.languageIdentifier().processText(text);
    String fromLanguage = languages.first.toString();

    await FirebaseLanguage.instance.modelManager()
        .downloadModel(fromLanguage);
    await FirebaseLanguage.instance.modelManager()
        .downloadModel(SupportedLanguages.Spanish);

    final languageTranslator =  FirebaseLanguage.instance
        .languageTranslator(fromLanguage, SupportedLanguages.Spanish);
        return await languageTranslator.processText(text);

pubspec.yaml

version: 1.0.4

environment:
  sdk: ">=2.2.2 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  image_picker: ^0.6.0+2
  firebase_core:  ^0.4.0+1
  firebase_ml_vision: ^0.8.0+2
  firebase_mlkit_language: ^1.0.1
rishabnayak commented 5 years ago

@juanagu you need to set your fromLanguage, since you're translating from English, set that to SupportedLanguages.English

juanagu commented 5 years ago

Thanks! @rishab2113 I had an error on my code. I Replaced: String fromLanguage = languages.first.toString();

To

String fromLanguage = languages.first.languageCode.toString();