正在查看: Plus 12 v10.13.1.1 应用的 YandexTranslationEnginev2.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Plus 12 v10.13.1.1 应用的 YandexTranslationEnginev2.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package org.telegram.messenger.translator;
import android.text.TextUtils;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import okhttp3.FormBody;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONException;
import org.json.JSONObject;
import org.telegram.messenger.BuildConfig;
public class YandexTranslationEnginev2 extends BaseTranslationEngine {
public static YandexTranslationEnginev2 instance;
public final List<String> sourceLanguages = Arrays.asList("auto", "zh", "en", "af", "am", "ar", "az", "be", "bg", "bn", "bs", "ca", "ceb", "cs", "cy", "da", "de", "el", "eo", "es", "et", "eu", "fa", "fi", "fr", "ga", "gd", "gl", "gu", "he", "hi", "hr", "ht", "hu", "hy", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "ky", "la", "lb", "lo", "lt", "lv", "mg", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "sq", "sr", "su", "sv", "sw", "ta", "te", "tg", "th", "tl", "tr", "tt", "uk", "ur", "uz", "vi", "xh", "yi");
public final List<String> targetLanguages = Arrays.asList("zh", "en", "af", "am", "ar", "az", "be", "bg", "bn", "bs", "ca", "ceb", "cs", "cy", "da", "de", "el", "eo", "es", "et", "eu", "fa", "fi", "fr", "ga", "gd", "gl", "gu", "he", "hi", "hr", "ht", "hu", "hy", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "ky", "la", "lb", "lo", "lt", "lv", "mg", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "sq", "sr", "su", "sv", "sw", "ta", "te", "tg", "th", "tl", "tr", "tt", "uk", "ur", "uz", "vi", "xh", "yi");
public static YandexTranslationEnginev2 getInstance() {
if (instance == null) {
synchronized (YandexTranslationEnginev2.class) {
if (instance == null) {
instance = new YandexTranslationEnginev2();
}
}
}
return instance;
}
public String translate(String text, String sourceLanguage, String targetLanguage) throws IOException {
if (!sourceLanguage.equals("auto")) {
targetLanguage = sourceLanguage + '-' + targetLanguage;
}
Response execute = GoogleWebTranslator.getInstance().getOkHttpClient().newCall(new Request.Builder().url("https://translate.yandex.net/api/v1/tr.json/translate").addHeader("user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A5297c Safari/602.1").post(new FormBody.Builder(Charset.defaultCharset()).add("srv", "android").add("ucid", UUID.randomUUID().toString().replace("-", BuildConfig.APP_CENTER_HASH)).add("lang", targetLanguage).add("text", text).build()).build()).execute();
if (execute.isSuccessful()) {
try {
return getResult(execute.body().string());
} catch (JSONException e) {
throw new IOException(e);
}
}
throw new IOException("HTTP response code: " + execute.code());
}
@Override
public String translate(String query, String tl) throws IOException {
return translate(query, "auto", tl);
}
public static String getResult(String string) throws JSONException, IOException {
JSONObject jSONObject = new JSONObject(string);
int i = jSONObject.getInt("code");
if (i != 200) {
throw new IOException("Error " + i + ": " + jSONObject.getString("message"));
}
String string2 = jSONObject.getString("lang");
if (!TextUtils.isEmpty(string2)) {
GoogleWebTranslator.getInstance().fromLang = (String) Arrays.asList(string2.split("-")).get(0);
}
return jSONObject.getJSONArray("text").getString(0);
}
}