2013-05-29 3 views
2

Я хочу использовать API перевода Google для моего проекта Android. Ниже приведены мои коды. Он работает как проект java, но когда я пытаюсь использовать его на устройстве Android, проект останавливается. Какова причина? Я добавил googletranslateapi-1.0.jar,Использование google translate in android application

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; 
    } 

} 

В mainactivity

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

, кажется, Google уже открыли API Переводчика через web service. Таким образом, вы можете сделать перевод самостоятельно и показать его в своем приложении. Это немного больше работы, но он должен выполнять эту работу.

Вы можете посмотреть google-api-translate-java, если хотите освободить себя от написания обертки API.

ИЛИ ИСПОЛЬЗОВАТЬ НИЖЕ ПРИМЕР

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); 
+0

я написал эти коды в колонке onActivityResult я получил текст таким образом Bundle extras = getIntent(). getExtras(); \t \t \t Строка txt = extras.getString ("key_text_output"); но когда я тост их, ничего не появляется и проект остановлен – ebruszl

+0

Вы проверили выше ссылку в этом ответе ??? Или посмотрите эту ссылку api https://code.google.com/p/google-api-translate-java/ – Piyush

3

Я просто добавляю к этому вопросу, так как он все еще получает справедливое количество просмотров и не видел принятия.

Библиотека google-api-translate-java из архива Google Code устарела и больше не должна использоваться. Теперь вы должны использовать 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); 
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); 
} 
Смежные вопросы