我想在我的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();
}
答案 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);
}