在Android应用程序中使用谷歌翻译

时间:2013-05-29 08:42:45

标签: java android nlp translation google-translate

我想在我的android项目中使用google translate 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();

        }

3 个答案:

答案 0 :(得分:3)

我只是添加了这个问题,因为它仍然获得了相当多的观点,并且没有看到接受。

Google代码存档中的google-api-translate-java库已过期,不应再使用。你现在应该使用 Translate API Client Library for Java这是Google API Client Library for Java

的一个组成部分

使用示例:

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

答案 1 :(得分:0)

似乎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);

答案 2 :(得分:0)

尝试使用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);
}