【问题标题】:Using google translate in android application在安卓应用程序中使用谷歌翻译
【发布时间】:2013-05-24 10:31:31
【问题描述】:

我想在我的 android 项目上使用谷歌翻译 API。以下是我的代码。它作为java项目工作,但是当我在android设备上尝试时,项目停止了。是什么原因? 我加了googletranslateapi-1.0.jar

translator.java

package com.example.calendar;

import com.gtranslate.Language;
import com.gtranslate.Translator;

public class translator {

    public String translate(String text) {
        Translator translate = Translator.getInstance();
        String text2 = translate.translate(text, Language.TURKISH,
                Language.ENGLISH);
        return text2;
    }

}

在主要活动中

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{

if (requestCode == VR_REQUEST && resultCode == RESULT_OK) {

            ArrayList<String> suggestedWords = data
                    .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            Context context = getApplicationContext();
            text = suggestedWords.get(0);
            int duration = Toast.LENGTH_SHORT;
            ClassificationActivity classificationActivity = new ClassificationActivity();
            String category = classificationActivity.control(text);
            translator trans = new translator();
            String ingtext = trans.translate(text);

            CalendarEvent cv = new CalendarEvent();
            Date date = new Date();
            ContentResolver cr = ctx.getContentResolver();
            Uri uri = cr.insert(Events.CONTENT_URI, CalendarEvent
                    .toICSContentValues(cv, date.getTime(), category));
            Toast toast = Toast.makeText(context, ingtext, duration);
            toast.show();

        }

【问题讨论】:

    标签: java android nlp translation google-translate


    【解决方案1】:

    我只是添加到这个问题,因为它仍然获得相当数量的视图并且没有看到接受。

    Google 代码存档中的 google-api-translate-java 库已过期,不应再使用。您现在应该使用 Translate API Client Library for JavaGoogle API Client Library for Java 的一个组件

    使用示例:

    GoogleAPI.setHttpReferrer("link"); 
    GoogleAPI.setKey("key"); 
    String translatedText = Translate.DEFAULT.execute("Some text", Language.ENGLISH, Language.FRENCH); 
    

    【讨论】:

      【解决方案2】:

      Google 似乎已经通过web service 开放了翻译 API。这样,您可以自己进行翻译并将其显示在您的应用程序中。需要做更多的工作,但它应该可以胜任。

      如果您不想编写 API 包装器,可以查看 google-api-translate-java

      或使用以下示例

      i.setComponent(
          new ComponentName(
              "com.google.android.apps.translate",
              "com.google.android.apps.translate.translation.TranslateActivity"));
      

      不同的是在“TranslateActivity”之前添加了“翻译”

      所以我的最终版本,包括从西班牙语到英语的硬编码翻译,是:

      Intent i = new Intent();
      i.setAction(Intent.ACTION_VIEW);
      i.putExtra("key_text_input", "Me gusta la cerveza");
      i.putExtra("key_text_output", "");
      i.putExtra("key_language_from", "es");
      i.putExtra("key_language_to", "en");
      i.putExtra("key_suggest_translation", "");
      i.putExtra("key_from_floating_window", false);
      i.setComponent(
          new ComponentName(
              "com.google.android.apps.translate",
              "com.google.android.apps.translate.translation.TranslateActivity"));
      startActivity(i);
      

      【讨论】:

      • 我在 onActivityResult 列中编写了这些代码,我通过这种方式获得了文本 Bundle extras = getIntent().getExtras(); String txt = extras.getString("key_text_output");但是当我敬酒时,什么都没有出现并且项目停止了
      • 您是否检查过此答案中的上述链接?或者看这个api链接code.google.com/p/google-api-translate-java
      【解决方案3】:

      尝试使用 ACTION_SEND:

      private void callGoogleTranslateApps(String word, String fromLang, String toLang) {
      Intent i = new Intent();`
      i.setAction(Intent.ACTION_SEND);
      i.putExtra("key_text_input", word);
      i.putExtra("key_text_output", "");
      i.putExtra("key_language_from", fromLang);
      i.putExtra("key_language_to", toLang);
      i.putExtra("key_suggest_translation", "");
      i.putExtra("key_from_floating_window", false);`
      i.setComponent(new ComponentName("com.google.android.apps.translate", "com.google.android.apps.translate.TranslateActivity"));
      startActivity(i);
      }
      

      【讨论】:

      • 什么是key_from_floating_window
      猜你喜欢
      • 2012-08-18
      • 2014-02-26
      • 2015-12-08
      • 2014-05-14
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      相关资源
      最近更新 更多