【问题标题】:How to translate one language to another using java code如何使用java代码将一种语言翻译成另一种语言
【发布时间】:2015-11-14 07:22:41
【问题描述】:
import java.util.ArrayList;

import com.google.api.translate.Language;
import com.google.api.translate.Translator;

public class Translation {
    public static void main(String[] args) {                
        // Translate a single English String to French
        Translator translator = new Translator();
        System.out.println("Saying goodbye in French:");
        System.out.println(translator.translate("goodbye", Language.ENGLISH, Language.FRENCH));

        System.out.println();
    }
}

【问题讨论】:

  • 为什么这不起作用?运行时会发生什么?
  • 用法语说再见:线程“main”中的异常 java.lang.NoSuchMethodError: com.google.api.translate.Language.getLangCode()Ljava/lang/String;在 com.google.api.translate.Translator.constructLangPairQuery(Translator.java:230) 在 com.google.api.translate.Translator.constructQueryURL(Translator.java:247) 在 com.google.api.translate.Translator.translate (Translator.java:72) 在 com.inndata.services.Translation.main(Translation.java:14)
  • 我从未使用过 google api,但我认为要么你缺少 jar 库,要么你不完全理解 API,你可以查看这个问题以获取 @987654322 的异常@

标签: java google-translate


【解决方案1】:

首先,谷歌翻译 API 是一项付费服务​​:https://cloud.google.com/pricing/

其次,您必须创建自己的 API 密钥并在您的应用中使用该密钥:https://console.developers.google.com

我正在使用的代码:

HttpTransport httpTransport = AndroidHttp.newCompatibleTransport();
AndroidJsonFactory jsonFactory = AndroidJsonFactory.getDefaultInstance();
Translate.Builder builder = new Translate.Builder(httpTransport, jsonFactory, null);
// need this, otherwise you get warning
builder.setApplicationName("Give a name");
Translate translate = builder.build();
List<String> list = new ArrayList<String>();
// I only add one char to the list
list.add(String.valueOf(word[0]));
Translate.Translations.List request = translate.translations().list(list, "en").setKey("<your_api_key>");
String result = request.execute().getTranslations().get(0).getTranslatedText();

注意:还不知道原因,如果我使用我的 android API 密钥,我总是会遇到同样的错误:“com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden”,原因是“ipRefererBlocked”,但如果我使用我的浏览器密钥就可以了。希望其他人能找出原因。

【讨论】:

    最近更新 更多