added translation language as argument

This commit is contained in:
Vologhat
2022-07-31 13:34:24 +03:00
committed by gdlbo
parent 0715c0cfcf
commit 114b46ccee
4 changed files with 7 additions and 9 deletions
@@ -18,14 +18,14 @@ public abstract class BaseTranslator {
private static final int DEEPL = 2; private static final int DEEPL = 2;
@NonNull @NonNull
public abstract String translate(String text); public abstract String translate(String text, String tl);
@NonNull @NonNull
public final String getTranslation(String text) { public final String getTranslation(String text) {
var val = cache.get(text); var val = cache.get(text);
if (val != null) if (val != null)
return val; return val;
var translation = translate(text); var translation = translate(text, getToLanguage());
cache.put(text, translation); cache.put(text, translation);
return translation; return translation;
} }
@@ -56,11 +56,10 @@ public class DeepLTranslator extends BaseTranslator {
@NonNull @NonNull
@Override @Override
public String translate(String text) { public String translate(String text, String tl) {
try { try {
System.setProperty("sun.net.http.allowRestrictedHeaders", "true"); System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
var tl = getToLanguage();
if (tl.contains("-")) if (tl.contains("-"))
tl = tl.toUpperCase(); tl = tl.toUpperCase();
@@ -7,7 +7,6 @@ import androidx.annotation.NonNull;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.Locale;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
@@ -46,13 +45,13 @@ public class GoogleTranslator extends BaseTranslator {
@NonNull @NonNull
@Override @Override
public String translate(String text) { public String translate(String text, String tl) {
try { try {
var request = new Request.a() var request = new Request.a()
.b("https://translate.googleapis.com/translate_a/single?dj=1" + .b("https://translate.googleapis.com/translate_a/single?dj=1" +
"&q=" + URLEncoder.encode(text, "UTF-8") + "&q=" + URLEncoder.encode(text, "UTF-8") +
"&sl=auto" + "&sl=auto" +
"&tl=" + getToLanguage() + "&tl=" + tl +
"&ie=UTF-8&oe=UTF-8&client=at&dt=t&otf=2") "&ie=UTF-8&oe=UTF-8&client=at&dt=t&otf=2")
.a("User-Agent", .a("User-Agent",
"GoogleTranslate/6.28.0.05.421483610 (" + devices[(int) Math.round(Math.random() * (devices.length - 1))] + ")") "GoogleTranslate/6.28.0.05.421483610 (" + devices[(int) Math.round(Math.random() * (devices.length - 1))] + ")")
@@ -29,13 +29,13 @@ public class YandexTranslator extends BaseTranslator {
@NonNull @NonNull
@Override @Override
public String translate(String text) { public String translate(String text, String tl) {
try { try {
var request = new Request.a() var request = new Request.a()
.b("https://translate.yandex.net/api/v1/tr.json/translate?&srv=android&id=" + uuid + "-0-0") .b("https://translate.yandex.net/api/v1/tr.json/translate?&srv=android&id=" + uuid + "-0-0")
.a("User-Agent", "ru.yandex.translate/21.15.4.21402814 (Xiaomi Redmi K20 Pro; Android 11)") .a("User-Agent", "ru.yandex.translate/21.15.4.21402814 (Xiaomi Redmi K20 Pro; Android 11)")
.a(RequestBody.a(MediaType.a("application/x-www-form-urlencoded"), .a(RequestBody.a(MediaType.a("application/x-www-form-urlencoded"),
"lang=" + getToLanguage() + "&text=" + URLEncoder.encode(text, "UTF-8"))) "lang=" + tl + "&text=" + URLEncoder.encode(text, "UTF-8")))
.a(); .a();
var payload = client.a(request).execute().a().g(); var payload = client.a(request).execute().a().g();
var json = new JSONObject(payload); var json = new JSONObject(payload);