diff options
author | Thomas <tschneider.ac@gmail.com> | 2023-02-14 11:02:04 +0100 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2023-02-14 11:02:04 +0100 |
commit | 4b8563fe7eaa2a9e50dfde802b92930c59877c61 (patch) | |
tree | 421266ba6bbca93d7cc970907bef84ff070f758f | |
parent | 4eb4c6eea5fe63dfe9f0cebf80979134b7af57b3 (diff) |
workinglingva_translator
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) { |