From 1dcafe01df35516b903f24033fa49cd2b6119b8b Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 28 Apr 2022 17:44:33 +0200 Subject: [PATCH 1/4] Prevent crash --- app/src/main/java/eu/faircode/email/ActivityView.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 9a330ffe4d..cdac3cc1db 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -1254,6 +1254,9 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB @Override public void onBackStackChanged() { + if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) + return; + int count = getSupportFragmentManager().getBackStackEntryCount(); if (count == 0) finish(); From 77438c13f983ed14169bc0f63ea2d57df2e46f6f Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 28 Apr 2022 13:23:28 +0200 Subject: [PATCH 2/4] Check LT long code --- app/src/main/assets/languagetool.json | 317 ++++++++++++++++++ .../java/eu/faircode/email/LanguageTool.java | 26 +- 2 files changed, 340 insertions(+), 3 deletions(-) create mode 100644 app/src/main/assets/languagetool.json diff --git a/app/src/main/assets/languagetool.json b/app/src/main/assets/languagetool.json new file mode 100644 index 0000000000..13895f31bf --- /dev/null +++ b/app/src/main/assets/languagetool.json @@ -0,0 +1,317 @@ +[ + { + "name": "Arabic", + "code": "ar", + "longCode": "ar" + }, + { + "name": "Asturian", + "code": "ast", + "longCode": "ast-ES" + }, + { + "name": "Belarusian", + "code": "be", + "longCode": "be-BY" + }, + { + "name": "Breton", + "code": "br", + "longCode": "br-FR" + }, + { + "name": "Catalan", + "code": "ca", + "longCode": "ca-ES" + }, + { + "name": "Catalan (Valencian)", + "code": "ca", + "longCode": "ca-ES-valencia" + }, + { + "name": "Chinese", + "code": "zh", + "longCode": "zh-CN" + }, + { + "name": "Danish", + "code": "da", + "longCode": "da-DK" + }, + { + "name": "Dutch", + "code": "nl", + "longCode": "nl" + }, + { + "name": "Dutch", + "code": "nl", + "longCode": "nl" + }, + { + "name": "Dutch (Belgium)", + "code": "nl", + "longCode": "nl-BE" + }, + { + "name": "English", + "code": "en", + "longCode": "en" + }, + { + "name": "English", + "code": "en", + "longCode": "en" + }, + { + "name": "English (Australian)", + "code": "en", + "longCode": "en-AU" + }, + { + "name": "English (Australian)", + "code": "en", + "longCode": "en-AU" + }, + { + "name": "English (Canadian)", + "code": "en", + "longCode": "en-CA" + }, + { + "name": "English (Canadian)", + "code": "en", + "longCode": "en-CA" + }, + { + "name": "English (GB)", + "code": "en", + "longCode": "en-GB" + }, + { + "name": "English (GB)", + "code": "en", + "longCode": "en-GB" + }, + { + "name": "English (New Zealand)", + "code": "en", + "longCode": "en-NZ" + }, + { + "name": "English (New Zealand)", + "code": "en", + "longCode": "en-NZ" + }, + { + "name": "English (South African)", + "code": "en", + "longCode": "en-ZA" + }, + { + "name": "English (South African)", + "code": "en", + "longCode": "en-ZA" + }, + { + "name": "English (US)", + "code": "en", + "longCode": "en-US" + }, + { + "name": "English (US)", + "code": "en", + "longCode": "en-US" + }, + { + "name": "Esperanto", + "code": "eo", + "longCode": "eo" + }, + { + "name": "French", + "code": "fr", + "longCode": "fr" + }, + { + "name": "French", + "code": "fr", + "longCode": "fr" + }, + { + "name": "Galician", + "code": "gl", + "longCode": "gl-ES" + }, + { + "name": "German", + "code": "de", + "longCode": "de" + }, + { + "name": "German", + "code": "de", + "longCode": "de" + }, + { + "name": "German (Austria)", + "code": "de", + "longCode": "de-AT" + }, + { + "name": "German (Austria)", + "code": "de", + "longCode": "de-AT" + }, + { + "name": "German (Germany)", + "code": "de", + "longCode": "de-DE" + }, + { + "name": "German (Germany)", + "code": "de", + "longCode": "de-DE" + }, + { + "name": "German (Swiss)", + "code": "de", + "longCode": "de-CH" + }, + { + "name": "German (Swiss)", + "code": "de", + "longCode": "de-CH" + }, + { + "name": "Greek", + "code": "el", + "longCode": "el-GR" + }, + { + "name": "Irish", + "code": "ga", + "longCode": "ga-IE" + }, + { + "name": "Italian", + "code": "it", + "longCode": "it" + }, + { + "name": "Japanese", + "code": "ja", + "longCode": "ja-JP" + }, + { + "name": "Khmer", + "code": "km", + "longCode": "km-KH" + }, + { + "name": "Norwegian (Bokmål)", + "code": "nb", + "longCode": "nb" + }, + { + "name": "Norwegian (Bokmål)", + "code": "no", + "longCode": "no" + }, + { + "name": "Persian", + "code": "fa", + "longCode": "fa" + }, + { + "name": "Polish", + "code": "pl", + "longCode": "pl-PL" + }, + { + "name": "Portuguese", + "code": "pt", + "longCode": "pt" + }, + { + "name": "Portuguese (Angola preAO)", + "code": "pt", + "longCode": "pt-AO" + }, + { + "name": "Portuguese (Brazil)", + "code": "pt", + "longCode": "pt-BR" + }, + { + "name": "Portuguese (Moçambique preAO)", + "code": "pt", + "longCode": "pt-MZ" + }, + { + "name": "Portuguese (Portugal)", + "code": "pt", + "longCode": "pt-PT" + }, + { + "name": "Romanian", + "code": "ro", + "longCode": "ro-RO" + }, + { + "name": "Russian", + "code": "ru", + "longCode": "ru-RU" + }, + { + "name": "Simple German", + "code": "de-DE-x-simple-language", + "longCode": "de-DE-x-simple-language" + }, + { + "name": "Slovak", + "code": "sk", + "longCode": "sk-SK" + }, + { + "name": "Slovenian", + "code": "sl", + "longCode": "sl-SI" + }, + { + "name": "Spanish", + "code": "es", + "longCode": "es" + }, + { + "name": "Spanish", + "code": "es", + "longCode": "es" + }, + { + "name": "Spanish (voseo)", + "code": "es", + "longCode": "es-AR" + }, + { + "name": "Swedish", + "code": "sv", + "longCode": "sv" + }, + { + "name": "Tagalog", + "code": "tl", + "longCode": "tl-PH" + }, + { + "name": "Tamil", + "code": "ta", + "longCode": "ta-IN" + }, + { + "name": "Ukrainian", + "code": "uk", + "longCode": "uk-UA" + } +] \ No newline at end of file diff --git a/app/src/main/java/eu/faircode/email/LanguageTool.java b/app/src/main/java/eu/faircode/email/LanguageTool.java index d8c46b1c90..031add72fd 100644 --- a/app/src/main/java/eu/faircode/email/LanguageTool.java +++ b/app/src/main/java/eu/faircode/email/LanguageTool.java @@ -45,9 +45,29 @@ public class LanguageTool { // https://languagetool.org/http-api/swagger-ui/#!/default/post_check String request = "text=" + URLEncoder.encode(text.toString(), StandardCharsets.UTF_8.name()) + - "&language=auto" + - "&preferredVariants=" + Locale.getDefault().toLanguageTag(); - Log.i("LT request=" + request); + "&language=auto"; + + // curl -X GET --header 'Accept: application/json' 'https://api.languagetool.org/v2/languages + String code = null; + JSONArray jlanguages; + Locale locale = Locale.getDefault(); + try (InputStream is = context.getAssets().open("languagetool.json")) { + String json = Helper.readStream(is); + jlanguages = new JSONArray(json); + } + for (int i = 0; i < jlanguages.length(); i++) { + JSONObject jlanguage = jlanguages.getJSONObject(i); + String c = jlanguage.optString("longCode"); + if (locale.toLanguageTag().equals(c) && c.contains("-")) { + code = c; + break; + } + } + + if (code != null) + request += "&preferredVariants=" + code; + + Log.i("LT locale=" + locale + " request=" + request); URL url = new URL(LT_URI + "check"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); From bf3104a969cd69abc234af705d81b5b01a89a44f Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 29 Apr 2022 07:42:20 +0200 Subject: [PATCH 3/4] Refactoring --- app/build.gradle | 4 ++++ app/src/main/assets/{languagetool.json => lt.json} | 0 .../main/java/eu/faircode/email/FragmentCompose.java | 10 +++++----- .../eu/faircode/email/{LanguageTool.java => LT.java} | 7 +++---- 4 files changed, 12 insertions(+), 9 deletions(-) rename app/src/main/assets/{languagetool.json => lt.json} (100%) rename app/src/main/java/eu/faircode/email/{LanguageTool.java => LT.java} (95%) diff --git a/app/build.gradle b/app/build.gradle index 168eae3ee8..94c3dac1eb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -157,6 +157,7 @@ android { buildConfigField "String", "CHANGELOG", "\"https://github.com/M66B/FairEmail/releases/\"" buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/FairEmail/releases/latest\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"https://github.com/M66B/FairEmail/releases\"" + buildConfigField "String", "LT_URI", "\"https://api.languagetool.org/v2/\"" buildConfigField "String", "TX_URI", localProperties.getProperty("paypal.uri", "\"\"") buildConfigField "String", "GPA_URI", localProperties.getProperty("gpa.uri", "\"\"") buildConfigField "String", "INFO_URI", localProperties.getProperty("info.uri", "\"\"") @@ -172,6 +173,7 @@ android { buildConfigField "String", "CHANGELOG", "\"https://github.com/M66B/FairEmail/releases/\"" buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/FairEmail/releases/latest\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"https://github.com/M66B/FairEmail/releases\"" + buildConfigField "String", "LT_URI", "\"https://api.languagetool.org/v2/\"" buildConfigField "String", "TX_URI", "\"\"" buildConfigField "String", "GPA_URI", "\"\"" buildConfigField "String", "INFO_URI", "\"\"" @@ -188,6 +190,7 @@ android { buildConfigField "String", "CHANGELOG", "\"\"" buildConfigField "String", "GITHUB_LATEST_API", "\"\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"\"" + buildConfigField "String", "LT_URI", "\"\"" buildConfigField "String", "TX_URI", "\"\"" buildConfigField "String", "GPA_URI", "\"\"" buildConfigField "String", "INFO_URI", "\"\"" @@ -204,6 +207,7 @@ android { buildConfigField "String", "CHANGELOG", "\"\"" buildConfigField "String", "GITHUB_LATEST_API", "\"\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"\"" + buildConfigField "String", "LT_URI", "\"\"" buildConfigField "String", "TX_URI", "\"\"" buildConfigField "String", "GPA_URI", "\"\"" buildConfigField "String", "INFO_URI", "\"\"" diff --git a/app/src/main/assets/languagetool.json b/app/src/main/assets/lt.json similarity index 100% rename from app/src/main/assets/languagetool.json rename to app/src/main/assets/lt.json diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index bcff70a3a2..f8cc643d2c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2402,7 +2402,7 @@ public class FragmentCompose extends FragmentBase { Bundle args = new Bundle(); args.putCharSequence("text", etBody.getText()); - new SimpleTask>() { + new SimpleTask>() { private Toast toast = null; @Override @@ -2420,13 +2420,13 @@ public class FragmentCompose extends FragmentBase { } @Override - protected List onExecute(Context context, Bundle args) throws Throwable { + protected List onExecute(Context context, Bundle args) throws Throwable { CharSequence text = args.getCharSequence("text").toString(); - return LanguageTool.getSuggestions(context, text); + return LT.getSuggestions(context, text); } @Override - protected void onExecuted(Bundle args, List suggestions) { + protected void onExecuted(Bundle args, List suggestions) { if (suggestions == null || suggestions.size() == 0) { ToastEx.makeText(getContext(), R.string.title_suggestions_none, Toast.LENGTH_LONG).show(); return; @@ -2442,7 +2442,7 @@ public class FragmentCompose extends FragmentBase { edit.removeSpan(span); } - for (LanguageTool.Suggestion suggestion : suggestions) { + for (LT.Suggestion suggestion : suggestions) { Log.i("LT adding=" + suggestion); SuggestionSpan span = new SuggestionSpanEx(getContext(), suggestion.replacements.toArray(new String[0]), diff --git a/app/src/main/java/eu/faircode/email/LanguageTool.java b/app/src/main/java/eu/faircode/email/LT.java similarity index 95% rename from app/src/main/java/eu/faircode/email/LanguageTool.java rename to app/src/main/java/eu/faircode/email/LT.java index 031add72fd..68c00cf74c 100644 --- a/app/src/main/java/eu/faircode/email/LanguageTool.java +++ b/app/src/main/java/eu/faircode/email/LT.java @@ -37,9 +37,8 @@ import java.util.Locale; import javax.net.ssl.HttpsURLConnection; -public class LanguageTool { +public class LT { private static final int LT_TIMEOUT = 20; // seconds - private static final String LT_URI = "https://api.languagetool.org/v2/"; static List getSuggestions(Context context, CharSequence text) throws IOException, JSONException { // https://languagetool.org/http-api/swagger-ui/#!/default/post_check @@ -51,7 +50,7 @@ public class LanguageTool { String code = null; JSONArray jlanguages; Locale locale = Locale.getDefault(); - try (InputStream is = context.getAssets().open("languagetool.json")) { + try (InputStream is = context.getAssets().open("lt.json")) { String json = Helper.readStream(is); jlanguages = new JSONArray(json); } @@ -69,7 +68,7 @@ public class LanguageTool { Log.i("LT locale=" + locale + " request=" + request); - URL url = new URL(LT_URI + "check"); + URL url = new URL(BuildConfig.LT_URI + "check"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); From e2616e1996fd3df986a6a151603c47f2f8e1b9b3 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 29 Apr 2022 07:55:50 +0200 Subject: [PATCH 4/4] Crowdin sync --- app/src/main/res/values-bs-rBA/strings.xml | 5 ++++ app/src/main/res/values-da-rDK/strings.xml | 2 +- app/src/main/res/values-de-rDE/strings.xml | 2 ++ app/src/main/res/values-el-rGR/strings.xml | 2 ++ app/src/main/res/values-es-rES/strings.xml | 2 ++ app/src/main/res/values-fa-rIR/strings.xml | 1 + app/src/main/res/values-hr-rHR/strings.xml | 32 ++++++++++++++++++++++ app/src/main/res/values-iw-rIL/strings.xml | 5 ++++ app/src/main/res/values-ko-rKR/strings.xml | 11 +++++--- app/src/main/res/values-ru-rRU/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 5 ++++ 11 files changed, 63 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-bs-rBA/strings.xml b/app/src/main/res/values-bs-rBA/strings.xml index 978dbafc9b..e5a1f962f6 100644 --- a/app/src/main/res/values-bs-rBA/strings.xml +++ b/app/src/main/res/values-bs-rBA/strings.xml @@ -338,6 +338,8 @@ Dodaj dijeljene datoteke u novi nacrt Dugo pritiskanje tipke \'odgovor\' će: Prikaži nenametljivu ikonicu za odgođeno slanje + Automatski sačuvaj nacrt nakon svakog paragrafa + Automatski sačuvaj nacrt nakon svake rečenice Zadani font Automatski izbor identiteta za nove poruke Prefiks predmeta samo jedanput pri odgovoru ili prosljeđenju @@ -418,6 +420,7 @@ Prikaži fotografije kontakata Nepotvrđeni pošiljalac Potvrđeni pošiljalac + Prikaži avatare Prikaži fav ikonice Skeniraj samo prva(ih) %1$s web stranice Prikaži generisane ikonice @@ -1191,6 +1194,8 @@ Ovo će zauzimati više znakova Iskorištenje: %1$s / %2$s (%3$d %%) Dodirnite tekst za prevođenje + Provjera … + Bez prijedloga Uredi kao obični tekst Uredi kao preformatirani tekst Izaberi javni ključ diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 55c9349826..d86eab7ec8 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -140,7 +140,7 @@ SMTP-server til beskedafsendelse Servercertifikater Guide - Guiden kan anvendes igen ved fremtidige kontoopsætninger + Guiden kan anvendes ved hver ny kontoopsætning Jeg behøver en ny e-mailadresse Manuel opsætning og kontoindstillinger Klassisk opsætning diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 62bb6e46b0..9c3011627a 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -1178,6 +1178,8 @@ Dadurch sind mehr Zeichen erforderlich Verwendung: %1$s / %2$s (%3$d %%) Tippen Sie auf den zu übersetzenden Text + Wird überprüft … + Keine Vorschläge Als einfachen Text bearbeiten Als umformatierten Text bearbeiten Öffentlichen Schlüssel auswählen diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 5691293c79..07298a11cb 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -1178,6 +1178,8 @@ Για αυτό θα χρειαστούν περισσότεροι χαρακτήρες Χρήση: %1$s / %2$s (%3$d %%) Πατήστε στο κείμενο για να μεταφραστεί + Έλεγχος … + Καμία πρόταση Επεξεργασία ως απλό κείμενο Επεξεργασία ως αναμορφοποιημένο κείμενο Επιλογή δημοσίου κλειδιού diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 440dd9d67a..f00ba6d5a2 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1180,6 +1180,8 @@ Esto consumirá más caracteres Uso: %1$s / %2$s (%3$d %%) Toque el texto para traducirlo + Comprobando … + No hay sugerencias Editar como texto plano Editar como texto con formato Seleccionar clave pública diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 5256f40acc..1c09727293 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -816,6 +816,7 @@ درج قالب قالب‌بندی را حفظ کن این، کاراکترهای بیشتری را به کار خواهد برد + بدون پیشنهاد ویرایش مانند متن ساده انتخاب کلید عمومی کلید عمومی برای %1$s نیست diff --git a/app/src/main/res/values-hr-rHR/strings.xml b/app/src/main/res/values-hr-rHR/strings.xml index aae391f947..efd8ac759a 100644 --- a/app/src/main/res/values-hr-rHR/strings.xml +++ b/app/src/main/res/values-hr-rHR/strings.xml @@ -626,31 +626,63 @@ Ovo može promijeniti učestalost sinkronizacije radi uštede baterije, ovisno o mogućnostima i ponašanju poslužitelja e-pošte Dodirnite vrijeme za postavljanje vremena Rasporedi se mogu onemogućiti u naprednim postavkama računa + Ovo smanjuje potrošnju podataka, ali nove poruke mogu biti propuštene ako poslužitelj e-pošte ne slijedi standarde + Neki davatelji usluga pohranjuju poruke s nepoznatim, nevažećim ili budućim datumom kao poruke bez datuma Neki davatelji ne podržavaju to ispravno, što može uzrokovati sinkronizaciju nijedne ili svih poruka Kad je onemogućeno, nepročitane poruke zauvijek se čuvaju na uređaju To će prenijeti dodatne podatke i potrošiti dodatnu snagu baterije, posebno ako je na uređaju spremljeno puno poruka + Ovo se odnosi samo na novoprimljene poruke i može prekinuti postojeće grupe + Samo poruke primljene zadnja(ih) %1$d sata(i) Onemogućavanjem će se nešto smanjiti korištenje podataka i baterija, ali će se onemogućiti i ažuriranje popisa mapa + Povremeno sinkroniziraj popis mapa nakon povezivanja s računom + Ovo će provjeriti rezultate DKIM, SPF i DMARC provjere autentikacije koje izvodi poslužitelj e-pošte + Ovo će prikazati zeleni štit samo ako su svi poslužitelji sigurno prenijeli poruku + Ovo će provjeriti jesu li naziv domene pošiljatelja i adresa za odgovor isti Ovo će provjeriti dali postoju DNS MX zapisi Ovo će usporiti sinkronizaciju poruka + Ovo će uvijek, s popisa poruka, vratiti na popis mapa povezanog računa + Ako je onemogućeno, pri odabiru kontakata koristit će se samo adrese e-pošte Pored kontakata koje pruža Android. Podaci za kontakte bit će pohranjeni za novoprimljene ili primljene poruke samo ako su omogućene. + Ovo će odabrati posljednji korišteni identitet za prvog primatelja novih poruka Pokaži upozorenje kada je tekst poruke ili predmet prazan ili kada prilog možda nedostaje + Poslužitelj e-pošte i dalje može dodati poruke u mapu poslanih poruka Umetni \'--\' između teksta i potpisa + Ovo može dovesti do uklanjanja premalo ili previše teksta Mjerne veze su obično mobilne veze ili plaćene Wi-Fi pristupne točke Onemogućivanjem ove opcije onemogućit ćete primanje i slanje poruka na mobilnim internetskim vezama Ne pretpostavljajući roaming unutar EU + Ovo će povećati potrošnju baterije, podataka i prostora za pohranu + Omogućavanje ovoga ograničit će korištenje podataka, ali poruke će se prikazivati bez stilskog oblikovanja + Omogućavanje ovoga može uzrokovati probleme s povezivanjem na nekim uređajima + Ovo može rezultirati nesinkroniziranjem poruka, npr. kada koristite VPN, ali i u drugim situacijama Vremensko ograničenje čitanja / pisanja postavit će se u dvostruko vrijeme do prekida veze. Veće vrijednosti rezultirat će većom potrošnjom baterije. + Onemogućavanje ovoga olakšat će provjeru certifikata poslužitelja Ako se to omogući, onemogućit će se slabi SSL protokoli i šifre, što može dovesti do problema s vezom Zaglavlja poruka uvijek će se prikazivane prilikom roaminga. Postavku roaminga uređaja možete koristiti da biste onemogućili internet tijekom roaminga. Dohvatite više poruka prilikom pomicanja prema dolje Prebacivanje na kompaktniji izgled i promjena veličine teksta poruke može se izvršiti u izborniku gornje radne trake u prikazu poruka + Dugo pritisnite bilo koju mapu na popisu mapa da biste ju dodali ili uklonili s popisa objedinjenih mapa Poruke su grupirane po datumu samo ako su sortirane po vremenu Hoće li ovo raditi ovisi o verziji i varijante Androida + Ovo će podijeliti zaslon na dijelove + Ovo je stanje namijenjeno sklopivim uređajima Grupiranje međusobno povezane poruke + Naglasna boja teme koristit će se za isticanje Može postojati rizik za privatnost + Imena će biti prikazana samo kada su dostupna Dostupno samo kada je preuzet tekst poruke + Najviše %s znak(ov)a ukupno Pomicanje može biti sporo zbog pogreške u nekim verzijama Androida kada je broj linija veći od jedan + Ovo može rezultirati vrlo malim fontovima + Ovo može učiniti poruke užima, ali i izgledati čudno + Samo poruke u obliku običnog teksta smatrat će se unaprijed formatiranima + Ovo se odnosi samo na preformatirane poruke Inline slike su slike uključene u poruku + Sadržaj komprimiranih datoteka (%1$s) s više od %2$s datoteka ili s datotekama većim od %3$s neće biti prikazan + Ovo će točnije prikazati poruke, ali moguće s kašnjenjem + Podrška za otkrivanje jezika ovisi o proizvođaču uređaja Automatski otvori poruku ako postoji samo jedna poruka ili samo jedna nepročitana poruka u razgovoru + Dugme za odgovor neće se prikazati kada se više poruka proširi jer nije jasno na koju se poruku gumb odnosi Automatski zatvori razgovore kada su sve poruke arhivirane, poslane ili stavljene u otpad Većina pružatelja usluga ne dopušta modificirane adrese pošaljitelja Onemogućavanje ove opcije može biti štetno za vašu privatnost diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index 58c095d392..23ff9b1382 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -348,6 +348,8 @@ הוספת קבצים משותפים לטיוטה חדשה לחיצה ארוכה על כפתור המענה: הצגת סמלי שליחה מושהית שאינם בולטים + לשמור טיוטה אוטומטית אחרי כל פרק + לשמור טיוטה אוטומטית אחרי כל משפט גופן ברירת המחדל בחירת זהויות להודעות חדשות אוטומטית ליצור קידומת לנושא רק פעם אחת במענה או העברה @@ -428,6 +430,7 @@ הצגת תמונות אנשי קשר מוען בלתי מאומת מוען מאומת + הצגת תמונות ייצוגיות הצגת סמלי אתרים לסרוק רק את %1$s הראשונים של עמוד האינטרנט הצגת סמלים שנוצרו אוטומטית @@ -1201,6 +1204,8 @@ יצרוך יותר תווים שימוש: %1$s / %2$s (%3$d %%) נא לגעת בטקסט לתרגום + בבדיקה… + אין הצעות עריכה כטקסט פשוט עריכה כטקסט שעוצב מחדש בחירת מפתח ציבורי diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index f704811758..df780c00bd 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -256,6 +256,7 @@ 메시지 본문 대화 상자를 닫을 때 행 또는 열 축소 고정된 내비게이션 메뉴에 읽지 않은 메시지 수 표시 + 시작 화면을 표시합니다 태블릿 스타일 사용 중 구분선 표시 날짜로 묶기 상단 헤더에서 수정일 표시 @@ -702,6 +703,7 @@ 연결 끊김 연결 중 연결함 + 편지함이 거의 가득 찼습니다 동기화 중 다운로드 중 닫기 @@ -854,6 +856,7 @@ 폴더 글씨 크기 여백 크기 + 배경 색 접음 펼침 읽음 @@ -963,7 +966,7 @@ 보통 개인 - Private + 비공개 Confidential @@ -1012,8 +1015,8 @@ - Name only - Email only + 이름만 + 이메일만 이름 및 이메일 @@ -1029,7 +1032,7 @@ 수신 발신인 차단됨 - Not blocked + 차단되지 않음 모두 diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index f383d2b499..ce947819ce 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -1203,7 +1203,7 @@ Будет использоваться больше символов Использование: %1$s / %2$s (%3$d %%) Нажмите на текст для перевода - Проверка… + Проверка … Нет предложений Редактировать как простой текст Редактировать как исходный текст diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8a0eee561e..e986b80f44 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -317,6 +317,8 @@ 将共享文件添加到新草稿 长按回复按钮动作: 显示不显眼的 \"延迟发送\" 图标 (页面左下角) + 在每一段后自动保存草稿 + 每句后自动保存草稿 默认字体 自动选择新邮件的身份 答复或抄送邮件时, 主题前的Re或CC只出现一次 @@ -397,6 +399,7 @@ 显示联系人头像 未验证的发送者 已验证的发送者 + 显示头像 显示网页图标 只扫描网页的前 %1$s 数据 显示生成的图标 @@ -1165,6 +1168,8 @@ 这将耗费更多字符 用量: %1$s / %2$s (%3$d %%) 点击要翻译的文本 + 正在检查 … + 无建议 以纯文本形式编辑 编辑为重新格式化的文本 选择公钥