0

如何使用 Yandex 翻译器将我的 android 应用程序从英语翻译成印地语?Java API 和 JSON 文件。我有 API 密钥,但我不知道要编写什么代码来包含 API 并使其工作。如果您发布整个代码,这将非常有帮助:D 谢谢。

4

3 回答 3

2

您可以查看此 API: https ://github.com/DoguD/Yandex-Translate-Android-API

只需将 TranslatorBackgroundTask.java 文件导入您的应用程序,然后执行如下所示:

import co.oriens.yandex_translate_android_api.TranslatorBackgroundTask;
import android.util.Log;

public class MainActivity extends Activity{
//Set context
Context context=this;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Default variables for translation
    String textToBeTranslated = "Hello world, yeah I know it is stereotye.";
    String languagePair = "en-fr"; //English to French ("<source_language>-<target_language>")
    //Executing the translation function
    Translate(textToBeTranslated,languagePair);
}

//Function for calling executing the Translator Background Task
void Translate(String textToBeTranslated,String languagePair){
    TranslatorBackgroundTask translatorBackgroundTask= new TranslatorBackgroundTask(context);
    String translationResult = translatorBackgroundTask.execute(textToBeTranslated,languagePair).get(); // Returns the translated text as a String
    Log.d("Translation Result",translationResult); // Logs the result in Android Monitor
}
}

有关更详细的说明,您可以阅读 github 中的 README。

于 2017-06-30T18:58:26.977 回答
1

1.添加依赖:

dependencies {
       ...
       implementation ('com.github.vbauer:yandex-translate-api:1.4.2'){
           exclude group: 'com.google.code.findbugs', module:'annotations'
       }
       ...
   }

   repositories{
       ...
       maven { url "https://jitpack.io" }
       ...
   }

2. 在您的活动或片段中:

class TranslateAsyncTask extends AsyncTask<String,Void,String>{
   @Override
   protected String doInBackground(String... strings) {
       return translate(strings[0]);
   }
   
   @Override
   protected void onPostExecute(String s) {
       //your translated text "s"
   }
}

private String translate(String text){
   YTranslateApi api = new YTranslateApiImpl(API_TRANSLATE_KEY);
   
   if(Build.VERSION.SDK_INT >= 24){
       Translation t = api.translationApi().translate(text,Language.EN);
       return t.text();
   }
   
   return "";
}

3. 在 Manifest.xml 中添加:

<uses-permission android:name="android.permission.INTERNET" />
于 2020-02-13T11:51:49.990 回答
0

您可以从检查如何为他们的翻译功能进行 API 调用开始。他们在那部分的文档将向您展示 HTTP 请求的语法,这将允许您翻译特定的文本片段并指定您想要翻译的语言。

为了在您的 Android 应用程序中实现这一点,您需要能够发送 HTTP 请求。有很多很棒的图书馆可以做到这一点。Loopj应该能够完成这项工作。他们的网站会告诉您如何将他们的库添加到您的项目/Android 应用程序中。

于 2016-11-26T05:46:37.860 回答