diff options
47 files changed, 534 insertions, 889 deletions
@@ -40,6 +40,9 @@ These XEPs are - as of now: your desktop client and thus allows you to switch seamlessly from your mobile client to your desktop client and back within one conversation. * XEP-0237: Roster Versioning mainly to save bandwidth on poor mobile connections +* XEP-0352: Client State Indication let the server know whether or not + Conversations is in the background. Allows the server to save bandwidth by + withholding unimportent packages. ##Contributors (In order of appearance) @@ -201,7 +204,7 @@ However with adb (android debug bridge) you squeeze some more information out of Conversations. These information are especially useful if you are experiencing troubles with your connection or with file transfer. ```` -adb -d logcat -v time -s xmppService +adb -d logcat -v time -s conversations ```` ####I found a bug Please report it to our issue tracker. If your app crashes please provide a diff --git a/libs/openpgp-api-lib b/libs/openpgp-api-lib -Subproject 650e1ebda82596cd4fbfaae406e6eccf189f4f6 +Subproject fb3c754ea84cc38052f6e0eb280ecf42d343770 diff --git a/res/layout/share_with.xml b/res/layout/share_with.xml index a578b2cb..41b6033d 100644 --- a/res/layout/share_with.xml +++ b/res/layout/share_with.xml @@ -1,50 +1,13 @@ -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" > -<LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical" > + <ListView + android:id="@+id/choose_conversation_list" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:listitem="@layout/conversation_list_row" /> - <TextView - android:id="@+id/conversations_header" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/share_with_active_conversations" - style="@style/sectionHeader" - android:paddingLeft="8dp" - android:paddingTop="8dp" - android:paddingRight="8dp"/> - - - <LinearLayout - android:id="@+id/conversations" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:divider="?android:dividerHorizontal" - android:showDividers="middle" > - - </LinearLayout> - <TextView - android:id="@+id/contacts_header" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/contacts" - style="@style/sectionHeader" - android:paddingLeft="8dp" - android:paddingTop="8dp" - android:paddingRight="8dp"/> - <LinearLayout - android:id="@+id/contacts" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:divider="?android:dividerHorizontal" - android:showDividers="middle" > - - </LinearLayout> -</LinearLayout> -</ScrollView>
\ No newline at end of file +</LinearLayout>
\ No newline at end of file diff --git a/res/menu/conversations.xml b/res/menu/conversations.xml index 215bbb66..3edee120 100644 --- a/res/menu/conversations.xml +++ b/res/menu/conversations.xml @@ -45,6 +45,11 @@ android:showAsAction="never" android:title="@string/action_end_conversation"/> <item + android:id="@+id/action_mute" + android:orderInCategory="70" + android:showAsAction="never" + android:title="@string/disable_notifications"/> + <item android:id="@+id/action_accounts" android:orderInCategory="90" android:showAsAction="never" diff --git a/res/menu/share_with.xml b/res/menu/share_with.xml new file mode 100644 index 00000000..cbd15c11 --- /dev/null +++ b/res/menu/share_with.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" > + + <item + android:id="@+id/action_add" + android:icon="@drawable/ic_action_new" + android:orderInCategory="10" + android:showAsAction="always" + android:title="@string/action_add"/> + +</menu>
\ No newline at end of file diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 09bf03ee..08fef187 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -10,30 +10,18 @@ <string name="action_muc_details">Detalls de la conferència</string> <string name="action_secure">Conversa segura</string> <string name="action_add_account">Afegir compte</string> - <string name="title_activity_contacts">Contactes</string> <string name="just_now">ara</string> <string name="sending">enviant…</string> - <string name="announce_pgp">Renovar anunci PGP</string> <string name="encrypted_message">Desxifrant missatge. Espera si us plau…</string> - <string name="conference_details">Detalls de la conferència</string> <string name="nick_in_use">El sobrenom ja està en ús</string> <string name="moderator">Moderador</string> <string name="participant">Participant</string> <string name="visitor">Visitant</string> - <string name="enter_new_name">Introdueix un nou nom:</string> <string name="remove_contact_text">Vols eliminar a %s de la teva llista?. La conversa associada a aquest compte no s\'eliminarà.</string> - <string name="untrusted_cert_hint">El servidor %s presenta un certificat no confiable, possiblemente auto signat.</string> - <string name="account_info">Informació del servidor</string> <string name="register_account">Registrar nou compte al servidor</string> <string name="share_with">Compartir amb</string> - <string name="ask_again"><u>Prem per preguntar un altre cop</u></string> - <string name="show_otr_key">Emprempta dactilar OTR</string> - <string name="no_otr_fingerprint">No s\'ha generat una emprempta dactilar OTR. Simplement continua i comença una conversa xifrada.</string> <string name="start_conversation">Començar conversa</string> <string name="cancel">Cancel·lar</string> - <string name="invitation_sent">Invitació enviada</string> - <string name="account_offline">Compte desconnectat</string> - <string name="cant_invite_while_offline">Has d\'estar connectat per convidar contactes a la conferència</string> <string name="crash_report_title">Conversations s\'ha aturat.</string> <string name="crash_report_message">Enviant bolcats de piles ajudes al desenvolupament de Conversations\n<b>Avís:</b> Això usarà el teu compte XMPP per enviar el bolcat de pila al desenvolupador.</string> <string name="send_now">Enviar ara</string> @@ -59,14 +47,7 @@ <string name="send_pgp_message">Enviar missatge xifrat amb OpenPGP</string> <string name="your_nick_has_been_changed">El teu sobrenom s\'ha modificat</string> <string name="download_image">Descarregar imatge</string> - <string name="error_loading_image">Error carregant imatge (Fitxer no trobat)</string> <string name="image_offered_for_download"><i>Fitxer d\'imatge ofert per a descàrrega</i></string> - <string name="not_connected">No connectat</string> - <string name="otr_messages">Missatges xifrats amb OTR</string> - <string name="manage_account">Gestionar compte</string> - <string name="contact_offline">El teu contacte està desconnectat</string> - <string name="contact_offline_otr">Malauradament no és possible enviar missatges xifrats amb OTR a un contacte desconnectat.\nVols enviar el missatge en text pla?</string> - <string name="contact_offline_file">Malauradament no és possible enviar fitxers a un contacte desconnectat.</string> <string name="send_unencrypted">Enviar sense xifrar</string> <string name="decryption_failed">Ha fallat el desxiframent. Potser no tinguis la clau privada apropiada.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -79,9 +60,6 @@ <string name="encrypted_message_received"><i>Missatge xifrat rebut. Prem per desxifrar i veure-ho.</i></string> <string name="encrypted_image_received"><i>Imatge xifrada rebuda. Prem per desxifrar i veure-la.</i></string> <string name="image_file"><i>Imatge rebuda. Prem per veure</i></string> - <string name="otr_file_transfer">Xifratge amb OTR no disponible</string> - <string name="otr_file_transfer_msg">Malauradament el xifratge amb OTR no està disponible per transferència de fitxers. Pots seleccionar xifratge amb OpenPGP o no usar xifratge.</string> - <string name="use_pgp_encryption">Usa xifratge amb OpenPGP</string> <string name="pref_xmpp_resource">Recursos XMPP</string> <string name="pref_xmpp_resource_summary">El nom que identifica aquest client amb</string> <string name="pref_accept_files">Acceptar fitxers</string> @@ -98,8 +76,6 @@ <string name="pref_notification_grace_period">Notificació del període d\'espera</string> <string name="pref_notification_grace_period_summary">Desactiva les notificacions durant un breu termini després de rebre una còpia de missatges carbon</string> <string name="pref_ui_options">Opcions de UI</string> - <string name="pref_use_phone_self_picture">Utilitza l\'avatar de l\'usuari del mòbil</string> - <string name="pref_use_phone_self_picture_summary">Podries no diferenciar quin compte estàs usant a la conversa</string> <string name="pref_conference_name">Nom de la conferència</string> <string name="pref_conference_name_summary">Utilitza l\'assumpte de la sala per identificar Conferències</string> <string name="pref_advanced_options">Opcions avançades</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index b2b1ff5e..ae2cc378 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -4,7 +4,6 @@ <string name="action_settings">Einstellungen</string> <string name="action_add">Neue Unterhaltung</string> <string name="action_accounts">Konten verwalten</string> - <string name="action_refresh">Kontaktliste neu laden</string> <string name="action_end_conversation">Unterhaltung beenden</string> <string name="action_contact_details">Kontaktdetails</string> <string name="action_muc_details">Konferenzdetails</string> @@ -13,7 +12,6 @@ <string name="action_edit_contact">Name bearbeiten</string> <string name="action_add_phone_book">Zum Telefonbuch hinzufügen</string> <string name="action_delete_contact">Aus Kontaktliste entfernen</string> - <string name="title_activity_contacts">Kontakte</string> <string name="title_activity_manage_accounts">Konten verwalten</string> <string name="title_activity_settings">Einstellungen</string> <string name="title_activity_conference_details">Konferenzdetails</string> @@ -27,45 +25,26 @@ <string name="minutes_ago">vor %d Minuten</string> <string name="unread_conversations">ungelesene Unterhaltungen</string> <string name="sending">senden…</string> - <string name="announce_pgp">PGP-Ankündigung erneuern</string> <string name="encrypted_message">Entschlüssele Nachricht. Bitte warten…</string> - <string name="conference_details">Konferenzdetails</string> <string name="nick_in_use">Nickname wird bereits verwendet</string> <string name="admin">Administrator</string> <string name="owner">Eigentümer</string> <string name="moderator">Moderator</string> <string name="participant">Teilnehmer</string> <string name="visitor">Besucher</string> - <string name="enter_new_name">Gib einen neuen Namen ein:</string> <string name="remove_contact_text">Möchtest du %s von deiner Kontaktliste entfernen? Die Unterhaltung mit diesem Kontakt wird dabei nicht entfernt.</string> <string name="remove_bookmark_text">Möchtest du das Lesezeichen %s entfernen? Die Unterhaltung mit diesem Lesezeichen wird dabei nicht entfernt.</string> - <string name="untrusted_cert_hint">Der Server %s hat Dir ein unbekanntes, möglicherweise selbst signiertes Zertifikat geschickt.</string> - <string name="account_info">Server-Informationen</string> <string name="register_account">Neues Konto auf dem Server erstellen</string> <string name="share_with">Teile mit…</string> - <string name="ask_again"><u>Klicke, um noch einmal zu fragen</u></string> - <string name="show_otr_key">OTR-Fingerabdruck</string> - <string name="no_otr_fingerprint">Es wurde noch kein OTR-Fingerabdruck erzeugt. Beginne einfach eine verschlüsselte Unterhaltung, um einen Fingerabdruck zu erzeugen.</string> <string name="start_conversation">Beginne Unterhaltung</string> <string name="invite_contact">Kontakt einladen</string> <string name="contacts">Kontakte</string> - <string name="search_jabber_id">Jabber-ID eingeben oder suchen</string> - <string name="choose_account">Konto auswählen</string> - <string name="multi_user_conference">Mehrbenutzerkonferenz</string> - <string name="trying_join_conference">Möchtest du einer Konferenz beitreten?</string> <string name="cancel">Abbrechen</string> <string name="add">Hinzufügen</string> <string name="edit">Bearbeiten</string> <string name="delete">Entfernen</string> <string name="save">Speichern</string> - <string name="yes">Ja</string> - <string name="no">Nein</string> <string name="ok">OK</string> - <string name="done">Erledigt</string> - <string name="hide">Verstecken</string> - <string name="invitation_sent">Einladung wurde versandt</string> - <string name="account_offline">Konto offline</string> - <string name="cant_invite_while_offline">Du musst online sein, um andere Leute zu einer Konferenz einzuladen</string> <string name="crash_report_title">Conversations ist abgestürzt</string> <string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von Conversations.\n<b>Achtung:</b> Dies wird eines deiner XMPP-Konten benutzen, um den Entwickler zu kontaktieren.</string> <string name="send_now">Jetzt abschicken</string> @@ -91,14 +70,7 @@ <string name="send_pgp_message">OpenPGP-verschlüsselt schreiben</string> <string name="your_nick_has_been_changed">Dein Nickname wurde geändert</string> <string name="download_image">Bild herunterladen</string> - <string name="error_loading_image">Fehler beim Laden des Bildes (Datei wurde nicht gefunden)</string> <string name="image_offered_for_download"><i>Bilddatei zum Download angeboten</i></string> - <string name="not_connected">Nicht verbunden</string> - <string name="otr_messages">OTR-verschlüsselte Nachrichten</string> - <string name="manage_account">Konto verwalten</string> - <string name="contact_offline">Dein Kontakt ist offline</string> - <string name="contact_offline_otr">Dein Kontakt muss online sein, um OTR-verschlüsselte Nachrichten zu empfangen. Möchtest Du die Nachricht im Klartext übertragen?</string> - <string name="contact_offline_file">Der Kontakt muss online sein, um Dateien zu empfangen.</string> <string name="send_unencrypted">Unverschlüsselt verschicken</string> <string name="decryption_failed">Entschlüsselung fehlgeschlagen. Vielleicht hast du nicht den richtigen privaten Schlüssel.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -114,9 +86,6 @@ <string name="encrypted_message_received"><i>Verschlüsselte Nachricht erhalten. Drücke hier, um sie anzuzeigen und zu entschlüsseln.</i></string> <string name="encrypted_image_received"><i>Verschlüsseltes Bild erhalten. Drücke hier, um es anzuzeigen und zu entschlüsseln.</i></string> <string name="image_file"><i>Bild erhalten. Drücke hier, um es anzuzeigen.</i></string> - <string name="otr_file_transfer">OTR-Verschlüsselung nicht verfügbar</string> - <string name="otr_file_transfer_msg">Es ist nicht möglich, Dateien mittels OTR zu verschlüsseln. Du kannst entweder OpenPGP wählen oder die Datei unverschlüsselt senden.</string> - <string name="use_pgp_encryption">OpenPGP verwenden</string> <string name="pref_general">Allgemein</string> <string name="pref_xmpp_resource">XMPP-Ressource</string> <string name="pref_xmpp_resource_summary">Der Name, mit dem sich der Client selbst identifiziert</string> @@ -134,8 +103,6 @@ <string name="pref_notification_grace_period">Gnadenfrist</string> <string name="pref_notification_grace_period_summary">Deaktiviere Benachrichtigungen für eine kurze Zeit nach Erhalt einer Nachricht, die von einem anderen deiner Clients kommt.</string> <string name="pref_ui_options">Benutzeroberfläche</string> - <string name="pref_use_phone_self_picture">Benutze dein Kontaktbild</string> - <string name="pref_use_phone_self_picture_summary">Wenn du mehrere Konten hast, bist du eventuell nicht mehr in der Lage, diese auseinander zu halten</string> <string name="pref_conference_name">Konferenzname</string> <string name="pref_conference_name_summary">Benutze das Thema der Konferenz als Name in der Übersicht</string> <string name="pref_advanced_options">Erweiterte Optionen</string> @@ -143,11 +110,8 @@ <string name="pref_never_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du Conversations stetig zu verbessern</string> <string name="pref_confirm_messages">Lesebestätigung senden</string> <string name="pref_confirm_messages_summary">Informiere deine Kontakte, wenn du eine Nachricht empfängst oder liest</string> - <string name="pref_show_last_seen">Letzte Nutzung anzeigen</string> - <string name="pref_show_last_seen_summary">Zeige die Zeit an, zu welcher ein Kontakt zuletzt online war</string> <string name="openpgp_error">Fehler mit OpenKeychain</string> <string name="error_decrypting_file">Fehler beim Entschlüsseln der Datei</string> - <string name="error_copying_image_file">Fehler beim Kopieren des Bildes</string> <string name="accept">Annehmen</string> <string name="error">Ein unbekannter Fehler ist aufgetreten</string> <string name="pref_grant_presence_updates">Online-Status</string> @@ -158,7 +122,6 @@ <string name="send_presence_updates">Anwesenheitsbenachrichtigungen senden</string> <string name="receive_presence_updates">Empfange Anwesenheitsbenachrichtigungen</string> <string name="ask_for_presence_updates">Frage um Erlaubnis, Anwesenheitsbenachrichtigungen sehen zu dürfen</string> - <string name="asked_for_presence_updates">Es wurde um Anwesenheitsbenachrichtigungen gefragt</string> <string name="attach_choose_picture">Foto auswählen</string> <string name="attach_take_picture">Foto aufnehmen</string> <string name="preemptively_grant">Erlaube Statusanfrage vorab</string> @@ -167,7 +130,6 @@ <string name="error_file_not_found">Datei nicht gefunden</string> <string name="error_io_exception">Allgemeiner Fehler. Vielleicht hast du keinen Speicherplatz mehr?</string> <string name="error_security_exception_during_image_copy">Die App, mit der du das Bild ausgesucht hast, hat uns keine Rechte eingeräumt, das Bild zu betrachten.\n\n<small>Benutze einen anderen Dateimanager</small></string> - <string name="account_status">Status:</string> <string name="account_status_unknown">Unbekannt</string> <string name="account_status_disabled">Vorübergehend abgeschaltet</string> <string name="account_status_online">Online</string> @@ -176,7 +138,6 @@ <string name="account_status_unauthorized">Ungültige Zugangsdaten</string> <string name="account_status_not_found">Server nicht gefunden</string> <string name="account_status_no_internet">Keine Internetverbindung</string> - <string name="account_status_requires_tls">Server benötigt TLS</string> <string name="account_status_regis_fail">Registrierung fehlgeschlagen</string> <string name="account_status_regis_conflict">Benutzername wird bereits verwendet</string> <string name="account_status_regis_success">Registrierung abgeschlossen</string> @@ -192,9 +153,7 @@ <string name="mgmt_account_enable">Anschalten</string> <string name="mgmt_account_are_you_sure">Bist du dir sicher?</string> <string name="mgmt_account_delete_confirm_text">Wenn du dein Konto löscht, gehen alle Gesprächsverläufe verloren</string> - <string name="mgmt_account_account_offline">Das Konto ist offline</string> <string name="attach_record_voice">Sprache aufzeichnen</string> - <string name="account_settings">Kontoeinstellungen</string> <string name="account_settings_jabber_id">Jabber-ID:</string> <string name="account_settings_password">Passwort:</string> <string name="account_settings_example_jabber_id">benutzer@domain.de</string> @@ -212,18 +171,13 @@ <string name="contact_status_do_not_disturb">Nicht stören</string> <string name="contact_status_offline">Offline</string> <string name="muc_details_conference">Konferenz</string> - <string name="muc_details_conference_subject">Konferenzthema</string> - <string name="muc_details_your_nickname">Dein Name</string> <string name="muc_details_other_members">Andere Mitglieder</string> - <string name="subscription_not_updated_offline">Das Konto ist offline. Die Abonnements konnten nicht aktualisiert werden</string> <string name="share_with_active_conversations">Aktive Gespräche</string> <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string> <string name="server_info_stream_management">XEP-0198: Stream Management</string> <string name="server_info_pep">XEP-0163: PEP (Avatare)</string> <string name="server_info_available">verfügbar</string> <string name="server_info_unavailable">nicht verfügbar</string> - <string name="hours">Stunden</string> - <string name="mins">Minuten</string> <string name="missing_public_keys">Öffentlicher Schlüssel fehlt</string> <string name="last_seen_now">Gerade online</string> <string name="last_seen_min">Vor einer Minute gesehen</string> @@ -235,11 +189,8 @@ <string name="never_seen">Noch nie gesehen</string> <string name="install_openkeychain">Verschlüsselte Nachricht. Bitte installiere OpenKeychain zur Entschlüsselung.</string> <string name="unknown_otr_fingerprint">Unbekannter OTR-Fingerabdruck</string> - <string name="edit_conference_details">Konferenzdetails bearbeiten</string> <string name="openpgp_messages_found">Verschlüsselte OpenPGP-Nachricht gefunden</string> - <string name="openpgp_click_to_decrypt">Hier klicken, um das Passwort einzugeben und die Nachricht zu entschlüsseln</string> <string name="reception_failed">Empfang ist fehlgeschlagen</string> - <string name="no_muc_server_found">Es wurde kein Konferenzserver gefunden</string> <string name="your_fingerprint">Dein Fingerabdruck</string> <string name="otr_fingerprint">OTR-Fingerabdruck</string> <string name="verify">Verifizieren</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 77e5d2f7..0370d659 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Ajustes</string> <string name="action_add">Nueva conversación</string> <string name="action_accounts">Gestionar cuentas</string> - <string name="action_refresh">Actualizar lista de contactos</string> <string name="action_end_conversation">Terminar conversación</string> <string name="action_contact_details">Detalles del contacto</string> <string name="action_muc_details">Detalles de la conferencia</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">Editar contacto</string> <string name="action_delete_contact">Eliminar contacto de la lista</string> <string name="action_add_phone_book">Añadir a contactos del teléfono</string> - <string name="title_activity_contacts">Contactos</string> <string name="title_activity_manage_accounts">Gestionar Cuentas</string> <string name="title_activity_settings">Ajustes</string> <string name="title_activity_conference_details">Detalles de Conferencia</string> @@ -28,45 +26,26 @@ <string name="minutes_ago">hace %d min</string> <string name="unread_conversations">conversaciones por leer</string> <string name="sending">enviando…</string> - <string name="announce_pgp">Renovar anuncio PGP</string> <string name="encrypted_message">Desencriptando mensaje. Espera por favor…</string> - <string name="conference_details">Detalles de la conferencia</string> <string name="nick_in_use">El apodo ya está en uso</string> <string name="admin">Administrador</string> <string name="owner">Propietario</string> <string name="moderator">Moderador</string> <string name="participant">Participante</string> <string name="visitor">Visitante</string> - <string name="enter_new_name">Introduce un nuevo nombre:</string> <string name="remove_contact_text">¿Quieres eliminar a %s de tu lista? La conversación asociada a esta cuenta no se eliminará.</string> <string name="remove_bookmark_text">¿Quieres eliminar %s de tus marcadores? La conversación de la conferencia asociada con este marcador no se eliminará.</string> - <string name="untrusted_cert_hint">El servidor %s presenta un certificado no confiable, posiblemente auto firmado.</string> - <string name="account_info">Información del servidor</string> <string name="register_account">Registrar nueva cuenta en servidor</string> <string name="share_with">Compartir con</string> - <string name="ask_again"><u>Pulsa para preguntar otra vez</u></string> - <string name="show_otr_key">Clave OTR</string> - <string name="no_otr_fingerprint">No se ha generado una clave OTR. Continúa y comienza una conversación encriptada</string> <string name="start_conversation">Comenzar conversación</string> <string name="invite_contact">Invitar contactos</string> <string name="contacts">Contactos</string> - <string name="search_jabber_id">Busca o escribe identificador Jabber</string> - <string name="choose_account">Seleccionar cuenta</string> - <string name="multi_user_conference">Conferencia multiusuario</string> - <string name="trying_join_conference">¿Estás intentando unirte a una conferencia?</string> <string name="cancel">Cancelar</string> <string name="add">Añadir</string> <string name="edit">Editar</string> <string name="delete">Eliminar</string> <string name="save">Guardar</string> - <string name="yes">Sí</string> - <string name="no">No</string> <string name="ok">OK</string> - <string name="done">Hecho</string> - <string name="hide">Ocultar</string> - <string name="invitation_sent">Invitación enviada</string> - <string name="account_offline">Cuenta desconectada</string> - <string name="cant_invite_while_offline">Debes estar conectado para invitar a contactos a la conferencia</string> <string name="crash_report_title">Conversations se ha detenido.</string> <string name="crash_report_message">Si envías un informe de fallos ayudas al desarrollo de Conversations\n<b>Aviso:</b> Esto usará tu cuenta XMPP para enviar los registros de error al desarrollador.</string> <string name="send_now">Enviar ahora</string> @@ -92,14 +71,7 @@ <string name="send_pgp_message">Enviar mensaje encriptado con OpenPGP</string> <string name="your_nick_has_been_changed">Tu apodo se ha modificado</string> <string name="download_image">Descargar imagen</string> - <string name="error_loading_image">Error cargando imagen (Archivo no encontrado)</string> <string name="image_offered_for_download"><i>Archivo de imagen ofrecido para descarga</i></string> - <string name="not_connected">No conectado</string> - <string name="otr_messages">Mensajes encriptados con OTR</string> - <string name="manage_account">Gestionar cuenta</string> - <string name="contact_offline">El contacto está desconectado</string> - <string name="contact_offline_otr">No es posible enviar mensajes encriptados con OTR a un contacto desconectado.\n¿Quieres enviar el mensaje en texto plano?</string> - <string name="contact_offline_file">No es posible enviar archivos a un contacto desconectado.</string> <string name="send_unencrypted">Enviar sin encriptar</string> <string name="decryption_failed">Falló la desencriptación. Tal vez no tengas la clave privada apropiada.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -115,9 +87,6 @@ <string name="encrypted_message_received"><i>Mensaje encriptado recibido. Pulsa para ver.</i></string> <string name="encrypted_image_received"><i>Imagen encriptada recibida. Pulsa para ver.</i></string> <string name="image_file"><i>Imagen recibida. Pulsa para ver</i></string> - <string name="otr_file_transfer">Encriptación con OTR no disponible</string> - <string name="otr_file_transfer_msg">La encriptación con OTR no está disponible para transferencia de archivos. Puedes selecionar encriptación con OpenPGP o no usar encriptación.</string> - <string name="use_pgp_encryption">Usa encriptación con OpenPGP</string> <string name="pref_xmpp_resource">Recurso</string> <string name="pref_xmpp_resource_summary">El nombre que identifica el cliente que estás utilizando</string> <string name="pref_accept_files">Aceptar archivos</string> @@ -134,8 +103,6 @@ <string name="pref_notification_grace_period">Notificaciones Carbons</string> <string name="pref_notification_grace_period_summary">Deshabilita las notificaciones durante un corto periodo de tiempo después de recibir la copia del mensaje carbon</string> <string name="pref_ui_options">Opciones de interfaz</string> - <string name="pref_use_phone_self_picture">Usar foto del teléfono</string> - <string name="pref_use_phone_self_picture_summary">Si tienes más de una cuenta configurada podrías no distinguir que cuenta está utilizando en una conversación</string> <string name="pref_conference_name">Nombre de la conferencia</string> <string name="pref_conference_name_summary">Usa el nombre de la sala para identificar Conferencias</string> <string name="pref_advanced_options">Opciones avanzadas</string> @@ -143,11 +110,8 @@ <string name="pref_never_send_crash_summary">Si envías registros de error ayudas al desarrollo de Conversations</string> <string name="pref_confirm_messages">Confirmar Mensajes</string> <string name="pref_confirm_messages_summary">Permitir a tus contactos saber cuando recibes y lees un mensaje</string> - <string name="pref_show_last_seen">Última vez</string> - <string name="pref_show_last_seen_summary">Muestra la última vez que un contacto ha sido visto conectado</string> <string name="openpgp_error">OpenKeychain reportó un error</string> <string name="error_decrypting_file">Error desencriptando fichero</string> - <string name="error_copying_image_file">Error copiando archivo de imagen.</string> <string name="accept">Aceptar</string> <string name="error">Ha ocurrido un error</string> <string name="pref_grant_presence_updates">Suscripción de presencia</string> @@ -158,7 +122,6 @@ <string name="send_presence_updates">Enviar actualizaciones de presencia</string> <string name="receive_presence_updates">Recibir actualizaciones de presencia</string> <string name="ask_for_presence_updates">Solicitar actualizaciones de presencia</string> - <string name="asked_for_presence_updates">Solictida actualizaciones de presencia</string> <string name="attach_choose_picture">Seleccionar imagen</string> <string name="attach_take_picture">Hacer foto</string> <string name="preemptively_grant">De forma automática conceder solicitud de suscripción</string> @@ -167,7 +130,6 @@ <string name="error_file_not_found">Archivo no encontrado</string> <string name="error_io_exception">Error general. ¿Puede que no tengas espacio en disco?</string> <string name="error_security_exception_during_image_copy">La aplicación que usas para seleccionar imágenes no proporciona suficientes permisos para leer el archivo.\n\n<small>Utiliza un explorador de ficheros diferente para seleccionar la imagen</small></string> - <string name="account_status">Estado:</string> <string name="account_status_unknown">Desconocido</string> <string name="account_status_disabled">Deshabilitado temporalmente</string> <string name="account_status_online">Conectado</string> @@ -176,7 +138,6 @@ <string name="account_status_unauthorized">No autorizado</string> <string name="account_status_not_found">Servidor no encontrado</string> <string name="account_status_no_internet">Sin conectividad</string> - <string name="account_status_requires_tls">El servidor requiere TLS</string> <string name="account_status_regis_fail">Error en el registro</string> <string name="account_status_regis_conflict">El identificador ya está en uso</string> <string name="account_status_regis_success">Registro completado</string> @@ -192,9 +153,7 @@ <string name="mgmt_account_enable">Habilitar</string> <string name="mgmt_account_are_you_sure">¿Estás seguro?</string> <string name="mgmt_account_delete_confirm_text">Si eliminas tu cuenta tu historial completo de conversaciones se perderá</string> - <string name="mgmt_account_account_offline">La cuenta está desconectada</string> <string name="attach_record_voice">Grabar audio</string> - <string name="account_settings">Configuración de cuenta</string> <string name="account_settings_jabber_id">Identificador Jabber</string> <string name="account_settings_password">Contraseña</string> <string name="account_settings_example_jabber_id">usuario@ejemplo.com</string> @@ -212,18 +171,13 @@ <string name="contact_status_do_not_disturb">No molestar</string> <string name="contact_status_offline">Desconectado</string> <string name="muc_details_conference">Conferencia</string> - <string name="muc_details_conference_subject">Asunto de la Conferencia</string> - <string name="muc_details_your_nickname">Tu apodo</string> <string name="muc_details_other_members">Otros Miembros</string> - <string name="subscription_not_updated_offline">Cuenta desconectada. No se puede actualizar suscripciones</string> <string name="share_with_active_conversations">Conversaciones Activas</string> <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string> <string name="server_info_stream_management">XEP-0198: Stream Management</string> <string name="server_info_pep">XEP-0163: PEP (Avatars)</string> <string name="server_info_available">Sí</string> <string name="server_info_unavailable">No</string> - <string name="hours">horas</string> - <string name="mins">min</string> <string name="missing_public_keys">Se han perdido las claves de anuncio públicas</string> <string name="last_seen_now">Visto última vez ahora</string> <string name="last_seen_min">Visto última vez hace 1 minuto</string> @@ -235,11 +189,8 @@ <string name="never_seen">Nunca visto</string> <string name="install_openkeychain">Mensaje encriptado. Por favor instala OpenKeychain para desencriptar.</string> <string name="unknown_otr_fingerprint">Clave OTR desconocida</string> - <string name="edit_conference_details">Pulsa para editar detalles de la conferencia</string> <string name="openpgp_messages_found">Encontrado mensaje encriptado con OpenPGP</string> - <string name="openpgp_click_to_decrypt">Pulsa para introducir la contraseña y desencriptar el mensaje</string> <string name="reception_failed">Error al recibir</string> - <string name="no_muc_server_found">No se ha encontrado un servidor de conferencias apropiado</string> <string name="your_fingerprint">Tu clave</string> <string name="otr_fingerprint">Clave OTR</string> <string name="verify">Verificar</string> diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 7a728d4e..fd3c2b16 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Ezarpenak</string> <string name="action_add">Elkarrizketa berria</string> <string name="action_accounts">Kontuak kudeatu</string> - <string name="action_refresh">Kontaktuen zerrenda freskatu</string> <string name="action_end_conversation">Elkarrizketa hau amaitu</string> <string name="action_contact_details">Kontaktuaren xehetasunak</string> <string name="action_muc_details">Konferentziaren xehetasunak</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">Izena editatu</string> <string name="action_add_phone_book">Telefono kontaktuetara gehitu</string> <string name="action_delete_contact">Zerrendatik ezabatu</string> - <string name="title_activity_contacts">Kontaktuak</string> <string name="title_activity_manage_accounts">Kontuak kudeatu</string> <string name="title_activity_settings">Ezarpenak</string> <string name="title_activity_conference_details">Konferentziaren xehetasunak</string> @@ -28,45 +26,26 @@ <string name="minutes_ago">%d min lehenago</string> <string name="unread_conversations">irakurri gabeko elkarrizketak</string> <string name="sending">bidaltzen…</string> - <string name="announce_pgp">PGP iragarpena berritu</string> <string name="encrypted_message">Mezua desenkriptatzen. Mesedez itxaron…</string> - <string name="conference_details">Konferentziaren xehetasunak</string> <string name="nick_in_use">Ezizena erabilita dagoeneko</string> <string name="admin">Administratzailea</string> <string name="owner">Jabea</string> <string name="moderator">Moderatzailea</string> <string name="participant">Parte-hartzailea</string> <string name="visitor">Bisitaria</string> - <string name="enter_new_name">Sartu izen berri bat:</string> <string name="remove_contact_text">%s zure zerrendatik ezabatu nahi duzu? Kontu honekin lotutako elkarrizketa ez da ezabatuko.</string> <string name="remove_bookmark_text">%s laster-marka bezala ezabatu nahi duzu? Laster-marka honekin lotutako elkarrizketa ez da ezabatuko.</string> - <string name="untrusted_cert_hint">%s zerbitzariak konfiantzarik gabeko, agian bere buruak izenpetutako, ziurtagiri batekin aurkeztu zaitu.</string> - <string name="account_info">Zerbitzariaren informazioa</string> <string name="register_account">Kontu berria zerbitzarian erregistratu</string> <string name="share_with">Honekin partekatu</string> - <string name="ask_again"><u>Sakatu berriz galdetzeko</u></string> - <string name="show_otr_key">OTR hatz-marka</string> - <string name="no_otr_fingerprint">Ez da OTR hatz-markarik sortu. Aurrera joan eta enkriptatutako elkarrizketa hasi</string> <string name="start_conversation">Elkarrizketa hasi</string> <string name="invite_contact">Kontaktu bat gonbidatu</string> <string name="contacts">Kontaktuak</string> - <string name="search_jabber_id">Bilatu edo sartu Jabber ID bat</string> - <string name="choose_account">Kontua hautatu</string> - <string name="multi_user_conference">Erabiltzaile ugariko konferentzia</string> - <string name="trying_join_conference">Are you trying to join a conference?</string> <string name="cancel">Utzi</string> <string name="add">Gehitu</string> <string name="edit">Editatu</string> <string name="delete">Ezabatu</string> <string name="save">Gorde</string> - <string name="yes">Bai</string> - <string name="no">Ez</string> <string name="ok">Ados</string> - <string name="done">Eginda</string> - <string name="hide">Ezkutatu</string> - <string name="invitation_sent">Gonbidapena bidali da</string> - <string name="account_offline">Kontua lineaz kanpo</string> - <string name="cant_invite_while_offline">Konektatuta egon behar zara jendea konferentzietara gonbidatzeko</string> <string name="crash_report_title">Conversations gelditu da</string> <string name="crash_report_message">Akats harraskak bidaliz Conversationsen garapenean laguntzen duzu\n<b>Abisua:</b> Honek zure XMPP kontua erabiliko du garatzaileari akats harraska bidaltzeko.</string> <string name="send_now">Bidali orain</string> @@ -92,14 +71,7 @@ <string name="send_pgp_message">OpenPGPz enkriptatutako mezua bidali</string> <string name="your_nick_has_been_changed">Zure ezizena aldatu da</string> <string name="download_image">Irudia deskargatu</string> - <string name="error_loading_image">Akatsa irudia kargatzen (fitxategia ez da aurkitu)</string> <string name="image_offered_for_download"><i>Irudi fitxategia deskargarako eskeinia</i></string> - <string name="not_connected">Ez konektaturik</string> - <string name="otr_messages">OTRz enkriptatutako mezuak</string> - <string name="manage_account">Kontua kudeatu</string> - <string name="contact_offline">Zure kontaktua lineaz kanpo dago</string> - <string name="contact_offline_otr">Zoritxarrez ezin da OTRz enkriptatutako mezurik bidali lineaz kanpo dagoen kontaktu bati.\nMezua testu lauean bidali nahiko al zenuke?</string> - <string name="contact_offline_file">Zoritxarrez ezin da fitxategirik bidali lineaz kanpo dagoen kontaktu bati.</string> <string name="send_unencrypted">Enkriptatu gabe bidali</string> <string name="decryption_failed">Desenkriptazioak huts egin du. Agian ez duzu gako pribatu egokia.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -115,9 +87,6 @@ <string name="encrypted_message_received"><i>Enkriptatutako mezua jaso da. Ukitu ikusi eta desenkriptatzeko.</i></string> <string name="encrypted_image_received"><i>Enkriptatutako irudia jaso da. Ukitu ikusi eta desenkriptatzeko.</i></string> <string name="image_file"><i>Irudia jaso da. Ukitu ikusteko</i></string> - <string name="otr_file_transfer">OTR enkriptazioa ez dago erabilgarri</string> - <string name="otr_file_transfer_msg">Zoritxarrez OTR enkriptazioa ez dago fitxategi transferentzietarako erabilgarri. OpenPGP edo enkriptaziorik ez erabiltzea aukera dezakezu.</string> - <string name="use_pgp_encryption">OpenPGP enkriptazioa erabili</string> <string name="pref_general">Orokorrak</string> <string name="pref_xmpp_resource">XMPP baliabidea</string> <string name="pref_xmpp_resource_summary">Bezero honek bere burua aurkezteko erabiltzen duen izena</string> @@ -135,8 +104,6 @@ <string name="pref_notification_grace_period">Jakinarazpenen grazia epea</string> <string name="pref_notification_grace_period_summary">Jakinarazpenak denbora labur baterako ezgaitu ikatz-kopia bat jaso ondoren</string> <string name="pref_ui_options">Erabiltzaile-interfazearen aukerak</string> - <string name="pref_use_phone_self_picture">Telefonoaren kontaktu argazkia erabili</string> - <string name="pref_use_phone_self_picture_summary">Baliteke elkarrizketa batean zein kontu erabiltzen ari zaren gehiago ez bereiztea</string> <string name="pref_conference_name">Konferentziaren izena</string> <string name="pref_conference_name_summary">Erabili gelaren gaia konferentziak identifikatzeko</string> <string name="pref_advanced_options">Aukera aurreratuak</string> @@ -144,11 +111,8 @@ <string name="pref_never_send_crash_summary">Akats harraskak bidaliz Conversationsen garapenean laguntzen duzu</string> <string name="pref_confirm_messages">Mezuak egiaztatu</string> <string name="pref_confirm_messages_summary">Zure kontaktuak mezu bat noiz jaso eta irakurri duzun jakin dezan baimendu</string> - <string name="pref_show_last_seen">Azkenengoz ikusia erakutsi</string> - <string name="pref_show_last_seen_summary">Kontaktu bat azken aldiz konektatuta ikusi den ordua erakutsi</string> <string name="openpgp_error">OpenKeychainek akats baten berri eman du</string> <string name="error_decrypting_file">Sarrera/Irteera akatsa fitxategia desenkriptatzerakoan</string> - <string name="error_copying_image_file">Huts irudi fitxategia kopiatzerakoan.</string> <string name="accept">Onartu</string> <string name="error">Akats bat gertatu da</string> <string name="pref_grant_presence_updates">Presentzia eguneraketak eman</string> @@ -159,7 +123,6 @@ <string name="send_presence_updates">Presentzia eguneraketak bidali</string> <string name="receive_presence_updates">Presentzia eguneraketak jaso</string> <string name="ask_for_presence_updates">Presentzia eguneraketak eskatu</string> - <string name="asked_for_presence_updates">Presentzia eguneraketak eskatu dira</string> <string name="attach_choose_picture">Argazkia aukeratu</string> <string name="attach_take_picture">Argazkia egin</string> <string name="preemptively_grant">Prebentiboki harpidetza eskaera eman</string> @@ -168,7 +131,6 @@ <string name="error_file_not_found">Fitxategia ez da aurkitu</string> <string name="error_io_exception">Sarrera/Irteera akats orokorra. Agian biltegian lekurik gabe gelditu zara?</string> <string name="error_security_exception_during_image_copy">Irudi hau aukeratzeko erabili duzun aplikazioak ez digu fitxategia irakurtzeko baimen nahikorik eman.\n\n<small>Beste fitxategi kudeatzaile bat erabili ezazu irudia aukeratzeko</small></string> - <string name="account_status">Egoera:</string> <string name="account_status_unknown">Ezezaguna</string> <string name="account_status_disabled">Aldi baterako ezgaituta</string> <string name="account_status_online">Konektatuta</string> @@ -177,7 +139,6 @@ <string name="account_status_unauthorized">Ez baimenduta</string> <string name="account_status_not_found">Zerbitzaria ez da aurkitu</string> <string name="account_status_no_internet">Konektagarritasunik ez</string> - <string name="account_status_requires_tls">Zerbitzariak TLS behar du</string> <string name="account_status_regis_fail">Erregistroak huts egin du</string> <string name="account_status_regis_conflict">Erabiltzaile izena dagoeneko erabilita</string> <string name="account_status_regis_success">Erregistroa burutu da</string> @@ -193,9 +154,7 @@ <string name="mgmt_account_enable">Kontua gaitu</string> <string name="mgmt_account_are_you_sure">Ziur al zaude?</string> <string name="mgmt_account_delete_confirm_text">Zure kontua ezabatzen baduzu zure elkarrizketa historia guztia galduko da</string> - <string name="mgmt_account_account_offline">Kontua lineaz kanpo dago</string> <string name="attach_record_voice">Ahotsa grabatu</string> - <string name="account_settings">Kontuaren ezarpenak</string> <string name="account_settings_jabber_id">Jabber IDa</string> <string name="account_settings_password">Pasahitza</string> <string name="account_settings_example_jabber_id">erabiltzailea@adibidea.com</string> @@ -213,18 +172,13 @@ <string name="contact_status_do_not_disturb">ez gogaitu</string> <string name="contact_status_offline">lineaz kanpo</string> <string name="muc_details_conference">Konferentzia</string> - <string name="muc_details_conference_subject">Konferentziaren gaia</string> - <string name="muc_details_your_nickname">Zure ezizena</string> <string name="muc_details_other_members">Beste kideak</string> - <string name="subscription_not_updated_offline">Kontua lineaz kanpo. Ezin izan da harpidetza eguneratu</string> <string name="share_with_active_conversations">Elkarrizketa aktiboak</string> <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string> <string name="server_info_stream_management">XEP-0198: Stream Management</string> <string name="server_info_pep">XEP-0163: PEP (Profileko argazkiak)</string> <string name="server_info_available">eskuragarri</string> <string name="server_info_unavailable">ez eskuragarri</string> - <string name="hours">ordu</string> - <string name="mins">minutu</string> <string name="missing_public_keys">Gako publikoen iragarpenak faltan</string> <string name="last_seen_now">azkenengoz ikusia orain</string> <string name="last_seen_mins">azkenengoz ikusia %d minutu lehenago</string> @@ -236,11 +190,8 @@ <string name="last_seen_day">azkenengoz ikusia egun 1 lehenago</string> <string name="install_openkeychain">Mezu enkriptatua. Mesedez instalatu OpenKeychain desenkriptatzeko.</string> <string name="unknown_otr_fingerprint">OTR hatz-marka ezezaguna</string> - <string name="edit_conference_details">Ukitu konferentziaren xehetasunak editatzeko</string> <string name="openpgp_messages_found">OpenPGPz enkriptatutako mezuak aurkitu dira</string> - <string name="openpgp_click_to_decrypt">Sakatu hemen pasahitza sartu eta mezuak desenkriptatzeko</string> <string name="reception_failed">Jasotzeak huts egin du</string> - <string name="no_muc_server_found">Ez da aurkitu konferentzia zerbitzari egokirik</string> <string name="your_fingerprint">Zure hatz-marka</string> <string name="otr_fingerprint">OTR hatz-marka</string> <string name="verify">Egiaztatu</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 56008182..3f5f66b5 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Paramètres</string> <string name="action_add">Nouvelle conversation</string> <string name="action_accounts">Gérer les comptes</string> - <string name="action_refresh">Rafraichir la liste de contacts</string> <string name="action_end_conversation">Terminer cette conversation</string> <string name="action_contact_details">Détails du contact</string> <string name="action_muc_details">Détails de la conférence</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">Modifier le nom</string> <string name="action_add_phone_book">Ajouter aux contacts</string> <string name="action_delete_contact">Retirer des contacts</string> - <string name="title_activity_contacts">Contacts</string> <string name="title_activity_manage_accounts">Gestion des comptes</string> <string name="title_activity_settings">Paramètres</string> <string name="title_activity_conference_details">Détails de la conférence</string> @@ -28,45 +26,26 @@ <string name="minutes_ago">Il y a %d minutes</string> <string name="unread_conversations">Conversations non lues</string> <string name="sending">envoi…</string> - <string name="announce_pgp">Renouveler les annonces PGP</string> <string name="encrypted_message">Déchiffrement du message. Patientez…</string> - <string name="conference_details">Détails de la conférence</string> <string name="nick_in_use">Cet identifiant est déjà utilisé.</string> <string name="admin">Administrateur</string> <string name="owner">Propriétaire</string> <string name="moderator">Modérateur</string> <string name="participant">Participant</string> <string name="visitor">Visiteur</string> - <string name="enter_new_name">Entrer un nouveau nom:</string> <string name="remove_contact_text">Voulez-vous supprimer %s de votre liste? Les conversations associées à ce compte ne seront pas supprimées.</string> <string name="remove_bookmark_text">Voulez-vous retirer %s des favoris? La conversation associée avec ce favoris ne sera pas supprimé.</string> - <string name="untrusted_cert_hint">Le serveur %s utilise un certificat non certifié et peut-être auto-signé.</string> - <string name="account_info">Informations du serveur</string> <string name="register_account">Créer un nouveau compte sur le serveur</string> <string name="share_with">Partager avec</string> - <string name="ask_again"><u>Appuyez pour demander à nouveau.</u></string> - <string name="show_otr_key">Empreinte OTR</string> - <string name="no_otr_fingerprint">Empreinte OTR non générée. Essayez de démarrer une conversation sécurisée.</string> <string name="start_conversation">Démarrer une conversation</string> <string name="invite_contact">Inviter des contacts</string> <string name="contacts">Contacts</string> - <string name="search_jabber_id">Rechercher un identifiant</string> - <string name="choose_account">Choix du compte</string> - <string name="multi_user_conference">Conférence Multi Utilisateurs</string> - <string name="trying_join_conference">Voulez-vous rejoindre une conférence?</string> <string name="cancel">Annuler</string> <string name="add">Ajouter</string> <string name="edit">Modifier</string> <string name="delete">Supprimer</string> <string name="save">Enregistrer</string> - <string name="yes">Oui</string> - <string name="no">Non</string> <string name="ok">OK</string> - <string name="done">Terminé</string> - <string name="hide">Cacher</string> - <string name="invitation_sent">Invitation envoyée</string> - <string name="account_offline">Compte hors-ligne</string> - <string name="cant_invite_while_offline">Vous devez être en ligne pour inviter des participants à une conférence.</string> <string name="crash_report_title">Conversations s\'est arreté</string> <string name="crash_report_message">En envoyant des logs vous aidez au développement de Conversations.\n\n<b>Attention:</b> Votre compte XMPP sera utilisé pour envoyer les logs aux développeurs.</string> <string name="send_now">Envoyer</string> @@ -92,14 +71,7 @@ <string name="send_pgp_message">Envoyer un message sécurisé par OpenPGP</string> <string name="your_nick_has_been_changed">Votre identifiant a été changé</string> <string name="download_image">Télécharger l\'image</string> - <string name="error_loading_image">Impossible de télécharger l\'image (Fichier non trouvé)</string> <string name="image_offered_for_download"><i>Image proposée au téléchargement.</i></string> - <string name="not_connected">Non connecté</string> - <string name="otr_messages">Messages chiffrés par OTR</string> - <string name="manage_account">Gérer les comptes</string> - <string name="contact_offline">Votre correspondant est hors-ligne.</string> - <string name="contact_offline_otr">Envoyer un message chiffré via OTR à un correspondant hors-ligne n\'est malheureusement pas possible.\nVoulez-vous envoyer ce message sans chiffrement?</string> - <string name="contact_offline_file">Envoyer un fichier à un correspondant hors-ligne n\'est malheureusement pas possible.</string> <string name="send_unencrypted">Envoyer en clair</string> <string name="decryption_failed">Echec du déchiffrement. Merci de vérifier la clef privée utilisée.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -115,9 +87,6 @@ <string name="encrypted_message_received"><i>Message chiffré reçu. Appuyez pour le déchiffrer.</i></string> <string name="encrypted_image_received"><i>Image chiffrée reçue. Appuyez pour la déchiffrer.</i></string> <string name="image_file"><i>Image reçue. Appuyez pour visualiser.</i></string> - <string name="otr_file_transfer">Chiffrement OTR non disponible</string> - <string name="otr_file_transfer_msg">Malheureusement le chiffrement OTR n\'est pas disponible pour le transfert de fichiers. Vous pouvez utiliser OpenPGP ou envoyer vos fichiers non chiffrés.</string> - <string name="use_pgp_encryption">Utiliser le chiffrement OpenPGP</string> <string name="pref_xmpp_resource">Ressource XMPP</string> <string name="pref_xmpp_resource_summary">Nom permettant d\'identifier ce client XMPP</string> <string name="pref_accept_files">Accepter les fichiers</string> @@ -134,8 +103,6 @@ <string name="pref_notification_grace_period">Période sans notification</string> <string name="pref_notification_grace_period_summary">Désactiver momentanément les notifications après l\'arrivée d\'une copie carbone.</string> <string name="pref_ui_options">Options d\'affichage</string> - <string name="pref_use_phone_self_picture">Utiliser les images des contacts</string> - <string name="pref_use_phone_self_picture_summary">Vous pourriez ne plus être capable de distinguer quel compte vous utilisez dans une conversation.</string> <string name="pref_conference_name">Nom de la conférence</string> <string name="pref_conference_name_summary">Identifier la conférence par son sujet</string> <string name="pref_advanced_options">Options avancées</string> @@ -143,11 +110,8 @@ <string name="pref_never_send_crash_summary">En envoyant des logs vous aidez au développement de Conversations.</string> <string name="pref_confirm_messages">Confirmation de lecture</string> <string name="pref_confirm_messages_summary">Informer l\'expéditeur d\'un message de sa bonne réception.</string> - <string name="pref_show_last_seen">Afficher l\'historique de connexion</string> - <string name="pref_show_last_seen_summary">Indiquer quand un contact s\'est connecté pour la dernière fois.</string> <string name="openpgp_error">Une erreur s\'est produite via OpenKeychain</string> <string name="error_decrypting_file">Erreur d\'E/S lors du déchiffrement du fichier</string> - <string name="error_copying_image_file">Erreur lors de la copie du fichier</string> <string name="accept">Accepter</string> <string name="error">Une erreur s\'est produite</string> <string name="pref_grant_presence_updates">Accepter les mises à jour de présence</string> @@ -158,7 +122,6 @@ <string name="send_presence_updates">Envoyer les mises à jour de présence</string> <string name="receive_presence_updates">Recevoir les mises à jour de présence</string> <string name="ask_for_presence_updates">Demander les mises à jour de présence</string> - <string name="asked_for_presence_updates">Mises à jour de présence demandées</string> <string name="attach_choose_picture">Choisir une image</string> <string name="attach_take_picture">Prendre une photo</string> <string name="preemptively_grant">Accepter par avance les demandes de publication.</string> @@ -167,7 +130,6 @@ <string name="error_file_not_found">Fichier non trouvé</string> <string name="error_io_exception">Erreur générale d\'E/S. Avez-vous encore de l\'espace libre?</string> <string name="error_security_exception_during_image_copy">L\'application utilisée empêche la lecture de l\'image.\n\n<small>Choisissez l\'image depuis une autre application.</small></string> - <string name="account_status">Statut :</string> <string name="account_status_unknown">Inconnu</string> <string name="account_status_disabled">Désactivé temporairement</string> <string name="account_status_online">En ligne</string> @@ -176,7 +138,6 @@ <string name="account_status_unauthorized">Non autorisé</string> <string name="account_status_not_found">Serveur non trouvé</string> <string name="account_status_no_internet">Aucune connectivité</string> - <string name="account_status_requires_tls">Le serveur requiert TLS</string> <string name="account_status_regis_fail">Enregistrement échoué</string> <string name="account_status_regis_conflict">Identifiant déjà utilisé</string> <string name="account_status_regis_success">Enregistrement réussi</string> @@ -190,9 +151,7 @@ <string name="mgmt_account_enable">Activer</string> <string name="mgmt_account_are_you_sure">Êtes-vous sûr?</string> <string name="mgmt_account_delete_confirm_text">En supprimant votre compte, votre historique de conversations sera perdu!</string> - <string name="mgmt_account_account_offline">Le compte est hors-ligne</string> <string name="attach_record_voice">Enregistrer un son</string> - <string name="account_settings">Paramètres du compte</string> <string name="account_settings_jabber_id">Identifiant</string> <string name="account_settings_password">Mot de passe</string> <string name="account_settings_example_jabber_id">utilisateur@exemple.com</string> @@ -210,15 +169,10 @@ <string name="contact_status_do_not_disturb">Ne pas déranger</string> <string name="contact_status_offline">Hors-ligne</string> <string name="muc_details_conference">Conférence</string> - <string name="muc_details_conference_subject">Sujet de la conférence</string> - <string name="muc_details_your_nickname">Votre pseudo</string> <string name="muc_details_other_members">Autres membres</string> - <string name="subscription_not_updated_offline">Vous ne pouvez pas mettre à jour de publication en étant hors-ligne.</string> <string name="share_with_active_conversations">Conversations actives</string> <string name="server_info_carbon_messages">Copies carbone</string> <string name="server_info_stream_management">Gestion des flux</string> - <string name="hours">heures</string> - <string name="mins">minutes</string> <string name="missing_public_keys">Aucune annonce de clef publique</string> <string name="last_seen_now">en ligne à l\'instant</string> <string name="last_seen_min">en ligne il y a 1 minute</string> @@ -230,11 +184,8 @@ <string name="never_seen">jamais vu en ligne</string> <string name="install_openkeychain">Message chiffré. Merci d\'installer OpenKeychain pour lire le contenu du message.</string> <string name="unknown_otr_fingerprint">Empreinte OTR inconnue.</string> - <string name="edit_conference_details">Tapotez pour modifier les détails de la conférence</string> <string name="openpgp_messages_found">Messages chiffrés par OpenPGP détectés.</string> - <string name="openpgp_click_to_decrypt">Tapotez pour entrer la phrase secrète afin de déchiffrer le message.</string> <string name="reception_failed">Echec lors de la réception</string> - <string name="no_muc_server_found">Aucun serveur de conférences n\'a été trouvé.</string> <string name="your_fingerprint">Votre empreinte</string> <string name="otr_fingerprint">Empreinte OTR</string> <string name="verify">Vérifier</string> diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index b9bbe741..c15235dd 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Axustes</string> <string name="action_add">Nova conversa</string> <string name="action_accounts">Xestionar contas</string> - <string name="action_refresh">Actualizar lista de contactos</string> <string name="action_end_conversation">Terminar conversa</string> <string name="action_contact_details">Detalles do contacto</string> <string name="action_muc_details">Detalles da conferencia</string> @@ -13,32 +12,20 @@ <string name="action_add_account">Engadir conta</string> <string name="action_edit_contact">Editar contacto</string> <string name="action_delete_contact">Eliminar contacto da lista</string> - <string name="title_activity_contacts">Contactos</string> <string name="just_now">agora</string> <string name="minutes_ago">min</string> <string name="unread_conversations">conversas sen ler</string> <string name="sending">enviando…</string> - <string name="announce_pgp">Renovar anuncio PGP</string> <string name="encrypted_message">Descifrando mensaxe. Agarda uns intres…</string> - <string name="conference_details">Detalles da conferencia</string> <string name="nick_in_use">O apodo xa está en uso</string> <string name="moderator">Moderador</string> <string name="participant">Participante</string> <string name="visitor">Visitante</string> - <string name="enter_new_name">Introduce un novo nome:</string> <string name="remove_contact_text">¿Queres eliminar a %s da túa lista?. A conversa asociada a esta conta non se eliminará.</string> - <string name="untrusted_cert_hint">O servidor %s presenta un certificado non confiable, posiblemente auto firmado.</string> - <string name="account_info">Información do servidor</string> <string name="register_account">Rexistrar nova conta no servidor</string> <string name="share_with">Compartir con</string> - <string name="ask_again"><u>Pulsa para preguntar outra vez</u></string> - <string name="show_otr_key">Pegada dactilar OTR</string> - <string name="no_otr_fingerprint">Non hai pegadas dactilares OTR. Continúa e comeza unha conversación cifrada</string> <string name="start_conversation">Comeza conversa</string> <string name="cancel">Cancelar</string> - <string name="invitation_sent">Invitación enviada</string> - <string name="account_offline">Conta desconectada</string> - <string name="cant_invite_while_offline">Debes estar conectado para invitar contactos á conferencia</string> <string name="crash_report_title">Conversations deteuse.</string> <string name="crash_report_message">Enviando volcados de pilas axudas ao desenrolo de Conversations\n<b>Aviso:</b> Isto empregará a túa conta XMPP para enviar o volcado de pila ao desenrolador.</string> <string name="send_now">Enviar agora</string> @@ -64,14 +51,7 @@ <string name="send_pgp_message">Enviar mensaxe cifrado con OpenPGP</string> <string name="your_nick_has_been_changed">Modificouse o teu apodo</string> <string name="download_image">Descargar imaxe</string> - <string name="error_loading_image">Erro na carga da imaxen (Arquivo non atopado)</string> <string name="image_offered_for_download"><i>Arquivo de imaxe ofrecido para descarga</i></string> - <string name="not_connected">Non conectado</string> - <string name="otr_messages">Mensaxes cifrados con OTR</string> - <string name="manage_account">Xestionar conta</string> - <string name="contact_offline">O teu contacto está desconectado</string> - <string name="contact_offline_otr">É unha pena, pero non é posible enviar mensaxes encriptados con OTR a un contacto desconectado.\n¿Queres enviar a mensaxe sen cifrar?</string> - <string name="contact_offline_file">É unha pena, pero non se pode enviar arquivos a un contacto desconectado.</string> <string name="send_unencrypted">Enviar sen cifrar</string> <string name="decryption_failed">Fallou o descifrado. Quizábeis non teñas a clave privada apropiada.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -84,9 +64,6 @@ <string name="encrypted_message_received"><i>Mensaxe cifrado recibido. Pulsa para ver.</i></string> <string name="encrypted_image_received"><i>Imaxe cifrada recibida. Pulsa para ver.</i></string> <string name="image_file"><i>Imaxe recibida. Pulsa para ver</i></string> - <string name="otr_file_transfer">Cifrado con OTR non disponible</string> - <string name="otr_file_transfer_msg">É unha pena, pero o cifrado con OTR non está disponible para transferencia de arquivos. Podes selecionar cifrado con OpenPGP ou enviar os datos sen cifrar.</string> - <string name="use_pgp_encryption">Usa cifrado con OpenPGP</string> <string name="pref_xmpp_resource">Recurso</string> <string name="pref_xmpp_resource_summary">O nome que identifica o cliente que estás a empregar</string> <string name="pref_accept_files">Aceptar arquivos</string> @@ -103,8 +80,6 @@ <string name="pref_notification_grace_period">Notificacións Carbons</string> <string name="pref_notification_grace_period_summary">Deshabilita as notificacións durante un corto periodo de tiempo despois de recibir a copia da mensaxe carbón</string> <string name="pref_ui_options">Opcións de interfaz</string> - <string name="pref_use_phone_self_picture">Usar a foto do teléfono</string> - <string name="pref_use_phone_self_picture_summary">Poderías non ser capaz de distinguir que conta estase a utlizar nunha conversa</string> <string name="pref_conference_name">Nome dea conferencia</string> <string name="pref_conference_name_summary">Usa o nome da sala para identificar Conferencias</string> <string name="pref_advanced_options">Opcións avanzadas</string> @@ -112,7 +87,6 @@ <string name="pref_never_send_crash_summary">Enviando volcados de pilas axudas al desenrolo de Conversations</string> <string name="openpgp_error">OpenKeychain reportou un erro</string> <string name="error_decrypting_file">I/O Erro descifrando arquivo</string> - <string name="error_copying_image_file">Erro copiando arquivo de imaxe.</string> <string name="accept">Aceptar</string> <string name="error">Produciuse un erro</string> <string name="pref_grant_presence_updates">Suscripción de presencia</string> @@ -131,7 +105,6 @@ <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 aplicación que usas para seleccionar imaxes non proporciona suficientes permisos para leer o arquivo.\n\n<small>Utiliza un explorador de arquivos diferente para seleccionar a imaxe</small></string> - <string name="account_status">Estado:</string> <string name="account_status_unknown">Descoñecido</string> <string name="account_status_disabled">Deshabilitado temporalmente</string> <string name="account_status_online">Conectado</string> @@ -140,7 +113,6 @@ <string name="account_status_unauthorized">Non autorizado</string> <string name="account_status_not_found">Servidor non atopado</string> <string name="account_status_no_internet">Sen conectividade</string> - <string name="account_status_requires_tls">O servidor require TLS</string> <string name="account_status_regis_fail">Erro no rexistro</string> <string name="account_status_regis_conflict">O identificador xa está en uso</string> <string name="account_status_regis_success">Rexistro completado</string> @@ -153,7 +125,6 @@ <string name="mgmt_account_disable">Deshabilitar temporalmente</string> <string name="mgmt_account_enable">Habilitar</string> <string name="attach_record_voice">Grabar audio</string> - <string name="account_settings">Configuración de conta</string> <string name="save">Gardar</string> <string name="passwords_do_not_match">As contrasinais non coinciden</string> <string name="invalid_jid">O identificador non é un identificador de Jabber válido</string> diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml index 2f2e497a..071150b8 100644 --- a/res/values-he/strings.xml +++ b/res/values-he/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">הגדרות</string> <string name="action_add">דיון חדש</string> <string name="action_accounts">נהל חשבונות</string> - <string name="action_refresh">רענן רשימת קשר</string> <string name="action_end_conversation">סיים את דיון זה</string> <string name="action_contact_details">פרטי איש קשר</string> <string name="action_muc_details">פרטי ועידה</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">ערוך שם</string> <string name="action_add_phone_book">הוסף אל פנקס טלפונים</string> <string name="action_delete_contact">מחק מתוך רשימה</string> - <string name="title_activity_contacts">אנשי קשר</string> <string name="title_activity_manage_accounts">נהל חשבונות</string> <string name="title_activity_settings">הגדרות</string> <string name="title_activity_conference_details">פרטי ועידה</string> @@ -28,45 +26,26 @@ <string name="minutes_ago">לפני %d דקות</string> <string name="unread_conversations">דיונים שלא נקראו</string> <string name="sending">כעת שולח…</string> - <string name="announce_pgp">חדש הכרזת PGP</string> <string name="encrypted_message">כעת מפענח הודעה. אנא המתן…</string> - <string name="conference_details">פרטי ועידה</string> <string name="nick_in_use">שם כינוי כבר מצוי בשימוש</string> <string name="admin">מנהל</string> <string name="owner">בעלים</string> <string name="moderator">אחראי</string> <string name="participant">משתתף</string> <string name="visitor">מבקר</string> - <string name="enter_new_name">הזן שם חדש:</string> <string name="remove_contact_text">האם ברצונך להסיר את %s מתןך הרשימה שלך? הדיונים אשר משוייכים עם חשבון זה לא יוסרו.</string> <string name="remove_bookmark_text">האם ברצונך להסיר את %s בתוור סימנייה? הדיונים אשר משוייכים עם סימנייה זו לא יוסרו.</string> - <string name="untrusted_cert_hint">השרת %s הגיש לך תעודה לא מהימנה, אפשרי כי זו חתומה באופן עצמי.</string> - <string name="account_info">מידע שרת</string> <string name="register_account">רשום חשבון חדש על שרת</string> <string name="share_with">שתף בעזרת</string> - <string name="ask_again"><u>לחץ כדי לשאול שוב</u></string> - <string name="show_otr_key">טביעת אצבע OTR</string> - <string name="no_otr_fingerprint">לא הופקה טביעת אצבע OTR. פשוט המשך והתחל דיון מוצפן</string> <string name="start_conversation">התחל דיון</string> <string name="invite_contact">הזמן איש קשר</string> <string name="contacts">אנשי קשר</string> - <string name="search_jabber_id">חפש או הזן מזהה Jabber</string> - <string name="choose_account">בחר חשבון</string> - <string name="multi_user_conference">ועידה מרובת משתתפים</string> - <string name="trying_join_conference">האם הינך מנסה להצטרף אל ועידה?</string> <string name="cancel">ביטול</string> <string name="add">הוסף</string> <string name="edit">ערוך</string> <string name="delete">מחק</string> <string name="save">שמור</string> - <string name="yes">כן</string> - <string name="no">לא</string> <string name="ok">אישור</string> - <string name="done">סיים</string> - <string name="hide">הסתר</string> - <string name="invitation_sent">הזמנה נשלחה</string> - <string name="account_offline">חשבון לא מקוון</string> - <string name="cant_invite_while_offline">עליך להיות מקוון כדי להזמין אנשים אל ועידות</string> <string name="crash_report_title">Conversations קרסה</string> <string name="crash_report_message">על ידי שליחת עקבות מחסנית אתה עוזר להתקדמות הפיתוח של Conversations\n<b>אזהרה:</b> זו תעשה שימוש בחשבון XMPP שלך כדי לשלוח עקבות מחסנית אל המפתח.</string> <string name="send_now">שלח עכשיו</string> @@ -92,14 +71,7 @@ <string name="send_pgp_message">שלח הודעה מוצפנת OpenPGP</string> <string name="your_nick_has_been_changed">שם כינוי שלך השתנה</string> <string name="download_image">הורד תצלום</string> - <string name="error_loading_image">שגיאה בטעינת תצלום (קובץ לא נמצא)</string> <string name="image_offered_for_download"><i>קובץ תצלום מוצע להורדה</i></string> - <string name="not_connected">לא מחובר</string> - <string name="otr_messages">הודעות מוצפנות OTR</string> - <string name="manage_account">נהל חשבון</string> - <string name="contact_offline">איש הקשר שלך אינו מקוון</string> - <string name="contact_offline_otr">שליחת הודעות מוצפנות OTR אל איש קשר לא מקוון אינה נתמכת למרבה הצער.\nהאם ברצונך לשלוח את ההודעה בטקסט גלוי?</string> - <string name="contact_offline_file">שליחת קבצים אל איש קשר לא מקוון אינה נתמכת למרבה הצער.</string> <string name="send_unencrypted">שלח לא מוצפנת</string> <string name="decryption_failed">פענוח נכשל. אולי אין לך את המפתח הפרטי המתאים.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -115,9 +87,6 @@ <string name="encrypted_message_received"><i>הודעה מוצפנת התקבלה. לחץ כדי לצפות ולפענח.</i></string> <string name="encrypted_image_received"><i>תצלום מוצפן התקבל. לחץ כדי לצפות ולפענח.</i></string> <string name="image_file"><i>תצלום התקבל. לחץ כדי לצפות</i></string> - <string name="otr_file_transfer">הצפנת OTR אינה זמינה</string> - <string name="otr_file_transfer_msg">למרבה הצער הצפנת OTR אינה זמינה עבור העברת קובץ. באפשרותך לבחור OpenPGP או שום הצפנה.</string> - <string name="use_pgp_encryption">השתמש בהצפנת OpenPGP</string> <string name="pref_xmpp_resource">משאב XMPP</string> <string name="pref_xmpp_resource_summary">השם שלקוח זה מזהה את עצמו עם</string> <string name="pref_accept_files">קבל קבצים</string> @@ -134,8 +103,6 @@ <string name="pref_notification_grace_period">משך ארכת התראה</string> <string name="pref_notification_grace_period_summary">נטרל התראות לזמן קצר לאחר שהודעת פחם התקבלה</string> <string name="pref_ui_options">אפשרויות ממשק משתמש</string> - <string name="pref_use_phone_self_picture">השתמש בתמונת איש קשר עצמית של טלפון</string> - <string name="pref_use_phone_self_picture_summary">אתה עשוי שלא להבחין באיזה חשבון אתה משתמש בעת דיון</string> <string name="pref_conference_name">שם ועידה</string> <string name="pref_conference_name_summary">השתמש בנושא חדר כדי לזהות ועידות</string> <string name="pref_advanced_options">אפשרויות מתקדמות</string> @@ -143,11 +110,8 @@ <string name="pref_never_send_crash_summary">על ידי שליחת עקבות מחסנית אתה עוזר להתקדמות הפיתוח של Conversations</string> <string name="pref_confirm_messages">אשר הודעות</string> <string name="pref_confirm_messages_summary">אפשר לאיש קשר שלך לדעת מתי קיבלת וקראת הודעה</string> - <string name="pref_show_last_seen">הצג נראה לאחרונה</string> - <string name="pref_show_last_seen_summary">הצג את הפעם האחרונה בה איש קשר נראה מקוון</string> <string name="openpgp_error">OpenKeychain דיווח שגיאה</string> <string name="error_decrypting_file">שגיאת I/O פענוח קובץ</string> - <string name="error_copying_image_file">שגיאה בהעתקת קובץ תצלום.</string> <string name="accept">קבל</string> <string name="error">אירעה שגיאה</string> <string name="pref_grant_presence_updates">הענק עדכוני נוכחות</string> @@ -158,7 +122,6 @@ <string name="send_presence_updates">שלח עדכוני נוכחות</string> <string name="receive_presence_updates">קבל עדכוני נוכחות</string> <string name="ask_for_presence_updates">בקש עדכוני נוכחות</string> - <string name="asked_for_presence_updates">התבקש לשם עדכוני נוכחות</string> <string name="attach_choose_picture">בחר תמונה</string> <string name="attach_take_picture">קח תמונה</string> <string name="preemptively_grant">הענק בקשת הרשמה מראש</string> @@ -167,7 +130,6 @@ <string name="error_file_not_found">קובץ לא נמצא</string> <string name="error_io_exception">שגיאת I/O כללית. אולי אזל לך נפח אחסון?</string> <string name="error_security_exception_during_image_copy">האפליקציה בה השתמשת כדי לבחור את תצלום זה לא סיפקה לנו מספיק הרשאות כדי לקרוא את הקובץ.\n\n<small>השתמש במנהל קבצים אחר כדי לבחור תצלום</small></string> - <string name="account_status">מצב:</string> <string name="account_status_unknown">לא ידוע</string> <string name="account_status_disabled">מנוטרל זמנית</string> <string name="account_status_online">מקוון</string> @@ -176,7 +138,6 @@ <string name="account_status_unauthorized">לא מורשה</string> <string name="account_status_not_found">שרת לא נמצא</string> <string name="account_status_no_internet">אין חיבוריות</string> - <string name="account_status_requires_tls">שרת מצריך TLS</string> <string name="account_status_regis_fail">הרשמה נכשלה</string> <string name="account_status_regis_conflict">שם משתמש כבר מצוי בשימוש</string> <string name="account_status_regis_success">הרשמה הושלמה</string> @@ -191,9 +152,7 @@ <string name="mgmt_account_enable">אפשר</string> <string name="mgmt_account_are_you_sure">האם אתה בטוח?</string> <string name="mgmt_account_delete_confirm_text">אם אתה מוחק את חשבונך כל היסטוריית הדיון שלך תאבד</string> - <string name="mgmt_account_account_offline">חשבון אינו מקוון</string> <string name="attach_record_voice">הקלט קול</string> - <string name="account_settings">הגדרות חשבון</string> <string name="account_settings_jabber_id">מזהה Jabber</string> <string name="account_settings_password">סיסמה</string> <string name="account_settings_example_jabber_id">username@example.com</string> @@ -211,15 +170,10 @@ <string name="contact_status_do_not_disturb">אל תפריעו</string> <string name="contact_status_offline">לא מקוון</string> <string name="muc_details_conference">ועידה</string> - <string name="muc_details_conference_subject">נושא ועידה</string> - <string name="muc_details_your_nickname">שם כינוי שלך</string> <string name="muc_details_other_members">חברים אחרים</string> - <string name="subscription_not_updated_offline">חשבון לא מקוון. לא היה מסוגל לעדכן הרשמה</string> <string name="share_with_active_conversations">דיונים פעילים</string> <string name="server_info_carbon_messages">הודעות פחם</string> <string name="server_info_stream_management">ניהול זרם</string> - <string name="hours">שעות</string> - <string name="mins">דקות</string> <string name="missing_public_keys">הכרזות מפתח פומבי חסרות</string> <string name="last_seen_now">נראה לאחרונה ממש עכשיו</string> <string name="last_seen_min">נראה לאחרונה לפני דקה 1</string> @@ -231,11 +185,8 @@ <string name="never_seen">לא נראה מעולם</string> <string name="install_openkeychain">הודעה מוצפנת. אנא התקן OpenKeychain כדי לפענח.</string> <string name="unknown_otr_fingerprint">טביעת אצבע OTR לא מוכרת</string> - <string name="edit_conference_details">לחץ כדי לערוך פרטי ועידה</string> <string name="openpgp_messages_found">הודעות מוצפנות OpenPGP נמצאו</string> - <string name="openpgp_click_to_decrypt">לחץ כאן כדי להקליד מימרת סיסמה ולהצפין הודעות</string> <string name="reception_failed">קבלה נכשלה</string> - <string name="no_muc_server_found">לא נמצא שרת ועידה הולם</string> <string name="your_fingerprint">טביעת אצבע שלך</string> <string name="otr_fingerprint">טביעת אצבע OTR</string> <string name="verify">אמת</string> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 9295c888..465b6d59 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Instellingen</string> <string name="action_add">Nieuwe conversatie</string> <string name="action_accounts">Beheer account</string> - <string name="action_refresh">Ververs contactenlijst</string> <string name="action_end_conversation">Beëindig conversatie</string> <string name="action_contact_details">Contact details</string> <string name="action_muc_details">Gesprek details</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">Verander naam</string> <string name="action_add_phone_book">Voeg aan telefoonboek toe</string> <string name="action_delete_contact">Verwijder uit lijst</string> - <string name="title_activity_contacts">Contacten</string> <string name="title_activity_manage_accounts">Beheer Accounts</string> <string name="title_activity_settings">Instellingen</string> <string name="title_activity_conference_details">Groepsconversatie Details</string> @@ -26,43 +24,24 @@ <string name="minutes_ago">%d min geleden</string> <string name="unread_conversations">ongelezen Conversaties</string> <string name="sending">versturen…</string> - <string name="announce_pgp">Vernieuw PGP aankondiging</string> <string name="encrypted_message">Bericht aan het ontsleutelen. Een moment geduld a.u.b.…</string> - <string name="conference_details">Groepsgesprek Details</string> <string name="nick_in_use">Naam is al in gebruik</string> <string name="admin">Beheerder</string> <string name="owner">Eigenaar</string> <string name="moderator">Moderator</string> <string name="participant">Deelnemer</string> <string name="visitor">Bezoeker</string> - <string name="enter_new_name">Voer een nieuwe naam in:</string> <string name="remove_contact_text">Wilt u %s uit uw lijst verwijderen? De conversatie met deze account zal niet worden verwijderd.</string> - <string name="untrusted_cert_hint">De server %s gebruikte een onvertrouwd, mogelijk zelfgetekend, certificaat.</string> - <string name="account_info">Server Informatie</string> <string name="register_account">Registreer nieuwe account op server</string> <string name="share_with">Deel met</string> - <string name="ask_again"><u>Klik om opnieuw te vragen</u></string> - <string name="show_otr_key">OTR vingerafdruk</string> - <string name="no_otr_fingerprint">Geen OTR vingerafdruk gegenereerd. Start simpelweg een versleutelde conversatie</string> <string name="start_conversation">Start Conversatie</string> <string name="contacts">Contacten</string> - <string name="search_jabber_id">Zoek of voer Jabber ID in</string> - <string name="choose_account">Kies account</string> - <string name="multi_user_conference">Groepsconversatie met meerdere gebruikers</string> - <string name="trying_join_conference">Probeert U aan een groepsconversatie deel te nemen?</string> <string name="cancel">Annuleer</string> <string name="add">Voeg toe</string> <string name="edit">Bewerk</string> <string name="delete">Verwijder</string> <string name="save">Sla op</string> - <string name="yes">Ja</string> - <string name="no">Nee</string> <string name="ok">OK</string> - <string name="done">Klaar</string> - <string name="hide">Verberg</string> - <string name="invitation_sent">Uitnodiging verstuurd</string> - <string name="account_offline">Account niet verbonden</string> - <string name="cant_invite_while_offline">U moet online zijn om mensen uit te nodigen tot een groepsconversatie</string> <string name="crash_report_title">Conversaties is gecrashed</string> <string name="crash_report_message">Door het versturen van crash rapportages helpt u mee met de ontwikkeling van Conversaties.\n<b>Waarschuwing:</b> Deze app zal uw XMPP account gebruiken om de crash rapportages te versturen naar de ontwikkelaars.</string> <string name="send_now">Nu versturen</string> @@ -88,14 +67,7 @@ <string name="send_pgp_message">Verstuur OpenPGP versleuteld bericht</string> <string name="your_nick_has_been_changed">Uw naam is veranderd</string> <string name="download_image">Download Afbeelding</string> - <string name="error_loading_image">Fout tijdens laden van afbeelding (Bestand niet gevonden)</string> <string name="image_offered_for_download"><i>Afbeelding aangeboden voor downloaden</i></string> - <string name="not_connected">Niet Verbonden</string> - <string name="otr_messages">OTR versleutelde berichten</string> - <string name="manage_account">Beheer account</string> - <string name="contact_offline">Uw Contact is Offline</string> - <string name="contact_offline_otr">Het versturen van OTR versleutelde berichten aan offline contacten wordt helaas niet ondersteund.\nWilt u het bericht onversleuteld versturen?</string> - <string name="contact_offline_file">Het versturen van breichten aan offline contacten wordt helaas niet ondersteund.</string> <string name="send_unencrypted">Verstuur onversleuteld</string> <string name="decryption_failed">Ontsleutelen mislukt. Misschien hebt U niet de juiste private sleutel.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -111,9 +83,6 @@ <string name="encrypted_message_received"><i>Versleuteld bericht ontvangen. Raak aan om te bekijken en te ontsleutelen.</i></string> <string name="encrypted_image_received"><i>Versleutelde afbeelding ontvangen. Raak aan om te bekijken en te ontsleutelen.</i></string> <string name="image_file"><i>Afbeelding ontvangen. Raak aan om te bekijken.</i></string> - <string name="otr_file_transfer">OTR versleuteling niet beschikbaar.</string> - <string name="otr_file_transfer_msg">Helaas is OTR versleuteling niet beschikbaar voor bestandsoverdracht. Kies OpenPGP versleuteling of geen versleuteling.</string> - <string name="use_pgp_encryption">Gebruik OpenPGP versleuteling</string> <string name="pref_xmpp_resource">XMPP resource</string> <string name="pref_xmpp_resource_summary">De naam waarmee deze client zich identificeert</string> <string name="pref_accept_files">Accepteer bestanden</string> @@ -130,8 +99,6 @@ <string name="pref_notification_grace_period">Notificatie uitstel periode</string> <string name="pref_notification_grace_period_summary">Zet notificaties voor korte tijd uit als er een carbon copy wordt ontvangen</string> <string name="pref_ui_options">UI Opties</string> - <string name="pref_use_phone_self_picture">Gebruik eigen afbeelding van telefoon</string> - <string name="pref_use_phone_self_picture_summary">Het is mogelijk niet meer duidelijk welke account U gebruikt in conversaties</string> <string name="pref_conference_name">Groepsconversatie naam</string> <string name="pref_conference_name_summary">Gebruik onderwerp van kamer om groepsconversaties te identificeren</string> <string name="pref_advanced_options">Geadvanceerde Opties</string> @@ -139,11 +106,8 @@ <string name="pref_never_send_crash_summary">Door crash rapportages te versturen helpt U mee aan de ontwikkeling van Conversaties</string> <string name="pref_confirm_messages">Bevestig Berichten</string> <string name="pref_confirm_messages_summary">Laat uw contacten weten waneer U berichten hebt ontvangen en gelezen</string> - <string name="pref_show_last_seen">Toon voor het laatst gezien</string> - <string name="pref_show_last_seen_summary">Laat de tijd zien dat uw contact voor het laatst online gezien is</string> <string name="openpgp_error">OpenKeychain rapporteerde een fout</string> <string name="error_decrypting_file">I/O Fout tijdens ontsleutelen bestand</string> - <string name="error_copying_image_file">Fout tijdens kopiëren van afbeelding.</string> <string name="accept">Accepteer</string> <string name="error">Er is een fout opgetreden</string> <string name="pref_grant_presence_updates">Verleen toestemming voor aanwezigheid updates</string> @@ -154,7 +118,6 @@ <string name="send_presence_updates">Verstuur aanwezigheid updates</string> <string name="receive_presence_updates">Ontvang aanwezigheid updates</string> <string name="ask_for_presence_updates">Vraag naar aanwezigheid updates</string> - <string name="asked_for_presence_updates">Gevraagd om aanwezigheid updates</string> <string name="attach_choose_picture">Kies afbeelding</string> <string name="attach_take_picture">Neem foto</string> <string name="preemptively_grant">Vantevoren toestemming verlenen voor abonneren</string> @@ -163,7 +126,6 @@ <string name="error_file_not_found">Bestand niet gevonden</string> <string name="error_io_exception">Generieke I/O fout. Misschien is er geen opslagruimte meer beschikbaar?</string> <string name="error_security_exception_during_image_copy">De app die U gebruikte om de afbeelding te selecteren heeft niet voldoende toegang geleverd om het bestand te lezen.\n\n<small>Gebruik een andere app om een afbeelding te kiezen</small></string> - <string name="account_status">Status:</string> <string name="account_status_unknown">Onbekend</string> <string name="account_status_disabled">Tijdelijk uitgezet</string> <string name="account_status_online">Online</string> @@ -172,7 +134,6 @@ <string name="account_status_unauthorized">Niet gemachtigd</string> <string name="account_status_not_found">Server niet gevonden</string> <string name="account_status_no_internet">Geen verbinding</string> - <string name="account_status_requires_tls">Server vereist TLS</string> <string name="account_status_regis_fail">Registratie mislukt</string> <string name="account_status_regis_conflict">Gebruikersnaam bezet</string> <string name="account_status_regis_success">Registratie compleet</string> @@ -186,9 +147,7 @@ <string name="mgmt_account_enable">Aanzetten</string> <string name="mgmt_account_are_you_sure">Weet U het zeker?</string> <string name="mgmt_account_delete_confirm_text">Als U uw account verwijderd wordt Uw volledige conversatie geschiedenis gewist</string> - <string name="mgmt_account_account_offline">Account is offline</string> <string name="attach_record_voice">Neem stem op</string> - <string name="account_settings">Account Instellingen</string> <string name="account_settings_jabber_id">Jabber ID:</string> <string name="account_settings_password">Wachtwoord:</string> <string name="account_settings_example_jabber_id">gebruikersnaam@voorbeeld.nl</string> @@ -206,15 +165,10 @@ <string name="contact_status_do_not_disturb">niet storen</string> <string name="contact_status_offline">offline</string> <string name="muc_details_conference">groepsconversatie</string> - <string name="muc_details_conference_subject">Groepsconversatie Onderwerp</string> - <string name="muc_details_your_nickname">Uw naam</string> <string name="muc_details_other_members">Andere Leden</string> - <string name="subscription_not_updated_offline">Account offline. Kon abonnement niet vernieuwen</string> <string name="share_with_active_conversations">Actieve Conversaties</string> <string name="server_info_carbon_messages">Carbon Berichten</string> <string name="server_info_stream_management">Stream Management</string> - <string name="hours">uren</string> - <string name="mins">min</string> <string name="missing_public_keys">Ontbrekende publieke sleutel aankondigingen</string> <string name="last_seen_now">zonet voor het laatst gezien</string> <string name="last_seen_min">1 minuut geleden voor het laatst gezien</string> @@ -226,11 +180,8 @@ <string name="never_seen">nog nooit gezien</string> <string name="install_openkeychain">Versleuteld bericht. Installeer OpenKeychain om te ontsleutelen.</string> <string name="unknown_otr_fingerprint">Onbekende OTR vingerafdruk</string> - <string name="edit_conference_details">Touch to edit conference details</string> <string name="openpgp_messages_found">OpenPGP encrypted messages found</string> - <string name="openpgp_click_to_decrypt">Raak hier aan om het wachtwoord in te voeren het bericht te ontsleutelen</string> <string name="reception_failed">Ontvangen mislukt</string> - <string name="no_muc_server_found">Geen geschikte Groepsconversatie Server gevonden</string> <string name="join_conference">Aan groepsconversatie deelnemen</string> <string name="invite_contact">Contact uitnodigen</string> @@ -270,7 +221,6 @@ <string name="skip">Overslaan</string> <string name="problem_connecting_to_account">Verbinden met account mislukt</string> <string name="problem_connecting_to_accounts">Verbinden met meerdere accounts mislukt</string> - <string name="not_connected">Niet Verbonden</string> <string name="account_status_connecting">Verbinden\u2026</string> <string name="account_status_no_internet">Geen verbinding met internet</string> <string name="connect">Verbinden</string> @@ -279,7 +229,6 @@ <string name="send_private_message_to">Verstuur privé bericht aan %s</string> <string name="touch_to_choose_picture">Klik op avatar om een afbeelding te selecteren uit de gallerij</string> <string name="mgmt_account_publish_avatar">Publiceer avatar</string> - <string name="publish_avatar">Publiceer avatar</string> <string name="publish_avatar_explanation">N.B.: Iedereen die uw aanwezigheid mag zien kan de afbeelding zien.</string> <string name="error_publish_avatar_server_reject">De server weigerde uw publicatie</string> <string name="error_publish_avatar_converting">Er ging iets mis bij het converteren van uw afbeelding</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index d4dc365c..59359388 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -10,7 +10,6 @@ <string name="skip">Пропустить</string> <string name="problem_connecting_to_account">Не удается подключиться к аккаунту</string> <string name="problem_connecting_to_accounts">Не удается подключиться к аккаунтам</string> - <string name="not_connected">Не подключен</string> <string name="account_status_connecting">Соединение\u2026</string> <string name="account_status_no_internet">Нет подключения к сети</string> <string name="connect">Подключиться</string> @@ -44,7 +43,6 @@ <string name="action_settings">Настройки</string> <string name="action_add">Новая беседа</string> <string name="action_accounts">Управление аккаунтами</string> - <string name="action_refresh">Обновить список контактов</string> <string name="action_end_conversation">Закончить текущую беседу</string> <string name="action_contact_details">Сведения о контакте</string> <string name="action_muc_details">Сведения о конференции</string> @@ -53,7 +51,6 @@ <string name="action_edit_contact">Редактировать контакт</string> <string name="action_add_phone_book">Добавить в телефонную книгу</string> <string name="action_delete_contact">Удалить из списка</string> - <string name="title_activity_contacts">Контакты</string> <string name="title_activity_manage_accounts">Управление Аккаунтами</string> <string name="title_activity_settings">Настройки</string> <string name="title_activity_conference_details">Сведения о Конференции</string> @@ -66,43 +63,24 @@ <string name="minutes_ago">%d мин. назад</string> <string name="unread_conversations">непрочитанных сообщений</string> <string name="sending">отправка…</string> - <string name="announce_pgp">Обновить PGP ключи</string> <string name="encrypted_message">Расшифровка сообщения. Пожалуйста, подождите…</string> - <string name="conference_details">Сведения о Конференции</string> <string name="nick_in_use">Имя уже используется</string> <string name="admin">Администратор</string> <string name="owner">Владелец</string> <string name="moderator">Модератор</string> <string name="participant">Участник</string> <string name="visitor">Посетитель</string> - <string name="enter_new_name">Введите новое имя:</string> <string name="remove_contact_text">Вы хотите удалить %s из своего списка? Беседы, связанные с этим аккаунтом будут сохранены.</string> - <string name="untrusted_cert_hint">Сервер %s предоставил неподтвержденный, самостоятельно подписанный сертификат.</string> - <string name="account_info">Информация о сервере</string> <string name="register_account">Создать новый аккаунт на сервере</string> <string name="share_with">Поделиться с</string> - <string name="ask_again"><u>Нажмите, чтобы попросить заново</u></string> - <string name="show_otr_key">Контрольная сумма OTR</string> - <string name="no_otr_fingerprint">Нет созданных контрольных сумм криптографического протокола OTR. Просто начните новую зашифрованную беседу</string> <string name="start_conversation">Начать беседу</string> <string name="contacts">Контакты</string> - <string name="search_jabber_id">Укажите уникальный идентификатор пользователя JID (Джаббер ID)</string> - <string name="choose_account">Выберите аккаунт</string> - <string name="multi_user_conference">Мультиконференция</string> - <string name="trying_join_conference">Вы хотели бы присоединиться к конференции?</string> <string name="cancel">Отмена</string> <string name="add">Добавить</string> <string name="edit">Редактировать</string> <string name="delete">Удалить</string> <string name="save">Сохранить</string> - <string name="yes">Да</string> - <string name="no">Нет</string> <string name="ok">ОК</string> - <string name="done">Готово</string> - <string name="hide">Спрятать</string> - <string name="invitation_sent">Приглашение отправлено</string> - <string name="account_offline">Аккаунт не в сети</string> - <string name="cant_invite_while_offline">Вы должны быть в сети, чтобы пригласить пользователей в конференцию</string> <string name="crash_report_title">Conversations был неожиданно остановлен</string> <string name="crash_report_message">Отправляя отчеты об ошибках, вы помогаете исправить и улучшить программу, поддерживая дальнейшее развитие программы\n<b>Предупреждение:</b>Отчет об ошибке будет отправлен разработчику, используя ваш аккаунт XMPP.</string> <string name="send_now">Отправить сейчас</string> @@ -126,13 +104,7 @@ <string name="send_pgp_message">Отправить OpenPGP защифрованное сообщение</string> <string name="your_nick_has_been_changed">Ваш псевдоним был изменен</string> <string name="download_image">Загрузить изображение</string> - <string name="error_loading_image">Ошибка загрузки изображения (Файл не найден)</string> <string name="image_offered_for_download"><i>Изображение предложено для загрузки</i></string> - <string name="otr_messages">OTR защифрованное сообщение</string> - <string name="manage_account">Управление аккаунтом</string> - <string name="contact_offline">Вы не в сети</string> - <string name="contact_offline_otr">Отправка OTR зашифрованного сообщения пользователю, который не в сети, к сожалению, не поддерживается.\nХотите, отправить незашифрованное текстовое сообщение?</string> - <string name="contact_offline_file">Отправка файлов пользователю не в сети, к сожалению, не поддерживается.</string> <string name="send_unencrypted">Отправить в незашифрованном виде</string> <string name="decryption_failed">Расшифровка не удалась. Вероятно, что у вас нет надлежащего ключа.</string> <string name="openkeychain_required">Установите OpenKeychain</string> @@ -148,9 +120,6 @@ <string name="encrypted_message_received"><i>Зашифрованное сообщение получено. Нажмите здесь, чтобы расшифровать и посмотреть сообщение.</i></string> <string name="encrypted_image_received"><i>Зашифрованное изображение получено. Нажмите здесь, чтобы расшифровать и посмотреть изображение.</i></string> <string name="image_file"><i>Изображение получено. Нажмите здесь, чтобы посмотреть.</i></string> - <string name="otr_file_transfer">OTR шифрование недоступно</string> - <string name="otr_file_transfer_msg">К сожалению невозможно использовать OTR шифрование для передачи файлов. Вы можете использовать OpenPGP шифрование или передать файл в незашифрованном виде.</string> - <string name="use_pgp_encryption">Использовать OpenPGP шифрование</string> <string name="pref_xmpp_resource">Название ресурса</string> <string name="pref_xmpp_resource_summary">Имя которым Conversations идентифицирует себя</string> <string name="pref_notification_settings">Настройки Уведомлений</string> @@ -165,8 +134,6 @@ <string name="pref_notification_grace_period">Отсрочка уведомлений</string> <string name="pref_notification_grace_period_summary">Не использовать уведомления, если вы прочитали сообщение на другом устройстве</string> <string name="pref_ui_options">Параметры интерфейса</string> - <string name="pref_use_phone_self_picture">Стандартный аватар</string> - <string name="pref_use_phone_self_picture_summary">В случае использования нескольких аккаунтов, отображаться будет только один стандартный аватар для всех</string> <string name="pref_conference_name">Название конференции</string> <string name="pref_conference_name_summary">Использовать тему комнаты для идентификации конференции</string> <string name="pref_advanced_options">Дополнительные параметры</string> @@ -174,11 +141,8 @@ <string name="pref_never_send_crash_summary">Отправляя отчеты об ошибках, вы помогаете исправить и улучшить Conversations, поддерживая дальнейшее развитие программы</string> <string name="pref_confirm_messages">Отчеты о получении</string> <string name="pref_confirm_messages_summary">Разрешить уведомлять отправителя, когда вы получили и прочитали сообщение</string> - <string name="pref_show_last_seen">Отображать последний визит</string> - <string name="pref_show_last_seen_summary">Отображать время последнего визита пользователя</string> <string name="openpgp_error">Возникла ошибка в OpenKeychain</string> <string name="error_decrypting_file">Ошибка расшифровки файла</string> - <string name="error_copying_image_file">Ошибка копирования файла изображения</string> <string name="accept">Принять</string> <string name="error">Произошла ошибка</string> <string name="pref_grant_presence_updates">Предоставлять обновления</string> @@ -189,7 +153,6 @@ <string name="send_presence_updates">Анонсировать статус присутствия</string> <string name="receive_presence_updates">Получать обновления статусов присутствия</string> <string name="ask_for_presence_updates">Запрашивать обновления статусов присутствия</string> - <string name="asked_for_presence_updates">Запрос на анонсирование статуса присутствия</string> <string name="attach_choose_picture">Выберите изображение</string> <string name="attach_take_picture">Снимите изображение</string> <string name="preemptively_grant">Удовлетворять запросы на подписки</string> @@ -198,14 +161,12 @@ <string name="error_file_not_found">Файл не найден</string> <string name="error_io_exception">Общая ошибка ввода/вывода. Возможно, на устройстве недостаточно свободного места?</string> <string name="error_security_exception_during_image_copy">Приложение, которое было использовано для выбора изображения не имеет достаточных прав для чтения файла.\n\n<small>Используйте другой файловый менеджер, чтобы выбрать изображение</small></string> - <string name="account_status">Статус:</string> <string name="account_status_unknown">Неизвестен</string> <string name="account_status_disabled">Временно отключен</string> <string name="account_status_online">В сети</string> <string name="account_status_offline">Не в сети</string> <string name="account_status_unauthorized">Неавторизован</string> <string name="account_status_not_found">Сервер не найден</string> - <string name="account_status_requires_tls">Сервер требует использования криптографического протокола TLS</string> <string name="account_status_regis_fail">Регистрация не удалась</string> <string name="account_status_regis_conflict">Имя пользователя уже используется</string> <string name="account_status_regis_success">Регистрация завершена</string> @@ -219,9 +180,7 @@ <string name="mgmt_account_enable">Включить</string> <string name="mgmt_account_are_you_sure">Вы уверены?</string> <string name="mgmt_account_delete_confirm_text">Если вы удалите свой аккаунт, вся ваша история будет потеряна</string> - <string name="mgmt_account_account_offline">Аккаунт не подключен</string> <string name="attach_record_voice">Запись голоса</string> - <string name="account_settings">Настройки аккаунта</string> <string name="account_settings_jabber_id">JID (Джаббер ID)</string> <string name="account_settings_password">Пароль</string> <string name="account_settings_example_jabber_id">username@example.com</string> @@ -239,15 +198,10 @@ <string name="contact_status_do_not_disturb">не беспокоить</string> <string name="contact_status_offline">не в сети</string> <string name="muc_details_conference">Конференция</string> - <string name="muc_details_conference_subject">Тема Конференции</string> - <string name="muc_details_your_nickname">Ваш псевдоним</string> <string name="muc_details_other_members">Другие участники</string> - <string name="subscription_not_updated_offline">Аккаунт не в сети. Не удалось обновить статус подписки</string> <string name="share_with_active_conversations">Активные контакты</string> <string name="server_info_carbon_messages">Дублирование сообщений</string> <string name="server_info_stream_management">Управление потоками</string> - <string name="hours">час.</string> - <string name="mins">мин.</string> <string name="missing_public_keys">Отсутствие анонсирования открытых ключей</string> <string name="last_seen_now">Присутствие: только что</string> <string name="last_seen_min">Присутствие: 1 минуту назад</string> @@ -259,11 +213,8 @@ <string name="never_seen">Никогда</string> <string name="install_openkeychain">Зашифрованное сообщение. Пожалуйста, установите OpenKeychain для дешифрования.</string> <string name="unknown_otr_fingerprint">Неизвестная контрольная сумма криптографического протокола OTR</string> - <string name="edit_conference_details">Нажмите здесь, чтобы изменить сведения о конференции</string> <string name="openpgp_messages_found">Найдены OpenPGP зашифрованые сообщения</string> - <string name="openpgp_click_to_decrypt">Нажмите здесь, чтобы ввести идентификационную фразу и расшифровать сообщения</string> <string name="reception_failed">Прием не удался</string> - <string name="no_muc_server_found">Не найдено подходящего сервера для конференции</string> <string name="your_fingerprint">Контрольная сумма</string> <string name="otr_fingerprint">OTR контрольная сумма</string> <string name="verify">Подтвердить</string> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index ee16ba58..24ca5c51 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Inställningar</string> <string name="action_add">Ny konversation</string> <string name="action_accounts">Kontoinställningar</string> - <string name="action_refresh">Uppdatera konstaktlistan</string> <string name="action_end_conversation">Avsluta denna konversation</string> <string name="action_contact_details">Kontaktdetaljer</string> <string name="action_muc_details">Konferensdetaljer</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">Ändra namn</string> <string name="action_add_phone_book">Lägg till i telefonbok</string> <string name="action_delete_contact">Ta bort kontakt</string> - <string name="title_activity_contacts">Kontakter</string> <string name="title_activity_manage_accounts">Hantera konton</string> <string name="title_activity_settings">Inställningar</string> <string name="title_activity_conference_details">Konferensdetaljer</string> @@ -28,45 +26,26 @@ <string name="minutes_ago">%d min sedan</string> <string name="unread_conversations">olästa konversationer</string> <string name="sending">skickar…</string> - <string name="announce_pgp">Förnya PGP annonsering</string> <string name="encrypted_message">Avkrypterar meddelande. Vänta…</string> - <string name="conference_details">Konferensdetaljer</string> <string name="nick_in_use">Nick används redan</string> <string name="admin">Admin</string> <string name="owner">Ägare</string> <string name="moderator">Moderator</string> <string name="participant">Deltagare</string> <string name="visitor">Besökare</string> - <string name="enter_new_name">Skriv in nytt namn:</string> <string name="remove_contact_text">Vill du ta bort %s från din kontaktlista? Konversationer associerade med denna kontakt kommer inte tas bort.</string> <string name="remove_bookmark_text">Vill du ta bort %s som bokmärke? Konversationer associerade med detta bokmärke kommer inte tas bort.</string> - <string name="untrusted_cert_hint">Servern %s har ett ej pålitligt, möjligtvis självsignerat, certifikat.</string> - <string name="account_info">Server info</string> <string name="register_account">Registrera nytt konto på servern</string> <string name="share_with">Dela med</string> - <string name="ask_again"><u>Tryck för att fråga igen</u></string> - <string name="show_otr_key">OTR-fingeravtryck</string> - <string name="no_otr_fingerprint">Inget OTR-fingeravtryck genererat. Fortsätt och starta en krypterad konversation</string> <string name="start_conversation">Starta konversation</string> <string name="invite_contact">Bjud in kontakt</string> <string name="contacts">Kontakter</string> - <string name="search_jabber_id">Sök eller skriv in Jabber ID</string> - <string name="choose_account">Välj konto</string> - <string name="multi_user_conference">Multianvändarkonferens</string> - <string name="trying_join_conference">Försöker du gå in i en konferens?</string> <string name="cancel">Avbryt</string> <string name="add">Lägg till</string> <string name="edit">Ändra</string> <string name="delete">Ta bort</string> <string name="save">Spara</string> - <string name="yes">Ja</string> - <string name="no">Nej</string> <string name="ok">Ok</string> - <string name="done">Klar</string> - <string name="hide">Göm</string> - <string name="invitation_sent">Inbjudan skickad</string> - <string name="account_offline">Konto offline</string> - <string name="cant_invite_while_offline">Du måste vara online för att bjuda in personer till konferenser</string> <string name="crash_report_title">Conversations har kraschat</string> <string name="crash_report_message">Genom att skicka in stack traces hjälper du utvecklarna av Conversations\n<b>Varning:</b> Detta använder ditt XMPP konto för att skicka informationen till utvecklarna.</string> <string name="send_now">Skicka nu</string> @@ -92,14 +71,7 @@ <string name="send_pgp_message">Skicka OpenPGP-krypterat meddelande</string> <string name="your_nick_has_been_changed">Ditt nick har ändrats</string> <string name="download_image">Ladda ner bild</string> - <string name="error_loading_image">Fel vid öppnande av bild (Fil hittas ej)</string> <string name="image_offered_for_download"><i>Bildfil erbjuds för nedladdning</i></string> - <string name="not_connected">Ej ansluten</string> - <string name="otr_messages">OTR-krypterade meddelanden</string> - <string name="manage_account">Hantera konto</string> - <string name="contact_offline">Kontakten är offline</string> - <string name="contact_offline_otr">Skicka OTR-krypterade meddelanden till en kontakt som är offline stöds tyvärr inte.\nVill du skicka meddelandet i klartext?</string> - <string name="contact_offline_file">Skicka filer till en kontakt som är offline stöds tyvärr inte.</string> <string name="send_unencrypted">Skicka okrypterat</string> <string name="decryption_failed">Avkryptering gick fel. Du kanske inte har rätt privat nyckel.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -115,9 +87,6 @@ <string name="encrypted_message_received"><i>Krypterat meddelande mottaget. Tryck för att se och avkryptera.</i></string> <string name="encrypted_image_received"><i>Krypterad bild mottagen. Tryck för att se och avkryptera.</i></string> <string name="image_file"><i>Bild mottagen. Tryck för att se</i></string> - <string name="otr_file_transfer">OTR-kryptering ej tillgänglig</string> - <string name="otr_file_transfer_msg">Tyvärr är OTR-kryptering inte tillgänglig för filöverföringar. Du kan välja antingen OpenPGP eller ingen kryptering.</string> - <string name="use_pgp_encryption">Använd OpenPGP-kryptering</string> <string name="pref_xmpp_resource">XMPP resurs</string> <string name="pref_xmpp_resource_summary">Namnet som klienten identifierar sig med</string> <string name="pref_accept_files">Acceptera filer</string> @@ -134,8 +103,6 @@ <string name="pref_notification_grace_period">Notifieringsfrist</string> <string name="pref_notification_grace_period_summary">Deaktivera notifieringar en kort stund efter att en carbon copy tagits emot</string> <string name="pref_ui_options">UI inställningar</string> - <string name="pref_use_phone_self_picture">Används telefonens kontaktbild på dig</string> - <string name="pref_use_phone_self_picture_summary">Du kommer inte längre kunna avgöra vilket konto du använder i en konversation</string> <string name="pref_conference_name">Konferensnamn</string> <string name="pref_conference_name_summary">Använd konferensens ämne för att identifera konferensen</string> <string name="pref_advanced_options">Avancerade inställningar</string> @@ -143,11 +110,8 @@ <string name="pref_never_send_crash_summary">Genom att skicka in stack traces hjälper du utvecklarna av Conversations</string> <string name="pref_confirm_messages">Bekräfta meddelanden</string> <string name="pref_confirm_messages_summary">Låter dina kontakter veta när du har tagit emot och läst ett meddelande</string> - <string name="pref_show_last_seen">Visa senast sedd</string> - <string name="pref_show_last_seen_summary">Visa senaste tid som din kontakt har setts online</string> <string name="openpgp_error">OpenKeychain rapporterade ett fel</string> <string name="error_decrypting_file">I/O-fel vid avkryptering av fil</string> - <string name="error_copying_image_file">Fel vid kopiering av bildfil.</string> <string name="accept">Acceptera</string> <string name="error">Ett fel har inträffat</string> <string name="pref_grant_presence_updates">Tillåt tillänglighetsuppdateringar</string> @@ -158,7 +122,6 @@ <string name="send_presence_updates">Skicka tillgänglighetsuppdatering</string> <string name="receive_presence_updates">Ta emot tillgänglighetsuppdateringar</string> <string name="ask_for_presence_updates">Be om tillgänglighetsuppdateringar</string> - <string name="asked_for_presence_updates">Bad om tillgänglighetsuppdateringar</string> <string name="attach_choose_picture">Välj bild</string> <string name="attach_take_picture">Ta ny bild</string> <string name="preemptively_grant">Tillåt abonnemangsbegäran i förväg</string> @@ -167,7 +130,6 @@ <string name="error_file_not_found">Filen hittas ej</string> <string name="error_io_exception">Generellt I/O-fel. Du kanske fick slut på plats?</string> <string name="error_security_exception_during_image_copy">Applikationen du använde för att välja bilden gav inte tillräckliga rättigheter för att läsa filen.\n\n<small>Använd en annan filhanterare för att välja bild</small></string> - <string name="account_status">Status:</string> <string name="account_status_unknown">Okänd</string> <string name="account_status_disabled">Tillfälligt deaktiverad</string> <string name="account_status_online">Online</string> @@ -176,7 +138,6 @@ <string name="account_status_unauthorized">Otillåten</string> <string name="account_status_not_found">Server ej funnen</string> <string name="account_status_no_internet">Ingen anslutning</string> - <string name="account_status_requires_tls">Servern kräver TLS</string> <string name="account_status_regis_fail">Registreringsfel</string> <string name="account_status_regis_conflict">Användarnamn används redan</string> <string name="account_status_regis_success">Registrering klar</string> @@ -190,9 +151,7 @@ <string name="mgmt_account_enable">Aktivera</string> <string name="mgmt_account_are_you_sure">Är du säker?</string> <string name="mgmt_account_delete_confirm_text">Om du tar bort kontot kommer all konversationshistorik att försvinna</string> - <string name="mgmt_account_account_offline">Kontot är offline</string> <string name="attach_record_voice">Spela in röst</string> - <string name="account_settings">Kontoinställningar</string> <string name="account_settings_jabber_id">Jabber ID</string> <string name="account_settings_password">Lösenord</string> <string name="account_settings_example_jabber_id">användarnamn@exempel.se</string> @@ -210,15 +169,10 @@ <string name="contact_status_do_not_disturb">stör ej</string> <string name="contact_status_offline">offline</string> <string name="muc_details_conference">Konferens</string> - <string name="muc_details_conference_subject">Konferensämne</string> - <string name="muc_details_your_nickname">Ditt nick</string> <string name="muc_details_other_members">Andra medlemmar</string> - <string name="subscription_not_updated_offline">Konto offline. Kunde inte uppdatera abonnemang</string> <string name="share_with_active_conversations">Aktiva konversationer</string> <string name="server_info_carbon_messages">Carbon Messages</string> <string name="server_info_stream_management">Stream Management</string> - <string name="hours">timmar</string> - <string name="mins">minuter</string> <string name="missing_public_keys">Annonsering om publik nyckel saknas</string> <string name="last_seen_now">senast sedd just nu</string> <string name="last_seen_min">senast sedd 1 minut sedan</string> @@ -230,11 +184,8 @@ <string name="never_seen">aldrig sedd</string> <string name="install_openkeychain">Krypterat meddelande. Installera OpenKeychain för att avkryptera.</string> <string name="unknown_otr_fingerprint">Okänt OTR-fingeravtryck</string> - <string name="edit_conference_details">Tryck för att ändra konferensdetaljer</string> <string name="openpgp_messages_found">OpenPGP-krypterat meddelande funnet</string> - <string name="openpgp_click_to_decrypt">Tryck här för att ange passfras och dektryptera meddelande</string> <string name="reception_failed">Mottagning misslyckades</string> - <string name="no_muc_server_found">Ingen passande konferensserver hittades</string> <string name="your_fingerprint">Ditt fingeravtryck</string> <string name="otr_fingerprint">OTR-fingeravtryck</string> <string name="verify">Verifiera</string> diff --git a/res/values/arrays.xml b/res/values/arrays.xml index f9a198b2..1d2a5ac9 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -19,4 +19,18 @@ <item>524288</item> <item>1048576</item> </string-array> + <string-array name="mute_options_descriptions"> + <item>30 minutes</item> + <item>one hour</item> + <item>2 hours</item> + <item>8 hours</item> + <item>until further notice</item> + </string-array> + <integer-array name="mute_options_durations"> + <item>1800</item> + <item>3600</item> + <item>7200</item> + <item>28800</item> + <item>-1</item> + </integer-array> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 223ed984..f655c1a8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5,7 +5,6 @@ <string name="action_settings">Settings</string> <string name="action_add">New conversation</string> <string name="action_accounts">Manage accounts</string> - <string name="action_refresh">Refresh contact list</string> <string name="action_end_conversation">End this conversation</string> <string name="action_contact_details">Contact details</string> <string name="action_muc_details">Conference details</string> @@ -14,7 +13,6 @@ <string name="action_edit_contact">Edit name</string> <string name="action_add_phone_book">Add to phone book</string> <string name="action_delete_contact">Delete from roster</string> - <string name="title_activity_contacts">Contacts</string> <string name="title_activity_manage_accounts">Manage Accounts</string> <string name="title_activity_settings">Settings</string> <string name="title_activity_conference_details">Conference Details</string> @@ -28,45 +26,26 @@ <string name="minutes_ago">%d mins ago</string> <string name="unread_conversations">unread Conversations</string> <string name="sending">sending…</string> - <string name="announce_pgp">Renew PGP announcement</string> <string name="encrypted_message">Decrypting message. Please wait…</string> - <string name="conference_details">Conference Details</string> <string name="nick_in_use">Nickname is already in use</string> <string name="admin">Admin</string> <string name="owner">Owner</string> <string name="moderator">Moderator</string> <string name="participant">Participant</string> <string name="visitor">Visitor</string> - <string name="enter_new_name">Enter a new name:</string> <string name="remove_contact_text">Would you like to remove %s from your roster? The conversation associated with this contact will not be removed.</string> <string name="remove_bookmark_text">Would you like to remove %s as a bookmark? The conversation associated with this bookmark will not be removed.</string> - <string name="untrusted_cert_hint">The server %s presented you with an untrusted, possible self signed, certificate.</string> - <string name="account_info">Server Info</string> <string name="register_account">Register new account on server</string> <string name="share_with">Share with</string> - <string name="ask_again"><u>Click to ask again</u></string> - <string name="show_otr_key">OTR fingerprint</string> - <string name="no_otr_fingerprint">No OTR Fingerprint generated. Just go ahead and start an encrypted conversation</string> <string name="start_conversation">Start Conversation</string> <string name="invite_contact">Invite Contact</string> <string name="contacts">Contacts</string> - <string name="search_jabber_id">Search or enter Jabber ID</string> - <string name="choose_account">Choose account</string> - <string name="multi_user_conference">Multi User Conference</string> - <string name="trying_join_conference">Are you trying to join a conference?</string> <string name="cancel">Cancel</string> <string name="add">Add</string> <string name="edit">Edit</string> <string name="delete">Delete</string> <string name="save">Save</string> - <string name="yes">Yes</string> - <string name="no">No</string> <string name="ok">OK</string> - <string name="done">Done</string> - <string name="hide">Hide</string> - <string name="invitation_sent">Invitation sent</string> - <string name="account_offline">Account offline</string> - <string name="cant_invite_while_offline">You have to be online to invite people to conferences</string> <string name="crash_report_title">Conversations has crashed</string> <string name="crash_report_message">By sending in stack traces you are helping the ongoing development of Conversations\n<b>Warning:</b> This will use your XMPP account to send the stack trace to the developer.</string> <string name="send_now">Send now</string> @@ -92,14 +71,7 @@ <string name="send_pgp_message">Send OpenPGP encrypted message</string> <string name="your_nick_has_been_changed">Your nickname has been changed</string> <string name="download_image">Download Image</string> - <string name="error_loading_image">Error loading image (File not found)</string> <string name="image_offered_for_download"><i>Image file offered for download</i></string> - <string name="not_connected">Not Connected</string> - <string name="otr_messages">OTR encrypted messages</string> - <string name="manage_account">Manage account</string> - <string name="contact_offline">Your Contact is Offline</string> - <string name="contact_offline_otr">Sending OTR encrypted messages to an offline contact is unfortunately not supported.\nWould you like to send the message in plain text?</string> - <string name="contact_offline_file">Sending files to an offline contact is unfortunately not supported.</string> <string name="send_unencrypted">Send unencrypted</string> <string name="decryption_failed">Decryption failed. Maybe you don’t have the proper private key.</string> <string name="openkeychain_required">OpenKeychain</string> @@ -115,9 +87,6 @@ <string name="encrypted_message_received"><i>Encrypted message received. Touch to view and decrypt.</i></string> <string name="encrypted_image_received"><i>Encrypted image received. Touch to view and decrypt.</i></string> <string name="image_file"><i>Image received. Touch to view</i></string> - <string name="otr_file_transfer">OTR encryption not available</string> - <string name="otr_file_transfer_msg">Unfortunaly OTR encryption is not available for file transfer. You can choose either OpenPGP or no encryption.</string> - <string name="use_pgp_encryption">Use OpenPGP encryption</string> <string name="pref_general">General</string> <string name="pref_xmpp_resource">XMPP resource</string> <string name="pref_xmpp_resource_summary">The name this client identifies itself with</string> @@ -135,8 +104,6 @@ <string name="pref_notification_grace_period">Notification grace period</string> <string name="pref_notification_grace_period_summary">Disable notifications for a short time after a carbon copy was received</string> <string name="pref_ui_options">UI Options</string> - <string name="pref_use_phone_self_picture">Use Phones self contact picture</string> - <string name="pref_use_phone_self_picture_summary">You may no longer be able to distinguish which account you are using in a conversation</string> <string name="pref_conference_name">Conference name</string> <string name="pref_conference_name_summary">Use room’s subject to identify Conferences</string> <string name="pref_advanced_options">Advanced Options</string> @@ -144,11 +111,8 @@ <string name="pref_never_send_crash_summary">By sending in stack traces you are helping the ongoing development of Conversations</string> <string name="pref_confirm_messages">Confirm Messages</string> <string name="pref_confirm_messages_summary">Let your contact know when you have received and read a message</string> - <string name="pref_show_last_seen">Display last seen</string> - <string name="pref_show_last_seen_summary">Display the latest time a contact has been seen online</string> <string name="openpgp_error">OpenKeychain reported an error</string> <string name="error_decrypting_file">I/O Error decrypting file</string> - <string name="error_copying_image_file">Error copying image file.</string> <string name="accept">Accept</string> <string name="error">An error has occurred</string> <string name="pref_grant_presence_updates">Grant presence updates</string> @@ -159,7 +123,6 @@ <string name="send_presence_updates">Send presence updates</string> <string name="receive_presence_updates">Receive presence updates</string> <string name="ask_for_presence_updates">Ask for presence updates</string> - <string name="asked_for_presence_updates">Asked for presence updates</string> <string name="attach_choose_picture">Choose picture</string> <string name="attach_take_picture">Take picture</string> <string name="preemptively_grant">Preemptively grant subscription request</string> @@ -168,7 +131,6 @@ <string name="error_file_not_found">File not found</string> <string name="error_io_exception">General I/O error. Maybe you ran out of storage space?</string> <string name="error_security_exception_during_image_copy">The app you used to select this image did not provide us with enough permissions to read the file.\n\n<small>Use a different file manager to choose an image</small></string> - <string name="account_status">Status:</string> <string name="account_status_unknown">Unknown</string> <string name="account_status_disabled">Temporarily disabled</string> <string name="account_status_online">Online</string> @@ -177,7 +139,6 @@ <string name="account_status_unauthorized">Unauthorized</string> <string name="account_status_not_found">Server not found</string> <string name="account_status_no_internet">No connectivity</string> - <string name="account_status_requires_tls">Server requires TLS</string> <string name="account_status_regis_fail">Registration failed</string> <string name="account_status_regis_conflict">Username already in use</string> <string name="account_status_regis_success">Registration completed</string> @@ -193,9 +154,7 @@ <string name="mgmt_account_enable">Enable account</string> <string name="mgmt_account_are_you_sure">Are you sure?</string> <string name="mgmt_account_delete_confirm_text">If you delete your account your entire conversation history will be lost</string> - <string name="mgmt_account_account_offline">Account is offline</string> <string name="attach_record_voice">Record voice</string> - <string name="account_settings">Account Settings</string> <string name="account_settings_jabber_id">Jabber ID</string> <string name="account_settings_password">Password</string> <string name="account_settings_example_jabber_id">username@example.com</string> @@ -213,18 +172,13 @@ <string name="contact_status_do_not_disturb">do not disturb</string> <string name="contact_status_offline">offline</string> <string name="muc_details_conference">Conference</string> - <string name="muc_details_conference_subject">Conference Subject</string> - <string name="muc_details_your_nickname">Your nickname</string> <string name="muc_details_other_members">Other Members</string> - <string name="subscription_not_updated_offline">Account offline. Could not update subscription</string> <string name="share_with_active_conversations">Active Conversations</string> <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string> <string name="server_info_stream_management">XEP-0198: Stream Management</string> <string name="server_info_pep">XEP-0163: PEP (Avatars)</string> <string name="server_info_available">available</string> <string name="server_info_unavailable">unavailable</string> - <string name="hours">hours</string> - <string name="mins">mins</string> <string name="missing_public_keys">Missing public key announcements</string> <string name="last_seen_now">last seen just now</string> <string name="last_seen_min">last seen 1 minute ago</string> @@ -236,11 +190,8 @@ <string name="never_seen">never seen</string> <string name="install_openkeychain">Encrypted message. Please install OpenKeychain to decrypt.</string> <string name="unknown_otr_fingerprint">Unknown OTR fingerprint</string> - <string name="edit_conference_details">Touch to edit conference details</string> <string name="openpgp_messages_found">OpenPGP encrypted messages found</string> - <string name="openpgp_click_to_decrypt">Click here to enter passphrase and decrypt messages</string> <string name="reception_failed">Reception failed</string> - <string name="no_muc_server_found">No suitable Conference Server found</string> <string name="your_fingerprint">Your fingerprint</string> <string name="otr_fingerprint">OTR fingerprint</string> <string name="verify">Verify</string> @@ -284,5 +235,11 @@ <string name="server_info_session_established">Current session established</string> <string name="additional_information">Additional Information</string> <string name="skip">Skip</string> + <string name="disable_notifications">Disable notifications</string> + <string name="disable_notifications_for_this_conversation">Disable notifications for this conversation</string> + <string name="notifications_disabled">Notifications are disabled</string> + <string name="enable">Enable</string> + <string name="conference_requires_password">Conference requires password</string> + <string name="enter_password">Enter password</string> </resources>
\ No newline at end of file diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index ecd90803..cc2b952f 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -60,14 +60,6 @@ android:summary="@string/pref_notification_grace_period_summary" android:defaultValue="true"/> </PreferenceCategory> - <PreferenceCategory - android:title="@string/pref_ui_options"> - <CheckBoxPreference - android:key="use_subject_in_muc" - android:title="@string/pref_conference_name" - android:summary="@string/pref_conference_name_summary" - android:defaultValue="true"/> - </PreferenceCategory> <PreferenceCategory android:title="@string/pref_advanced_options"> <CheckBoxPreference diff --git a/src/eu/siacs/conversations/Config.java b/src/eu/siacs/conversations/Config.java index 04c8af3d..6219b6b0 100644 --- a/src/eu/siacs/conversations/Config.java +++ b/src/eu/siacs/conversations/Config.java @@ -16,6 +16,8 @@ public final class Config { public static final Bitmap.CompressFormat AVATAR_FORMAT = Bitmap.CompressFormat.WEBP; public static final int MESSAGE_MERGE_WINDOW = 20; + + public static final boolean PARSE_EMOTICONS = false; private Config() { diff --git a/src/eu/siacs/conversations/crypto/PgpEngine.java b/src/eu/siacs/conversations/crypto/PgpEngine.java index 47b1a0cb..2f678279 100644 --- a/src/eu/siacs/conversations/crypto/PgpEngine.java +++ b/src/eu/siacs/conversations/crypto/PgpEngine.java @@ -106,8 +106,8 @@ public class PgpEngine { outputFile.getAbsolutePath(), options); int imageHeight = options.outHeight; int imageWidth = options.outWidth; - message.setBody("" + outputFile.getSize() + "," - + imageWidth + "," + imageHeight); + message.setBody(Long.toString(outputFile.getSize()) + ',' + + imageWidth + ',' + imageHeight); message.setEncryption(Message.ENCRYPTION_DECRYPTED); PgpEngine.this.mXmppConnectionService .updateMessage(message); @@ -171,8 +171,10 @@ public class PgpEngine { os.flush(); StringBuilder encryptedMessageBody = new StringBuilder(); String[] lines = os.toString().split("\n"); - for (int i = 3; i < lines.length - 1; ++i) { - encryptedMessageBody.append(lines[i].trim()); + for (int i = 2; i < lines.length - 1; ++i) { + if (!lines[i].contains("Version")) { + encryptedMessageBody.append(lines[i].trim()); + } } message.setEncryptedBody(encryptedMessageBody .toString()); @@ -295,9 +297,27 @@ public class PgpEngine { switch (result.getIntExtra(OpenPgpApi.RESULT_CODE, 0)) { case OpenPgpApi.RESULT_CODE_SUCCESS: StringBuilder signatureBuilder = new StringBuilder(); - String[] lines = os.toString().split("\n"); - for (int i = 7; i < lines.length - 1; ++i) { - signatureBuilder.append(lines[i].trim()); + try { + os.flush(); + String[] lines = os.toString().split("\n"); + boolean sig = false; + for(String line : lines) { + if (sig) { + if (line.contains("END PGP SIGNATURE")) { + sig = false; + } else { + if (!line.contains("Version")) { + signatureBuilder.append(line.trim()); + } + } + } + if (line.contains("BEGIN PGP SIGNATURE")) { + sig = true; + } + } + } catch (IOException e) { + callback.error(R.string.openpgp_error, account); + return; } account.setKey("pgp_signature", signatureBuilder.toString()); callback.success(account); diff --git a/src/eu/siacs/conversations/entities/Conversation.java b/src/eu/siacs/conversations/entities/Conversation.java index 4c55d5ee..2097b2a4 100644 --- a/src/eu/siacs/conversations/entities/Conversation.java +++ b/src/eu/siacs/conversations/entities/Conversation.java @@ -16,6 +16,7 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; +import android.os.SystemClock; public class Conversation extends AbstractEntity { public static final String TABLENAME = "conversations"; @@ -42,6 +43,8 @@ public class Conversation extends AbstractEntity { private int status; private long created; private int mode; + + private long mutedTill = 0; private String nextPresence; @@ -141,9 +144,8 @@ public class Conversation extends AbstractEntity { this.messages = msgs; } - public String getName(boolean useSubject) { - if ((getMode() == MODE_MULTI) && (getMucOptions().getSubject() != null) - && useSubject) { + public String getName() { + if (getMode() == MODE_MULTI && getMucOptions().getSubject() != null) { return getMucOptions().getSubject(); } else if (getMode() == MODE_MULTI && bookmark != null && bookmark.getName() != null) { @@ -419,4 +421,12 @@ public class Conversation extends AbstractEntity { } return false; } + + public void setMutedTill(long mutedTill) { + this.mutedTill = mutedTill; + } + + public boolean isMuted() { + return SystemClock.elapsedRealtime() < this.mutedTill; + } } diff --git a/src/eu/siacs/conversations/entities/Message.java b/src/eu/siacs/conversations/entities/Message.java index 84aac4f5..f36ffa90 100644 --- a/src/eu/siacs/conversations/entities/Message.java +++ b/src/eu/siacs/conversations/entities/Message.java @@ -150,13 +150,13 @@ public class Message extends AbstractEntity { public String getReadableBody(Context context) { if ((encryption == ENCRYPTION_PGP) && (type == TYPE_TEXT)) { - return "" + context.getText(R.string.encrypted_message_received); + return context.getText(R.string.encrypted_message_received).toString(); } else if ((encryption == ENCRYPTION_OTR) && (type == TYPE_IMAGE)) { - return "" + context.getText(R.string.encrypted_image_received); + return context.getText(R.string.encrypted_image_received).toString(); } else if (encryption == ENCRYPTION_DECRYPTION_FAILED) { - return "" + context.getText(R.string.decryption_failed); + return context.getText(R.string.decryption_failed).toString(); } else if (type == TYPE_IMAGE) { - return "" + context.getText(R.string.image_file); + return context.getText(R.string.image_file).toString(); } else { return body.trim(); } diff --git a/src/eu/siacs/conversations/entities/MucOptions.java b/src/eu/siacs/conversations/entities/MucOptions.java index 2958965c..72fbeeab 100644 --- a/src/eu/siacs/conversations/entities/MucOptions.java +++ b/src/eu/siacs/conversations/entities/MucOptions.java @@ -14,6 +14,7 @@ public class MucOptions { public static final int ERROR_NO_ERROR = 0; public static final int ERROR_NICK_IN_USE = 1; public static final int ERROR_ROOM_NOT_FOUND = 2; + public static final int ERROR_PASSWORD_REQUIRED = 3; public interface OnRenameListener { public void onRename(boolean success); @@ -106,6 +107,7 @@ public class MucOptions { private User self = new User(); private String subject = null; private String joinnick; + private String password = null; public MucOptions(Account account) { this.account = account; @@ -186,6 +188,8 @@ public class MucOptions { } else { this.error = ERROR_NICK_IN_USE; } + } else if (error.hasChild("not-authorized")) { + this.error = ERROR_PASSWORD_REQUIRED; } } } @@ -308,4 +312,12 @@ public class MucOptions { } return null; } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + this.password = password; + } }
\ No newline at end of file diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java index 3dca636e..10859345 100644 --- a/src/eu/siacs/conversations/parser/MessageParser.java +++ b/src/eu/siacs/conversations/parser/MessageParser.java @@ -435,6 +435,7 @@ public class MessageParser extends AbstractParser implements if (packet.getType() != MessagePacket.TYPE_ERROR) { mXmppConnectionService.databaseBackend.createMessage(message); } + notify = notify && !conversation.isMuted(); mXmppConnectionService.notifyUi(conversation, notify); } diff --git a/src/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/eu/siacs/conversations/persistance/DatabaseBackend.java index 22871a9e..2a403fab 100644 --- a/src/eu/siacs/conversations/persistance/DatabaseBackend.java +++ b/src/eu/siacs/conversations/persistance/DatabaseBackend.java @@ -137,7 +137,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { public CopyOnWriteArrayList<Conversation> getConversations(int status) { CopyOnWriteArrayList<Conversation> list = new CopyOnWriteArrayList<Conversation>(); SQLiteDatabase db = this.getReadableDatabase(); - String[] selectionArgs = { "" + status }; + String[] selectionArgs = { Integer.toString(status) }; Cursor cursor = db.rawQuery("select * from " + Conversation.TABLENAME + " where " + Conversation.STATUS + " = ? order by " + Conversation.CREATED + " desc", selectionArgs); @@ -163,7 +163,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { + "=?", selectionArgs, null, null, Message.TIME_SENT + " DESC", String.valueOf(limit)); } else { - String[] selectionArgs = { conversation.getUuid(), "" + timestamp }; + String[] selectionArgs = { conversation.getUuid(), Long.toString(timestamp) }; cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION + "=? and " + Message.TIME_SENT + "<?", selectionArgs, null, null, Message.TIME_SENT + " DESC", diff --git a/src/eu/siacs/conversations/persistance/FileBackend.java b/src/eu/siacs/conversations/persistance/FileBackend.java index 6e16240d..2b2aa86e 100644 --- a/src/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/eu/siacs/conversations/persistance/FileBackend.java @@ -180,7 +180,7 @@ public class FileBackend { long size = file.getSize(); int width = scalledBitmap.getWidth(); int height = scalledBitmap.getHeight(); - message.setBody("" + size + "," + width + "," + height); + message.setBody(Long.toString(size) + ',' + width + ',' + height); return file; } catch (FileNotFoundException e) { throw new ImageCopyException(R.string.error_file_not_found); @@ -201,17 +201,20 @@ public class FileBackend { private int getRotation(Uri image) { if ("content".equals(image.getScheme())) { - Cursor cursor = context - .getContentResolver() - .query(image, - new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, - null, null, null); - - if (cursor.getCount() != 1) { + try { + Cursor cursor = context + .getContentResolver() + .query(image, + new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, + null, null, null); + if (cursor.getCount() != 1) { + return -1; + } + cursor.moveToFirst(); + return cursor.getInt(0); + } catch (IllegalArgumentException e) { return -1; } - cursor.moveToFirst(); - return cursor.getInt(0); } else { ExifInterface exif; try { @@ -376,6 +379,10 @@ public class FileBackend { if (input == null) { return null; } else { + int rotation = getRotation(image); + if (rotation > 0) { + input = rotate(input, rotation); + } return cropCenterSquare(input, size); } } catch (FileNotFoundException e) { diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 2656f7c6..a294e970 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -784,10 +784,22 @@ public class XmppConnectionService extends Service { return this.conversations; } - + public void populateWithOrderedConversations(List<Conversation> list) { + populateWithOrderedConversations(list,true); + } + + public void populateWithOrderedConversations(List<Conversation> list, boolean includeConferences) { list.clear(); - list.addAll(getConversations()); + if (includeConferences) { + list.addAll(getConversations()); + } else { + for(Conversation conversation : getConversations()) { + if (conversation.getMode() == Conversation.MODE_SINGLE) { + list.add(conversation); + } + } + } Collections.sort(list, new Comparator<Conversation>() { @Override public int compare(Conversation lhs, Conversation rhs) { @@ -1047,6 +1059,10 @@ public class XmppConnectionService extends Service { packet.setAttribute("to", conversation.getMucOptions().getJoinJid()); Element x = new Element("x"); x.setAttribute("xmlns", "http://jabber.org/protocol/muc"); + if (conversation.getMucOptions().getPassword() != null) { + Element password = x.addChild("password"); + password.setContent(conversation.getMucOptions().getPassword()); + } String sig = account.getPgpSignature(); if (sig != null) { packet.addChild("status").setContent("online"); @@ -1078,6 +1094,13 @@ public class XmppConnectionService extends Service { public void setOnRenameListener(OnRenameListener listener) { this.renameListener = listener; } + + public void providePasswordForMuc(Conversation conversation, String password) { + if (conversation.getMode() == Conversation.MODE_MULTI) { + conversation.getMucOptions().setPassword(password); + joinMuc(conversation); + } + } public void renameInMuc(final Conversation conversation, final String nick) { final MucOptions options = conversation.getMucOptions(); diff --git a/src/eu/siacs/conversations/ui/ChooseContactActivity.java b/src/eu/siacs/conversations/ui/ChooseContactActivity.java index 83b20cb9..449fc546 100644 --- a/src/eu/siacs/conversations/ui/ChooseContactActivity.java +++ b/src/eu/siacs/conversations/ui/ChooseContactActivity.java @@ -95,8 +95,13 @@ public class ChooseContactActivity extends XmppActivity { InputMethodManager.HIDE_IMPLICIT_ONLY); Intent request = getIntent(); Intent data = new Intent(); - data.putExtra("contact", contacts.get(position).getJid()); - data.putExtra("account", request.getStringExtra("account")); + ListItem mListItem = contacts.get(position); + data.putExtra("contact", mListItem.getJid()); + String account = request.getStringExtra("account"); + if (account==null && mListItem instanceof Contact) { + account = ((Contact) mListItem).getAccount().getJid(); + } + data.putExtra("account", account); data.putExtra("conversation", request.getStringExtra("conversation")); setResult(RESULT_OK, data); diff --git a/src/eu/siacs/conversations/ui/ConferenceDetailsActivity.java b/src/eu/siacs/conversations/ui/ConferenceDetailsActivity.java index 40c7eca8..2cfa1635 100644 --- a/src/eu/siacs/conversations/ui/ConferenceDetailsActivity.java +++ b/src/eu/siacs/conversations/ui/ConferenceDetailsActivity.java @@ -109,7 +109,7 @@ public class ConferenceDetailsActivity extends XmppActivity { break; case R.id.action_edit_subject: if (conversation != null) { - quickEdit(conversation.getName(true), new OnValueEdited() { + quickEdit(conversation.getName(), new OnValueEdited() { @Override public void onValueEdited(String value) { @@ -200,7 +200,7 @@ public class ConferenceDetailsActivity extends XmppActivity { private void populateView() { mYourPhoto.setImageBitmap(conversation.getAccount().getImage(this, 48)); - setTitle(conversation.getName(true)); + setTitle(conversation.getName()); mFullJid.setText(conversation.getContactJid().split("/")[0]); mYourNick.setText(conversation.getMucOptions().getActualNick()); mRoleAffiliaton = (TextView) findViewById(R.id.muc_role); diff --git a/src/eu/siacs/conversations/ui/ConversationActivity.java b/src/eu/siacs/conversations/ui/ConversationActivity.java index 6504f056..17e410f2 100644 --- a/src/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/eu/siacs/conversations/ui/ConversationActivity.java @@ -1,10 +1,7 @@ package eu.siacs.conversations.ui; -import java.io.FileNotFoundException; -import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.RejectedExecutionException; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Contact; @@ -15,9 +12,8 @@ import eu.siacs.conversations.ui.adapter.ConversationAdapter; import eu.siacs.conversations.utils.ExceptionHelper; import eu.siacs.conversations.utils.UIHelper; import android.net.Uri; -import android.os.AsyncTask; import android.os.Bundle; -import android.preference.PreferenceManager; +import android.os.SystemClock; import android.provider.MediaStore; import android.app.ActionBar; import android.app.AlertDialog; @@ -27,14 +23,8 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.IntentSender.SendIntentException; import android.content.Intent; -import android.content.SharedPreferences; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; import android.support.v4.widget.SlidingPaneLayout; import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener; -import android.util.DisplayMetrics; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; @@ -46,7 +36,6 @@ import android.widget.CheckBox; import android.widget.ListView; import android.widget.PopupMenu; import android.widget.PopupMenu.OnMenuItemClickListener; -import android.widget.ImageView; import android.widget.Toast; public class ConversationActivity extends XmppActivity { @@ -75,8 +64,6 @@ public class ConversationActivity extends XmppActivity { private ListView listView; private boolean paneShouldBeOpen = true; - private boolean useSubject = true; - private boolean showLastseen = false; private ArrayAdapter<Conversation> listAdapter; private OnConversationUpdate onConvChanged = new OnConversationUpdate() { @@ -108,7 +95,6 @@ public class ConversationActivity extends XmppActivity { }; protected ConversationActivity activity = this; - private DisplayMetrics metrics; private Toast prepareImageToast; private Uri pendingImageUri = null; @@ -139,9 +125,6 @@ public class ConversationActivity extends XmppActivity { @Override protected void onCreate(Bundle savedInstanceState) { - - metrics = getResources().getDisplayMetrics(); - super.onCreate(savedInstanceState); setContentView(R.layout.fragment_conversations_overview); @@ -196,8 +179,7 @@ public class ConversationActivity extends XmppActivity { if (ab != null) { ab.setDisplayHomeAsUpEnabled(true); ab.setHomeButtonEnabled(true); - ab.setTitle(getSelectedConversation().getName( - useSubject)); + ab.setTitle(getSelectedConversation().getName()); } invalidateOptionsMenu(); if (!getSelectedConversation().isRead()) { @@ -233,6 +215,7 @@ public class ConversationActivity extends XmppActivity { MenuItem menuAdd = (MenuItem) menu.findItem(R.id.action_add); MenuItem menuInviteContact = (MenuItem) menu .findItem(R.id.action_invite); + MenuItem menuMute = (MenuItem) menu.findItem(R.id.action_mute); if ((spl.isOpen() && (spl.isSlideable()))) { menuArchive.setVisible(false); @@ -242,6 +225,7 @@ public class ConversationActivity extends XmppActivity { menuInviteContact.setVisible(false); menuAttach.setVisible(false); menuClearHistory.setVisible(false); + menuMute.setVisible(false); } else { menuAdd.setVisible(!spl.isSlideable()); if (this.getSelectedConversation() != null) { @@ -482,6 +466,9 @@ public class ConversationActivity extends XmppActivity { case R.id.action_clear_history: clearHistoryDialog(getSelectedConversation()); break; + case R.id.action_mute: + muteConversationDialog(getSelectedConversation()); + break; default: break; } @@ -523,6 +510,31 @@ public class ConversationActivity extends XmppActivity { }); builder.create().show(); } + + protected void muteConversationDialog(final Conversation conversation) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.disable_notifications_for_this_conversation); + final int[] durations = getResources().getIntArray(R.array.mute_options_durations); + builder.setItems(R.array.mute_options_descriptions, new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + long till; + if (durations[which]==-1) { + till = Long.MAX_VALUE; + } else { + till = SystemClock.elapsedRealtime() + (durations[which] * 1000); + } + conversation.setMutedTill(till); + ConversationFragment selectedFragment = (ConversationFragment) getFragmentManager() + .findFragmentByTag("conversation"); + if (selectedFragment!=null) { + selectedFragment.updateMessages(); + } + } + }); + builder.create().show(); + } protected ConversationFragment swapConversationFragment() { ConversationFragment selectedFragment = new ConversationFragment(); @@ -576,10 +588,6 @@ public class ConversationActivity extends XmppActivity { @Override public void onStart() { super.onStart(); - SharedPreferences preferences = PreferenceManager - .getDefaultSharedPreferences(this); - this.useSubject = preferences.getBoolean("use_subject_in_muc", true); - this.showLastseen = preferences.getBoolean("show_last_seen", false); if (this.xmppConnectionServiceBound) { this.onBackendConnected(); } @@ -755,15 +763,6 @@ public class ConversationActivity extends XmppActivity { listView.invalidateViews(); } - public boolean showLastseen() { - if (getSelectedConversation() == null) { - return false; - } else { - return this.showLastseen - && getSelectedConversation().getMode() == Conversation.MODE_SINGLE; - } - } - public void runIntent(PendingIntent pi, int requestCode) { try { this.startIntentSenderForResult(pi.getIntentSender(), requestCode, @@ -772,105 +771,6 @@ public class ConversationActivity extends XmppActivity { } } - class BitmapWorkerTask extends AsyncTask<Message, Void, Bitmap> { - private final WeakReference<ImageView> imageViewReference; - private Message message = null; - - public BitmapWorkerTask(ImageView imageView) { - imageViewReference = new WeakReference<ImageView>(imageView); - } - - @Override - protected Bitmap doInBackground(Message... params) { - message = params[0]; - try { - return xmppConnectionService.getFileBackend().getThumbnail( - message, (int) (metrics.density * 288), false); - } catch (FileNotFoundException e) { - return null; - } - } - - @Override - protected void onPostExecute(Bitmap bitmap) { - if (imageViewReference != null && bitmap != null) { - final ImageView imageView = imageViewReference.get(); - if (imageView != null) { - imageView.setImageBitmap(bitmap); - imageView.setBackgroundColor(0x00000000); - } - } - } - } - - public void loadBitmap(Message message, ImageView imageView) { - Bitmap bm; - try { - bm = xmppConnectionService.getFileBackend().getThumbnail(message, - (int) (metrics.density * 288), true); - } catch (FileNotFoundException e) { - bm = null; - } - if (bm != null) { - imageView.setImageBitmap(bm); - imageView.setBackgroundColor(0x00000000); - } else { - if (cancelPotentialWork(message, imageView)) { - imageView.setBackgroundColor(0xff333333); - final BitmapWorkerTask task = new BitmapWorkerTask(imageView); - final AsyncDrawable asyncDrawable = new AsyncDrawable( - getResources(), null, task); - imageView.setImageDrawable(asyncDrawable); - try { - task.execute(message); - } catch (RejectedExecutionException e) { - return; - } - } - } - } - - public static boolean cancelPotentialWork(Message message, - ImageView imageView) { - final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView); - - if (bitmapWorkerTask != null) { - final Message oldMessage = bitmapWorkerTask.message; - if (oldMessage == null || message != oldMessage) { - bitmapWorkerTask.cancel(true); - } else { - return false; - } - } - return true; - } - - private static BitmapWorkerTask getBitmapWorkerTask(ImageView imageView) { - if (imageView != null) { - final Drawable drawable = imageView.getDrawable(); - if (drawable instanceof AsyncDrawable) { - final AsyncDrawable asyncDrawable = (AsyncDrawable) drawable; - return asyncDrawable.getBitmapWorkerTask(); - } - } - return null; - } - - static class AsyncDrawable extends BitmapDrawable { - private final WeakReference<BitmapWorkerTask> bitmapWorkerTaskReference; - - public AsyncDrawable(Resources res, Bitmap bitmap, - BitmapWorkerTask bitmapWorkerTask) { - super(res, bitmap); - bitmapWorkerTaskReference = new WeakReference<BitmapWorkerTask>( - bitmapWorkerTask); - } - - public BitmapWorkerTask getBitmapWorkerTask() { - return bitmapWorkerTaskReference.get(); - } - } - public void encryptTextMessage(Message message) { xmppConnectionService.getPgpEngine().encrypt(message, new UiCallback<Message>() { diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java index 77049e56..4ebeea19 100644 --- a/src/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/eu/siacs/conversations/ui/ConversationFragment.java @@ -15,6 +15,7 @@ import eu.siacs.conversations.entities.MucOptions; import eu.siacs.conversations.services.XmppConnectionService; import eu.siacs.conversations.ui.EditMessage.OnEnterPressed; import eu.siacs.conversations.ui.XmppActivity.OnPresenceSelected; +import eu.siacs.conversations.ui.XmppActivity.OnValueEdited; import eu.siacs.conversations.ui.adapter.MessageAdapter; import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureClicked; import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureLongClicked; @@ -26,10 +27,8 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentSender; -import android.content.SharedPreferences; import android.content.IntentSender.SendIntentException; import android.os.Bundle; -import android.preference.PreferenceManager; import android.text.Editable; import android.text.Selection; import android.view.Gravity; @@ -67,7 +66,6 @@ public class ConversationFragment extends Fragment { private TextView snackbarMessage; private TextView snackbarAction; - private boolean useSubject = true; private boolean messagesLoaded = false; private IntentSender askForPassphraseIntent = null; @@ -131,6 +129,25 @@ public class ConversationFragment extends Fragment { } }; + private OnClickListener enterPassword = new OnClickListener() { + + @Override + public void onClick(View v) { + MucOptions muc = conversation.getMucOptions(); + String password = muc.getPassword(); + if (password==null) { + password = ""; + } + activity.quickEdit(password, new OnValueEdited() { + + @Override + public void onValueEdited(String value) { + activity.xmppConnectionService.providePasswordForMuc(conversation,value); + } + }); + } + }; + private OnScrollListener mOnScrollListener = new OnScrollListener() { @Override @@ -290,10 +307,12 @@ public class ConversationFragment extends Fragment { if (oldString.isEmpty() || mEditMessage.getSelectionStart() == 0) { mEditMessage.getText().insert(0, nick + ": "); } else { - if (mEditMessage.getText().charAt(mEditMessage.getSelectionStart()-1)!=' ') { - nick = " "+nick; + if (mEditMessage.getText().charAt( + mEditMessage.getSelectionStart() - 1) != ' ') { + nick = " " + nick; } - mEditMessage.getText().insert(mEditMessage.getSelectionStart(), nick + " "); + mEditMessage.getText().insert(mEditMessage.getSelectionStart(), + nick + " "); } } @@ -301,9 +320,6 @@ public class ConversationFragment extends Fragment { public void onStart() { super.onStart(); this.activity = (ConversationActivity) getActivity(); - SharedPreferences preferences = PreferenceManager - .getDefaultSharedPreferences(activity); - this.useSubject = preferences.getBoolean("use_subject_in_muc", true); if (activity.xmppConnectionServiceBound) { this.onBackendConnected(); } @@ -343,8 +359,7 @@ public class ConversationFragment extends Fragment { activity.getSlidingPaneLayout().closePane(); activity.getActionBar().setDisplayHomeAsUpEnabled(true); activity.getActionBar().setHomeButtonEnabled(true); - activity.getActionBar().setTitle( - conversation.getName(useSubject)); + activity.getActionBar().setTitle(conversation.getName()); activity.invalidateOptionsMenu(); } } @@ -390,7 +405,17 @@ public class ConversationFragment extends Fragment { final ConversationActivity activity = (ConversationActivity) getActivity(); if (this.conversation != null) { final Contact contact = this.conversation.getContact(); - if (!contact.showInRoster() + if (this.conversation.isMuted()) { + showSnackbar(R.string.notifications_disabled, R.string.enable, + new OnClickListener() { + + @Override + public void onClick(View v) { + conversation.setMutedTill(0); + updateMessages(); + } + }); + } else if (!contact.showInRoster() && contact .getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) { showSnackbar(R.string.contact_added_you, R.string.add_back, @@ -432,12 +457,20 @@ public class ConversationFragment extends Fragment { } else { if (!conversation.getMucOptions().online() && conversation.getAccount().getStatus() == Account.STATUS_ONLINE) { - if (conversation.getMucOptions().getError() == MucOptions.ERROR_NICK_IN_USE) { + int error = conversation.getMucOptions().getError(); + switch (error) { + case MucOptions.ERROR_NICK_IN_USE: showSnackbar(R.string.nick_in_use, R.string.edit, clickToMuc); - } else if (conversation.getMucOptions().getError() == MucOptions.ERROR_ROOM_NOT_FOUND) { + break; + case MucOptions.ERROR_ROOM_NOT_FOUND: showSnackbar(R.string.conference_not_found, R.string.leave, leaveMuc); + case MucOptions.ERROR_PASSWORD_REQUIRED: + showSnackbar(R.string.conference_requires_password, + R.string.enter_password, enterPassword); + default: + break; } } } @@ -445,7 +478,6 @@ public class ConversationFragment extends Fragment { updateChatMsgHint(); if (!activity.shouldPaneBeOpen()) { activity.xmppConnectionService.markRead(conversation); - // TODO update notifications UIHelper.updateNotification(getActivity(), activity.getConversationList(), null, false); activity.updateConversationList(); @@ -491,6 +523,7 @@ public class ConversationFragment extends Fragment { .getOtrFingerprints(); if ((latestEncryption == Message.ENCRYPTION_OTR) && (conversation.hasValidOtrSession() + && (!conversation.isMuted()) && (conversation.getOtrSession().getSessionStatus() == SessionStatus.ENCRYPTED) && (!knownFingerprints .contains(conversation.getOtrFingerprint())))) { showSnackbar(R.string.unknown_otr_fingerprint, R.string.verify, diff --git a/src/eu/siacs/conversations/ui/ShareWithActivity.java b/src/eu/siacs/conversations/ui/ShareWithActivity.java index 461aaec4..93831654 100644 --- a/src/eu/siacs/conversations/ui/ShareWithActivity.java +++ b/src/eu/siacs/conversations/ui/ShareWithActivity.java @@ -1,37 +1,41 @@ package eu.siacs.conversations.ui; import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; import java.util.List; -import java.util.Set; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; -import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; -import eu.siacs.conversations.utils.UIHelper; +import eu.siacs.conversations.ui.adapter.ConversationAdapter; import android.app.PendingIntent; import android.content.Intent; -import android.content.SharedPreferences; -import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; -import android.preference.PreferenceManager; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; -import android.view.View.OnClickListener; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ListView; import android.widget.Toast; public class ShareWithActivity extends XmppActivity { + + private class Share { + public Uri uri; + public String account; + public String contact; + public String text; + } + + private Share share; - private LinearLayout conversations; - private LinearLayout contacts; - private boolean isImage = false; + private static final int REQUEST_START_NEW_CONVERSATION = 0x0501; + private ListView mListView; + private List<Conversation> mConversations = new ArrayList<Conversation>(); private UiCallback<Message> attachImageCallback = new UiCallback<Message>() { @@ -52,115 +56,107 @@ public class ShareWithActivity extends XmppActivity { } }; + + protected void onActivityResult(int requestCode, int resultCode, + final Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_START_NEW_CONVERSATION + && resultCode == RESULT_OK) { + share.contact = data.getStringExtra("contact"); + share.account = data.getStringExtra("account"); + Log.d(Config.LOGTAG,"contact: "+share.contact+" account:"+share.account); + } + if (xmppConnectionServiceBound && share != null && share.contact != null && share.account != null) { + share(); + } + } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getActionBar().setDisplayHomeAsUpEnabled(false); + getActionBar().setHomeButtonEnabled(false); + setContentView(R.layout.share_with); setTitle(getString(R.string.title_activity_sharewith)); - contacts = (LinearLayout) findViewById(R.id.contacts); - conversations = (LinearLayout) findViewById(R.id.conversations); + mListView = (ListView) findViewById(R.id.choose_conversation_list); + ConversationAdapter mAdapter = new ConversationAdapter(this, + this.mConversations); + mListView.setAdapter(mAdapter); + mListView.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> arg0, View arg1, + int position, long arg3) { + Conversation conversation = mConversations.get(position); + if (conversation.getMode() == Conversation.MODE_SINGLE) { + share(mConversations.get(position)); + } + } + }); + + this.share = new Share(); } - - public View createContactView(String name, String msgTxt, Bitmap bm) { - View view = (View) getLayoutInflater().inflate(R.layout.contact, null); - view.setBackgroundResource(R.drawable.greybackground); - TextView contactName = (TextView) view - .findViewById(R.id.contact_display_name); - contactName.setText(name); - TextView msg = (TextView) view.findViewById(R.id.contact_jid); - msg.setText(msgTxt); - ImageView imageView = (ImageView) view.findViewById(R.id.contact_photo); - imageView.setImageBitmap(bm); - return view; + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.share_with, menu); + return true; } @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_add: + Intent intent = new Intent(getApplicationContext(), + ChooseContactActivity.class); + startActivityForResult(intent, REQUEST_START_NEW_CONVERSATION); + return true; + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onStart() { + super.onStart(); + if (getIntent().getType() != null && getIntent().getType() + .startsWith("image/")) { + this.share.uri = (Uri) getIntent().getParcelableExtra( + Intent.EXTRA_STREAM); + } else { + this.share.text = getIntent().getStringExtra(Intent.EXTRA_TEXT); + } + } + + @Override void onBackendConnected() { - this.isImage = (getIntent().getType() != null && getIntent().getType() - .startsWith("image/")); - SharedPreferences preferences = PreferenceManager - .getDefaultSharedPreferences(this); - boolean useSubject = preferences.getBoolean("use_subject_in_muc", true); - - Set<Contact> displayedContacts = new HashSet<Contact>(); - conversations.removeAllViews(); - List<Conversation> convList = new ArrayList<Conversation>(); - xmppConnectionService.populateWithOrderedConversations(convList); - Collections.sort(convList, new Comparator<Conversation>() { - @Override - public int compare(Conversation lhs, Conversation rhs) { - return (int) (rhs.getLatestMessage().getTimeSent() - lhs - .getLatestMessage().getTimeSent()); - } - }); - for (final Conversation conversation : convList) { - if (!isImage || conversation.getMode() == Conversation.MODE_SINGLE) { - View view = createContactView( - conversation.getName(useSubject), - conversation.getLatestMessage().getBody().trim(), - UIHelper.getContactPicture(conversation, 48, - this.getApplicationContext(), false)); - view.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - share(conversation); - } - }); - conversations.addView(view); - displayedContacts.add(conversation.getContact()); - } + if (xmppConnectionServiceBound && share != null && share.contact != null && share.account != null) { + share(); + return; } - contacts.removeAllViews(); - List<Contact> contactsList = new ArrayList<Contact>(); - for (Account account : xmppConnectionService.getAccounts()) { - for (Contact contact : account.getRoster().getContacts()) { - if (!displayedContacts.contains(contact) - && (contact.showInRoster())) { - contactsList.add(contact); - } + xmppConnectionService.populateWithOrderedConversations(mConversations, + false); + for (Conversation conversation : mConversations) { + if (conversation.getMode() == Conversation.MODE_MULTI) { + mConversations.remove(conversation); } } - - Collections.sort(contactsList, new Comparator<Contact>() { - @Override - public int compare(Contact lhs, Contact rhs) { - return lhs.getDisplayName().compareToIgnoreCase( - rhs.getDisplayName()); - } - }); - - for (int i = 0; i < contactsList.size(); ++i) { - final Contact con = contactsList.get(i); - View view = createContactView( - con.getDisplayName(), - con.getJid(), - UIHelper.getContactPicture(con, 48, - this.getApplicationContext(), false)); - view.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - Conversation conversation = xmppConnectionService - .findOrCreateConversation(con.getAccount(), - con.getJid(), false); - share(conversation); - } - }); - contacts.addView(view); + } + + private void share() { + Account account = xmppConnectionService.findAccountByJid(share.account); + if (account==null) { + return; } + Conversation conversation = xmppConnectionService.findOrCreateConversation(account, share.contact, false); + share(conversation); } private void share(final Conversation conversation) { - String sharedText = null; - if (isImage) { - final Uri uri = (Uri) getIntent().getParcelableExtra( - Intent.EXTRA_STREAM); + if (share.uri != null) { selectPresence(conversation, new OnPresenceSelected() { @Override public void onPresenceSelected() { @@ -168,7 +164,7 @@ public class ShareWithActivity extends XmppActivity { getText(R.string.preparing_image), Toast.LENGTH_LONG).show(); ShareWithActivity.this.xmppConnectionService - .attachImageToConversation(conversation, uri, + .attachImageToConversation(conversation, share.uri, attachImageCallback); switchToConversation(conversation, null, true); finish(); @@ -176,8 +172,7 @@ public class ShareWithActivity extends XmppActivity { }); } else { - sharedText = getIntent().getStringExtra(Intent.EXTRA_TEXT); - switchToConversation(conversation, sharedText, true); + switchToConversation(conversation,this.share.text, true); finish(); } diff --git a/src/eu/siacs/conversations/ui/XmppActivity.java b/src/eu/siacs/conversations/ui/XmppActivity.java index 11376eb7..78482658 100644 --- a/src/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/eu/siacs/conversations/ui/XmppActivity.java @@ -1,5 +1,9 @@ package eu.siacs.conversations.ui; +import java.io.FileNotFoundException; +import java.lang.ref.WeakReference; +import java.util.concurrent.RejectedExecutionException; + import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; @@ -19,16 +23,23 @@ import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.IntentSender.SendIntentException; +import android.content.res.Resources; import android.content.Intent; import android.content.ServiceConnection; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.net.Uri; +import android.os.AsyncTask; import android.os.Bundle; import android.os.IBinder; +import android.util.DisplayMetrics; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; +import android.widget.ImageView; public abstract class XmppActivity extends Activity { @@ -44,6 +55,8 @@ public abstract class XmppActivity extends Activity { protected int mWarningTextColor; protected int mPrimaryColor; + private DisplayMetrics metrics; + protected interface OnValueEdited { public void onValueEdited(String value); } @@ -163,6 +176,7 @@ public abstract class XmppActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + metrics = getResources().getDisplayMetrics(); ExceptionHelper.init(getApplicationContext()); mPrimaryTextColor = getResources().getColor(R.color.primarytext); mSecondaryTextColor = getResources().getColor(R.color.secondarytext); @@ -370,7 +384,7 @@ public abstract class XmppActivity extends Activity { xmppConnectionService.invite(conversation, contactJid); } Log.d(Config.LOGTAG, "inviting " + contactJid + " to " - + conversation.getName(true)); + + conversation.getName()); } } @@ -389,4 +403,103 @@ public abstract class XmppActivity extends Activity { public int getPrimaryColor() { return this.mPrimaryColor; } + + class BitmapWorkerTask extends AsyncTask<Message, Void, Bitmap> { + private final WeakReference<ImageView> imageViewReference; + private Message message = null; + + public BitmapWorkerTask(ImageView imageView) { + imageViewReference = new WeakReference<ImageView>(imageView); + } + + @Override + protected Bitmap doInBackground(Message... params) { + message = params[0]; + try { + return xmppConnectionService.getFileBackend().getThumbnail( + message, (int) (metrics.density * 288), false); + } catch (FileNotFoundException e) { + return null; + } + } + + @Override + protected void onPostExecute(Bitmap bitmap) { + if (imageViewReference != null && bitmap != null) { + final ImageView imageView = imageViewReference.get(); + if (imageView != null) { + imageView.setImageBitmap(bitmap); + imageView.setBackgroundColor(0x00000000); + } + } + } + } + + public void loadBitmap(Message message, ImageView imageView) { + Bitmap bm; + try { + bm = xmppConnectionService.getFileBackend().getThumbnail(message, + (int) (metrics.density * 288), true); + } catch (FileNotFoundException e) { + bm = null; + } + if (bm != null) { + imageView.setImageBitmap(bm); + imageView.setBackgroundColor(0x00000000); + } else { + if (cancelPotentialWork(message, imageView)) { + imageView.setBackgroundColor(0xff333333); + final BitmapWorkerTask task = new BitmapWorkerTask(imageView); + final AsyncDrawable asyncDrawable = new AsyncDrawable( + getResources(), null, task); + imageView.setImageDrawable(asyncDrawable); + try { + task.execute(message); + } catch (RejectedExecutionException e) { + return; + } + } + } + } + + public static boolean cancelPotentialWork(Message message, + ImageView imageView) { + final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView); + + if (bitmapWorkerTask != null) { + final Message oldMessage = bitmapWorkerTask.message; + if (oldMessage == null || message != oldMessage) { + bitmapWorkerTask.cancel(true); + } else { + return false; + } + } + return true; + } + + private static BitmapWorkerTask getBitmapWorkerTask(ImageView imageView) { + if (imageView != null) { + final Drawable drawable = imageView.getDrawable(); + if (drawable instanceof AsyncDrawable) { + final AsyncDrawable asyncDrawable = (AsyncDrawable) drawable; + return asyncDrawable.getBitmapWorkerTask(); + } + } + return null; + } + + static class AsyncDrawable extends BitmapDrawable { + private final WeakReference<BitmapWorkerTask> bitmapWorkerTaskReference; + + public AsyncDrawable(Resources res, Bitmap bitmap, + BitmapWorkerTask bitmapWorkerTask) { + super(res, bitmap); + bitmapWorkerTaskReference = new WeakReference<BitmapWorkerTask>( + bitmapWorkerTask); + } + + public BitmapWorkerTask getBitmapWorkerTask() { + return bitmapWorkerTaskReference.get(); + } + } } diff --git a/src/eu/siacs/conversations/ui/adapter/ConversationAdapter.java b/src/eu/siacs/conversations/ui/adapter/ConversationAdapter.java index ecae6231..6eb9846a 100644 --- a/src/eu/siacs/conversations/ui/adapter/ConversationAdapter.java +++ b/src/eu/siacs/conversations/ui/adapter/ConversationAdapter.java @@ -2,10 +2,12 @@ package eu.siacs.conversations.ui.adapter; import java.util.List; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; import eu.siacs.conversations.ui.ConversationActivity; +import eu.siacs.conversations.ui.XmppActivity; import eu.siacs.conversations.utils.UIHelper; import android.content.Context; import android.graphics.Color; @@ -19,9 +21,9 @@ import android.widget.TextView; public class ConversationAdapter extends ArrayAdapter<Conversation> { - ConversationActivity activity; + private XmppActivity activity; - public ConversationAdapter(ConversationActivity activity, + public ConversationAdapter(XmppActivity activity, List<Conversation> conversations) { super(activity, 0, conversations); this.activity = activity; @@ -36,18 +38,21 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> { parent, false); } Conversation conv = getItem(position); - if (!activity.getSlidingPaneLayout().isSlideable()) { - if (conv == activity.getSelectedConversation()) { - view.setBackgroundColor(0xffdddddd); + if (this.activity instanceof ConversationActivity) { + ConversationActivity activity = (ConversationActivity) this.activity; + if (!activity.getSlidingPaneLayout().isSlideable()) { + if (conv == activity.getSelectedConversation()) { + view.setBackgroundColor(0xffdddddd); + } else { + view.setBackgroundColor(Color.TRANSPARENT); + } } else { view.setBackgroundColor(Color.TRANSPARENT); } - } else { - view.setBackgroundColor(Color.TRANSPARENT); } TextView convName = (TextView) view .findViewById(R.id.conversation_name); - convName.setText(conv.getName(true)); + convName.setText(conv.getName()); TextView convLastMsg = (TextView) view .findViewById(R.id.conversation_lastmsg); ImageView imagePreview = (ImageView) view @@ -59,7 +64,10 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> { || latestMessage.getType() == Message.TYPE_PRIVATE) { if ((latestMessage.getEncryption() != Message.ENCRYPTION_PGP) && (latestMessage.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED)) { - convLastMsg.setText(UIHelper.transformAsciiEmoticons(conv.getLatestMessage().getBody())); + String body = Config.PARSE_EMOTICONS ? UIHelper + .transformAsciiEmoticons(latestMessage.getBody()) + : latestMessage.getBody(); + convLastMsg.setText(body); } else { convLastMsg.setText(activity .getText(R.string.encrypted_message_received)); diff --git a/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java index 553584cd..ccf25a33 100644 --- a/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -3,6 +3,7 @@ package eu.siacs.conversations.ui.adapter; import java.util.HashMap; import java.util.List; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; @@ -215,7 +216,10 @@ public class MessageAdapter extends ArrayAdapter<Message> { viewHolder.messageBody.setVisibility(View.VISIBLE); if (message.getBody() != null) { if (message.getType() != Message.TYPE_PRIVATE) { - viewHolder.messageBody.setText(UIHelper.transformAsciiEmoticons(message.getMergedBody())); + String body = Config.PARSE_EMOTICONS ? UIHelper + .transformAsciiEmoticons(message.getMergedBody()) + : message.getMergedBody(); + viewHolder.messageBody.setText(body); } else { String privateMarker; if (message.getStatus() <= Message.STATUS_RECEIVED) { @@ -377,7 +381,7 @@ public class MessageAdapter extends ArrayAdapter<Message> { @Override public void onClick(View v) { String name = item.getConversation() - .getName(true); + .getName(); String read = getContext() .getString( R.string.contact_has_read_up_to_this_point, diff --git a/src/eu/siacs/conversations/utils/UIHelper.java b/src/eu/siacs/conversations/utils/UIHelper.java index 768bc063..896bdb7d 100644 --- a/src/eu/siacs/conversations/utils/UIHelper.java +++ b/src/eu/siacs/conversations/utils/UIHelper.java @@ -215,7 +215,7 @@ public class UIHelper { List<User> members = conversation.getMucOptions().getUsers(); if (members.size() == 0) { return getUnknownContactPicture( - new String[] { conversation.getName(false) }, size, + new String[] { conversation.getName() }, size, bgColor, fgColor); } ArrayList<String> names = new ArrayList<String>(); @@ -332,7 +332,6 @@ public class UIHelper { SharedPreferences preferences = PreferenceManager .getDefaultSharedPreferences(context); - boolean useSubject = preferences.getBoolean("use_subject_in_muc", true); boolean showNofifications = preferences.getBoolean("show_notification", true); boolean vibrate = preferences.getBoolean("vibrate_on_notification", @@ -381,7 +380,7 @@ public class UIHelper { Conversation conversation = unread.get(0); targetUuid = conversation.getUuid(); mBuilder.setLargeIcon(conversation.getImage(context, 64)); - mBuilder.setContentTitle(conversation.getName(useSubject)); + mBuilder.setContentTitle(conversation.getName()); if (notify) { mBuilder.setTicker(conversation.getLatestMessage() .getReadableBody(context)); @@ -413,12 +412,12 @@ public class UIHelper { for (int i = 0; i < unread.size(); ++i) { targetUuid = unread.get(i).getUuid(); if (i < unread.size() - 1) { - names.append(unread.get(i).getName(useSubject) + ", "); + names.append(unread.get(i).getName() + ", "); } else { - names.append(unread.get(i).getName(useSubject)); + names.append(unread.get(i).getName()); } style.addLine(Html.fromHtml("<b>" - + unread.get(i).getName(useSubject) + + unread.get(i).getName() + "</b> " + unread.get(i).getLatestMessage() .getReadableBody(context))); diff --git a/src/eu/siacs/conversations/utils/XmlHelper.java b/src/eu/siacs/conversations/utils/XmlHelper.java new file mode 100644 index 00000000..4dee07cf --- /dev/null +++ b/src/eu/siacs/conversations/utils/XmlHelper.java @@ -0,0 +1,12 @@ +package eu.siacs.conversations.utils; + +public class XmlHelper { + public static String encodeEntities(String content) { + content = content.replace("&", "&"); + content = content.replace("<", "<"); + content = content.replace(">", ">"); + content = content.replace("\"", """); + content = content.replace("'", "'"); + return content; + } +} diff --git a/src/eu/siacs/conversations/xml/Element.java b/src/eu/siacs/conversations/xml/Element.java index d23a81ba..4e11ee2c 100644 --- a/src/eu/siacs/conversations/xml/Element.java +++ b/src/eu/siacs/conversations/xml/Element.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Hashtable; import java.util.List; +import eu.siacs.conversations.utils.XmlHelper; + public class Element { protected String name; protected Hashtable<String, String> attributes = new Hashtable<String, String>(); @@ -116,7 +118,7 @@ public class Element { startTag.setAtttributes(this.attributes); elementOutput.append(startTag); if (content != null) { - elementOutput.append(encodeEntities(content)); + elementOutput.append(XmlHelper.encodeEntities(content)); } else { for (Element child : children) { elementOutput.append(child.toString()); @@ -132,24 +134,15 @@ public class Element { return name; } - private String encodeEntities(String content) { - content = content.replace("&", "&"); - content = content.replace("<", "<"); - content = content.replace(">", ">"); - content = content.replace("\"", """); - content = content.replace("'", "'"); - return content; - } - public void clearChildren() { this.children.clear(); } public void setAttribute(String name, long value) { - this.setAttribute(name, "" + value); + this.setAttribute(name, Long.toString(value)); } public void setAttribute(String name, int value) { - this.setAttribute(name, "" + value); + this.setAttribute(name, Integer.toString(value)); } } diff --git a/src/eu/siacs/conversations/xml/Tag.java b/src/eu/siacs/conversations/xml/Tag.java index 2b393397..b9ef979f 100644 --- a/src/eu/siacs/conversations/xml/Tag.java +++ b/src/eu/siacs/conversations/xml/Tag.java @@ -5,6 +5,8 @@ import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; +import eu.siacs.conversations.utils.XmlHelper; + public class Tag { public static final int NO = -1; public static final int START = 0; @@ -85,7 +87,7 @@ public class Tag { tagOutput.append(' '); tagOutput.append(entry.getKey()); tagOutput.append("=\""); - tagOutput.append(entry.getValue()); + tagOutput.append(XmlHelper.encodeEntities(entry.getValue())); tagOutput.append('"'); } } diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index ae6b6f72..36920929 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -763,8 +763,13 @@ public class XmppConnection implements Runnable { }); } - private void processStreamError(Tag currentTag) { - Log.d(Config.LOGTAG, "processStreamError"); + private void processStreamError(Tag currentTag) throws XmlPullParserException, IOException { + Element streamError = tagReader.readElement(currentTag); + if (streamError!=null && streamError.hasChild("conflict")) { + String resource = account.getResource().split("\\.")[0]; + account.setResource(resource+"."+nextRandomId()); + Log.d(Config.LOGTAG,account.getJid()+": switching resource due to conflict ("+account.getResource()+")"); + } } private void sendStartStream() throws IOException { diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java b/src/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java index 2874b9a5..3e7c7b68 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java +++ b/src/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java @@ -117,9 +117,9 @@ public class JingleCandidate { Element element = new Element("candidate"); element.setAttribute("cid", this.getCid()); element.setAttribute("host", this.getHost()); - element.setAttribute("port", "" + this.getPort()); + element.setAttribute("port", Integer.toString(this.getPort())); element.setAttribute("jid", this.getJid()); - element.setAttribute("priority", "" + this.getPriority()); + element.setAttribute("priority", Integer.toString(this.getPriority())); if (this.getType() == TYPE_DIRECT) { element.setAttribute("type", "direct"); } else if (this.getType() == TYPE_PROXY) { diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java index 317838fd..a5cc2c49 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java +++ b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java @@ -95,7 +95,7 @@ public class JingleConnection { BitmapFactory.decodeFile(file.getAbsolutePath(), options); int imageHeight = options.outHeight; int imageWidth = options.outWidth; - message.setBody("" + file.getSize() + "," + imageWidth + "," + message.setBody(Long.toString(file.getSize()) + ',' + imageWidth + ',' + imageHeight); mXmppConnectionService.databaseBackend.createMessage(message); mXmppConnectionService.markMessage(message, @@ -302,7 +302,7 @@ public class JingleConnection { } if (supportedFile) { long size = Long.parseLong(fileSize.getContent()); - message.setBody("" + size); + message.setBody(Long.toString(size)); conversation.getMessages().add(message); if (size <= this.mJingleConnectionManager .getAutoAcceptFileSize()) { @@ -630,7 +630,7 @@ public class JingleConnection { this.transportId = this.mJingleConnectionManager.nextRandomId(); content.setTransportId(this.transportId); content.ibbTransport().setAttribute("block-size", - "" + this.ibbBlockSize); + Integer.toString(this.ibbBlockSize)); packet.setContent(content); this.sendJinglePacket(packet); } @@ -652,7 +652,7 @@ public class JingleConnection { Content content = new Content("initiator", "a-file-offer"); content.setTransportId(this.transportId); content.ibbTransport().setAttribute("block-size", - "" + this.ibbBlockSize); + Integer.toString(this.ibbBlockSize)); answer.setContent(content); this.sendJinglePacket(answer); return true; diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java b/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java index 331b53de..cd87552b 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java +++ b/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java @@ -59,7 +59,7 @@ public class JingleInbandTransport extends JingleTransport { Element open = iq.addChild("open", "http://jabber.org/protocol/ibb"); open.setAttribute("sid", this.sessionId); open.setAttribute("stanza", "iq"); - open.setAttribute("block-size", "" + this.blockSize); + open.setAttribute("block-size", Integer.toString(this.blockSize)); this.account.getXmppConnection().sendIqPacket(iq, new OnIqPacketReceived() { @@ -134,8 +134,8 @@ public class JingleInbandTransport extends JingleTransport { iq.setTo(this.counterpart); Element data = iq.addChild("data", "http://jabber.org/protocol/ibb"); - data.setAttribute("seq", "" + this.seq); - data.setAttribute("block-size", "" + this.blockSize); + data.setAttribute("seq", Integer.toString(this.seq)); + data.setAttribute("block-size", Integer.toString(this.blockSize)); data.setAttribute("sid", this.sessionId); data.setContent(base64); this.account.getXmppConnection().sendIqPacket(iq, diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java b/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java index e476decc..1a8ab9dd 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java +++ b/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java @@ -58,10 +58,10 @@ public class JingleSocks5Transport extends JingleTransport { byte[] reply = new byte[2]; outputStream.write(login); inputStream.read(reply); + final String connect = Character.toString('\u0005') + '\u0001' + '\u0000' + + '\u0003' + '\u0028' + destination + '\u0000' + + '\u0000'; if (Arrays.equals(reply, expectedReply)) { - String connect = "" + '\u0005' + '\u0001' + '\u0000' - + '\u0003' + '\u0028' + destination + '\u0000' - + '\u0000'; outputStream.write(connect.getBytes()); byte[] result = new byte[2]; inputStream.read(result); diff --git a/src/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java b/src/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java index 1e8e3fd6..d19e6dfd 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java +++ b/src/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java @@ -30,7 +30,7 @@ public class Content extends Element { "urn:xmpp:jingle:apps:file-transfer:3"); Element offer = description.addChild("offer"); Element file = offer.addChild("file"); - file.addChild("size").setContent("" + actualFile.getSize()); + file.addChild("size").setContent(Long.toString(actualFile.getSize())); if (otr) { file.addChild("name").setContent(actualFile.getName() + ".otr"); } else { diff --git a/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java b/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java index c936891c..f93b5d87 100644 --- a/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java +++ b/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java @@ -7,7 +7,7 @@ public class AckPacket extends AbstractStanza { public AckPacket(int sequence, int smVersion) { super("a"); this.setAttribute("xmlns", "urn:xmpp:sm:" + smVersion); - this.setAttribute("h", "" + sequence); + this.setAttribute("h", Integer.toString(sequence)); } } diff --git a/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java b/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java index df039d5a..9cdcfa5e 100644 --- a/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java +++ b/src/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java @@ -8,7 +8,7 @@ public class ResumePacket extends AbstractStanza { super("resume"); this.setAttribute("xmlns", "urn:xmpp:sm:" + smVersion); this.setAttribute("previd", id); - this.setAttribute("h", "" + sequence); + this.setAttribute("h", Integer.toString(sequence)); } } |