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;
@NonNull
public abstract String translate(String text);
public abstract String translate(String text, String tl);
@NonNull
public final String getTranslation(String text) {
var val = cache.get(text);
if (val != null)
return val;
var translation = translate(text);
var translation = translate(text, getToLanguage());
cache.put(text, translation);
return translation;
}
@@ -56,11 +56,10 @@ public class DeepLTranslator extends BaseTranslator {
@NonNull
@Override
public String translate(String text) {
public String translate(String text, String tl) {
try {
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
var tl = getToLanguage();
if (tl.contains("-"))
tl = tl.toUpperCase();
@@ -7,7 +7,6 @@ import androidx.annotation.NonNull;
import org.json.JSONObject;
import java.net.URLEncoder;
import java.util.Locale;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -46,13 +45,13 @@ public class GoogleTranslator extends BaseTranslator {
@NonNull
@Override
public String translate(String text) {
public String translate(String text, String tl) {
try {
var request = new Request.a()
.b("https://translate.googleapis.com/translate_a/single?dj=1" +
"&q=" + URLEncoder.encode(text, "UTF-8") +
"&sl=auto" +
"&tl=" + getToLanguage() +
"&tl=" + tl +
"&ie=UTF-8&oe=UTF-8&client=at&dt=t&otf=2")
.a("User-Agent",
"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
@Override
public String translate(String text) {
public String translate(String text, String tl) {
try {
var request = new Request.a()
.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(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();
var payload = client.a(request).execute().a().g();
var json = new JSONObject(payload);