2

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

翻译器.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();

        }
4

3 回答 3

2

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

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); 
于 2016-03-01T01:11:29.617 回答
0

谷歌似乎已经通过网络服务开放了翻译 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);
于 2013-05-29T09:04:30.067 回答
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);
}
于 2016-04-12T19:09:09.587 回答