aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBeriain <beriain@bitmessage.ch>2014-05-13 16:46:03 +0200
committerBeriain <beriain@bitmessage.ch>2014-05-13 16:46:03 +0200
commit8d27d0c44a4c35ce4606628eb5a280df4b1a8c5b (patch)
treed5d45d67e14e707446fd0a427cc8f00fc58e8685
parent1150f47addba09889fd64fd6d59d98c115ea71cf (diff)
parent7e667319607aa5ed9fd2a2aa1573c40ffae3a613 (diff)
Merge https://github.com/siacs/Conversations into development
-rw-r--r--res/layout/activity_contact_details.xml15
-rw-r--r--res/values-ca/arrays.xml22
-rw-r--r--res/values-ca/strings.xml119
-rw-r--r--res/values-de/strings.xml59
-rw-r--r--res/values-es/strings.xml28
-rw-r--r--res/values-fr/arrays.xml22
-rw-r--r--res/values-fr/strings.xml86
-rw-r--r--res/values-fr/styles.xml19
-rw-r--r--res/values/strings.xml8
-rw-r--r--res/xml/preferences.xml4
-rw-r--r--src/eu/siacs/conversations/ui/ContactDetailsActivity.java4
-rw-r--r--src/eu/siacs/conversations/xml/TagWriter.java8
-rw-r--r--src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java58
-rw-r--r--src/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java8
14 files changed, 416 insertions, 44 deletions
diff --git a/res/layout/activity_contact_details.xml b/res/layout/activity_contact_details.xml
index ac5f4855..cb001b79 100644
--- a/res/layout/activity_contact_details.xml
+++ b/res/layout/activity_contact_details.xml
@@ -14,7 +14,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
- android:text="Contact Details" />
+ android:text="@string/action_contact_details" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="88dp"
@@ -42,7 +42,6 @@
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:singleLine="true"
- android:text="something@jabber.example.com"
android:textColor="#5b5b5b"
android:textSize="18sp" />
@@ -51,7 +50,6 @@
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="16dp"
- android:text="online"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
@@ -64,13 +62,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
- android:text="Your account" />
+ android:text="@string/your_account" />
<TextView
android:id="@+id/details_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
- android:text="julia@jabber.example.com"
android:textSize="18sp"
android:textColor="#5b5b5b" />
<TextView
@@ -78,13 +75,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
- android:text="Subscription" />
+ android:text="@string/subscriptions" />
<CheckBox
android:id="@+id/details_send_presence"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Send presence updates"
+ android:text="@string/send_presence_updates"
android:textSize="18sp"
android:textColor="#5b5b5b" />
@@ -92,7 +89,7 @@
android:id="@+id/details_receive_presence"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Receive presence updates"
+ android:text="@string/receive_presence_updates"
android:textSize="18sp"
android:textColor="#5b5b5b" />
@@ -112,7 +109,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
- android:text="Keys" />
+ android:text="@string/keys" />
<LinearLayout
android:id="@+id/details_contact_keys"
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
new file mode 100644
index 00000000..0c079329
--- /dev/null
+++ b/res/values-ca/arrays.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <array name="resources">
+ <item>Mòbil</item>
+ <item>Telèfon</item>
+ <item>Tauleta</item>
+ <item>Conversations</item>
+ <item>Android</item>
+ </array>
+ <string-array name="filesizes">
+ <item>mai</item>
+ <item>256 KB</item>
+ <item>512 KB</item>
+ <item>1 MB</item>
+ </string-array>
+ <string-array name="filesizes_values">
+ <item>0</item>
+ <item>262144</item>
+ <item>524288</item>
+ <item>1048576</item>
+ </string-array>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
new file mode 100644
index 00000000..4d7bc6cc
--- /dev/null
+++ b/res/values-ca/strings.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Conversations</string>
+ <string name="action_settings">Preferències</string>
+ <string name="action_add">Nova conversa</string>
+ <string name="action_accounts">Gestionar comptes</string>
+ <string name="action_end_conversation">Finalitzar conversa</string>
+ <string name="action_contact_details">Detalls del contacte</string>
+ <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&#8230;</string>
+ <string name="announce_pgp">Renovar anunci PGP</string>
+ <string name="encrypted_message">Desxifrant missatge. Espera si us plau&#8230;</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="invite_contacts">Convidar contactes</string>
+ <string name="invite_contacts_to_existing">Convidar a conferència existent</string>
+ <string name="new_conference">Crear nova conferència</string>
+ <string name="cancel">Cancel·lar</string>
+ <string name="create_invite">Crear \u0026 Convidar</string>
+ <string name="new_conference_explained">Vols crear una nova conferència amb una adreça generada aleatòriament i convidar als contactes seleccionats a ella?</string>
+ <string name="no_open_mucs">No hi ha conferències existents</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>
+ <string name="send_never">No preguntar de nou</string>
+ <string name="problem_connecting_to_account">No s\'ha pogut connectar al compte</string>
+ <string name="problem_connecting_to_accounts">No s\'ha pogut connectar a múltiples comptes</string>
+ <string name="touch_to_fix">Prem aqui per gestionar els teus comptes</string>
+ <string name="attach_file">Enviar arxiu</string>
+ <string name="not_in_roster">El contacte no està a la teva llista. Vols afegir-lo?</string>
+ <string name="add_contact">Afefgir contacte</string>
+ <string name="send_failed">Error a l\'enviar</string>
+ <string name="send_rejected">rebutjat</string>
+ <string name="receiving_image">Rebent arxiu d\'imatge. Espera si us plau&#8230;</string>
+ <string name="preparing_image">Preparant imatge per enviar</string>
+ <string name="action_clear_history">Netejar historial</string>
+ <string name="clear_conversation_history">Netejar historial de conversa</string>
+ <string name="clear_histor_msg">Vols esborrar tots els missatges d\'aquesta conversa?\n\n<b>Avís:</b> Això no afectarà els missatges desats en altres dispositius o servidors.</string>
+ <string name="delete_messages">Esborrar missatges</string>
+ <string name="also_end_conversation">Finalitzar aquesta conversa més tard</string>
+ <string name="choose_presence">Selecciona recurs del contacte</string>
+ <string name="send_message_to_conference">Enviar missatge a conferència</string>
+ <string name="send_plain_text_message">Enviar missatge de text</string>
+ <string name="send_otr_message">Enviar missatge xifrat amb OTR</string>
+ <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="you_are_offline">Has d\'estar connectat per enviar %s però el teu compte associat a aquesta conversa està desconnectat.</string>
+ <string name="you_are_offline_blank">No pots executar aquesta acció estant desconnectat.</string>
+ <string name="files">fitxers</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>
+ <string name="openkeychain_required_long">Conversations utilitza una aplicació de tercers anomenada <b>OpenKeychain</b> per xifrar i desxifrar missatges i gestionar les teves claus públiques..\n\nOpenKeychain està publicat sota llicència GPLv3 i disponible a la F-Droid i Google Play.\n\n<small>(Si us plau, reinicieu Conversations després.)</small></string>
+ <string name="restart">Reiniciar</string>
+ <string name="install">Instal·lar</string>
+ <string name="offering">oferint&#8230;</string>
+ <string name="no_pgp_key">Clau openPGP no trobada</string>
+ <string name="contact_has_no_pgp_key">Conversations no ha pogut xifrar els teus missatges perquè el teu contacte no està anunciant la seva clau pública.\n\n<small>Si us plau, demana al teu contacte que configuri openPGP.</small></string>
+ <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>
+ <string name="pref_accept_files_summary">Accepta fitxers automàticament amb una mida menor a&#8230;</string>
+ <string name="pref_notification_settings">Ajustos de notificacions</string>
+ <string name="pref_notifications">Notificacions</string>
+ <string name="pref_notifications_summary">Notifica quan arriba un nou missatge</string>
+ <string name="pref_vibrate">Vibra</string>
+ <string name="pref_vibrate_summary">Vibra quan arriba un nou missatge</string>
+ <string name="pref_sound">So</string>
+ <string name="pref_sound_summary">Reprodueix el to de trucada amb la notificació</string>
+ <string name="pref_conference_notifications">Notificacions de conferència</string>
+ <string name="pref_conference_notifications_summary">Sempre notifica quan arriba un nou missatge de conferència en comptes de només quan està destacat</string>
+ <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_sefl_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>
+ <string name="pref_never_send_crash">Mai enviïs informes d\'errors</string>
+ <string name="pref_never_send_crash_summary">Enviant traces d\'execució ajudes al futur desenvolupament del Conversations.</string>
+
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index c6209625..719d769c 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -53,23 +53,23 @@
<string name="send_failed">Zustellung nicht erfolgreich</string>
<string name="send_rejected">abgelehnt</string>
<string name="receiving_image">Empfange Bild. Bitte warten&#8230;</string>
- <string name="preparing_image">Bereite Bild für die Übertragung vor. Bitte warten&#8230;</string>
- <string name="action_clear_history">Unterhaltungsverlauf löschen</string>
+ <string name="preparing_image">Bereite Bild für die Übertragung vor</string>
+ <string name="action_clear_history">Verlauf löschen</string>
<string name="clear_conversation_history">Unterhaltungsverlauf löschen</string>
<string name="clear_histor_msg">Möchtest du alle Nachrichten in dieser Unterhaltung löschen?\n\n<b>Achtung:</b> Das beeinflust nicht Nachrichten die eventuell auf anderen Geräten gespeichert wurden.</string>
<string name="delete_messages">Nachrichten löschen</string>
<string name="also_end_conversation">Diese Unterhaltung danach beenden</string>
<string name="choose_presence">Choose presence to contact</string>
<string name="send_message_to_conference">Nachricht an Konferenz schicken</string>
- <string name="send_plain_text_message">Unverschlüsselte Nachricht schicken</string>
- <string name="send_otr_message">Nachricht OTR-verschlüsselt verschicken</string>
- <string name="send_pgp_message">Nachricht openPGP-verschlüsselt verschicken</string>
+ <string name="send_plain_text_message">Unverschlüsselt schreiben</string>
+ <string name="send_otr_message">OTR-verschlüsselt schreiben</string>
+ <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 herunter laden</string>
<string name="error_loading_image">Fehler beim laden des Bildes. (Datei wurde nicht gefunden)</string>
<string name="image_offered_for_download"><i>Bild Datei zum Download angeboten</i></string>
<string name="not_connected">Nicht verbunden</string>
- <string name="you_are_offline">Du musst online sein um % zu verschicken. Dein Account der mit dieser Unterhaltung verbunden ist aber gerade offline.</string>
+ <string name="you_are_offline">Du musst online sein um %s zu verschicken. Dein Account der mit dieser Unterhaltung verbunden ist aber gerade offline.</string>
<string name="you_are_offline_blank">Du kannst diese Aktion nicht ausführen so lange du offline bist.</string>
<string name="files">Dateien</string>
<string name="otr_messages">OTR-verschlüsselte Nachrichten</string>
@@ -80,7 +80,52 @@
<string name="send_unencrypted">Unverschlüsselt verschicken</string>
<string name="decryption_failed">Entschlüsselung fehlgeschlagen. Vielleicht hast du nicht den richtigen Private Key.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations benutzt eine Third-party-app names <b>OpenKeychain</b> um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3 lizensiert und bei F-Droid oder Google Play zu bekommen.\n\n<small>(Bitte starte Conversations danach neu)</small></string>
+ <string name="openkeychain_required_long">Conversations benutzt eine Third-party-app names <b>OpenKeychain</b> um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3 lizenziert und bei F-Droid oder Google Play zu bekommen.\n\n<small>(Bitte starte Conversations danach neu)</small></string>
<string name="restart">Neustarten</string>
<string name="install">Installieren</string>
+ <string name="offering">angeboten&#8230;</string>
+ <string name="no_pgp_key">Kein openPGP Schlüssel gefunden</string>
+ <string name="contact_has_no_pgp_key">Conversations ist nicht in der Lage deine Nachrichten zu verschlüsseln weil dein Kontakt sein oder ihren Schlüssel nicht preis gibt.\n\n<small>Bitte sag deinem Kontakt er oder sie möge bitte openPGP einrichten.</small></string>
+ <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 Datein mitels OTR zu verschlüsseln. Du kannst entweder openPGP wählen oder die Datei nicht verschlüsseln.</string>
+ <string name="use_pgp_encryption">openPGP verwenden</string>
+ <string name="pref_xmpp_resource">XMPP resource</string>
+ <string name="pref_xmpp_resource_summary">Der Name mit dem sich der Client selber identifiziert</string>
+ <string name="pref_accept_files">Dateiannahme</string>
+ <string name="pref_accept_files_summary">Datein die kleiner sind als &#8230; automatisch annehmen</string>
+ <string name="pref_notification_settings">Benachrichtigungseinstellung</string>
+ <string name="pref_notifications">Benachrichtigungen</string>
+ <string name="pref_notifications_summary">Benachrichtige mich wenn eine neu Nachricht ankommt</string>
+ <string name="pref_vibrate">Vibrieren</string>
+ <string name="pref_vibrate_summary">Vibriere wenn eine neue Nachricht ankommt</string>
+ <string name="pref_sound">Klingelton</string>
+ <string name="pref_sound_summary">Spiel Klingelton wenn eine Nachricht ankommt</string>
+ <string name="pref_conference_notifications">Konferenz Benachrichtigungen</string>
+ <string name="pref_conference_notifications_summary">Benachrichtige mich bei jeder Konferenznachricht und nicht nur wenn ich angesprochen werde.</string>
+ <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 Client von Dir kommt.</string>
+ <string name="pref_ui_options">Aussehen</string>
+ <string name="pref_use_phone_self_picture">Benutze Dein Kontaktbild</string>
+ <string name="pref_use_phone_sefl_picture_summary">Wenn du mehrere Accounts hast bist du eventuell nicht mehr in der Lage diese auseinander zu halten.</string>
+ <string name="pref_conference_name">Konferenznamen</string>
+ <string name="pref_conference_name_summary">Benutze das Thema der Konferenz als Name in der Überschicht</string>
+ <string name="pref_advanced_options">Erweiterte Optionen</string>
+ <string name="pref_never_send_crash">Sende niemals Absturzberichte</string>
+ <string name="pref_never_send_crash_summary">Wenn du Absturzberichte einschickst hilfst du Conversations stetig zu verbessern.</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>
+ <string name="pref_grant_presence_updates_summary">Erlaube Kontakten die von Dir erstellt wurden deinen Status zu sehen und frage um Erlaubnis ihren zu sehen.</string>
+ <string name="subscriptions">Abonnements</string>
+ <string name="your_account">Dein Account</string>
+ <string name="keys">Schlüssel</string>
+ <string name="send_presence_updates">Sende Online Status</string>
+ <string name="receive_presence_updates">Empfange Online Status</string>
+ <string name="preemptively_grant">Preemptively grant subscription request</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 2c569187..12e255e8 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -92,4 +92,32 @@
<string name="otr_file_transfer">Encriptación con OTR no disponible</string>
<string name="otr_file_transfer_msg">Desafortunadamente 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>
+ <string name="pref_accept_files_summary">Automáticamente aceptar archivos menores que&#8230;</string>
+ <string name="pref_notification_settings">Ajustes de notificación</string>
+ <string name="pref_notifications">Notificaciones</string>
+ <string name="pref_notifications_summary">Notifica cuando llega un nuevo mensaje</string>
+ <string name="pref_vibrate">Vibrar</string>
+ <string name="pref_vibrate_summary">Vibra cuando llega un nuevo mensaje</string>
+ <string name="pref_sound">Sonido</string>
+ <string name="pref_sound_summary">Reproduce tono con la notificación</string>
+ <string name="pref_conference_notifications">Notificaciones de conferencia</string>
+ <string name="pref_conference_notifications_summary">Siempre notifica cuando llega un mensaje de conferencia y no solo cuando llega un mensaje destacado</string>
+ <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 de contacto del teléfono</string>
+ <string name="pref_use_phone_sefl_picture_summary">Podrías no ser capaz de distinguir que cuenta está utlizando 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>
+ <string name="pref_never_send_crash">Nunca enviar informe de fallos</string>
+ <string name="pref_never_send_crash_summary">Enviando volcados de pilas ayudas al desarrollo de Conversations</string>
+ <string name="openpgp_error">OpenKeychain reportó un error</string>
+ <string name="error_decrypting_file">I/O 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>
</resources> \ No newline at end of file
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
new file mode 100644
index 00000000..46c02da5
--- /dev/null
+++ b/res/values-fr/arrays.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <array name="resources">
+ <item>Mobile</item>
+ <item>Téléphone</item>
+ <item>Tablette</item>
+ <item>Conversations</item>
+ <item>Android</item>
+ </array>
+ <string-array name="filesizes">
+ <item>jamais</item>
+ <item>256 KB</item>
+ <item>512 KB</item>
+ <item>1 MB</item>
+ </string-array>
+ <string-array name="filesizes_values">
+ <item>0</item>
+ <item>262144</item>
+ <item>524288</item>
+ <item>1048576</item>
+ </string-array>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
new file mode 100644
index 00000000..78327d66
--- /dev/null
+++ b/res/values-fr/strings.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Conversations</string>
+ <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_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>
+ <string name="action_secure">Conversation sécurisée</string>
+ <string name="action_add_account">Ajouter un compte</string>
+ <string name="title_activity_contacts">Contacts</string>
+ <string name="just_now">À l\'instant</string>
+ <string name="sending">envoi&#8230;</string>
+ <string name="announce_pgp">Renouveller les annonces PGP</string>
+ <string name="encrypted_message">Déchiffrement du message. Patientez&#8230;</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="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="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_contacts">Inviter des contacts</string>
+ <string name="invite_contacts_to_existing">Inviter à une conférence</string>
+ <string name="new_conference">Créer une nouvelle conférence</string>
+ <string name="cancel">Annuler</string>
+ <string name="create_invite">Créer \u0026 invitation</string>
+ <string name="new_conference_explained">Voulez-vous créer une nouvelle conférence avec une adresse générée aléatoirement et inviter les contacts sélectionnés à la rejoindre?</string>
+ <string name="no_open_mucs">Conférences non existantes</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>
+ <string name="send_never">Ne plus me demander</string>
+ <string name="problem_connecting_to_account">Impossible de se connecter au compte</string>
+ <string name="problem_connecting_to_accounts">Impossible de se connecter aux comptes</string>
+ <string name="touch_to_fix">Appuyez pour gérer vos comptes</string>
+ <string name="attach_file">Lier un fichier</string>
+ <string name="not_in_roster">Le contact n\'est pas dans votre carnet d\'adresses. Voulez-vous l\'y ajouter?</string>
+ <string name="add_contact">Ajouter un contact</string>
+ <string name="send_failed">Echec de l\'envoi</string>
+ <string name="send_rejected">Rejeté</string>
+ <string name="receiving_image">Réception d\'une image. Patientez&#8230;</string>
+ <string name="preparing_image">Préparation de la transmission de l\'image. Patientez&#8230;</string>
+ <string name="action_clear_history">Vider l\'historique</string>
+ <string name="clear_conversation_history">Vider l\'historique de la conversation</string>
+ <string name="clear_histor_msg">Voulez-vous supprimer tous les messages de cette conversation?\n\n<b>Attention:</b> Les messages seront supprimés uniquement sur ce périphérique.</string>
+ <string name="delete_messages">Supprimer les messages</string>
+ <string name="also_end_conversation">Terminer plus tard cette conversation</string>
+ <string name="choose_presence">Choisir le status de présence</string>
+ <string name="send_message_to_conference">Envoyer un message à la conférence</string>
+ <string name="send_plain_text_message">Envoyer un message</string>
+ <string name="send_otr_message">Envoyer un message sécurisé par OTR</string>
+ <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élecharger 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="you_are_offline">Vous devez être en ligne pour envoyer %s mais votre compte utilisé dans cette conversation est hors-ligne.</string>
+ <string name="you_are_offline_blank">Vous devez être en ligne pour réaliser cette action.</string>
+ <string name="files">Fichiers</string>
+ <string name="otr_messages">Message 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>
+ <string name="openkeychain_required_long">Conversations requiert une application tierce nommée <b>OpenKeychain</b> pour chiffrer et déchiffrer les messages.\n\nOpenKeychain est sous licence GPLv3 et est disponible sur F-Droid et Google Play.\n\n<small>(Merci de redémarrer Conversations apres l\'installation du logiciel)</small></string>
+ <string name="restart">Redémarrer</string>
+ <string name="install">Installer</string>
+</resources>
diff --git a/res/values-fr/styles.xml b/res/values-fr/styles.xml
new file mode 100644
index 00000000..1468283e
--- /dev/null
+++ b/res/values-fr/styles.xml
@@ -0,0 +1,19 @@
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <style name="sectionHeader" parent="android:Widget.Holo.Light.TextView">
+ <item name="android:drawableBottom">@drawable/section_header</item>
+ <item name="android:drawablePadding">4dp</item>
+ <item name="android:layout_marginTop">8dp</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:textAllCaps">true</item>
+ <item name="android:textColor">#5b5b5b</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+
+ <style name="Divider">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">1.5dp</item>
+ <item name="android:background">#b7b7b7</item>
+ </style>
+
+</resources> \ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8020a01e..10dfb592 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -120,4 +120,12 @@
<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>
+ <string name="pref_grant_presence_updates_summary">Preemptively grant and ask for presence subscription for contacts you created</string>
+ <string name="subscriptions">Subscriptions</string>
+ <string name="your_account">Your account</string>
+ <string name="keys">Keys</string>
+ <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>
</resources>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index b1b560c6..bad2574b 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -4,8 +4,8 @@
android:title="General">
<CheckBoxPreference
android:key="grant_new_contacts"
- android:title="Grant presence updates"
- android:summary="Preemptively grant and ask for presence subscription for contacts you created"
+ android:title="@string/pref_grant_presence_updates"
+ android:summary="@string/pref_grant_presence_updates_summary"
android:defaultValue="true"
/>
<ListPreference
diff --git a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java
index eaa9b8ee..06179bc6 100644
--- a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java
+++ b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java
@@ -173,7 +173,7 @@ public class ContactDetailsActivity extends XmppActivity {
if (contact.getSubscriptionOption(Contact.Subscription.FROM)) {
send.setChecked(true);
} else {
- send.setText("Preemptively grant subscription request");
+ send.setText(R.string.preemptively_grant);
if (contact
.getSubscriptionOption(Contact.Subscription.PREEMPTIVE_GRANT)) {
send.setChecked(true);
@@ -184,7 +184,7 @@ public class ContactDetailsActivity extends XmppActivity {
if (contact.getSubscriptionOption(Contact.Subscription.TO)) {
receive.setChecked(true);
} else {
- receive.setText("Ask for presence updates");
+ receive.setText(R.string.ask_for_presence_updates);
askAgain.setVisibility(View.VISIBLE);
askAgain.setOnClickListener(new OnClickListener() {
diff --git a/src/eu/siacs/conversations/xml/TagWriter.java b/src/eu/siacs/conversations/xml/TagWriter.java
index 40d5b328..ef1e8555 100644
--- a/src/eu/siacs/conversations/xml/TagWriter.java
+++ b/src/eu/siacs/conversations/xml/TagWriter.java
@@ -23,8 +23,12 @@ public class TagWriter {
}
try {
AbstractStanza output = writeQueue.take();
- outputStream.write(output.toString());
- outputStream.flush();
+ if (outputStream==null) {
+ shouldStop = true;
+ } else {
+ outputStream.write(output.toString());
+ outputStream.flush();
+ }
} catch (IOException e) {
shouldStop = true;
} catch (InterruptedException e) {
diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
index 3c9120ec..8f88688a 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
@@ -135,7 +135,7 @@ public class JingleConnection {
}
public void deliverPacket(JinglePacket packet) {
-
+ boolean returnResult = true;
if (packet.isAction("session-terminate")) {
Reason reason = packet.getReason();
if (reason!=null) {
@@ -143,26 +143,37 @@ public class JingleConnection {
this.receiveCancel();
} else if (reason.hasChild("success")) {
this.receiveSuccess();
+ } else {
+ this.receiveCancel();
}
} else {
- Log.d("xmppService","remote terminated for no reason");
this.receiveCancel();
}
- } else if (packet.isAction("session-accept")) {
- receiveAccept(packet);
+ } else if (packet.isAction("session-accept")) {
+ returnResult = receiveAccept(packet);
} else if (packet.isAction("transport-info")) {
- receiveTransportInfo(packet);
+ returnResult = receiveTransportInfo(packet);
} else if (packet.isAction("transport-replace")) {
if (packet.getJingleContent().hasIbbTransport()) {
- this.receiveFallbackToIbb(packet);
+ returnResult = this.receiveFallbackToIbb(packet);
} else {
+ returnResult = false;
Log.d("xmppService","trying to fallback to something unknown"+packet.toString());
}
} else if (packet.isAction("transport-accept")) {
- this.receiveTransportAccept(packet);
+ returnResult = this.receiveTransportAccept(packet);
} else {
Log.d("xmppService","packet arrived in connection. action was "+packet.getAction());
+ returnResult = false;
}
+ IqPacket response;
+ if (returnResult) {
+ response = packet.generateRespone(IqPacket.TYPE_RESULT);
+
+ } else {
+ response = packet.generateRespone(IqPacket.TYPE_ERROR);
+ }
+ account.getXmppConnection().sendIqPacket(response, null);
}
public void init(Message message) {
@@ -356,17 +367,16 @@ public class JingleConnection {
account.getXmppConnection().sendIqPacket(packet,responseListener);
}
- private void receiveAccept(JinglePacket packet) {
+ private boolean receiveAccept(JinglePacket packet) {
Content content = packet.getJingleContent();
mergeCandidates(JingleCandidate.parse(content.socks5transport().getChildren()));
this.status = STATUS_ACCEPTED;
mXmppConnectionService.markMessage(message, Message.STATUS_UNSEND);
this.connectNextCandidate();
- IqPacket response = packet.generateRespone(IqPacket.TYPE_RESULT);
- account.getXmppConnection().sendIqPacket(response, null);
+ return true;
}
- private void receiveTransportInfo(JinglePacket packet) {
+ private boolean receiveTransportInfo(JinglePacket packet) {
Content content = packet.getJingleContent();
if (content.hasSocks5Transport()) {
if (content.socks5transport().hasChild("activated")) {
@@ -383,14 +393,17 @@ public class JingleConnection {
this.sendCancel();
}
}
- } else if (content.socks5transport().hasChild("activated")) {
+ return true;
+ } else if (content.socks5transport().hasChild("proxy-error")) {
onProxyActivated.failed();
+ return true;
} else if (content.socks5transport().hasChild("candidate-error")) {
Log.d("xmppService","received candidate error");
this.receivedCandidate = true;
if ((status == STATUS_ACCEPTED)&&(this.sentCandidate)) {
this.connect();
}
+ return true;
} else if (content.socks5transport().hasChild("candidate-used")){
String cid = content.socks5transport().findChild("candidate-used").getAttribute("cid");
if (cid!=null) {
@@ -403,16 +416,16 @@ public class JingleConnection {
} else {
Log.d("xmppService","ignoring because file is already in transmission or we havent sent our candidate yet");
}
+ return true;
} else {
- Log.d("xmppService","couldn't read used candidate");
+ return false;
}
} else {
- Log.d("xmppService","empty transport");
+ return false;
}
+ } else {
+ return true;
}
-
- IqPacket response = packet.generateRespone(IqPacket.TYPE_RESULT);
- account.getXmppConnection().sendIqPacket(response, null);
}
private void connect() {
@@ -502,6 +515,7 @@ public class JingleConnection {
this.disconnect();
this.status = STATUS_FINISHED;
this.mXmppConnectionService.markMessage(this.message, Message.STATUS_RECIEVED);
+ this.mJingleConnectionManager.finishConnection(this);
}
private void sendFallbackToIbb() {
@@ -514,7 +528,7 @@ public class JingleConnection {
this.sendJinglePacket(packet);
}
- private void receiveFallbackToIbb(JinglePacket packet) {
+ private boolean receiveFallbackToIbb(JinglePacket packet) {
String receivedBlockSize = packet.getJingleContent().ibbTransport().getAttribute("block-size");
if (receivedBlockSize!=null) {
int bs = Integer.parseInt(receivedBlockSize);
@@ -531,9 +545,10 @@ public class JingleConnection {
content.ibbTransport().setAttribute("block-size", ""+this.ibbBlockSize);
answer.setContent(content);
this.sendJinglePacket(answer);
+ return true;
}
- private void receiveTransportAccept(JinglePacket packet) {
+ private boolean receiveTransportAccept(JinglePacket packet) {
if (packet.getJingleContent().hasIbbTransport()) {
String receivedBlockSize = packet.getJingleContent().ibbTransport().getAttribute("block-size");
if (receivedBlockSize!=null) {
@@ -555,8 +570,9 @@ public class JingleConnection {
JingleConnection.this.transport.send(file, onFileTransmitted);
}
});
+ return true;
} else {
- Log.d("xmppService","invalid transport accept");
+ return false;
}
}
@@ -564,12 +580,14 @@ public class JingleConnection {
this.status = STATUS_FINISHED;
this.mXmppConnectionService.markMessage(this.message, Message.STATUS_SEND);
this.disconnect();
+ this.mJingleConnectionManager.finishConnection(this);
}
private void receiveCancel() {
this.disconnect();
this.status = STATUS_CANCELED;
this.mXmppConnectionService.markMessage(this.message, Message.STATUS_SEND_REJECTED);
+ this.mJingleConnectionManager.finishConnection(this);
}
private void sendCancel() {
diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java
index 2fa1a6be..a277b74c 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java
@@ -51,15 +51,19 @@ public class JingleConnectionManager {
public JingleConnection createNewConnection(Message message) {
JingleConnection connection = new JingleConnection(this);
connection.init(message);
- connections.add(connection);
+ this.connections.add(connection);
return connection;
}
public JingleConnection createNewConnection(JinglePacket packet) {
JingleConnection connection = new JingleConnection(this);
- connections.add(connection);
+ this.connections.add(connection);
return connection;
}
+
+ public void finishConnection(JingleConnection connection) {
+ this.connections.remove(connection);
+ }
public XmppConnectionService getXmppConnectionService() {
return this.xmppConnectionService;