summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-02-14 11:02:04 +0100
committerThomas <tschneider.ac@gmail.com>2023-02-14 11:02:04 +0100
commit4b8563fe7eaa2a9e50dfde802b92930c59877c61 (patch)
tree421266ba6bbca93d7cc970907bef84ff070f758f
parent4eb4c6eea5fe63dfe9f0cebf80979134b7af57b3 (diff)
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/TranslateHelper.java6
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java8
-rw-r--r--app/src/main/res/layouts/mastodon/values/strings.xml4
-rw-r--r--app/src/main/res/values/strings.xml4
-rw-r--r--app/src/main/res/xml/pref_timelines.xml7
-rw-r--r--mytransl/src/main/java/com/github/stom79/mytransl/async/TransAsync.java4
6 files changed, 30 insertions, 3 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/TranslateHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/TranslateHelper.java
index 1d514ba9b..3e7e0da8c 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/helper/TranslateHelper.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/helper/TranslateHelper.java
@@ -63,7 +63,11 @@ public class TranslateHelper {
if (translator.compareToIgnoreCase("FEDILAB") == 0) {
myTransL.setLibretranslateDomain("translate.fedilab.app");
} else if (translator.compareToIgnoreCase("LINGVA") == 0) {
- myTransL.setLibretranslateDomain("lingva.ml");
+ String host = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATOR_DOMAIN), context.getString(R.string.SET_TRANSLATOR_HOST_LINGVA));
+ if (host == null || host.trim().isEmpty()) {
+ host = context.getString(R.string.SET_TRANSLATOR_HOST_LINGVA);
+ }
+ myTransL.setLingvaDomain(host);
} else {
String translatorVersion = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATOR_VERSION), "PRO");
params.setPro(translatorVersion.equals("PRO"));
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java
index e9d5228da..059494ab7 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java
@@ -47,7 +47,8 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen
ListPreference SET_TRANSLATOR_VERSION = findPreference(getString(R.string.SET_TRANSLATOR_VERSION));
EditTextPreference SET_TRANSLATOR_API_KEY = findPreference(getString(R.string.SET_TRANSLATOR_API_KEY));
- if (SET_TRANSLATOR != null && SET_TRANSLATOR.getValue().equals("FEDILAB")) {
+ EditTextPreference SET_TRANSLATOR_DOMAIN = findPreference(getString(R.string.SET_TRANSLATOR_DOMAIN));
+ if (SET_TRANSLATOR != null && !SET_TRANSLATOR.getValue().equals("DEEPL")) {
if (SET_TRANSLATOR_API_KEY != null) {
preferenceScreen.removePreferenceRecursively("SET_TRANSLATOR_API_KEY");
}
@@ -55,6 +56,11 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen
preferenceScreen.removePreferenceRecursively("SET_TRANSLATOR_VERSION");
}
}
+ if (SET_TRANSLATOR != null && !SET_TRANSLATOR.getValue().equals("LINGVA")) {
+ if (SET_TRANSLATOR_DOMAIN != null) {
+ preferenceScreen.removePreferenceRecursively("SET_TRANSLATOR_DOMAIN");
+ }
+ }
SwitchPreferenceCompat SET_DISPLAY_BOOKMARK = findPreference(getString(R.string.SET_DISPLAY_BOOKMARK));
if (SET_DISPLAY_BOOKMARK != null) {
boolean checked = sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, true);
diff --git a/app/src/main/res/layouts/mastodon/values/strings.xml b/app/src/main/res/layouts/mastodon/values/strings.xml
new file mode 100644
index 000000000..28ece7887
--- /dev/null
+++ b/app/src/main/res/layouts/mastodon/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="translator_domain">Translator domain</string>
+</resources> \ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b0fc7f0fe..2c29b22a4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -796,6 +796,7 @@
<string-array name="set_translator_values" translatable="false">
<item>Fedilab</item>
+ <item>Lingva</item>
<item>DeepL</item>
</string-array>
<string-array name="set_translator_version_values">
@@ -805,6 +806,7 @@
<string-array name="SET_TRANSLATOR_VALUES" translatable="false">
<item>FEDILAB</item>
+ <item>LINGVA</item>
<item>DEEPL</item>
</string-array>
@@ -1097,6 +1099,8 @@
<string name="SET_POST_FORMAT" translatable="false">SET_POST_FORMAT</string>
<string name="SET_COMPOSE_LOCAL_ONLY" translatable="false">SET_COMPOSE_LOCAL_ONLY</string>
+ <string name="SET_TRANSLATOR_HOST_LINGVA" translatable="false">lingva.ml</string>
+ <string name="SET_TRANSLATOR_DOMAIN" translatable="false">SET_TRANSLATOR_DOMAIN</string>
<string name="SET_TRANSLATOR" translatable="false">SET_TRANSLATOR</string>
<string name="SET_TRANSLATOR_VERSION" translatable="false">SET_TRANSLATOR_VERSION</string>
diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml
index 11ff6b3fc..93fe06b11 100644
--- a/app/src/main/res/xml/pref_timelines.xml
+++ b/app/src/main/res/xml/pref_timelines.xml
@@ -93,6 +93,13 @@
app:key="@string/SET_TRANSLATOR_API_KEY"
app:title="@string/api_key"
app:useSimpleSummaryProvider="true" />
+ <EditTextPreference
+ app:defaultValue="lingva.ml"
+ app:dependency="@string/SET_TRANSLATOR"
+ app:iconSpaceReserved="false"
+ app:key="@string/SET_TRANSLATOR_DOMAIN"
+ app:title="@string/translator_domain"
+ app:useSimpleSummaryProvider="true" />
<ListPreference
app:defaultValue="PRO"
app:dialogTitle="@string/version"
diff --git a/mytransl/src/main/java/com/github/stom79/mytransl/async/TransAsync.java b/mytransl/src/main/java/com/github/stom79/mytransl/async/TransAsync.java
index c3654aa45..03d9a2bd5 100644
--- a/mytransl/src/main/java/com/github/stom79/mytransl/async/TransAsync.java
+++ b/mytransl/src/main/java/com/github/stom79/mytransl/async/TransAsync.java
@@ -29,6 +29,7 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
+import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
@@ -148,7 +149,8 @@ public class TransAsync {
str_response = new Client().post(MyTransL.getLibreTranslateUrl(), this.timeout, params);
} else if (te == MyTransL.translatorEngine.LINGVA) {
String key = MyTransL.getInstance(te).getLibreTranslateAPIKey();
- String lingvaURL = MyTransL.getLingvaUrl() + this.params.getSource_lang() + "/" + toLanguage + "/" + contentToSend;
+ String contentToSendEncoded = URLEncoder.encode(contentToSend, "UTF-8");
+ String lingvaURL = MyTransL.getLingvaUrl() + this.params.getSource_lang() + "/" + toLanguage + "/" + contentToSendEncoded;
str_response = new Client().get(lingvaURL, this.timeout);
}
} catch (IOException | NoSuchAlgorithmException | KeyManagementException err) {