From 450966cce6d2cb78ce6b431771b1f8c49ffa33ec Mon Sep 17 00:00:00 2001 From: "florian.haar" Date: Fri, 8 Mar 2019 08:53:52 +0100 Subject: [PATCH 01/12] og should be reachable during onboarding #744 --- res/layout/registration_activity.xml | 20 ++++++++++++++++--- res/values/strings.xml | 2 +- .../securesms/LogViewActivity.java | 13 +++++------- .../securesms/RegistrationActivity.java | 7 +++++++ 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/res/layout/registration_activity.xml b/res/layout/registration_activity.xml index 61c2b22cd..9c2002368 100644 --- a/res/layout/registration_activity.xml +++ b/res/layout/registration_activity.xml @@ -92,7 +92,7 @@ android:layout_height="wrap_content" android:visibility="gone" app:constraint_referenced_ids="inbox, imap_login, imap_server, imap_port, imap_security_label, imap_security, outbox_view_spacer_top, - outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method" /> + outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method, view_log_button" /> @@ -325,6 +325,20 @@ app:layout_constraintStart_toStartOf="@id/guideline_root_start" app:layout_constraintTop_toBottomOf="@id/auth_method_label" /> + + + app:layout_constraintTop_toBottomOf="@id/view_log_button" /> diff --git a/res/values/strings.xml b/res/values/strings.xml index be91a01ae..a2f64d3a1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -287,7 +287,7 @@ Cannot login as \"%1$s\". Please check if the email-address and the password are correct. Response from %1$s: %2$s\n\nSome providers place additional information in your inbox; you can check them it eg. in the web frontend. Consult your provider or friends if you run into problems. - + View log diff --git a/src/org/thoughtcrime/securesms/LogViewActivity.java b/src/org/thoughtcrime/securesms/LogViewActivity.java index bf50d8f63..8c00ec8ee 100644 --- a/src/org/thoughtcrime/securesms/LogViewActivity.java +++ b/src/org/thoughtcrime/securesms/LogViewActivity.java @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.Util; -public class LogViewActivity extends PassphraseRequiredActionBarActivity { +public class LogViewActivity extends BaseActionBarActivity { private static final String TAG = LogViewActivity.class.getSimpleName(); @@ -21,18 +21,15 @@ public class LogViewActivity extends PassphraseRequiredActionBarActivity { LogViewFragment logViewFragment; @Override - protected void onPreCreate() { - dynamicTheme.onCreate(this); - dynamicLanguage.onCreate(this); - } - - @Override - protected void onCreate(Bundle icicle, boolean ready) { + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); setContentView(R.layout.log_view_activity); logViewFragment = LogViewFragment.newInstance(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment_container, logViewFragment); transaction.commit(); + dynamicTheme.onCreate(this); + dynamicLanguage.onCreate(this); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } diff --git a/src/org/thoughtcrime/securesms/RegistrationActivity.java b/src/org/thoughtcrime/securesms/RegistrationActivity.java index 0a066aa34..d8d944f33 100644 --- a/src/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/src/org/thoughtcrime/securesms/RegistrationActivity.java @@ -79,6 +79,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve TextInputEditText imapPortInput = findViewById(R.id.imap_port_text); TextInputEditText smtpServerInput = findViewById(R.id.smtp_server_text); TextInputEditText smtpPortInput = findViewById(R.id.smtp_port_text); + TextView viewLogText = findViewById(R.id.view_log_button); imapSecurity = findViewById(R.id.imap_security); smtpSecurity = findViewById(R.id.smtp_security); @@ -99,6 +100,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve advancedTextView.setOnClickListener(l -> onAdvancedSettings()); advancedIcon.setOnClickListener(l -> onAdvancedSettings()); advancedIcon.setRotation(45); + viewLogText.setOnClickListener((view) -> showLog()); boolean isConfigured = DcHelper.isConfigured(getApplicationContext()); if (isConfigured) { TextInputEditText imapLoginInput = findViewById(R.id.imap_login_text); @@ -136,6 +138,11 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve DcHelper.getContext(this).eventCenter.addObserver(this, DcContext.DC_EVENT_CONFIGURE_PROGRESS); } + private void showLog() { + Intent intent = new Intent(getApplicationContext(), LogViewActivity.class); + startActivity(intent); + } + @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuInflater inflater = this.getMenuInflater(); From fdcf2786a8b36daf547058a1c9c0db6de3589297 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 15:54:55 +0100 Subject: [PATCH 02/12] tweak layout, re-use existing string --- res/layout/registration_activity.xml | 6 +++--- res/values/strings.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/res/layout/registration_activity.xml b/res/layout/registration_activity.xml index 9c2002368..0d00842b7 100644 --- a/res/layout/registration_activity.xml +++ b/res/layout/registration_activity.xml @@ -327,14 +327,14 @@ diff --git a/res/values/strings.xml b/res/values/strings.xml index a2f64d3a1..be91a01ae 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -287,7 +287,7 @@ Cannot login as \"%1$s\". Please check if the email-address and the password are correct. Response from %1$s: %2$s\n\nSome providers place additional information in your inbox; you can check them it eg. in the web frontend. Consult your provider or friends if you run into problems. - View log + From 0913fc2f1b473a7e84b1113a1d5d302b9de51be9 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 16:30:22 +0100 Subject: [PATCH 03/12] update translations --- res/values-da/strings.xml | 37 ++++++++++++--------- res/values-es/strings.xml | 44 ++++++++++++++---------- res/values-ru/strings.xml | 70 ++++++++++++++++++++++----------------- 3 files changed, 87 insertions(+), 64 deletions(-) diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index c5c39dfdb..aa26b3f26 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -36,6 +36,8 @@ I går Denne uge Denne uge + Sidste uge + Sidste måned %d min. @@ -47,20 +49,20 @@ %d timer - 1 samtale - %1$d samtaler + %d samtale + %d samtaler - 1 kontakt - %1$d kontakter + %d kontakt + %d kontakter - 1 besked - %1$d beskeder + %d besked + %d beskeder - 1 medlem - %1$d medlemmer + %d medlem + %d medlemmer Undertegnede @@ -152,12 +154,12 @@ Forlade denne gruppe? - Slette samtale? Den vil ikke længere blive vist i samtale listen, dens beskeder vil forblive på serveren. + Slette %d samtale? Den vil ikke længere blive vist i samtale listen, dens beskeder vil forblive på serveren. Slette %d samtaler? De vil ikke længere blive vist i samtale listen, deres beskeder vil forblive på serveren. - Slette besked her og på server? - Slette %1$d beskeder her og på server? + Slette %d besked her og på serveren? + Slette %d beskeder her og på serveren? Videresende beskeder til %1$s? Eksportere vedhæftninger? Eksport af vedhæftninger vil tillade alle programmer på din enhed adgang til dem.\n\nFortsætte? @@ -177,12 +179,12 @@ - Samtale arkiveret + %d samtale arkiveret %d samtaler arkiveret - Samtale fjernet fra arkiv - %d samtaler fjernet fra arkiv + %d samtale frigjort fra arkiv + %d samtaler frigjort fra arkiv Arkiverede samtaler Indtast besked @@ -267,6 +269,8 @@ SMTP server SMTP port SMTP sikkerhed + Tilladelse metode + Fortsætte med forenklet opsætning? For GMail konti skal der oprettes en App-Password hvis 2FA er aktiveret. Hvis denne opsætning ikke er tilgængelig skal Less Secure Apps aktiveres. Indtast gyldig e-post adresse Indtast gyldig server / IP adresse @@ -403,7 +407,7 @@ Skærm lås - Lås Delta Chat adgang med Android skærmlås eller fingeraftryk + Låse adgang med Android skærmlås eller fingeraftryk; for at undgå at vise det forrige indhold, skal \"Skærm sikkerhed\" også aktiveres. Godkendelse mislykket. Lås Delta Chat op Indtast system bestemt hemmelighed for at låse Delta Chat op. @@ -468,6 +472,9 @@ Delta Chat kræver mikrofon tilladelse for at sende lydbeskeder, men den er blevet nægtet permanent. Fortsæt til program indstillinger, vælg \"Tilladelser\" og aktiver \"Mikrofon\". Delta Chat kræver lagring tilladelse for at vedhæfte eller eksportere billeder, video eller lyd, men det er blevet afvist permanent. Fortsæt til program indstillings-menuen, vælg \"Tilladelser\" og aktiver \"Lagring\". Delta Chat kræver placering tilladelse for at kunne vedhæfte placering, men det er blevet afvist permanent. Fortsæt til program indstillings-menuen, vælg \"Tilladelser\" og aktiver \"Placering\". + Tryk her for at modtage beskeder når Delta Chat er i baggrunden. + Delta Chat bruger minimal resurse og passer på ikke at dræne batteriet. + Belgisk Catalansk diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index b640f854b..18afeb7d9 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -36,6 +36,8 @@ Ayer Esta semana Este mes + La semana pasada + El mes pasado %d min @@ -47,20 +49,20 @@ %d horas - 1 chat - %1$d chats + %d chat + %d chats - 1 contacto - %1$d contactos + %d contacto + %d contactos - 1 mensaje - %1$d mensajes + %d mensaje + %d mensajes - 1 miembro - %1$d miembros + %d miembro + %d miembros Yo @@ -152,12 +154,12 @@ ¿Seguro que deseas abandonar este grupo? - ¿Eliminar este chat? No volverá a ser mostrado en la lista de chats, pero sus mensajes permanecerán en el servidor. + ¿Eliminar %d chat? No volverá a ser mostrado en la lista de chats, pero sus mensajes permanecerán en el servidor. ¿Eliminar %d chats? No volverán a ser mostrados en la lista de chats, pero sus mensajes permanecerán en el servidor. - ¿Eliminar el mensaje aquí y en el servidor? - ¿Eliminar %1$d mensajes aquí y en el servidor? + ¿Eliminar %d mensaje aquí y en el servidor? + ¿Eliminar %d mensajes aquí y en el servidor? ¿Reenviar mensajes a %1$s? ¿Exportar adjuntos? Si exporta los adjuntos, serán accesibles desde cualquier otra aplicación en su dispositivo. ¿Desea continuar? @@ -177,11 +179,11 @@ - chat archivado + %d chat archivado %d chats archivados - Chat des-archivado + %d chat des-archivado %d chats des-archivados Chats archivados @@ -267,6 +269,9 @@ Servidor SMTP Puerto SMTP Seguridad SMTP + Método de autorización + ¿Continuar con la configuración simplificada? + La dirección de correo introducida admite una configuración simplificada (OAuth2).\n\nEn el próximo paso, permita que Delta Chat actúe como su aplicación de chat por correo electrónico.\n\nDelta Chat no tiene servidores, tus datos permanecen en tu dispositivo! Para las cuentas de Gmail, debe crear una contraseña de aplicación si tiene habilitado la verificación en 2 pasos. Si esta opción no está disponible, debe habilitar la opción \"Acceso de aplicaciones poco seguras\". Por favor, introduzca una dirección de correo válida Por favor, introduzca un servidor / dirección IP válido @@ -342,8 +347,8 @@ Teclado incógnito Solicitar al teclado deshabilitar el aprendizaje personalizado - Recibos de lectura - Si los recibos de lectura están deshabilitados, no podrá ver los recibos de lectura de otros. + Acuse de recibo + Si los acuse de recibo están deshabilitados, no podrá ver los acuse de recibo de otros. Administrar claves Usar emoji del sistema Deshabilitar el soporte de emoji integrado de Delta Chat @@ -403,8 +408,8 @@ Miembro %1$s añadido. Miembro %1$s eliminado. Grupo abandonado. - Recibo de lectura - Este es un recibo de lectura para el mensaje \"%1$s\".\n\nSignifica que el mensaje se mostró en el dispositivo del destinatario, pero no necesariamente que se leyó el contenido. + Acuse de recibo + Este es un acuse de recibo para el mensaje \"%1$s\".\n\nSignifica que el mensaje se mostró en el dispositivo del destinatario, pero no necesariamente que se leyó el contenido. Este mensaje no puede ser descifrado.\n\n• Es posible que sea útil simplemente responderlo y pedirle al remitente que lo envíe nuevamente.\n\n• En caso de que haya reinstalado Delta Chat u otro programa de correo en este u otro dispositivo, puede que quiera enviar un Mensaje de Configuración de Autocrypt desde allí. %1$s por mi. @@ -414,7 +419,7 @@ Bloqueo de pantalla - Bloquear el acceso a Delta Chat con el bloqueo de pantalla o de huella de Android + Bloquea el acceso con el bloqueo de pantalla de Android o huella; para evitar que aparezca el contenido anterior, habilite también \"Seguridad de pantalla\" La autenticación falló. Desbloquear Delta Chat Por favor, ingrese la clave definida en su sistema para desbloquear Delta Chat. @@ -480,6 +485,9 @@ Delta Chat requiere el permiso de Micrófono para enviar mensajes de audio, pero ha sido denegado de forma permanente. Por favor, vaya al menú de configuración de aplicaciones, seleccione \"Permisos\" y habilite \"Micrófono\". Delta Chat requiere el permiso de Almacenamiento para adjuntar o exportar fotos, videos o audio, pero ha sido denegado de forma permanente. Por favor, vaya al menú de configuración de aplicaciones, seleccione \"Permisos\" y habilite \"Almacenamiento\". Delta Chat requiere el permiso de Ubicación para adjuntar una ubicación, pero ha sido denegado de forma permanente. Por favor, vaya al menú de configuración de aplicaciones, seleccione \"Permisos\" y habilite \"Ubicación\". + Toque aquí para recibir mensajes mientras Delta Chat está en segundo plano. + Delta Chat utiliza los recursos al mínimo y tiene cuidado de no drenar tu batería. + Belga Catalán diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 1a2150809..d98fff5be 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -36,6 +36,8 @@ Вчера На этой неделе В этом месяце + Прошлая неделя + Прошлый месяц %d минуту @@ -51,28 +53,28 @@ %d часов - 1 чат - %1$d чата - %1$d чатов - %1$d чатов + %d чатов + %d чатов + %d чатов + %d чатов - 1 контакт - %1$d контакта - %1$d контактов - %1$d контактов + %d + %d contact + %d контактов + %d контактов - 1 сообщение - %1$d сообщения - %1$d сообщений - %1$d сообщений + %d message + %d messages + %d messages + %d сообщений - 1 участник - %1$d участника - %1$d участников - %1$d участников + %d участников + %d member + %d member + %d участников Мои сообщения @@ -164,16 +166,16 @@ Вы уверены, что хотите покинуть эту группу? - Удалить этот чат? Он более не будет виден в списке чатов, его сообщения останутся на сервере. - Удалить %d чатов? Они более не будут видны в списке чатов, их сообщения останутся на сервере. - Удалить %d чатов? Они более не будут видны в списке чатов, их сообщения останутся на сервере. - Удалить %d чата? Они больше не будут видны в списке чатов, их сообщения останутся на сервере. + Удалить %d чат? Он больше не будет отображаться в списке чатов, его сообщения останутся на сервере. + Удалить %d чата? Они больше не будет отображаться в списке чатов, их сообщения останутся на сервере. + Удалить %d чатов? Они больше не будет отображаться в списке чатов, их сообщения останутся на сервере. + Удалить %d чатов? Они больше не будет отображаться в списке чатов, их сообщения останутся на сервере. - Удалить сообщение отсюда и с сервера? - Удалить %1$d сообщений отсюда и с сервера? - Удалить %1$d сообщений отсюда и с сервера? - Удалить %1$d сообщения отсюда и с сервера? + Delete %d message here and on the server? + Удалить %d сообщений здесь и на сервере? + Delete %d message here and on the server? + Удалить %d сообщений здесь и на сервере? Переслать сообщения для %1$s? Экспортировать вложения? Экспорт вложений, позволит любому приложению на вашем устройстве получить к ним доступ.\n\nПродолжить? @@ -193,14 +195,14 @@ - Чат заархивирован. - %d чатов были заархивированы. - %d чатов были заархивированы. - %dчатов архивировано + %d chat archived + %d chat archived + %d чатов архивировано + %d архивированных чатов - Чат разархивирован - %d чата разархивировано + %d chat unarchived + %d chat unarchived %d чатов разархивировано %d чатов разархивировано @@ -289,6 +291,9 @@ SMTP сервер SMTP порт Настройки безопасности SMTP + Метод авторизации + Продолжить упрощенную настройку? + Введенный адрес электронной почты поддерживает упрощенную настройку (OAuth2). \n\nВ следующем шаге разрешите Delta Chat выступать в качестве приложения чата с электронной почтой. \n\nDelta Chat не имеет серверов, ваши данные остаются на вашем устройстве! Для аккаунтов GMail необходимо задать пароль для приложений - App-Password , если включена 2FA двухфакторная аутентификация. Если эти настройки недоступны, вам нужно активировать параметр Less Secure Apps. Укажите действительный адрес эл. почты Укажите действительный сервер / IP адрес @@ -436,7 +441,7 @@ Блокировка экрана - Блокирование доступа к Delta Chat с помощью блокировки экрана Android или отпечатка пальца + Блокировка доступа с помощью блокировки экрана Android или отпечатков пальцев; чтобы избежать появления предыдущего контента, пожалуйста, включите \"Безопасность экрана\" Не удалось пройти аутентификацию Разблокировать Delta Chat Введите защитный код, чтобы разблокировать Delta Chat. @@ -502,6 +507,9 @@ Для отправки аудио сообщений приложению Delta Chat нужно разрешение использовать микрофон, но сейчас микрофон заблокирован. Перейдите в меню настроек приложения, выберите \"Разрешения приложений\" и включите \"Микрофон\". Для вложения или экспорта фотографий, видео или аудио файлов в Delta Chat требуется доступ к памяти устройства, однако в этом разрешении было отказано навсегда. Перейдите в меню настроек приложения, выберите \"Разрешения приложений\" и включите \"Память\". Чтобы передать местоположение приложению Delta Chat нужно разрешить доступ к нему, но сейчас он заблокирован. Перейдите в меню настроек приложения, выберите \"Разрешения приложений\" и включите \"Местоположение\". + Нажмите здесь, чтобы получать сообщения, когда Delta Chat находится в фоновом режиме. + Delta Chat использует минимальные ресурсы и старается не разряжать батарею. + Фламандский Каталанский From e39c569aa1586b3ede68e7bb8a966ab4a4a97e0e Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 17:07:00 +0100 Subject: [PATCH 04/12] update translations --- res/values-az/strings.xml | 35 ------------ res/values-da/strings.xml | 4 -- res/values-de/strings.xml | 47 ++++++++++------ res/values-es/strings.xml | 5 -- res/values-eu/strings.xml | 40 ++++--------- res/values-fr/strings.xml | 114 +++++++++++++++++++++++++++++++++++-- res/values-it/strings.xml | 41 +++++++------- res/values-lt/strings.xml | 63 +++++++++++---------- res/values-nl/strings.xml | 115 +++++++++++++++++++------------------- res/values-pl/strings.xml | 55 ------------------ res/values-pt/strings.xml | 39 ------------- res/values-ru/strings.xml | 5 -- res/values-sq/strings.xml | 44 ++++++++------- res/values-sv/strings.xml | 35 ------------ res/values-tr/strings.xml | 35 ------------ res/values-uk/strings.xml | 55 ------------------ 16 files changed, 290 insertions(+), 442 deletions(-) diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index a96d1ce90..988b45b8e 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -46,23 +46,6 @@ %d saat %d saat - - çat - %1$d çat - - - 1 kontakt - %1$dkontakt - - - mesaj - %1$dmesaj - - - üzv - %1$düzv - - Mənə Laihə Şəkil @@ -151,14 +134,6 @@ Bu qrupu tərk etmək istədiyinizə əminsiniz? - - çat silmək? Artıq çat siyahısında göstərilməyəcək, mesajlar serverdə qalacaq. - %d çat silmək? Artıq çat siyahısında göstərilməyəcək, mesajlar serverdə qalacaq. - - - mesaj burada və serverdə silin? - %1$d mesaj burada və serverdə silin? - Mesajları yönləndirin %1$sə-? Faylı ixrac etmək? Faylların ixracı cihazınızdakı hər hansı digər tətbiqlərə daxil olmağa imkan verəcəkdir. \n\n Razısan? Bu kontaktı bloklamaq? Bu kontaktdan artıq mesaj qəbul etməyəcəksiniz. @@ -175,15 +150,6 @@ Kontakt yoxdur. - - - çat arxivləndi - %d çat arxivləndi - - - arxivdən çıxarıldı - %d arxivdən çıxarıldı - Çatlar saxlanıldı Mesajı daxıl edin Camera əlçatmazdır. @@ -203,7 +169,6 @@ Xəzinələndi Mesaj yoxdur Özümə göndərdiyim mesajlar - Axtarış Çatlar, kontaktlar və mesajlar axtar diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index aa26b3f26..eff0805e5 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -206,7 +206,6 @@ Arkiveret Ingen beskeder Beskeder sendt til undertegnede - Søge Søge efter samtaler, kontakter og beskeder @@ -374,8 +373,6 @@ Overvåge DeltaChat mappe Flytter automatisk til DeltaChat mappe Samtaler er flyttet for at undgå rodet indbakke mappe - - Autocrypt Sende Autocrypt opsætning besked @@ -597,5 +594,4 @@ Skanne dette for at tilslutte gruppe \"%1$s\". - diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index b7a08ee97..450e4a320 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -36,6 +36,8 @@ Gestern Diese Woche Dieser Monat + Letzte Woche + Letzter Monat %d Min @@ -47,20 +49,20 @@ %d Std - 1 Chat - %1$d Chats + %d Chat + %d Chats - 1 Kontakt - %1$d Kontakte + %d Kontakt + %d Kontakte - 1 Nachricht - %1$d Nachrichten + %d Nachricht + %d Nachrichten - 1 Mitglied - %1$d Mitglieder + %d Mitglied + %d Mitglieder Ich @@ -152,12 +154,12 @@ Diese Gruppe verlassen? - Diesen Chat löschen? Ein gelöschter Chat wird nicht länger in der Chat-Liste angezeigt, die Nachrichten verbleiben auf dem Server. + %d Chat löschen? Gelöschte Chats werden nicht länger in der Chat-Liste angezeigt, die Nachrichten verbleiben auf dem Server. %d Chats löschen? Gelöschte Chats werden nicht länger in der Chat-Liste angezeigt, die Nachrichten verbleiben auf dem Server. - Nachricht lokal und vom Server löschen? - %1$d Nachrichten lokal und vom Server löschen? + %d Nachricht lokal und vom Server löschen? + %d Nachrichten lokal und vom Server löschen? Nachricht weiterleiten an %1$s? Anlage exportieren? Das Exportieren von Anhängen ermöglicht es allen anderen Anwendungen auf Ihrem Gerät, auf diese zuzugreifen.\n\nFortfahren? @@ -177,11 +179,11 @@ - Chat archiviert + %d Chat archiviert %d Chats archiviert - Chat unarchived + %d Chat dearchiviert %d Chats dearchiviert Archivierte Chats @@ -204,6 +206,8 @@ Archiviert Keine Nachrichten. Nachrichten, die ich mir selber geschickt habe + Kontaktanfrage + Keine Kontaktanfragen.\n\nWenn normale E-Mails hier erscheinen sollen, müssen Sie die entsprechende erweiterte Einstellung ändern. Suchen @@ -256,6 +260,7 @@ Login Beim Server anmelden Für bekannte E-Mail-Anbieter werden zusätzliche Einstellungen automatisch vorgenommen. Manchmal muss IMAP im Web-Frontend aktiviert werden. Bitten Sie Ihren Anbieter oder Freunde um Rat, wenn es Probleme gibt. + Es gibt keine Delta Chat Server! Ihre Daten bleiben auf Ihrem Gerät! Posteingang IMAP-Anmeldename IMAP-Server @@ -267,6 +272,9 @@ SMTP-Server SMTP-Port SMTP-Sicherheit + Berechtigungsmethode + Mit vereinfachter Einrichtung fortfahren? + Die eingegebene E-Mail-Addresse unterstützt eine vereinfachte Einrichtung (OAuth2).\n\nBitte erlauben Sie Delta Chat im nächsten Schritt als Chat-Über-E-Mail-App zu arbeiten.\n\nEs gibt keine Delta Chat Server! Ihre Daten bleiben auf Ihrem Gerät! Für GMail-Konten muss ein App-Passwort erstellt werden, wenn die 2FA (Zwei-Faktor-Authentifizierung) aktiviert ist. Wenn diese Einstellung nicht verfügbar ist, muss \"Zugriff durch weniger sichere Anwendungen\" aktiviert werden. Bitte eine gültige E-Mail-Adresse eingeben Bitte eine gültige Server/IP-Adresse eingeben @@ -378,6 +386,11 @@ Einige Anbieter platzieren zusätzliche Informationen im Posteingang, die Sie z. DeltaChat-Ordner beobachten Autom. Verschieben in den DeltaChat-Ordner Nachrichten verschieben, um einen unübersichtlichen Posteingang zu verhindern. + E-Mail-Zusammenspiel + Normale E-Mails anzeigen + Nein, nur Chats + Akzeptierte Kontakte + Alle @@ -405,7 +418,7 @@ Einige Anbieter platzieren zusätzliche Informationen im Posteingang, die Sie z. %1$s hinzugefügt. %1$s entfernt. Gruppe verlassen. - Empfangsbestätigung lesen + Empfangsbestätigung Dies ist eine Empfangsbestätigung für die Nachricht \"%1$s\".\n\nEs bedeutet, dass die Nachricht auf dem Gerät des Empfängers angezeigt wurde, nicht unbedingt, dass der Inhalt gelesen wurde. Diese Nachricht kann nicht entschlüsselt werden.\n\n• Es könnte bereits helfen, einfach auf diese Nachricht zu antworten und den Absender zu bitten, die Nachricht erneut zu senden.\n\n• Falls Delta Chat oder ein anderes E-Mail-Programm auf diesem oder einem anderen Gerät neu installiert wurde, kann von dort aus eine Autocrypt Setup-Nachricht gesendet werden. @@ -416,7 +429,7 @@ Einige Anbieter platzieren zusätzliche Informationen im Posteingang, die Sie z. Bildschirmsperre - Sperre den Delta Chat Zugang mit der Android Bildschirmsperre oder Fingerabdruck. + Sperren Sie den Zugriff mit der Android-Bildschirmsperre oder Ihrem Fingerabdruck; um nicht die vorherigen Inhalte zu sehen, aktivieren Sie bitte auch \"Bildschirmsicherheit\". Die Authentifizierung ist fehlgeschlagen. Delta Chat entsperren Den System-Entsperrcode eingeben, um Delta Chat freizuschalten. @@ -482,6 +495,9 @@ Einige Anbieter platzieren zusätzliche Informationen im Posteingang, die Sie z. Delta Chat benötigt die Erlaubnis des Mikrofons, um Audio-Nachrichten zu senden, aber es wurde dauerhaft abgelehnt. Bitte fahre mit den App-Einstellungen fort, wähle \"Berechtigungen\" und aktiviere \"Mikrofon\". Delta Chat benötigt die Speichergenehmigung, um Fotos, Videos oder Audiodateien anzuhängen oder zu exportieren, aber es wurde dauerhaft abgelehnt. Bitte fahre mit dem Menü App-Einstellungen fort, wähle \"Berechtigungen\" und aktiviere \"Speicher\". Delta Chat benötigt eine Standortberechtigung, um einen Standort anzuhängen, aber er wurde dauerhaft abgelehnt. Bitte fahre mit dem Menü App-Einstellungen fort, wähle \"Berechtigungen\" und aktiviere \"Standort\". + Tippen Sie hier, um Nachrichten zu empfangen, während Delta Chat im Hintergrund läuft. + Delta Chat verbraucht nur minimale Ressourcen und achtet darauf, den Akku zu schonen. + Belgisch Katalanisch @@ -605,5 +621,4 @@ Einige Anbieter platzieren zusätzliche Informationen im Posteingang, die Sie z. Dies scannen, um der Gruppe \"%1$s\" beizutreten. - diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 18afeb7d9..2b7bf4d01 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -206,7 +206,6 @@ Archivado No hay mensajes. Mensajes que envié a mí mismo - Buscar Buscar chats, contactos, y mensajes @@ -271,7 +270,6 @@ Seguridad SMTP Método de autorización ¿Continuar con la configuración simplificada? - La dirección de correo introducida admite una configuración simplificada (OAuth2).\n\nEn el próximo paso, permita que Delta Chat actúe como su aplicación de chat por correo electrónico.\n\nDelta Chat no tiene servidores, tus datos permanecen en tu dispositivo! Para las cuentas de Gmail, debe crear una contraseña de aplicación si tiene habilitado la verificación en 2 pasos. Si esta opción no está disponible, debe habilitar la opción \"Acceso de aplicaciones poco seguras\". Por favor, introduzca una dirección de correo válida Por favor, introduzca un servidor / dirección IP válido @@ -381,8 +379,6 @@ Monitorear carpeta DeltaChat Mover automáticamente a la carpeta DeltaChat Las conversaciones son movidas para evitar saturar la Bandeja de entrada - - Autocrypt Autocrypt es una nueva especificación abierta para encriptado automático de correo electrónico de extremo a extremo. Su configuración de extremo a extremo es creada automáticamente cuando se necesita y puede transferirla entre dispositivos con los Mensajes de Configuración de Autocrypt. @@ -611,5 +607,4 @@ Escanea esto para unirte al grupo \"%1$s\". - diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index cf4da64a0..0abed0199 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -36,6 +36,8 @@ Atzo Aste honetan Hilabete honetan + Azken astea + Azken hilabetea min %d @@ -47,20 +49,20 @@ %d ordu - txat 1 - %1$d txat + Txat %d + %d txat - kontaktu 1 - %1$d kontaktu + Kontaktu %d + %dkontaktu - mezu 1 - %1$d mezu + Mezu %d + %d mezu - kide 1 - %1$d kide + Kide %d + %d kide Ni @@ -151,14 +153,6 @@ Ziur talde honetatik atera nahi duzula? - - Ezabatu txat hau? Ez da gehiago agertuko txaten zerrendan, mezuak zerbitzarian mantenduko dira. - Ezabatu %d txat? Ez dira gehiago agertuko txaten zerrendan, mezuak zerbitzarian mantenduko dira. - - - Ezabatu mezua hemen eta zerbitzarian? - Ezabatu %1$d mezuak hemen eta zerbitzarian? - Birbidali mezuak %1$s erabiltzaileari? Esportatu eranskina? Eranskinak esportatzeak zure beste gailuko beste aplikazioek atzitzea ahalbidetuko du.\n\nJarraitu? Blokeatu kontaktu hau? Ez dituzu kontaktu honen mezu gehiago jasoko. @@ -175,15 +169,6 @@ Kontakturik ez - - - Txata artxibatuta - %d txat artxibatuta - - - Txata artxibotik atera da - %d txat artxibotik atera dira - Artxibatutako txatak Idatzi mezu bat. Kamera ez dago eskuragarri. @@ -204,7 +189,6 @@ Artxibatuta Mezurik ez. Nire buruari bidalitako mezuak - Bilatu Bilatu txatak, kontaktuak, eta mezuak. @@ -375,8 +359,6 @@ Begiztatu DeltaChat karpeta Automatikoki mugitzen du DeltaChat karpetara Txat elkarrizketak lekuz aldatzen dira sarrera ontzian enbarazu ez egiteko - - Autocrypt Bidali Autocrypt ezarpen mezua @@ -403,7 +385,6 @@ Pantila-blokeoa - Blokeatu Delta Chat Android-en pantaila blokeoa edo hatz-markarekin Autentifikazioak huts egin du. Desblokeatu Delta Chat Sartu sisteman zehaztutako sekretua Delta Chat desblokeatzeko. @@ -583,5 +564,4 @@ Eskaneatu hau \"%1$s\" taldera elkartzeko. - diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 5514b75f5..4d86b0046 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -6,6 +6,8 @@ Annuler Oui Non + Allumé + Éteint Par défaut Personalisé Aucun @@ -22,7 +24,7 @@ Aucune application trouvée pour traiter ces données. Aucun navigateur installé. Impossible de trouver %1$s - Copié dans le presse papier + Copié dans le presse-papiers Contacts Adresse email Mauvaise adresse email. @@ -33,7 +35,31 @@ Aujourd\'hui Hier Cette semaine - Ce mois + Ce mois-ci + La semaine dernière + Le mois dernier + + + %d heure + %d heures + + + %d discussion + %d discussions + + + %d contact + %d contacts + + + %d message + %d messages + + + %d membre + %d membres + + Moi Brouillon Image @@ -56,6 +82,7 @@ Bleu Orange Cyan + Pourpre Magenta Blanc @@ -87,14 +114,17 @@ Effacer les messages Effacer l\'image Détails du message + Copier vers presse-papiers Transmettre le message Renvoyer le message Répondre au message + Déactiver les notifications + Réactiver Exporter le fichier joint Tous les médias Partager - Bloquer le contact - Débloquer le contact + Bloquer ce contact + Débloquer ce contact Jouer Pause Inviter des amis @@ -104,13 +134,26 @@ Éditer le nom Paramètres Avancé + Demande de contact + Appuyez sur le message pour démarrer la conversation Voir le profil + Déactiver pour 1 heure + Déactiver pour 2 heures + Déactiver pour 1 jour + Déactiver pour 7 jours + Déactiver pour 1 an + + Voulez-vous vraiment quitter ce groupe ? Bloquer ce contact ? Vous ne recevrez plus ses messages. Débloquer ce contact ? Vous recevrez à nouveau ses messages. + Effacer ces contacts? Cela supprimera définitivement les contacts sélectionnés.\n\nLes contacts avec des conversations en cours et ceux venant du carnet d\'adresses du système ne peuvent pas être définitivement effacés. Impossible d\'effacer des contacts ayant une discussion active. + Discuter avec %1$s ? + + Contacts Entrez le nom ou l\'email @@ -118,17 +161,26 @@ Pas de contacts. + + + %d discussion archivée + %d discussions archivées + + + %d discussion désarchivée + %d discussions désarchivées + Discussions archivées. Entrez un message. Caméra indisponible. Impossible d\'enregistrer le son. Glisser pour annuler + Donnez de quoi lire à votre boîte de réception. Commencez à communiquer avec un ami. Partager avec Message Archivé Aucun message. Messages envoyés à moi-même - Chercher Rechercher des discussions, des contacts ou des messages @@ -138,14 +190,21 @@ Créer un groupe Entrez un nom pour le groupe. Ajouter des participants + Salut, je viens juste de nous créer le groupe \"%1$s\". Vous devez être membre du groupe pour effectuer cette action. Chiffrement + + Prévisualiser le fichier multimédia + Fichier multimédia Documents + Pas de fichier multimédia Pas de documents + + Les amis ne laissent pas leurs amis enfermés dans des silos de communication. Delta Chat Indépendant @@ -157,6 +216,9 @@ Libre Chiffré Digne de confiance + Démarrage communication + Connexion + Connexion vers votre serveur Boîte de réception Utilisateur IMAP Serveur IMAP @@ -173,6 +235,9 @@ Entrez un port valide (1-65535) Entrez une adresse email et un mot de passe valides Importer la sauvegarde + Aucune sauvegarde trouvée.\n\nCopiez le fichier de sauvegarde vers \"%1$s\" et essayez à nouveau. Ou bien, appuyez sur \"Démarrage communication\" pour suivre le processus normal de configuration. + + Connexion en tant que \"%1$s\" échouée. Vérifiez s.v.p. que votre adresse email et votre mot de passe sont corrects. Transférer à ... @@ -180,6 +245,7 @@ Photo du profile Effacer les anciens messages + Effacer tous les messages anciens? Cela écrêtera immédiatement toutes les conversations jusqu\'aux %d messages les plus récents. Contacts bloqués https://delta.chat/en/help Configuration des comptes et mots de passe @@ -189,15 +255,19 @@ Envoyé depuis Delta Chat: https://delta.chat Écran de sécurité + Notifications Son Silencieux Répéter les alertes + Discussions et fichiers multimédia Clair Foncé Apparence Thème Langage + Discussions + Une sauvegarde vous aide pour une nouvelle installation sur cet appareil ou un autre.\n\nLa sauvegarde contiendra tous les messages, contacts et discussions ainsi que vos réglages bout en bout d\'Autocrypt. Garder le fichier de sauvegarde dans un endroit sûr ou effacez le aussitôt utilisé. Démarrer la sauvegarde Gérer les clés Exporter les clés secrètes @@ -209,6 +279,40 @@ Envoyer le message de configuration Autocrypt Message de configuration Autocrypt Message de configuration Autocrypt + + Nom de groupe modifié de \"%1$s\" en \"%2$s\". + Image de groupe modifiée. + Image de groupe effacée. Groupe quitté. Reçu de lecture + Voulez-vous joindre le groupe \"%1$s\" ? + %1$s a joint le groupe. + Scannez ceci pour joindre le groupe \"%1$s\". + Scanner ceci pour avoir un contact avec %1$s + Message multimédia: %s + Message multimédia + + Bienvenue sur DeltaChat + Tout sélectionner + Sélectionner une discussion ou en créer une nouvelle + Demande de contact + Demande de contact + Aucune discussion archivée + Aucune discussion + Nom de groupe + Ajouter un contact + Choisir l\'image de groupe + Débloquer des contacts + Aucun contact bloqué + La discussion n\'a pas pu être créée + Êtes-vous sûr(e) de vouloir effacer cette discussion? + Adresse email requise. + Effacer cette connexion? Tout sera supprimé, y compris vos réglages bout en bout, contacts, discussions, messages et les fichiers multimédia. Cette action est définitive et ne peut pas être inversée. + + + Voulez-vous joindre le groupe \"%1$s\" ? + + Discuter avec %1$s? + + Discuter avec %1$s? diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index a80df3175..1fbe1463c 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -36,6 +36,8 @@ Ieri Questa settimana Questo mese + Ultima settimana + Ultimo mese %d min @@ -47,20 +49,20 @@ %d ore - 1 chat - %1$d chat + %d chat + %d chat - 1 contatto - %1$d contatti + %d contatto + %d contatti - 1 messaggio - %1$d messaggi + %d messaggio + %d messaggi - 1 membro - %1$d membri + %d membri + %d membri Io @@ -152,12 +154,12 @@ Sei sicuro di voler abbandonare il gruppo? - Eliminare questa chat? Non sarà più visibile nella lista, ma i suoi messaggi rimarranno sul server. - Elimiare %d chat? Non saranno più visualizzate nella lista, ma i messaggi rimarranno sul server. + Eliminare %d chat? Non verrà più mostrata nella lista delle chat, ma i messaggi rimarranno sul server. + Eliminare %d chat? Non verranno più mostrate nella lista delle chat, ma i messaggi rimarranno sul server. - Eliminare il messaggio sia qui che sul server? - Eliminare %1$d messaggi sia qui che dal server? + Eliminare %d messaggio qui e sul sever? + Eliminare %d messaggi qui e sul sever? Inoltrare messaggi a %1$s? Esportare allegato? Questo permetterà ad ogni altra app sul tuo dispositivo di accedervi.\n\nContinuare? @@ -177,11 +179,11 @@ - Chat archiviata + %d chat archiviata %d chat archiviate - Chat ripristinata + %d chat ripristinata %d chat ripristinate Chat archiviate @@ -204,7 +206,6 @@ Archiviato Nessun messaggio. Messaggi inviati a me stesso - Cerca Cerca in chat, contatti e messaggi @@ -267,6 +268,8 @@ Server SMTP Porta SMTP Sicurezza SMTP + Metodo di autorizzazione + Usare il setup semplificato? Per gli account GMail è necessario creare una password per le app se è attiva la verifica in 2 passaggi. Se queste impostazioni non sono disponibili, è necessario abilitare le app meno sicure. Inserisci un indirizzo email valido Inserisci un server / indirizzo IP valido @@ -376,8 +379,6 @@ Vedi cartella DeltaChat Sposta automaticamente nella cartella DeltaChat Le chat vengono spostate per evitare di riempire la cartella In Arrivo - - Autocrypt Autocrypt è una nuova specifica aperta per la cifratura end-to-end delle email.\n\nLa tua configurazione end-to-end viene creata automaticamente quando necessario e puoi trasferirla tra dispositivi tramite i Messaggi di configurazione. @@ -414,7 +415,7 @@ Blocco schermo - Blocca l\'accesso a Delta Chat con il blocco schermo di Android o l\'impronta digitale + Impedisci l\'accesso grazie al blocco schermo di Android o all\'impronta digitale; per non mostrare i contenuti precedenti, abilita \"Sicurezza Schermo\" Autenticazione fallita. Sblocca Delta Chat Inserisci il codice di sistema per sbloccare Delta Chat @@ -480,6 +481,9 @@ Delta Chat richiede l\'autorizzazione inviare messaggi audio, ma è stata bloccata permanentemente. Vai nelle impostazioni delle App, seleziona \"Autorizzazioni\" e abilita \"Microfono\". Delta Chat richiede l\'autorizzazione per creare allegati, esportare foto, video e audio, ma è stata bloccata permanentemente. Vai nelle impostazioni delle App, seleziona \"Autorizzazioni\" e abilita \"Archiviazione\". Delta Chat richiede l\'autorizzazione per allegare la posizione, ma è stata bloccata permanentemente. Vai nelle impostazioni delle App, seleziona \"Autorizzazioni\" e abilita \"Posizione\". + Premi qui per ricevere messaggi quando Delta Chat è in background. + Delta Chat usa poche risorse ed è progettata per consumare meno batteria possibile. + Belga Catalano @@ -603,5 +607,4 @@ Scansionalo per entrare nel gruppo \"%1$s\". - diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index a8e55818d..aabc5be3d 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -34,6 +34,8 @@ Vakar Šią savaitę Šį mėnesį + Praeitą savaitę + Praeitą mėnesį %d min. @@ -49,28 +51,28 @@ %d val. - %1$d pokalbis - %1$d pokalbiai - %1$d pokalbių - %1$d pokalbis + %d pokalbis + %d pokalbiai + %d pokalbių + %d pokalbis - %1$d adresatas - %1$d adresatai - %1$d adresatų - %1$d adresatas + %d adresatas + %d adresatai + %d adresatų + %d adresatas - %1$d žinutė - %1$d žinutės - %1$d žinučių - %1$d žinutė + %d žinutė + %d žinutės + %d žinučių + %d žinutė - %1$d dalyvis - %1$d dalyviai - %1$d dalyvių - %1$d dalyvis + %d dalyvis + %d dalyviai + %d dalyvių + %d dalyvis @@ -162,16 +164,16 @@ Ar tikrai norite išeiti iš šios grupės? - Ištrinti šį pokalbį? Jis daugiau nebebus rodomas pokalbių sąraše, jo žinutės liks serveryje. + Ištrinti %d pokalbį? Jis daugiau nebebus rodomas pokalbių sąraše, jo žinutės liks serveryje. Ištrinti %d pokalbius? Jie daugiau nebebus rodomi pokalbių sąraše, jų žinutės liks serveryje. Ištrinti %d pokalbių? Jie daugiau nebebus rodomi pokalbių sąraše, jų žinutės liks serveryje. - Ištrinti %d pokalbį? Jie daugiau nebebus rodomi pokalbių sąraše, jų žinutės liks serveryje. + Ištrinti %d pokalbį? Jis daugiau nebebus rodomas pokalbių sąraše, jo žinutės liks serveryje. - Ištrinti žinutę čia ir serveryje? - Ištrinti %1$d žinutes čia ir serveryje? - Ištrinti %1$d žinučių čia ir serveryje? - Ištrinti %1$d žinutę čia ir serveryje? + Ištrinti %d žinutę čia ir serveryje? + Ištrinti %d žinutes čia ir serveryje? + Ištrinti %d žinučių čia ir serveryje? + Ištrinti %d žinutę čia ir serveryje? Persiųsti žinutes %1$s? Eksportuoti priedą? Priedų eksportavimas leis bet kurioms kitoms programėlėms jūsų įrenginyje turėti prieigą prie šių priedų.\n\nTęsti? @@ -189,13 +191,13 @@ - Pokalbis archyvuotas + Archyvuotas %d pokalbis Archyvuoti %d pokalbiai Archyvuota %d pokalbių Archyvuotas %d pokalbis - Pokalbis išarchyvuotas + Išarchyvuotas %d pokalbis Išarchyvuoti %d pokalbiai Išarchyvuota %d pokalbių Išarchyvuotas %d pokalbis @@ -221,7 +223,6 @@ Archyvuotas Žinučių nėra. Žinutės, kurias siunčiu asmeniškai sau - Ieškoti Ieškokite pokalbių, adresatų ir žinučių @@ -284,6 +285,7 @@ SMTP serveris SMTP prievadas SMTP saugumas + Tęsti, naudojant supaprastintą sąranką? Įveskite teisingą el. pašto adresą. Įveskite teisingą serverį / IP adresą Įveskite teisingą prievadą (1–65535) @@ -313,6 +315,7 @@ Pokalbio ilgio riba %d žinučių pokalbyje Apkarpyti visus pokalbius dabar + Ištrinti visas senas žinutes dabar? Tai nedelsiant apkarpys visus pokalbius iki %d paskiausių žinučių. Užblokuoti adresatai Šalinti profilio nuotrauką? https://delta.chat/en/help @@ -381,9 +384,8 @@ Stebėti gautųjų aplanką Stebėti išsiųstųjų aplanką Stebėti DeltaChat aplanką + Automatiniai perkėlimai į DeltaChat aplanką Pokalbiai yra perkeliami, kad nebūtų sujauktas Gautųjų aplankas - - Autocrypt Autocrypt yra naujoji ir atviroji specifikacija automatiniam ištisiniam el. pašto šifravui.\n\nPrireikus, jūsų ištisinė sąranka yra sukuriama automatiškai ir gali būti perduodama tarp įrenginių, naudojant Autocrypt sąrankos žinutes. @@ -413,7 +415,6 @@ Nepavyksta iššifruoti šios žinutės.\n\n• Galima, tiesiog, atsakyti į šią žinutę ir paprašyti siuntėjo dar kartą išsiųsti šią žinutę.\n\n• Tuo atveju, jeigu iš naujo įdiegėte Delta Chat ar kitą el. pašto programą šiame ar kitame įrenginyje, jūs galite pageidauti išsiųsti Autocrypt sąrankos žinutę iš to įrenginio. Ekrano užraktas - Užrakinti prieigą prie Delta Chat, naudojant Android ekrano užraktą ar piršto atspaudą Tapatybės nustatymas nepavyko. Atrakinti Delta Chat Norėdami atrakinti Delta Chat, įveskite savo sistemos apibrėžtą paslaptį. @@ -434,6 +435,7 @@ QR pakvietimo kodas Nuskenuokite tai, norėdami prisijungti prie \"%1$s\" grupės. QR pakvietimo kodas + Nuskenuokite tai, norėdami užmegzti kontaktą su %1$s Nepavyksta patvirtinti %1$s Naujausia nuo: %1$s Medijos žinutė: %s @@ -462,6 +464,9 @@ Norėdami fotografuoti ir filmuoti, suteikite Delta Chat prieigą prie kameros. Norėdami siųsti garso žinutes, suteikite Delta Chat prieigą prie mikrofono. Norint eksportuoti failus ar daryti atsargines kopijas, Delta Chat reikia prieigos prie jūsų failų. + Bakstelėkite čia, norėdami gauti žinutes, kol Delta Chat veikia fone. + Delta Chat naudoja mažai išteklių ir rūpinasi, kad neiškrautų jūsų baterijos. + Katalonų Danų Vokiečių @@ -539,6 +544,7 @@ Rodyti QR pakvietimo kodą Pridėti adresatą būtina + Vardas Autocrypt rakto perdavimas Inicijuoti rakto perdavimą Autocrypt sąrankos žinutė saugiai bendrina jūsų ištisinę sąranką su kitomis su Autocrypt suderinamomis programomis. Sąranka bus užšifruota sąrankos kodu, kuris yra rodomas čia ir privalės būti įvestas kitame įrenginyje. @@ -581,5 +587,4 @@ Nuskenuokite tai, norėdami prisijungti prie \"%1$s\" grupės. - diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 0f66b8aa1..3bcbe9968 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -20,7 +20,7 @@ Ongedaan maken Fout Fout: %1$s - Geen netwerk beschikbaar. + Geen internetverbinding. Kan geen app vinden die deze gegevens kan behandelen. Geen webbrowser geïnstalleerd. Kan %1$s niet vinden. @@ -36,6 +36,8 @@ Gisteren Deze week Deze maand + Vorige week + Vorige maand %d minuut @@ -47,20 +49,20 @@ %d uur - 1 gesprek - %1$d gesprekken + %d gesprek + %d gesprekken - 1 contactpersoon - %1$d contactpersonen + %d contactpersoon + %d contactpersonen - 1 bericht - %1$d berichten + %d bericht + %d berichten - 1 lid - %1$d leden + %d deelnemer + %d deelnemers Mij @@ -152,12 +154,12 @@ Weet je zeker dat je deze groep wilt verlaten? - Wil je dit gesprek verwijderen? Het worden niet langer getoond in de gesprekslijst, maar de berichten blijven bewaard op de server. + Wil je %d gesprek verwijderen? Het gesprek wordt niet langer getoond in de gesprekslijst, maar de berichten blijven bewaard op de server. Wil je %d gesprekken verwijderen? Ze worden niet langer getoond in de gesprekslijst, maar de berichten blijven bewaard op de server. - Wil je het bericht verwijderen, zowel hier als op de server? - Wil je %1$d berichten verwijderen, zowel hier als op de server? + Wil je %d bericht verwijderen, zowel hier als op de server? + Wil je %d berichten verwijderen, zowel hier als op de server? Wil je de berichten doorsturen aan %1$s? Als je de bijlage exporteert, geef je andere apps op je apparaat toegang om hem uit te lezen.\n\nWil je doorgaan? @@ -171,17 +173,17 @@ Contactpersonen Voer een naam of e-mailadres in. - Typ het e-mailadres hierboven + Typ hierboven het e-mailadres Geen contactpersonen. - Gesprek gearchiveerd + %d gesprek gearchiveerd %d gesprekken gearchiveerd - Gesprek ge-dearchiveerd + %d gesprek gede-archiveerd %d gesprekken gede-archiveerd Gearchiveerde gesprekken @@ -196,15 +198,14 @@ Stel het eerste bericht op, zodat anderen binnen deze groep kunnen reageren.\n\n• Niet alle leden hoeven Delta Chat te gebruiken.\n\n• Het afleveren van het eerste bericht kan even duren. Veeg opzij om te annuleren Houdt ingedrukt om een spraakbericht op te nemen; laat los om te versturen - Geef je Postvak IN iets om over naar huis te schrijven. Begin door een bericht te sturen aan een vriend(in). + Geef je Postvak IN iets om over naar huis te schrijven: begin een gesprek met een vriend(in). Postvak nullllll - Niks. Noppes. Nakkes. Nada. \nJe bent helemaal bij! + Niks. Noppes. Nakkes. Nada.\nJe bent van alles op de hoogte! Delen met Bericht Gearchiveerd Geen berichten. Aan mijzelf gestuurde berichten - Zoeken Zoek naar gesprekken, contactpersonen en berichten @@ -218,7 +219,7 @@ Voer een naam in voor de groep. Deelnemers toevoegen Hallo, ik heb zojuist de groep \"%1$s\" voor ons gemaakt. - Je moet lid zijn van de groep om deze actie uit te voeren. + Om deze actie uit te kunnen voeren moet je deelnemen aan de groep. Versleuteling @@ -231,17 +232,17 @@ - Vrienden houden vrienden niet opgesloten in berichtsilo\'s. + Vrienden houden vrienden niet opgesloten in berichtkluizen. Laten we overgaan op Delta Chat - %1$s - je kunt me een bericht sturen op %2$s Delta Chat - De berichtapp met het breedste publiek ter wereld. Gratis en onafhankelijk. + Dé berichtenapp met het breedste publiek ter wereld. Gratis en onafhankelijk. Onafhankelijk Er is geen Delta Chat-server; de app gebruikt alleen je mailserver. Snel - Verstuur berichten binnen een paar seconden.\nSnelle gebruikersomgeving. + Verstuur berichten in een paar seconden.\nSnelle gebruikersomgeving. Krachtig Ongelimiteerd aantal gesprekken, afbeeldingen, video\'s, spraakberichten en meer. Kan omgaan met meerdere clients. @@ -252,7 +253,7 @@ Versleuteld met alle bekende algoritmen. Berichten blijven op jouw server. Betrouwbaar Delta Chat is veilig voor zakelijk gebruik, compatibel en gebaseerd op standaarden. - Beginnen + Aan de slag Inloggen Inloggen op je server Bij bekende e-mailproviders gaat het instellen vrijwel geheel automatisch. Soms moet je IMAP inschakelen in de webversie van je e-mailclient. Vraag je e-mailprovider of vrienden om hulp. @@ -267,18 +268,20 @@ SMTP-server SMTP-poort SMTP-beveiliging - Bij een Gmail-account moet je een app-wachtwoord creëren als je authenticatie in twee stappen hebt ingeschaked. Als dit niet beschikbaar is, schakel dan Minder veilige apps in. + Autorisatiemethode + Wil je doorgaan met vereenvoudigd instellen? + Bij Gmail-accounts moet je een app-wachtwoord creëren als je authenticatie in twee stappen hebt ingeschakeld. Als dit niet beschikbaar is, schakel dan \'Minder veilige apps\' in. Voer een geldig e-mailadres in Voer een geldig(e) IP-adres/server in Voer een geldige poort in (1-65535) Voer een geldig e-mailadres en wachtwoord in Back-up importeren Back-up aangetroffen in \"%1$s\".\n\nWil je de instellingen en gegevens daaruit importeren? - Geen back-ups aangetroffen.\n\nKopieer de back-up naar \"%1$s\" en probeer het opnieuw of druk op \"Beginnen\" om het normale instelproces te doorlopen. + Geen back-ups aangetroffen.\n\nKopieer de back-up naar \"%1$s\" en probeer het opnieuw of druk op \"Aan de slag\" om het normale instelproces te doorlopen. Kan niet inloggen als \"%1$s\". Controleer het e-mailadres en wachtwoord. - Antwoord van %1$s: %2$s\n\nSommige providers plaatsen extra informatie in je Postvak IN. Je kunt dit controleren in bijv. de webversie. Neem contact op met je provider of vrienden als je problemen ervaart. + Antwoord van %1$s: %2$s\n\nSommige providers plaatsen extra informatie in je Postvak IN. Je kunt dit controleren in, bijv., de webversie. Neem contact op met je provider of vrienden als je problemen ervaart. @@ -293,7 +296,7 @@ aangepast Aangepast wordt gebruikt: %s Standaard wordt gebruikt: %s - Jouw profielinformatie + Je profielinformatie Profielfoto Gespreksinkorting Oude berichten verwijderen @@ -307,14 +310,14 @@ https://delta.chat/en/help Wachtwoord en accountinstellingen Wie kan deze informatie bekijken? - Je profielfoto en -naam worden in gesprekken naast jouw berichten getoond. Reeds verstuurde informatie kan niet worden verwijderd of teruggehaald. + Je profielfoto en -naam worden getoond in gesprekken, naast je berichten. Reeds verstuurde informatie kan niet worden verwijderd of teruggehaald. Je naam Handtekeningtekst - Verstuurd met mijn Delta Chat Messenger: https://delta.chat + Verstuurd met mijn Delta Chat-berichtenapp: https://delta.chat Versturen met Enter-toets - De Enter-toets gebruiken om tekstberichten te versturen + Druk op de Enter-toets om tekstberichten te versturen Trillen Gespreksinstellingen Geheim wijzigen @@ -357,15 +360,15 @@ Overig Back-up Gesprekken back-uppen naar externe opslag - Een back-up helpt je om een nieuwe installatie in te stellen op dit of een ander apparaat.\n\nDe back-up bevat alle berichten, contactpersonen en gesprekken en tevens je end-to-end Autocrypt-instellingen. Bewaar het back-upbestand op een veilige plaats of verwijder het zo snel mogelijk. - Back-up starten + Een back-up helpt je om een nieuwe installatie in te stellen op dit of een ander apparaat.\n\nDe back-up bevat alle berichten, contactpersonen, gesprekken en je end-to-end Autocrypt-instellingen. Bewaar het back-upbestand op een veilige plaats of verwijder het zo snel mogelijk. + Nu back-uppen Back-up weggeschreven naar %1$s Sleutels beheren Delta Chat heeft toegang nodig tot je bestanden om sleutels te im- en exporteren. Geheime sleutels exporteren Geheime sleutels exporteren naar \"%1$s\"? Geheime sleutels importeren - Wil je geheime sleutels importeren uit \"%1$s\"?\n\n• Bestaande geheime sleutels worden niet verwijderd.\n\n• De laatst geïmporteerde sleutel wordt als standaard gebruikt tenzij de bestandsnaam \"legacy\" bevat. + Wil je geheime sleutels importeren uit \"%1$s\"?\n\n• Bestaande sleutels worden niet verwijderd.\n\n• De laatst geïmporteerde sleutel wordt als standaard gebruikt tenzij de bestandsnaam \"legacy\" bevat. Geheime sleutels weggeschreven naar \"%1$s\". Geheime sleutels geïmporteerd uit \"%1$s\". Achtergrond @@ -375,25 +378,23 @@ Map Verzonden controleren op nieuwe berichten DeltaChat-map controleren op nieuwe berichten Automatisch verplaatsen naar DeltaChat-map - Gesprekken worden verplaatst om Postvak IN geordend te houden - - + Gesprekken worden verplaatst om je Postvak IN netjes te houden Autocrypt - Autocrypt is een nieuwe, open specificatie voor het automatisch instellen van end-to-end e-mailversleuteling.\n\nJe end-to-end-instellingen worden, indien nodig, automatisch gecreëerd en kunnen worden overgezet naar andere apparaten middels Autocrypt-instelberichten. + Autocrypt is een nieuwe, open specificatie voor het automatisch instellen van end-to-end e-mailversleuteling.\n\nJe instellingen worden, indien nodig, automatisch gecreëerd en kunnen worden overgezet naar andere apparaten middels instelberichten. Autocrypt-instelbericht versturen - Een \"Autocrypt-instelbericht\" deelt je end-to-end-instellingen op een veilige manier met andere met Autocrypt compatibele apps.\n\nDe instellingen zijn versleuteld middels een code die hier wordt getoond en moet worden overgetypt op het andere apparaat. + Een \"Autocrypt-instelbericht\" deelt je end-to-end-instellingen veilig met andere met Autocrypt compatibele apps.\n\nDe instellingen zijn versleuteld middels een code die hier wordt getoond en moet worden overgetypt op het andere apparaat. Autocrypt-instelbericht versturen - Je instellingen zijn naar jezelf verstuurd. Schakel over naar het andere apparaat en open het instelbericht. Je zou nu moeten worden gevraagd om een code. Typ de volgende getallen in het invoerveld:\n\n%1$s\n\nZodra je klaar bent, is je andere apparaat klaar voor gebruik. + Je instellingen zijn naar jezelf verstuurd. Schakel over naar het andere apparaat en open het instelbericht. Je zou nu moeten worden gevraagd om een code. Typ de volgende getallen in het invoerveld:\n\n%1$s\n\nAls je klaar bent, is je andere apparaat klaar voor gebruik. Voorkeur voor end-to-end-versleuteling Autocrypt-instelbericht - Dit is het Autocrypt-instelbericht dat wordt gebruikt om je end-to-end-instellingen over te zetten naar andere clients.\n\nOm het te ontsleutelen en gebruiken, open je het bericht in een met Autocrypt compatibele app en voer je de code in die wordt getoond op het genererende apparaat. + Dit is het Autocrypt-instelbericht dat wordt gebruikt om je instellingen over te zetten naar andere clients.\n\nOm te ontsleutelen en te gebruiken, open je het bericht in een met Autocrypt compatibele app en voer je de code in die wordt getoond op het genererende apparaat. Dit is het Autocrypt-instelbericht dat wordt gebruikt om je end-to-end-instellingen over te zetten naar andere clients.\n\nOm het te ontsleutelen en gebruiken, druk je op dit bericht. Autocrypt-instelbericht Voer de code die wordt getoond op het andere apparaat. - End-to-end-instellingen overgezet. Dit apparaat is nu klaar voor gebruik i.c.m. Autocrypt, met dezelfde instellingen als het andere apparaat. + End-to-end-instellingen overgezet. Dit apparaat kan nu worden gebruikt i.c.m. Autocrypt, met dezelfde instellingen als het andere apparaat. Opnieuw - Onjuist code; probeer het opnieuw.\n\nAls je je code niet meer weet, verstuurd dan nog een Autocrypt-instelbericht vanaf het andere apparaat. + Onjuist; probeer het opnieuw.\n\nAls je je code niet meer weet, verstuurd dan nóg een Autocrypt-instelbericht vanaf het andere apparaat. @@ -405,7 +406,7 @@ Groep verlaten. Leesbevestiging Dit is een leesbevestiging voor het bericht \"%1$s\".\n\nDit betekent dat het bericht getoond is op het apparaat van de ontvanger, maar niet dat het ook gelezen is. - Dit bericht kan niet worden ontsleuteld.\n\n• Het kan helpen om dit bericht te beantwoorden en de afzender te vragen het opnieuw te versturen.\n\n• Als je Delta Chat of een andere e-mailapp opnieuw hebt geïnstalleerd op dit of een ander apparaat, verstuur het instelbericht dan opnieuw. + Dit bericht kan niet worden ontsleuteld.\n\n• Het kan helpen dit bericht te beantwoorden en de afzender te vragen het opnieuw te versturen.\n\n• Als je Delta Chat of een andere e-mailapp opnieuw hebt geïnstalleerd op dit of een ander apparaat, verstuur het instelbericht dan opnieuw. %1$s door mij. @@ -414,11 +415,11 @@ Schermvergrendeling - Delta Chat-toegang vergrendelen met Android-schermvergrendeling of vingerafdruk + Vergendel de toegang middels het Android-vergrendelscherm of je vingerafdruk. Schakel daarnaast ook \"Schermbeveiliging\" in. Authenticatie mislukt. Delta Chat ontgrendelen Voer je op het systeem opgegeven geheim in om Delta Chat te ontgrendelen. - Vergrendling na inactiviteit + Vergrendeling na inactiviteit Delta Chat automatisch vergrendelen na een opgegeven periode van inactiviteit Periode van inactiviteit @@ -426,19 +427,19 @@ QR-code scannen Plaatst je camera boven de QR-code - Wil je lid worden van de groep \"%1$s\"? + Wil je deelnemen aan de groep \"%1$s\"? De gescande vingerafdruk komt niet overeen met de vorige voor %1$s Deze QR-code bevat een vingerafdruk, maar geen e-mailadres.\n\nVoor out-of-band-goedkeuring, moet je eerst een beveiligde verbinding opzetten met de ontvanger. Gescande QR-codetekst:\n\n %1$s Gescande QR-code-URL:\n\n %1$s Vingerafdruk - %1$s goedgekeurd; vertel iets over mezelf... + %1$s goedgekeurd; vertel iets over jezelf... QR-uitnodigingscode - %1$s is lid geworden. + %1$s heeft deelgenomen. %1$s is goedgekeurd. - %1$s is lid geworden van de groep. + %1$s heeft deelgenomen aan de groep. QR-uitnodigingscode - Scan dit om lid te worden van de groep \"%1$s\". + Scan dit om deel te nemen aan de groep \"%1$s\". QR-uitnodigingscode Scan dit om een contactpersoon in te stellen met %1$s %1$s is goedgekeurd. @@ -480,6 +481,9 @@ Delta Chat vereist de microfoonmachtiging om audioberichten te kunnen versturen, maar je hebt dit permanent geweigerd. Ga naar de appinstellingen, kies \"Machtigingen\" en schakel \"Microfoon\" in. Delta Chat vereist de opslagmachtiging om foto\'s, video\'s of audio te kunnen bijvoegen of exporteren, maar je hebt dit permanent geweigerd. Ga naar de appinstellingen, kies \"Machtigingen\" en schakel \"Opslag\" in. Delta Chat vereist de locatiemachtiging om je locatie in te kunnen voegen, maar je hebt dit permanent geweigerd. Ga naar de appinstellingen, kies \"Machtigingen\" en schakel Locatie\" in. + Druk hier om berichten te ontvangen terwijl Delta Cat geminimaliseerd is. + Delta Chat gebruikt een minimaal aantal systeembronnen, waardoor het accuverbruik laag is. + Belgisch Catalaans @@ -518,7 +522,7 @@ Welkom bij DeltaChat Bekende accounts - Voorkeuren + Instellingen Kies een taal... Bestand Afsluiten @@ -563,14 +567,14 @@ Naam Autocrypt-sleuteloverdracht Sleuteloverdracht starten - Een Autocrypt-instelbericht deelt je end-to-end-instellingen op een veilige manier met andere met Autocrypt compatibele apps. De instellingen zijn versleuteld middels een code die hier wordt getoond en moet worden overgetypt op het andere apparaat. + Een Autocrypt-instelbericht deelt je end-to-end-instellingen veilig met andere met Autocrypt compatibele apps. De instellingen zijn versleuteld middels een code die hier wordt getoond en moet worden overgetypt op het andere apparaat. Bericht beantwoorden Kies een groepsafbeelding Voortgang van back-up Bijlage downloaden Back-up exporteren Sleuteloverdracht - Je sleutel is naar jezelf verstuurd. Schakel over naar het andere apparaat en open het instelbericht. Je zou nu moeten worden gevraagd om een code. Typ de volgende getallen in het invoerveld. Zodra je klaar bent, is je andere apparaat klaar voor gebruik. + Je sleutel is naar jezelf verstuurd. Ga naar het andere apparaat en open het instelbericht. Je zou nu moeten worden gevraagd om een code. Typ de volgende getallen in het invoerveld. Als je klaar bent, is je andere apparaat klaar voor gebruik. Nieuw bericht van Contactpersonen deblokkeren Nog geen geblokkeerde contactpersonen @@ -593,7 +597,7 @@ - Wil je lid worden van de groep \"%1$s\"? + Wil je deelnemen aan de groep \"%1$s\"? Wil je een gesprek voeren met %1$s? @@ -601,7 +605,6 @@ QR-uitnodigingscode - Scan dit om lid te worden van de groep \"%1$s\". - + Scan dit om deel te nemen aan de groep \"%1$s\". diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 7d238c059..b88b27eb5 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -48,31 +48,6 @@ %d godzin %d godziny - - 1 czat - %1$d czaty - %1$d czatów - %1$d czatu - - - 1 kontakt - %1$d kontakty - %1$d kontaktów - %1$d kontaktu - - - 1 wiadomość - %1$d wiadomości - %1$d wiadomości - %1$d wiadomości - - - 1 członek - %1$d członków - %1$d członków - %1$d członków - - Ja Szkic Obraz @@ -158,18 +133,6 @@ Czy na pewno chcesz opuścić tą grupę? - - Usunąć ten czat? Nie będzie on już widoczny na liście czatów, jego wiadomości pozostaną na serwerze. - Usunąć %d czaty? Nie będą one już widoczne na liście czatów, ich wiadomości pozostaną na serwerze. - Usunąć %d czatów? Nie będą one już widoczne na liście czatów, ich wiadomości pozostaną na serwerze. - Usunąć %d czatów? Nie będą one już widoczne na liście czatów, ich wiadomości pozostaną na serwerze. - - - Usunąć wiadomość tutaj i na serwerze? - Usunąć %1$d wiadomości tutaj i na serwerze? - Usunąć %1$d wiadomości tutaj i na serwerze? - Usunąć %1$d wiadomości tutaj i na serwerze? - Przekazać wiadomości do użytkownika %1$s? Eksportować załącznik? Eksportowanie załączników umożliwi dostęp do nich wszystkim aplikacjom na urządzeniu.\n\nKontynuować? Zablokować ten kontakt? Nie będziesz już odbierać wiadomości od tego kontaktu. @@ -185,19 +148,6 @@ Nie ma kontaktów. - - - Czat zarchiwizowany - %d czaty zarchiwizowane - %d czatów zarchiwizowanych - %d czatów zarchiwizowanych - - - Przywrócono czat z archiwum - Przywrócono %d czaty z archiwum - Przywrócono %d czatów z archiwum - Przywrócono %d czatów z archiwum - Zarchiwizowane czaty Napisz wiadomość. Aparat niedostępny. @@ -218,7 +168,6 @@ Zarchiwizowane Brak wiadomości. Wiadomości wysłane do siebie - Szukaj Wyszukaj czaty, kontakty i wiadomości @@ -378,8 +327,6 @@ Oglądaj katalog DeltaChat Automatyczne przenoszenie do folderu DeltaChat Rozmowy na czacie są przenoszone, aby nie zaśmiecać folderu Skrzynka odbiorcza - - Autocrypt Autocrypt to nowa i otwarta specyfikacja szyfrowania e-maili typu end-to-end.\n\nTwoja konfiguracja end-to-end w razie potrzeby jest tworzona automatycznie i można ją przesłać między urządzeniami za pomocą Wiadomości konfiguracyjnej automatycznego szyfrowania. @@ -416,7 +363,6 @@ Blokada ekranu - Zablokuj dostęp do Delta Chat za pomocą blokady ekranu Android lub odcisku palca Uwierzytelnianie nie powiodło się. Odblokuj Delta Chat Aby odblokować Delta Chat, wpisz swój tajny kod systemu. @@ -578,5 +524,4 @@ Zeskanuj to, aby dołączyć do grupy „%1$s”. - diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 383677a81..31f951de7 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -46,23 +46,6 @@ %d hora %d horas - - 1 chat - %1$d chats - - - 1 contacto - %1$d contactos - - - 1 mensangem - %1$d mensagens - - - 1 membro - %1$d membros - - Eu Rascunho Imagem @@ -150,14 +133,6 @@ Tem certeza que deseja deixar este grupo? - - Apagar este chat? Ela não será mais mostrada na lista de converas, suas mensagens permanecerão no servidor - Apagar %d chats? Elas não serão mais mostrados na lista de chats, suas mensagens permanecerão no servidor - - - Apagar a mensagem aqui e no servidor? - Apagar %1$d mensagens aqui e no servidor? - Reencaminhar mensages para %1$s? Exportar anexo? A exportação de anexos permitirá o seu acesso a qualquer outra aplicação no seu dispositivo.\n\nContinuar? Bloquear este contacto? Não receberá mais mensagens deste contacto. @@ -174,15 +149,6 @@ Sem contactos - - - chat arquivada - %d chats arquivadas - - - chat desarquivada - %d chats não desarquivadas - chats arquivadas Por favor introduza uma mensagem. Camera indisponivel. @@ -203,7 +169,6 @@ Arquivada Sem mensagens Mensagens que enviei para mim - Pesquisar Pesquisar chats, contactos, emensagens @@ -375,8 +340,6 @@ Ver a pasta do Delta Chat Mover pasta automaticamente para o Delta Chat As chats de chat são movidas para evitar atravancar da pasta Inbox - - Encriptação automática A encriptação automática (autocrypt) é uma especificação nova e aberta para encriptação e-mail de ponta a ponta. \n\n A sua configuração de ponta a ponta é criada automaticamente conforme necessário e pode transferi-la entre dispositivos com mensagens de configuração de autocrypt. @@ -413,7 +376,6 @@ Bloqueio do ecrã - Bloquear acesso ao Delta Chat com bloqueio de ecrã ou impressão digital do Android Falhou autenticação. Desbloquear Delta Chat Por favor, entre o valor definido pelo sistema para desbloquear o Delta Chat. @@ -602,5 +564,4 @@ Digitalizar para se juntar ao grupo \"%1$s\". - diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index d98fff5be..1e076e608 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -228,7 +228,6 @@ Ахивировано Нет сообщений. Сообщения отправленные себе - Поиск Поиск чатов, контактов и сообщений @@ -293,7 +292,6 @@ Настройки безопасности SMTP Метод авторизации Продолжить упрощенную настройку? - Введенный адрес электронной почты поддерживает упрощенную настройку (OAuth2). \n\nВ следующем шаге разрешите Delta Chat выступать в качестве приложения чата с электронной почтой. \n\nDelta Chat не имеет серверов, ваши данные остаются на вашем устройстве! Для аккаунтов GMail необходимо задать пароль для приложений - App-Password , если включена 2FA двухфакторная аутентификация. Если эти настройки недоступны, вам нужно активировать параметр Less Secure Apps. Укажите действительный адрес эл. почты Укажите действительный сервер / IP адрес @@ -403,8 +401,6 @@ Следить за папкой DeltaChat Автоматически Перемещать в папку DeltaChat Чаты были перемещены, чтобы избежать путаницы в папке Входящие - - Autocrypt Autocrypt — новый и открытый протокол установления сквозного шифрования для электронной почты.\n\n Необходимые параметры шифрования назначаются автоматически и их возможно передавать между своими устройствами используя сообщения с параметрами Autocrypt. @@ -633,5 +629,4 @@ Чтобы присоединиться к группе \"%1$s\", отсканируйте этот код - diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 99e6f7e6d..4802fd293 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -36,6 +36,8 @@ Dje Këtë javë Këtë muaj + Javën e shkuar + Muajin e shkuar %d min @@ -47,20 +49,20 @@ %d orë - 1 fjalosje - %1$d fjalosje + %d fjalosje + %d fjalosje - 1 kontakt - %1$d kontakte + %d kontakt + %d kontakte - 1 mesazh - %1$d mesazhe + %d mesazh + %d mesazhe - 1 anëtar - %1$d anëtarë + %d anëtar + %d anëtarë Unë @@ -152,12 +154,12 @@ Jeni i sigurt se doni ta braktisni këtë grup? - Të fshihet kjo fjalosje? S’do të shfaqet më te lista e fjalosjeve, mesazhet e saj do të mbeten në shërbyes. - Të fshihen %d fjalosje? Ato s’do të shfaqen më te lista e fjalosjeve, mesazhet e tyre do të mbeten në shërbyes. + Të fshihet %d fjalosje? S’do të duket më te lista e bisedave, mesazhet e saj do të mbeten te shërbyesi. + Të fshihen %d fjalosje? S’do të duken më te lista e bisedave, mesazhet e tyre do të mbeten te shërbyesi. - Të fshihet mesazhi këtu dhe te shërbyesi? - Të fshihen %1$d mesazhet këtu dhe te shërbyesi? + Të fshihet %d mesazh këtu dhe te shërbyesi? + Të fshihen %d mesazhe këtu dhe te shërbyesi? Të përcillen mesazhet te %1$s? Të eksportohet bashkëngjitja? Eksportimi i bashkëngjitjeve do t\’i lejojë çfarëdo aplikacioni tjetër në pajisjen tuaj t\’i përdorë ato.\n\nTë vazhdohet? @@ -177,11 +179,11 @@ - Fjalosja u arkivua + U arkivua %d fjalosje U arkivuan %d fjalosje - U çarkivua fjalosja + U çarkivua %d fjalosje U çarkivuan %d fjalosje Fjalosje të arkivuara @@ -204,7 +206,6 @@ Arkivuar S’ka mesazhe. Mesazhe që i kam dërguar vetes - Kërko Kërkoni për fjalosje, kontakte dhe mesazhe. @@ -267,6 +268,8 @@ Shërbyes SMTP Portë SMTP Siguri SMTP + Metodë autorizimi + Të vazhdohet me rregullimin e thjeshtuar? Për llogari GMail lypset të krijoni një App-Password, nëse keni të aktivizuar mirëfilltësimin dyfaktorësh. Nëse ky rregullim s’gjendet, lypset të aktivizoni Aplikacione Më Pak të Sigurta. Ju lutemi, jepni një adresë email të vlefshme Ju lutemi, jepni një shërbyes / adresë IP të vlefshme @@ -339,6 +342,7 @@ Dukje Temë Gjuhë + Mos ruaj gjë Kërkoji tastierës të çaktivizojë nxënie të personalizuar Lexoni dëftesa @@ -346,6 +350,7 @@ Administroni kyçe Përdor emoji sistemi Çaktivizo mbulimin e brendshëm Delta Chat për emoji-t + Hyrje aplikacioni Komunikim Fjalosje Mesazhe @@ -374,8 +379,6 @@ Vëzhgo dosje DeltaChat Lëvizje të Vetvetishme te dosja DeltaChat Bisedat zhvendosen, që të shmanget rrëmuja te dosja Të marrë - - Autocrypt Autocrypt-i është një protokoll i ri dhe i hapur për fshehtëzim automatik email-esh skaj-më-skaj.\n\nRregullimi skaj-më-skaj për ju krijohet vetvetiu kur duhet dhe mund ta shpërngulni nga një pajisje në tjetër përmes Mesazhesh Rregullimi Autocrypt-i. @@ -412,7 +415,7 @@ Kyçje ekrani - Kyçe përdorimin e Delta Chat-it përmes kyçjesh ekrani apo shenja gishtash në Android + Kyçni hyrjen me kyçje ekrani apo shenja gishtas Android; për të shmangur shfaqje të lëndës së mëparshme, ju lutemi, aktivizoni edhe \"Siguri ekrani\" Mirëfilltësimi dështoi. Shkyçe Delta Chat-in Që të shkyçet Delta Chat-i, ju lutemi, jepni të fshehtën e përcaktuar nga sistemi juaj. @@ -478,6 +481,9 @@ Delta Chat lyp leje mbi Mikrofonin që të mund të dërgojë mesazhe audio, por kjo i është mohuar. Ju lutemi, vazhdoni te menuja e rregullimeve të aplikacionit, përzgjidhni \"Leje\", dhe aktivizojini për \"Mikrofonin\". Delta Chat lyp leje mbi Depozitimin që të mund të bashkëngjisë apo eksportojë foto, video ose audio, por kjo i është mohuar. Ju lutemi, vazhdoni te menuja e rregullimeve të aplikacionit, përzgjidhni \"Leje\", dhe aktivizojini për \"Depozitimin\". Delta Chat lyp leje mbi Vendndodhjen që të mund të bashkëngjisë një vendndodhje, por kjo i është mohuar. Ju lutemi, vazhdoni te menuja e rregullimeve të aplikacionit, përzgjidhni \"Leje\", dhe aktivizojini për \"Vendndodhjen\". + Prekeni këtu që të merrni mesazhe, teksa Delta Chat rri në prapaskenë. + Delta Chat-i përdor burime minimale dhe kujdeset të mos thajë baterinë. + Belge Katalane @@ -529,6 +535,7 @@ Fshije Përzgjidhi Krejt Shiheni + Pezull Përsipër Zhvillues Mjete Zhvilluesi Ndihmë @@ -600,5 +607,4 @@ Që të bëheni pjesë e grupit \"%1$s\", skanoni këtë. - diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 47f19ab1d..701b34b2b 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -46,23 +46,6 @@ %d timme %d timmar - - 1 chatt - %1$d chatt - - - 1 kontakt - %1$d kontakter - - - 1 meddelande - %1$d meddelanden - - - 1 medlem - %1$d medlemmar - - Jag Utkast Bild @@ -150,14 +133,6 @@ Är du säker på att du vill lämna den här gruppen? - - Radera denna chatt? Den kommer inte längre visas i chattlistan, meddelanden finns kvar på servern. - Radera %d chatt? De kommer inte längre visas i chattlistan, meddelanden finns kvar på servern. - - - Ta bort meddelandet här och på servern? - Ta bort %1$d meddelandem här och på servern? - Vidarebefordra meddelanden till %1$s? Exportera bifogad fil? Exportera bilagor tillåter andra appar på din enhet att komma åt dem.\n\nFortsätt? Blockera den här kontakten? Du kommer inte längre att få meddelanden från den här kontakten. @@ -174,15 +149,6 @@ Inga kontakter. - - - Chat arkiverad - %dchattar arkiverade - - - Chatt avarkiverats - %dchatt avarkiverats - Arkiverade chattar Skriv in ett meddelande. Kamera otillgänglig. @@ -203,7 +169,6 @@ Arkiverat Inga meddelanden. Meddelanden jag skickade till mig själv - Sök Sök efter chattar, kontakter och meddelanden diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 87aca6385..fe4bae999 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -45,23 +45,6 @@ %d saat %d saat - - 1 sohbet - %1$d sohbet - - - 1 kişi - %1$d kişi - - - 1 ileti - %1$d ileti - - - 1 üye - %1$d üye - - Ben Taslak Görüntü @@ -146,14 +129,6 @@ Bu gruptan ayrılmak istediğinizden emin misiniz? - - Bu sohbet silinsin mi? O artık sohbet listesinde gösterilmeyecek, iletileri sunucuda kalacak. - %d sohbet silinsin mi? Onlar artık sohbet listesinde gösterilmeyecek, iletileri sunucuda kalacak. - - - İleti buradan ve sunucudan silinsin mi? - %1$d ileti buradan ve sunucudan silinsin mi? - İletiler %1$s alıcısına iletilsin mi? Ek dışa aktarılsın mı? Ekleri dışa aktarma, aygıtınızdaki tüm diğer uygulamaların onlara erişmesine izin verecek.\n\nSürdürülsün mü? Bu kişi engellensin mi? Artık bu kişiden iletiler almayacaksınız. @@ -169,15 +144,6 @@ Kişi yok. - - - Sohbet arşivlendi - %d sohbet arşivlendi - - - Sohbet arşivden çıkartıldı - %d sohbet arşivden çıkartıldı - Arşivlenen sohbetler Lütfen bir ileti girin. Kamera kullanım dışı. @@ -198,7 +164,6 @@ Arşivlendi İleti yok. Kendime gönderdiğim iletiler - Ara Sohbetleri, kişileri ve iletileri arayın diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 92c9f50b0..4d082b0ea 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -50,31 +50,6 @@ %d годин %d годин - - 1 чат - %1$d чати - %1$d чатів - %1$d чатів - - - 1 контакт - %1$d контакти - %1$d контактів - %1$d контактів - - - 1 повідомлення - %1$d повідомлення - %1$d повідомлень - %1$d повідомлень - - - 1 учасник - %1$d учасники - %1$d учасників - %1$d учасників - - Мої Чернетка Зображення @@ -163,18 +138,6 @@ Ви впевнені, що хочете залишити цю групу? - - Видалити цей чат? Він більше не буде виден у списку чатів, його повідомлення залишаться на сервері. - Видалити %d чати? Вони більше не будуть видні в списку чатів, їх повідомлення залишаться на сервері. - Видалити %d чатів? Вони більше не будуть видні в списку чатів, їх повідомлення залишаться на сервері. - Видалити %d чатів? Вони більше не будуть видні в списку чатів, їх повідомлення залишаться на сервері. - - - Видалити повідомлення звідси і з сервера? - Видалити %1$d повідомлення звідси і з сервера? - Видалити %1$d повідомлень звідси і з сервера? - Видалити %1$d повідомлень звідси і з сервера? - Переслати повідомлення %1$s? Експортувати вкладення? Експорт вкладень дозволить будь-якому іншому додатку на Вашому пристрої отримати до них доступ.\n\nПродовжити? Заблокувати цей контакт? Ви більше не будете отримувати від нього повідомлення. @@ -191,19 +154,6 @@ Немає контактів. - - - Чат заархівовано - %dчати заархівовано - %dчатів заархівовано - %d чатів заархівовано - - - Чат розархівовано - %d чати розархівовано - %d чатів розархівовано - %d чатів розархівовано - Заархівовані чати Будь ласка, введіть повідомлення. Камера недоступна. @@ -226,7 +176,6 @@ Заархівовано Немає повідомлень. Повідомлення, відправлені самому собі - Пошук Пошук чатів, контактів і повідомлень @@ -398,8 +347,6 @@ Стежити за папкою DeltaChat Автоматично пересувати до папки DeltaChat Чати були переміщені, щоб уникнути плутанини у папці «Вхідні». - - Автошифрування Autocrypt – новий і відкритий протокол встановлення наскрізного шифрування для електронної пошти.\n\nНеобхідні параметри шифрування призначаються автоматично і їх можна передавати між своїми пристроями, використовуючи повідомлення з параметрами Autocrypt. @@ -436,7 +383,6 @@ Блокування екрану - Блокування доступу до Delta Chat за допомогою блокування екрану Android або відбитку пальця Не вдалося здійснити аутентифікацію. Розблокувати Delta Chat Введіть захисний код, щоб розблокувати Delta Chat. @@ -625,5 +571,4 @@ Відскануйте цей код, щоб приєднатися до групи «%1$s». - From 37bbc4163998e0aa1fbc2a2cc7a2fd343d7cffab Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 17:38:12 +0100 Subject: [PATCH 05/12] add a script to check for some basic translation syntax errors --- tools/check-translations.sh | 7 +++++++ tools/tx-pull-source.sh | 1 + tools/tx-pull-translations.sh | 2 ++ 3 files changed, 10 insertions(+) create mode 100755 tools/check-translations.sh create mode 100755 tools/tx-pull-translations.sh diff --git a/tools/check-translations.sh b/tools/check-translations.sh new file mode 100755 index 000000000..1ded643fe --- /dev/null +++ b/tools/check-translations.sh @@ -0,0 +1,7 @@ +echo potential errors, if any: + +# a space after the percent sign +# results in an IllegalFormatException in getString() +grep --include='strings.xml' -r '\% ' +grep --include='strings.xml' -r '\$ ' +grep --include='strings.xml' -r ' \$' diff --git a/tools/tx-pull-source.sh b/tools/tx-pull-source.sh index bcf17948f..29ae3a188 100755 --- a/tools/tx-pull-source.sh +++ b/tools/tx-pull-source.sh @@ -1,3 +1,4 @@ tx pull -l en mv res/values-en/strings.xml res/values/strings.xml rmdir res/values-en +./tools/check-translations.sh diff --git a/tools/tx-pull-translations.sh b/tools/tx-pull-translations.sh new file mode 100755 index 000000000..fbb878274 --- /dev/null +++ b/tools/tx-pull-translations.sh @@ -0,0 +1,2 @@ +tx pull +./tools/check-translations.sh From 47b87ac203283266015d6eb8902006450b13a713 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 17:40:25 +0100 Subject: [PATCH 06/12] force pulling new translations, skip all evil caches --- tools/tx-pull-translations.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tx-pull-translations.sh b/tools/tx-pull-translations.sh index fbb878274..0367a535b 100755 --- a/tools/tx-pull-translations.sh +++ b/tools/tx-pull-translations.sh @@ -1,2 +1,2 @@ -tx pull +tx pull -f ./tools/check-translations.sh From 60aab2998a38bec4edb37f7decfb6309bc42ac22 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 17:42:21 +0100 Subject: [PATCH 07/12] update translations --- res/values-uk/strings.xml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 4d082b0ea..b9af91fe7 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -36,6 +36,8 @@ Вчора Цього тижня Цього місяця + Останнього тижня + Останнього місяця %d хвилину @@ -50,6 +52,12 @@ %d годин %d годин + + %d чат + %d чати + %d чатів + %d чатів + Мої Чернетка Зображення @@ -171,7 +179,7 @@ Дайте Вашим «Вхідним» привід наповнитися. Почніть з листа другові або подрузі. Вхідних немає Нічого!\nНа цьому поки все - Поділітися + Поділитися Повідомлення Заархівовано Немає повідомлень. @@ -225,7 +233,7 @@ Delta Chat безпечний для бізнесу, поєднується з іншими технологіями і грунтується на стандартах. Почати спілкування Увійти - Увійти на Ваш сервер + Увійти на свій сервер Для відомих провайдерів електронної пошти додаткові налаштування встановлюються автоматично. Іноді IMAP потрібен дозвіл в веб-інтерфейсі. Проконсультуйтеся з Вашим провайдером електронної пошти або друзями для отримання допомоги. Вхідні IMAP-логін @@ -238,6 +246,7 @@ SMTP-сервер SMTP-порт Налаштування безпеки SMTP + Метод авторизації Якщо Ви користуєтеся GMail і у вас увімкнена двофакторна аутентифікація, Вам потрібно створити спеціальний пароль для додатків - App-Password. Якщо ці налаштування недоступні, Вам потрібно активувати параметр Less Secure Apps. Вкажіть дійсну адресу електронної пошти Вкажіть дійсний сервер / IP-адресу From 2b67413b62ce41d41aa6b581cddef2513ac87c53 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 18:15:47 +0100 Subject: [PATCH 08/12] also update locale of ApplicationContext as this is neeed eg. by the core --- src/org/thoughtcrime/securesms/ApplicationContext.java | 8 ++++++++ .../preferences/AppearancePreferenceFragment.java | 6 ++++++ src/org/thoughtcrime/securesms/util/DynamicLanguage.java | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/ApplicationContext.java b/src/org/thoughtcrime/securesms/ApplicationContext.java index 490b79296..2735ed422 100644 --- a/src/org/thoughtcrime/securesms/ApplicationContext.java +++ b/src/org/thoughtcrime/securesms/ApplicationContext.java @@ -32,6 +32,7 @@ import org.thoughtcrime.securesms.crypto.PRNGFixes; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.persistence.JavaJobSerializer; import org.thoughtcrime.securesms.notifications.MessageNotifier; +import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.ScreenLockUtil; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.SignalProtocolLoggerProvider; @@ -71,6 +72,13 @@ public class ApplicationContext extends Application implements DefaultLifecycleO initializeJobManager(); initializeIncomingMessageNotifier(); ProcessLifecycleOwner.get().getLifecycle().addObserver(this); + + try { + DynamicLanguage.setContextLocale(this, DynamicLanguage.getSelectedLocale(this)); + } + catch (Exception e) { + e.printStackTrace(); + } } @Override diff --git a/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java index 0373b903d..876527229 100644 --- a/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java @@ -8,6 +8,7 @@ import android.support.annotation.Nullable; import android.support.v7.preference.ListPreference; import android.support.v7.preference.Preference; +import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.ApplicationPreferencesActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.util.DynamicLanguage; @@ -59,6 +60,11 @@ public class AppearancePreferenceFragment extends ListSummaryPreferenceFragment public void onStop() { super.onStop(); getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener((ApplicationPreferencesActivity) getActivity()); + + // update the locale of the applicationContext so that the core gets the correct strings + // (for pending activities, the locale is updated by calling DynamicLanguage.onResume) + Context applicationContext = this.getActivity().getApplicationContext(); + DynamicLanguage.setContextLocale(applicationContext, DynamicLanguage.getSelectedLocale(applicationContext)); } public static CharSequence getSummary(Context context) { diff --git a/src/org/thoughtcrime/securesms/util/DynamicLanguage.java b/src/org/thoughtcrime/securesms/util/DynamicLanguage.java index bedf76b9b..182956e11 100644 --- a/src/org/thoughtcrime/securesms/util/DynamicLanguage.java +++ b/src/org/thoughtcrime/securesms/util/DynamicLanguage.java @@ -48,7 +48,7 @@ public class DynamicLanguage { return configuration.getLayoutDirection(); } - private static void setContextLocale(Context context, Locale selectedLocale) { + public static void setContextLocale(Context context, Locale selectedLocale) { Configuration configuration = context.getResources().getConfiguration(); if (!configuration.locale.equals(selectedLocale)) { From 0c5e1b95f5e9c926f44a17194e8449971432cd7c Mon Sep 17 00:00:00 2001 From: "daniel.boehrs" Date: Fri, 22 Feb 2019 16:21:57 +0100 Subject: [PATCH 09/12] sharing files does not work #434 --- AndroidManifest.xml | 12 + res/values/strings.xml | 3 + .../thoughtcrime/securesms/ShareActivity.java | 216 +++++++++++++++--- 3 files changed, 196 insertions(+), 35 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d791f5155..702742c60 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -81,6 +81,18 @@ + + + + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index be91a01ae..df1edffe3 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -292,6 +292,8 @@ Forward to … + Do you want to sent %1$d files to the selected chat? + Sharing aborted due to missing permissions. @@ -489,6 +491,7 @@ To capture photos and video, allow Delta Chat access to the camera. To send audio messages, allow Delta Chat access to your microphone. Delta Chat needs access to your files in order to export files or to create backups. + Delta Chat needs access to your files in order to share the selected files. Delta Chat requires the Camera permission in order to take photos or videos, but it has been permanently denied. Please continue to the app settings menu, select \"Permissions\", and enable \"Camera\". Delta Chat requires the Microphone permission in order to send audio messages, but it has been permanently denied. Please continue to app settings, select \"Permissions\", and enable \"Microphone\". Delta Chat requires the Storage permission in order to attach or export photos, videos, or audio, but it has been permanently denied. Please continue to the app settings menu, select \"Permissions\", and enable \"Storage\". diff --git a/src/org/thoughtcrime/securesms/ShareActivity.java b/src/org/thoughtcrime/securesms/ShareActivity.java index fe52bf7ce..8267d6ac0 100644 --- a/src/org/thoughtcrime/securesms/ShareActivity.java +++ b/src/org/thoughtcrime/securesms/ShareActivity.java @@ -17,6 +17,7 @@ package org.thoughtcrime.securesms; +import android.Manifest; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; @@ -44,10 +45,12 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import com.b44t.messenger.DcChatlist; import com.b44t.messenger.DcContext; import com.b44t.messenger.DcEventCenter; +import com.b44t.messenger.DcMsg; import org.thoughtcrime.securesms.connect.ApplicationDcContext; import org.thoughtcrime.securesms.connect.DcChatlistLoader; @@ -55,17 +58,24 @@ import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.PartAuthority; +import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.providers.PersistentBlobProvider; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.FileUtils; import org.thoughtcrime.securesms.util.MediaUtil; +import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; +import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; /** @@ -95,8 +105,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity private ShareFragment shareFragment; private View progressWheel; - private Uri resolvedExtra; - private String mimeType; + private List resolvedExtras; private boolean isPassingAlongMedia; private ApplicationDcContext dcContext; private boolean isForward; @@ -142,8 +151,12 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity @Override protected void onDestroy() { super.onDestroy(); - if (!isPassingAlongMedia && resolvedExtra != null) { - PersistentBlobProvider.getInstance(this).delete(this, resolvedExtra); + if (!isPassingAlongMedia && resolvedExtras.size() != 0) { + for(Uri uri : resolvedExtras) { + if (uri != null) { + PersistentBlobProvider.getInstance(this).delete(this, uri); + } + } } } @@ -195,20 +208,70 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } private void initializeMedia() { - final Context context = this; isPassingAlongMedia = false; + resolvedExtras = new ArrayList<>(); - Uri streamExtra = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); - mimeType = getMimeType(streamExtra); - - if (streamExtra != null && PartAuthority.isLocalUri(streamExtra)) { - isPassingAlongMedia = true; - resolvedExtra = streamExtra; - handleResolvedMedia(getIntent(), false); + List streamExtras = new ArrayList<>(); + if (Intent.ACTION_SEND.equals(getIntent().getAction())) { + streamExtras.add(getIntent().getParcelableExtra(Intent.EXTRA_STREAM)); } else { - shareFragment.getView().setVisibility(View.GONE); - progressWheel.setVisibility(View.VISIBLE); - new ResolveMediaTask(context).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, streamExtra); + streamExtras = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM); + } + if (streamExtras == null || streamExtras.isEmpty()) { + progressWheel.setVisibility(View.GONE); + return; + } + if (needsFilePermission(streamExtras)) { + if (Permissions.hasAll(this, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)) { + resolveUris(streamExtras); + } else { + requestPermissionForFiles(streamExtras); + } + } else { + resolveUris(streamExtras); + } + } + + private boolean needsFilePermission(List uris) { + for(Uri uri : uris) { + if (hasFileScheme(uri)) { + return true; + } + } + return false; + } + + private void requestPermissionForFiles(List streamExtras) { + Permissions.with(this) + .request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE) + .ifNecessary() + .withRationaleDialog(this.getString(R.string.perm_explain_need_for_storage_access_share), R.drawable.ic_folder_white_48dp) + .onAllGranted(() -> resolveUris(streamExtras)) + .onAnyDenied(this::abortShare) + .execute(); + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { + Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults); + } + + private void abortShare() { + Toast.makeText(this, R.string.share_abort, Toast.LENGTH_LONG).show(); + finish(); + } + + private void resolveUris(List streamExtras) { + for (Uri streamExtra : streamExtras) { + if (streamExtra != null && PartAuthority.isLocalUri(streamExtra)) { + isPassingAlongMedia = true; + resolvedExtras.add(streamExtra); + handleResolvedMedia(getIntent(), false); + } else { + shareFragment.getView().setVisibility(View.GONE); + progressWheel.setVisibility(View.VISIBLE); + new ResolveMediaTask(this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, streamExtra); + } } } @@ -249,19 +312,91 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } private void createConversation(int threadId) { - final Intent intent = getBaseShareIntent(ConversationActivity.class); - intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, threadId); - isPassingAlongMedia = true; - startActivity(intent); + if (resolvedExtras.size() > 1) { + String message = String.format(getString(R.string.share_multiple_attachments), resolvedExtras.size()); + new AlertDialog.Builder(this) + .setMessage(message) + .setCancelable(true) + .setNegativeButton(android.R.string.cancel, null) + .setPositiveButton(R.string.menu_send, (dialog, which) -> sendMultipleAttachmentsAndCreateConversation(threadId)).show(); + } else { + openConversation(threadId); + } + } + + private void sendMultipleAttachmentsAndCreateConversation(int threadId) { + for(Uri uri : resolvedExtras) { + DcMsg message = createMessage(uri); + dcContext.sendMsg(threadId, message); + } + openConversation(threadId); + } + + private void openConversation(int threadId) { + final Intent intent = getBaseShareIntent(ConversationActivity.class); + intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, threadId); + isPassingAlongMedia = true; + startActivity(intent); + } + + private DcMsg createMessage(Uri uri) { + DcMsg message; + String mimeType = MediaUtil.getMimeType(this, uri); + if (MediaUtil.isImageType(mimeType)) { + message = new DcMsg(dcContext, DcMsg.DC_MSG_IMAGE); + } + else if (MediaUtil.isAudioType(mimeType)) { + message = new DcMsg(dcContext,DcMsg.DC_MSG_AUDIO); + } + else if (MediaUtil.isVideoType(mimeType)) { + message = new DcMsg(dcContext, DcMsg.DC_MSG_VIDEO); + } + else { + message = new DcMsg(dcContext, DcMsg.DC_MSG_FILE); + } + message.setFile(getRealPathFromUri(uri), mimeType); + return message; + } + + private String getRealPathFromUri(Uri uri) { + try { + String filename = uri.getPathSegments().get(2); // Get real file name from Uri + String ext = ""; + int i = filename.lastIndexOf("."); + if(i>=0) { + ext = filename.substring(i); + filename = filename.substring(0, i); + } + String path = dcContext.getBlobdirFile(filename, ext); + + // copy content to this file + if(path!=null) { + InputStream inputStream = PartAuthority.getAttachmentStream(this, uri); + OutputStream outputStream = new FileOutputStream(path); + Util.copy(inputStream, outputStream); + } + + return path; + } + catch(Exception e) { + e.printStackTrace(); + return null; + } } private Intent getBaseShareIntent(final @NonNull Class target) { - final Intent intent = new Intent(this, target); - final String textExtra = getIntent().getStringExtra(Intent.EXTRA_TEXT); - intent.putExtra(ConversationActivity.TEXT_EXTRA, textExtra); - if (resolvedExtra != null) intent.setDataAndType(resolvedExtra, mimeType); - - return intent; + if (resolvedExtras.size() == 1) { + final Intent intent = new Intent(this, target); + final String textExtra = getIntent().getStringExtra(Intent.EXTRA_TEXT); + intent.putExtra(ConversationActivity.TEXT_EXTRA, textExtra); + Uri data = resolvedExtras.get(0); + if (data != null) { + String mimeType = getMimeType(data); + intent.setDataAndType(data, mimeType); + } + return intent; + } + return new Intent(this, target); } private String getMimeType(@Nullable Uri uri) { @@ -283,25 +418,31 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity @Override protected Uri doInBackground(Uri... uris) { try { - if (uris.length != 1 || uris[0] == null) { + Uri uri = uris[0]; + if (uris.length != 1 || uri == null) { return null; } InputStream inputStream; + String fileName = null; + Long fileSize = null; - if ("file".equals(uris[0].getScheme())) { - inputStream = openFileUri(uris[0]); + if (hasFileScheme(uri)) { + inputStream = openFileUri(uri); + if (uri.getPath() != null) { + File file = new File(uri.getPath()); + fileName = file.getName(); + fileSize = file.length(); + } } else { - inputStream = context.getContentResolver().openInputStream(uris[0]); + inputStream = context.getContentResolver().openInputStream(uri); } if (inputStream == null) { return null; } - Cursor cursor = getContentResolver().query(uris[0], new String[] {OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null); - String fileName = null; - Long fileSize = null; + Cursor cursor = getContentResolver().query(uri, new String[] {OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null); try { if (cursor != null && cursor.moveToFirst()) { @@ -315,7 +456,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } finally { if (cursor != null) cursor.close(); } - + String mimeType = getMimeType(uri); return PersistentBlobProvider.getInstance(context).create(context, inputStream, mimeType, fileName, fileSize); } catch (IOException ioe) { Log.w(TAG, ioe); @@ -325,14 +466,15 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity @Override protected void onPostExecute(Uri uri) { - resolvedExtra = uri; + resolvedExtras.add(uri); handleResolvedMedia(getIntent(), true); } private InputStream openFileUri(Uri uri) throws IOException { FileInputStream fin = new FileInputStream(uri.getPath()); int owner = FileUtils.getFileDescriptorOwner(fin.getFD()); - + + if (owner == -1 || owner == Process.myUid()) { fin.close(); throw new IOException("File owned by application"); @@ -343,6 +485,10 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } + private boolean hasFileScheme(Uri uri) { + return "file".equals(uri.getScheme()); + } + public static class ShareFragment extends Fragment implements LoaderManager.LoaderCallbacks, ConversationListAdapter.ItemClickListener, DcEventCenter.DcEventDelegate { From d6a94fd544d42b30d4fb8d29ea6a0ec28889bcc9 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 9 Mar 2019 18:52:15 +0100 Subject: [PATCH 10/12] wording: make clear, images are not recoded --- res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index df1edffe3..fb3ed3bb1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -292,7 +292,7 @@ Forward to … - Do you want to sent %1$d files to the selected chat? + Do you want to sent %1$d files to the selected chat?\n\nThe files are sent unmodified in their original size, eg. images and videos are not recoded. Sharing aborted due to missing permissions. From 5e73a679b6864c1bc6770e01e1acf463950e08f9 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 10 Mar 2019 16:29:53 +0100 Subject: [PATCH 11/12] fix crash when sharing link, closes #762 --- src/org/thoughtcrime/securesms/ShareActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/org/thoughtcrime/securesms/ShareActivity.java b/src/org/thoughtcrime/securesms/ShareActivity.java index 8267d6ac0..c350a734d 100644 --- a/src/org/thoughtcrime/securesms/ShareActivity.java +++ b/src/org/thoughtcrime/securesms/ShareActivity.java @@ -234,6 +234,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity private boolean needsFilePermission(List uris) { for(Uri uri : uris) { + // uri may be null, however, hasFileScheme() just returns false in this case if (hasFileScheme(uri)) { return true; } @@ -486,6 +487,9 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } private boolean hasFileScheme(Uri uri) { + if (uri==null) { + return false; + } return "file".equals(uri.getScheme()); } From 2ace2a5bdf2ee93d91b9e4018ff8d8cbefd319cc Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 10 Mar 2019 17:14:19 +0100 Subject: [PATCH 12/12] fix handling mailto:-share-links, closes #764 --- src/org/thoughtcrime/securesms/ShareActivity.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ShareActivity.java b/src/org/thoughtcrime/securesms/ShareActivity.java index 8267d6ac0..16585cbf2 100644 --- a/src/org/thoughtcrime/securesms/ShareActivity.java +++ b/src/org/thoughtcrime/securesms/ShareActivity.java @@ -216,11 +216,12 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity streamExtras.add(getIntent().getParcelableExtra(Intent.EXTRA_STREAM)); } else { streamExtras = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM); + if (streamExtras == null || streamExtras.isEmpty()) { + streamExtras = new ArrayList<>(); + streamExtras.add(null); // force checking at least EXTRA_TEXT & Co. + } } - if (streamExtras == null || streamExtras.isEmpty()) { - progressWheel.setVisibility(View.GONE); - return; - } + if (needsFilePermission(streamExtras)) { if (Permissions.hasAll(this, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)) { resolveUris(streamExtras);