M build.gradle => build.gradle +1 -1
@@ 6,7 6,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.1.2'
+ classpath 'com.android.tools.build:gradle:7.1.3'
}
}
M src/main/java/eu/siacs/conversations/entities/Message.java => src/main/java/eu/siacs/conversations/entities/Message.java +3 -1
@@ 22,6 22,7 @@ import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
import eu.siacs.conversations.crypto.axolotl.FingerprintStatus;
import eu.siacs.conversations.http.URL;
import eu.siacs.conversations.services.AvatarService;
@@ 985,7 986,8 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable
}
public boolean isTrusted() {
- FingerprintStatus s = conversation.getAccount().getAxolotlService().getFingerprintTrust(axolotlFingerprint);
+ final AxolotlService axolotlService = conversation.getAccount().getAxolotlService();
+ final FingerprintStatus s = axolotlService != null ? axolotlService.getFingerprintTrust(axolotlFingerprint) : null;
return s != null && s.isTrusted();
}
M src/main/java/eu/siacs/conversations/services/XmppConnectionService.java => src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +3 -1
@@ 1832,7 1832,9 @@ public class XmppConnectionService extends Service {
public void createBookmark(final Account account, final Bookmark bookmark) {
account.putBookmark(bookmark);
final XmppConnection connection = account.getXmppConnection();
- if (connection.getFeatures().bookmarks2()) {
+ if (connection == null) {
+ Log.d(Config.LOGTAG, account.getJid().asBareJid()+": no connection. ignoring bookmark creation");
+ } else if (connection.getFeatures().bookmarks2()) {
final Element item = mIqGenerator.publishBookmarkItem(bookmark);
pushNodeAndEnforcePublishOptions(account, Namespace.BOOKMARKS2, item, bookmark.getJid().asBareJid().toEscapedString(), PublishOptions.persistentWhitelistAccessMaxItems());
} else if (connection.getFeatures().bookmarksConversion()) {
M src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java => src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +1 -0
@@ 208,6 208,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
jid = Jid.ofEscaped(binding.accountJid.getText().toString(), getUserModeDomain(), null);
} else {
jid = Jid.ofEscaped(binding.accountJid.getText().toString());
+ Resolver.checkDomain(jid);
}
} catch (final NullPointerException | IllegalArgumentException e) {
if (mUsernameMode) {
M src/main/java/eu/siacs/conversations/ui/XmppActivity.java => src/main/java/eu/siacs/conversations/ui/XmppActivity.java +12 -1
@@ 47,6 47,7 @@ import android.widget.Toast;
import androidx.annotation.BoolRes;
import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AlertDialog.Builder;
@@ 448,12 449,22 @@ public abstract class XmppActivity extends ActionBarActivity {
final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm != null
&& cm.isActiveNetworkMetered()
- && cm.getRestrictBackgroundStatus() == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
+ && getRestrictBackgroundStatus(cm) == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
} else {
return false;
}
}
+ @RequiresApi(api = Build.VERSION_CODES.N)
+ private static int getRestrictBackgroundStatus(@NonNull final ConnectivityManager connectivityManager) {
+ try {
+ return connectivityManager.getRestrictBackgroundStatus();
+ } catch (final Exception e) {
+ Log.d(Config.LOGTAG,"platform bug detected. Unable to get restrict background status",e);
+ return -1;
+ }
+ }
+
private boolean usingEnterKey() {
return getBooleanPreference("display_enter_key", R.bool.display_enter_key);
}
M src/main/java/eu/siacs/conversations/utils/Resolver.java => src/main/java/eu/siacs/conversations/utils/Resolver.java +5 -0
@@ 37,6 37,7 @@ import de.measite.minidns.record.SRV;
import eu.siacs.conversations.Config;
import eu.siacs.conversations.R;
import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.xmpp.Jid;
public class Resolver {
@@ 84,6 85,10 @@ public class Resolver {
return Collections.singletonList(result);
}
+ public static void checkDomain(final Jid jid) {
+ DNSName.from(jid.getDomain());
+ }
+
public static boolean invalidHostname(final String hostname) {
try {
DNSName.from(hostname);
M src/main/java/eu/siacs/conversations/xml/TagWriter.java => src/main/java/eu/siacs/conversations/xml/TagWriter.java +4 -18
@@ 8,15 8,12 @@ import java.io.OutputStreamWriter;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
import eu.siacs.conversations.Config;
import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class TagWriter {
- private static final int FLUSH_DELAY = 400;
-
private OutputStreamWriter outputStream;
private boolean finished = false;
private final LinkedBlockingQueue<AbstractStanza> writeQueue = new LinkedBlockingQueue<AbstractStanza>();
@@ 24,8 21,6 @@ public class TagWriter {
private final Thread asyncStanzaWriter = new Thread() {
- private final AtomicInteger batchStanzaCount = new AtomicInteger(0);
-
@Override
public void run() {
stanzaWriterCountDownLatch = new CountDownLatch(1);
@@ 34,21 29,12 @@ public class TagWriter {
break;
}
try {
- final AbstractStanza stanza = writeQueue.poll(FLUSH_DELAY, TimeUnit.MILLISECONDS);
- if (stanza != null) {
- batchStanzaCount.incrementAndGet();
- outputStream.write(stanza.toString());
- } else {
- final int batch = batchStanzaCount.getAndSet(0);
- if (batch > 1) {
- Log.d(Config.LOGTAG, "flushing " + batch + " stanzas");
- }
+ AbstractStanza output = writeQueue.take();
+ outputStream.write(output.toString());
+ if (writeQueue.size() == 0) {
outputStream.flush();
- final AbstractStanza nextStanza = writeQueue.take();
- batchStanzaCount.incrementAndGet();
- outputStream.write(nextStanza.toString());
}
- } catch (final Exception e) {
+ } catch (Exception e) {
break;
}
}
M src/main/res/values-de/strings.xml => src/main/res/values-de/strings.xml +2 -1
@@ 463,8 463,9 @@
<string name="invalid_username">Ungültiger Benutzername</string>
<string name="download_failed_server_not_found">Download fehlgeschlagen: Server nicht gefunden</string>
<string name="download_failed_file_not_found">Download fehlgeschlagen: Datei nicht gefunden</string>
- <string name="download_failed_could_not_connect">Download fehlgeschlagen: keine Verbindung zum Host</string>
+ <string name="download_failed_could_not_connect">Download fehlgeschlagen: Keine Verbindung zum Host</string>
<string name="download_failed_could_not_write_file">Download fehlgeschlagen: Datei konnte nicht gespeichert werden</string>
+ <string name="download_failed_invalid_file">Download fehlgeschlagen: Ungültige Datei</string>
<string name="account_status_tor_unavailable">Tor-Netzwerk nicht verfügbar</string>
<string name="account_status_bind_failure">Verbindungsfehler</string>
<string name="account_status_host_unknown">Der Server ist nicht für diese Domain verantwortlich</string>
M src/main/res/values-gl/strings.xml => src/main/res/values-gl/strings.xml +23 -22
@@ 37,7 37,7 @@
</plurals>
<string name="sending">enviando…</string>
- <string name="message_decrypting">Descifrando a mensaxe. Por favor agarde...</string>
+ <string name="message_decrypting">Descifrando a mensaxe. Agarda por favor...</string>
<string name="pgp_message">Mensaxe cifrado con OpenPGP</string>
<string name="nick_in_use">O alcume xa está en uso</string>
<string name="invalid_muc_nick">Alcume non válido</string>
@@ 84,7 84,7 @@
<string name="send_failed">Erro ao enviar</string>
<string name="preparing_image">Preparándose para enviar a imaxe</string>
<string name="preparing_images">Preparándose para enviar imaxes</string>
- <string name="sharing_files_please_wait">Compartindo ficheiros. Por favor agarde...</string>
+ <string name="sharing_files_please_wait">Compartindo ficheiros. Agarda por favor...</string>
<string name="action_clear_history">Baleirar historial</string>
<string name="clear_conversation_history">Eliminar historial da conversa</string>
<string name="clear_histor_msg">¿Queres eliminar as mensaxes desta conversa?\n\n<b>Aviso:</b> Esto non lle afecta as mensaxes gardadas noutros dispositivos ou servidores. </string>
@@ 105,7 105,7 @@
<string name="openkeychain_required_long"><![CDATA[%1$s utiliza <b>OpenKeychain</b> para cifrar e descifrar as mensaxes e xestionar a túas chaves públicas.<br><br>Está baixo licenza GPLv3+ e dispoñible en F-Droid e Google Play.<br><br><small>(Reinicia %1$s após a instalación.)</small>]]></string>
<string name="restart">Reiniciar</string>
<string name="install">Instalar</string>
- <string name="openkeychain_not_installed">Por favor instale OpenKeychain</string>
+ <string name="openkeychain_not_installed">Instala OpenKeychain por favor</string>
<string name="offering">ofrecendo…</string>
<string name="waiting">agardando...</string>
<string name="no_pgp_key">Clave OpenPGP non atopada</string>
@@ 151,7 151,7 @@
<string name="error_compressing_image">Non se puido converter o ficheiro de imaxe</string>
<string name="error_file_not_found">Arquivo non atopado</string>
<string name="error_io_exception">Erro xeral de I/O. ¿Quedaches sen espazo no disco?</string>
- <string name="error_security_exception_during_image_copy">A app utilizada para seleccionar esta imaxe non deu permisos suficientes para ler o ficheiro.\n\n<small>Usa un xestor de ficheiros diferente para elexir a imaxe</small></string>
+ <string name="error_security_exception_during_image_copy">A app utilizada para seleccionar esta imaxe non deu permisos suficientes para ler o ficheiro.\n\n<small>Usa un xestor de ficheiros diferente para escoller a imaxe</small></string>
<string name="error_security_exception">A app que usaches para compartir este ficheiro non concedeu os permisos suficientes.</string>
<string name="account_status_unknown">Descoñecido</string>
<string name="account_status_disabled">Desactivado temporalmente</string>
@@ 254,12 254,12 @@
<string name="leave">Saír</string>
<string name="contact_added_you">Contacto engadido a túa lista de contactos</string>
<string name="add_back">Volver a engadir</string>
- <string name="contact_has_read_up_to_this_point">%s leu ata este punto</string>
- <string name="contacts_have_read_up_to_this_point">%s leu ate este punto</string>
- <string name="contacts_and_n_more_have_read_up_to_this_point">%1$s + %2$d outras leron ata este punto</string>
- <string name="everyone_has_read_up_to_this_point">Todas leron ate este punto</string>
+ <string name="contact_has_read_up_to_this_point">%s leu até aquí</string>
+ <string name="contacts_have_read_up_to_this_point">%s leron até aquí</string>
+ <string name="contacts_and_n_more_have_read_up_to_this_point">%1$s + %2$d outras leron até aquí</string>
+ <string name="everyone_has_read_up_to_this_point">Todas leron até aquí</string>
<string name="publish">Publicar</string>
- <string name="touch_to_choose_picture">Toca no avatar para escoller a imaxe na galería</string>
+ <string name="touch_to_choose_picture">Toca no avatar para elixir a imaxe na galería</string>
<string name="publishing">Publicando...</string>
<string name="error_publish_avatar_server_reject">O servidor rexeitou a túa publicación</string>
<string name="error_publish_avatar_converting">Non se puido converter a imaxe</string>
@@ 453,23 453,24 @@
<string name="pref_quick_action">Acción rápida</string>
<string name="none">Ningunha</string>
<string name="recently_used">Utilizadas recentemente</string>
- <string name="choose_quick_action">Escolle a acción rápida</string>
+ <string name="choose_quick_action">Elixe a acción rápida</string>
<string name="search_contacts">Buscar contactos</string>
<string name="search_bookmarks">Buscar marcadores</string>
<string name="send_private_message">Enviar mensaxe privada</string>
<string name="user_has_left_conference">%1$s deixou a conversa en grupo</string>
<string name="username">Identificador</string>
- <string name="username_hint">Nome de usuaria</string>
+ <string name="username_hint">Identificador</string>
<string name="invalid_username">Este non é un identificador válido</string>
<string name="download_failed_server_not_found">Fallou a descarga: non se atopou o servidor</string>
<string name="download_failed_file_not_found">Fallou a descarga: non se atopou o ficheiro</string>
<string name="download_failed_could_not_connect">Fallou a descarga: Non se puido conectar ao servidor</string>
<string name="download_failed_could_not_write_file">Fallou a descarga: non se escribeu o ficheiro</string>
+ <string name="download_failed_invalid_file">Fallou a descarga: ficheiro non válido</string>
<string name="account_status_tor_unavailable">Sen acceso a rede Tor</string>
<string name="account_status_bind_failure">Fallou a ligazón</string>
<string name="account_status_host_unknown">O servidor non corresponde a este dominio</string>
<string name="server_info_broken">Roto</string>
- <string name="pref_presence_settings">Disponibilidade</string>
+ <string name="pref_presence_settings">Dispoñibilidade</string>
<string name="pref_away_when_screen_off">Ausente cando o dispositivo está bloqueado</string>
<string name="pref_away_when_screen_off_summary">Mostrar como Ausente cando o dispositivo está bloqueado</string>
<string name="pref_dnd_on_silent_mode">En modolo silencioso, Ocupado</string>
@@ 544,8 545,8 @@
<string name="your_full_jid_will_be">O teu enderezo XMPP completo será: %s</string>
<string name="create_account">Crear conta</string>
<string name="use_own_provider">Utilizar o meu propio proveedor</string>
- <string name="pick_your_username">Elixe un identificador</string>
- <string name="pref_manually_change_presence">Xestionar a disponibilidade manualmente</string>
+ <string name="pick_your_username">Elixe un nome de usuaria</string>
+ <string name="pref_manually_change_presence">Xestionar a dispoñibilidade manualmente</string>
<string name="pref_manually_change_presence_summary">Configura a túa dispoñibilidade ao editar a mensaxe de estado.</string>
<string name="status_message">Mensaxe de estado</string>
<string name="presence_chat">Dispoñible para conversar</string>
@@ 568,7 569,7 @@
<string name="pref_broadcast_last_activity_summary">Permitelle aos teus contactos saber cando estás a usar Conversations</string>
<string name="pref_privacy">Privacidade</string>
<string name="pref_theme_options">Decorado</string>
- <string name="pref_theme_options_summary">Escolle a gama de cores</string>
+ <string name="pref_theme_options_summary">Elixe a gama de cores</string>
<string name="pref_theme_automatic">Automático</string>
<string name="pref_theme_light">Claro</string>
<string name="pref_theme_dark">Escuro</string>
@@ 743,7 744,7 @@
<string name="copy_jabber_id">Copiar enderezo XMPP</string>
<string name="p1_s3_filetransfer">Compartición de ficheiro HTTP para S3</string>
<string name="pref_start_search">Busca directa</string>
- <string name="pref_start_search_summary">Na pantalla \'Iniciar Conversa\' abrir teclado e por o cursor no campo de busca</string>
+ <string name="pref_start_search_summary">Na pantalla \'Iniciar Conversa\' abrir teclado e pór o cursor no campo de busca</string>
<string name="group_chat_avatar">Avatar da conversa de grupo</string>
<string name="host_does_not_support_group_chat_avatars">O servidor non soporta o avatar na conversa de grupo</string>
<string name="only_the_owner_can_change_group_chat_avatar">Só o dono pode cambiar o avatar da conversa de grupo</string>
@@ 794,13 795,13 @@
<string name="verify_x">Validar %s</string>
<string name="we_have_sent_you_an_sms_to_x"><![CDATA[Enviámosche un SMS a <b>%s</b>.]]></string>
<string name="we_have_sent_you_another_sms">Enviamosche outro SMS cun código de 6 díxitos.</string>
- <string name="please_enter_pin_below">Por favor, introduza o pin de 6 díxitos inferior.</string>
+ <string name="please_enter_pin_below">Escribe o PIN de 6 díxitos.</string>
<string name="resend_sms">Reenviar SMS</string>
<string name="resend_sms_in">Reenviar SMS (%s)</string>
- <string name="wait_x">Agarde por favor (%s)</string>
+ <string name="wait_x">Agarda por favor (%s)</string>
<string name="back">atrás</string>
<string name="possible_pin">Copiado automático desde o portapapeis.</string>
- <string name="please_enter_pin">Por favor, introduza o pin de 6 díxitos.</string>
+ <string name="please_enter_pin">Por favor, escribe o pin de 6 díxitos.</string>
<string name="abort_registration_procedure">Seguro que quere cancelar o proceso de rexistro?</string>
<string name="yes">Si</string>
<string name="no">Non</string>
@@ 836,7 837,7 @@
<string name="video_original">Orixinal (non comprimido)</string>
<string name="open_with">Abrir con...</string>
<string name="set_profile_picture">Imaxe de perfil en Conversations</string>
- <string name="choose_account">Elexir conta</string>
+ <string name="choose_account">Elixir conta</string>
<string name="restore_backup">Restablecer copia de apoio</string>
<string name="restore">Restablecer</string>
<string name="enter_password_to_restore">Escribe o contrasinal da conta %s para restablecer a copia.</string>
@@ 852,8 853,8 @@
<string name="create_dialog_channel_name">Nome da canle</string>
<string name="xmpp_address">Enderezo XMPP</string>
<string name="please_enter_name">Por favor, escribe un nome para a canle</string>
- <string name="please_enter_xmpp_address">Por favor, proporcione un enderezo XMPP</string>
- <string name="this_is_an_xmpp_address">Esto é un enderezo XMPP. Por favor, proporcione un nome.</string>
+ <string name="please_enter_xmpp_address">Por favor, escribe un enderezo XMPP</string>
+ <string name="this_is_an_xmpp_address">Esto é un enderezo XMPP. Por favor, escribe un nome.</string>
<string name="creating_channel">Creando canle pública...</string>
<string name="channel_already_exists">Esta canle xa existe</string>
<string name="joined_an_existing_channel">Entraches nunha canle existente</string>
M src/main/res/values-ja/strings.xml => src/main/res/values-ja/strings.xml +6 -1
@@ 615,6 615,8 @@
<string name="pref_clean_private_storage_summary">ファイルが保存されているプライベートストレージを消去します (サーバーから再ダウンロードできます)</string>
<string name="i_followed_this_link_from_a_trusted_source">信頼できるソースからこのリンクをたどりました</string>
<string name="verifying_omemo_keys_trusted_source">リンクをクリックした後、%1$s の OMEMO 鍵を検証しようとしています。 これは、%2$s がこのリンクを公開した、信頼できるソースからこのリンクをたどった場合にのみ安全です。</string>
+ <string name="verifying_omemo_keys_trusted_source_account">あなたが所有するアカウントの OMEMO 鍵を検証しようとしています。 これは、あなたがこのリンクを公開した、信頼できるソースからこのリンクをたどった場合にのみ安全です。</string>
+ <string name="continue_btn">続行</string>
<string name="verify_omemo_keys">OMEMO 鍵を検証</string>
<string name="show_inactive_devices">非アクティブを表示</string>
<string name="hide_inactive_devices">非アクティブを非表示</string>
@@ 950,4 952,7 @@
<string name="backup_started_message">バックアップを開始しました。 バックアップが完了すると通知が届きます。</string>
<string name="unable_to_enable_video">映像を有効化できません。</string>
<string name="plain_text_document">プレーンテキスト文書</string>
- </resources>
+ <string name="account_registrations_are_not_supported">アカウント登録はサポートされていません</string>
+ <string name="no_xmpp_adddress_found">XMPPアドレスがみつかりません</string>
+
+</resources>
M src/main/res/values-pl/strings.xml => src/main/res/values-pl/strings.xml +1 -0
@@ 473,6 473,7 @@
<string name="download_failed_file_not_found">Pobieranie nieudane: Nie odnaleziono pliku</string>
<string name="download_failed_could_not_connect">Pobieranie nieudane: Nie można połączyć z hostem</string>
<string name="download_failed_could_not_write_file">Pobieranie niepowiodło się: brak możliwości zapisu pliku</string>
+ <string name="download_failed_invalid_file">Pobieranie nieudane: Nieprawidłowy plik</string>
<string name="account_status_tor_unavailable">Sieć TOR jest niedostepna</string>
<string name="account_status_bind_failure">Błąd połączenia (zasób)</string>
<string name="account_status_host_unknown">Serwer nie odpowiada domenie</string>
M src/main/res/values-pt-rBR/strings.xml => src/main/res/values-pt-rBR/strings.xml +1 -0
@@ 465,6 465,7 @@
<string name="download_failed_file_not_found">Não foi possível fazer o download: arquivo não encontrado</string>
<string name="download_failed_could_not_connect">Não foi possível fazer o download: não foi possível conectar ao host</string>
<string name="download_failed_could_not_write_file">Falha no download: não foi possível salvar o arquivo</string>
+ <string name="download_failed_invalid_file">Falha no download: arquivo inválido</string>
<string name="account_status_tor_unavailable">Rede Tor não disponível</string>
<string name="account_status_bind_failure">Falha na associação</string>
<string name="account_status_host_unknown">O servidor não responde por esse domínio</string>
M src/main/res/values-ro-rRO/strings.xml => src/main/res/values-ro-rRO/strings.xml +1 -0
@@ 469,6 469,7 @@
<string name="download_failed_file_not_found">Descărcare eșuată: Fișierul nu a fost găsit</string>
<string name="download_failed_could_not_connect">Descărcare eșuată: Nu s-a putut realiza conexiunea cu gazda.</string>
<string name="download_failed_could_not_write_file">Descărcare eșuată: Nu s-a putut scrie fișierul</string>
+ <string name="download_failed_invalid_file">Descărcarea a eșuat: Fișier invalid</string>
<string name="account_status_tor_unavailable">Rețeaua Tor nu este disponibilă</string>
<string name="account_status_bind_failure">Eroare de conexiune</string>
<string name="account_status_host_unknown">Serverul nu este responsabil pentru acest domeniu</string>
M src/main/res/values-ru/strings.xml => src/main/res/values-ru/strings.xml +1 -1
@@ 420,7 420,7 @@
<string name="pref_display_enter_key">Показывать клавишу ввода</string>
<string name="pref_display_enter_key_summary">Поменять кнопку смайликов на кнопку ввода</string>
<string name="audio">аудио</string>
- <string name="video">звук</string>
+ <string name="video">видео</string>
<string name="image">изображение</string>
<string name="vector_graphic">векторная графика</string>
<string name="pdf_document">PDF-документ</string>
M src/main/res/values-tr-rTR/strings.xml => src/main/res/values-tr-rTR/strings.xml +10 -1
@@ 465,6 465,7 @@
<string name="download_failed_file_not_found">İndirme başarısız: Dosya bulunamadı</string>
<string name="download_failed_could_not_connect">İndirme başarısız: Sunucuya bağlanılamadı</string>
<string name="download_failed_could_not_write_file">İndirme başarısız: Dosya yazılamıyor</string>
+ <string name="download_failed_invalid_file">İndirme başarısız: Geçersiz dosya</string>
<string name="account_status_tor_unavailable">Tor ağına erişilemiyor</string>
<string name="account_status_bind_failure">Bağlantı başarısız</string>
<string name="account_status_host_unknown">Sunucu bu alan adı için sorumlu değil</string>
@@ 622,6 623,8 @@
<string name="pref_clean_private_storage_summary">Dosyaların tutulduğu özel depolama alanını temizle (Sunucu üzerinden tekrar indirilebilir)</string>
<string name="i_followed_this_link_from_a_trusted_source">Bu bağlantıyı güvenilir bir kaynaktan takip ettim</string>
<string name="verifying_omemo_keys_trusted_source">Bir bağlantıyı tıkladıktan sonra %1$s in OMEMO anahtarını doğrulamış olacaksınız. Bu yalnızca bağlantının %2$s tarafından yayınladığından eminseniz güvenlidir.</string>
+ <string name="verifying_omemo_keys_trusted_source_account">Hesabınızın OMEMO anahtarını doğrulamış olacaksınız. Bu yalnızca bağlantıya yalnızca sizin yayınlayabileceğiniz bir kaynaktan eriştiyseniz güvenlidir. </string>
+ <string name="continue_btn">Devam et</string>
<string name="verify_omemo_keys">OMEMO anahtarlarını doğrula</string>
<string name="show_inactive_devices">Aktif olmayanları göster</string>
<string name="hide_inactive_devices">Aktif olmayanları sakla</string>
@@ 904,6 907,7 @@
<string name="rtp_state_incoming_video_call">Gelen görüntülü arama</string>
<string name="rtp_state_connecting">Bağlanıyor</string>
<string name="rtp_state_connected">Bağlandı</string>
+ <string name="rtp_state_reconnecting">Tekrar bağlanılıyor</string>
<string name="rtp_state_accepting_call">Arama kabül ediliyor</string>
<string name="rtp_state_ending_call">Arama sonlandırılıyor</string>
<string name="answer_call">Cevapla</string>
@@ 919,6 923,8 @@
<string name="hang_up">Çağrıyı sonlandır</string>
<string name="ongoing_call">Devam eden arama</string>
<string name="ongoing_video_call">Deaam eden görüntülü arama</string>
+ <string name="reconnecting_call">Aramaya tekrar bağlanıyılor</string>
+ <string name="reconnecting_video_call">Görüntülü aramaya tekrar bağlanılıyor</string>
<string name="disable_tor_to_make_call">Arama yapmak için Tor\'u devre dışı bırak</string>
<string name="incoming_call">Gelen arama</string>
<string name="incoming_call_duration">Gelen arama. %s</string>
@@ 968,4 974,7 @@
<string name="backup_started_message">Yedekleme başlatıldı. Tamamlandığı zaman bir bildirim alacaksınız.</string>
<string name="unable_to_enable_video">Video etkinleştirilemedi</string>
<string name="plain_text_document">Düz metin dosyası</string>
- </resources>
+ <string name="account_registrations_are_not_supported">Hesap kayıtları desteklenmemektedir.</string>
+ <string name="no_xmpp_adddress_found">Herhangi bir XMPP adresi bulunamadı</string>
+
+</resources>
M src/main/res/values-zh-rCN/strings.xml => src/main/res/values-zh-rCN/strings.xml +1 -0
@@ 461,6 461,7 @@
<string name="download_failed_file_not_found">下载失败:未找到文件</string>
<string name="download_failed_could_not_connect">下载失败:无法连接到服务器</string>
<string name="download_failed_could_not_write_file">下载失败:不能写入文件</string>
+ <string name="download_failed_invalid_file">下载失败:无效文件</string>
<string name="account_status_tor_unavailable">Tor网络不可用</string>
<string name="account_status_bind_failure">绑定失败</string>
<string name="account_status_host_unknown">服务器不能为域名做出响应</string>
M src/quicksy/res/values-gl/strings.xml => src/quicksy/res/values-gl/strings.xml +1 -1
@@ 1,6 1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="pref_notification_grace_period_summary">O período de tempo que Quicksy permanece acalado tras ver actividade en outro dispositivo</string>
+ <string name="pref_notification_grace_period_summary">O período de tempo que Quicksy permanece acalado tras ver actividade noutro dispositivo</string>
<string name="pref_never_send_crash_summary">Enviando trazas do rexistro estás axudando ao desenvolvemento de Quicksy</string>
<string name="pref_broadcast_last_activity_summary">Permitir a todos os teus contactos saber cando estás a utilizar Quicksy</string>
<string name="huawei_protected_apps_summary">Para seguir recibindo notificacións, mesmo coa pantalla apagada, precisas engadir a Quicksy na lista de apps protexidas.</string>