diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts
index bbb1fca21..4f17a0126 100644
--- a/Linphone/data/languages/de.ts
+++ b/Linphone/data/languages/de.ts
@@ -785,30 +785,30 @@
Nur Anwendungs-Logs ausgeben
-
+
hide_action
"Cacher" "Afficher"
Ausblenden
-
+
show_action
Zeigen
-
+
quit_action
"Quitter"
Beenden
-
+
check_for_update
Check for update
Auf Updates prüfen
-
+
mark_all_read_action
Alle als gelesen markieren
@@ -854,76 +854,76 @@
CallCore
-
+
call_record_end_message
"Enregistrement terminé"
Aufnahme beendet
-
+
call_record_saved_in_file_message
"L'appel a été enregistré dans le fichier : %1"
Die Aufnahme wurde in der folgenden Datei gespeichert: %1
-
-
+
+
call_stats_codec_label
"Codec: %1 / %2 kHz"
Codec: %1 / %2 kHz
-
-
+
+
call_stats_bandwidth_label
"Bande passante : %1 %2 kbits/s %3 %4 kbits/s"
Bandbreite: %1 %2 kbits/s %3 %4 kbits/s
-
-
+
+
call_stats_loss_rate_label
"Taux de perte: %1% %2%"
Verlustquote: %1% %2%
-
+
call_stats_jitter_buffer_label
"Tampon de gigue: %1 ms"
Jitter-Puffer: %1 ms
-
+
call_stats_resolution_label
"Définition vidéo : %1 %2 %3 %4"
Videoauflösung: %1 %2 %3 %4
-
+
call_stats_fps_label
"FPS : %1 %2 %3 %4"
FPS : %1 %2 %3 %4
-
+
media_encryption_dtls
DTLS
DTLS
-
+
media_encryption_none
None
Nichts
-
+
media_encryption_srtp
SRTP
SRTP
-
+
media_encryption_post_quantum
"ZRTP - Post quantique"
Post-quantum ZRTP
@@ -1547,7 +1547,7 @@
-
+
information_popup_error_title
Fehler
@@ -1558,218 +1558,218 @@
Weiterleitung fehlgeschlagen
-
+
conference_error_empty_uri
"La conférence n'a pas pu démarrer en raison d'une erreur d'uri."
Die Besprechung konnte aufgrund eines URI-Fehlers nicht gestartet werden.
-
+
call_close_window_dialog_title
"Terminer tous les appels en cours ?"
Alle laufenden Anrufe beenden?
-
+
call_close_window_dialog_message
"La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours."
Das Fenster wird gleich geschlossen. Dies beendet alle laufenden Anrufe.
-
+
call_can_be_trusted_toast
"Appareil authentifié"
Gerät vertrauenswürdig
-
+
call_dir
%1 Anruf
-
+
call_ended
Appel terminé
Anruf beendet
-
+
conference_paused
Meeting paused
Besprechung pausiert
-
+
call_paused
Call paused
Anruf pausiert
-
-
+
+
call_srtp_point_to_point_encrypted
Appel chiffré de point à point
Punkt-zu-Punkt verschlüsselter Anruf
-
+
call_zrtp_sas_validation_required
Vérification nécessaire
Validierung erforderlich
-
+
call_zrtp_end_to_end_encrypted
Appel chiffré de bout en bout
Ende-zu-Ende verschlüsselter Anruf
-
+
call_not_encrypted
"Appel non chiffré"
Unverschlüsselter Anruf
-
-
+
+
call_waiting_for_encryption_info
Waiting for encryption
Warten auf Verschlüsselung
-
+
call_paused_by_remote
Call paused by remote
Anruf vom Gegenüber pausiert
-
+
conference_user_is_recording
"You are recording the meeting"
Sie nehmen die Besprechung auf
-
+
call_user_is_recording
"You are recording the call"
Sie nehmen den Anruf auf
-
+
conference_remote_is_recording
"Someone is recording the meeting"
Jemand nimmt die Besprechung auf
-
+
call_remote_recording
"%1 is recording the call"
%1 nimmt den Anruf auf
-
+
call_stop_recording
"Stop recording"
Aufnahme stoppen
-
+
add
Hinzufügen
-
+
call_transfer_current_call_title
"Transférer %1 à…"
%1 weiterleiten an…
-
-
+
+
call_transfer_confirm_dialog_tittle
"Confirmer le transfert"
Weiterleitung bestätigen
-
-
+
+
call_transfer_confirm_dialog_message
"Vous allez transférer %1 à %2."
Sie werden %1 an %2 weiterleiten.
-
+
call_action_start_new_call
"Nouvel appel"
Neuen Anruf starten
-
-
+
+
call_action_show_dialer
"Pavé numérique"
Wähltastatur
-
+
call_action_change_layout
"Modifier la disposition"
Layout ändern
-
+
call_action_go_to_calls_list
"Liste d'appel"
Anrufliste
-
+
Merger tous les appels
call_action_merge_calls
Alle Anrufe zusammenführen
-
-
+
+
call_action_go_to_settings
"Paramètres"
Einstellungen
-
+
conference_action_screen_sharing
"Partage de votre écran"
Bildschirm teilen
-
+
conference_share_link_title
Partager le lien de la réunion
Besprechungs-Link teilen
-
+
copied
Copié
Kopiert
-
+
information_popup_meeting_address_copied_to_clipboard
Le lien de la réunion a été copié dans le presse-papier
Der Besprechungs-Link wurde in die Zwischenablage kopiert
-
-
-
+
+
+
conference_participants_list_title
"Participants (%1)"
Teilnehmer (%1)
-
-
+
+
group_call_participant_selected
%1 ausgewählte Teilnehmer
@@ -1777,194 +1777,194 @@
-
+
meeting_schedule_add_participants_title
Teilnehmer hinzufügen
-
+
call_encryption_title
Chiffrement
Verschlüsselung
-
+
open_statistic_panel_accessible_name
Statistiken öffnen
-
+
conference_user_is_sharing_screen
"You are sharing your screen"
Sie teilen Ihren Bildschirm
-
+
call_stop_screen_sharing
"Stop sharing"
Stopp
-
+
stop_recording_accessible_name
Stop recording
Aufnahme stoppen
-
+
stop_screen_sharing_accessible_name
"Stop screen sharing"
Bildschirmübertragung beenden
-
+
call_stats_title
Statistiques
Statistiken
-
-
+
+
call_action_end_call
"Terminer l'appel"
Anruf beenden
-
-
+
+
call_action_resume_call
"Reprendre l'appel"
Anruf fortsetzen
-
-
+
+
call_action_pause_call
"Mettre l'appel en pause"
Anruf pausieren
-
-
+
+
call_action_transfer_call
"Transférer l'appel"
Anruf weiterleiten
-
-
+
+
call_action_start_new_call_hint
"Initier un nouvel appel"
Neuen Anruf starten
-
-
+
+
call_display_call_list_hint
"Afficher la liste d'appels"
Anrufliste anzeigen
-
-
+
+
call_deactivate_video_hint
"Désactiver la vidéo" "Activer la vidéo"
Video deaktivieren
-
-
+
+
call_activate_video_hint
Video aktivieren
-
-
+
+
call_activate_microphone
"Activer le micro"
Mikrofon aktivieren
-
-
+
+
call_deactivate_microphone
"Désactiver le micro"
Mikrofon stummschalten
-
-
+
+
call_share_screen_hint
Partager l'écran…
Bildschirm teilen…
-
-
+
+
call_open_chat_hint
Open chat…
Chat öffnen…
-
-
+
+
call_rise_hand_hint
"Lever la main"
Hand heben
-
-
+
+
call_send_reaction_hint
"Envoyer une réaction"
Reaktion senden
-
-
+
+
call_manage_participants_hint
"Gérer les participants"
Teilnehmer verwalten
-
-
+
+
call_more_options_hint
"Plus d'options…"
Weitere Optionen…
-
+
call_action_change_conference_layout
"Modifier la disposition"
Layout ändern
-
+
call_action_full_screen
"Mode Plein écran"
Vollbildmodus
-
+
call_action_stop_recording
"Terminer l'enregistrement"
Aufnahme beenden
-
+
call_action_record
"Enregistrer l'appel"
Anruf aufnehmen
-
+
call_activate_speaker_hint
"Activer le son"
Lautsprecher aktivieren
-
+
call_deactivate_speaker_hint
"Désactiver le son"
Lautsprecher stummschalten
@@ -2136,54 +2136,54 @@
Entwurf: %1
-
+
chat_room_delete
"Delete"
Löschen
-
+
chat_room_mute
Stummschalten
-
+
chat_room_unmute
"Mute"
Stummschaltung aufheben
-
+
chat_room_mark_as_read
"Mark as read"
Als gelesen markieren
-
+
chat_room_leave
"leave"
Verlassen
-
+
chat_list_leave_chat_popup_title
leave the conversation ?
Chat verlassen?
-
+
chat_list_leave_chat_popup_message
You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?
„Sie können in diesem Chat keine Nachrichten mehr senden oder empfangen. Möchten Sie fortfahren?
-
+
chat_list_delete_chat_popup_title
Delete the conversation ?
Chat löschen?
-
+
chat_list_delete_chat_popup_message
This conversation and all its messages will be deleted. Do You want to continue ?
Dieser Chat und alle seine Nachrichten werden gelöscht. Möchten Sie fortfahren?
@@ -3573,12 +3573,12 @@ Stellen Sie sicher, dass Sie keine sensiblen Informationen teilen!
CoreModel
-
+
info_popup_error_title
Fehler
-
+
fetching_config_failed_error_message
"Remote provisioning cannot be retrieved"
Die externe Bereitstellung kann nicht abgerufen werden
@@ -4569,27 +4569,26 @@ Ablauf: %1
Fehler bei der Erstellung
-
+
assistant_register_success_title
"Compte créé"
Konto erstellt
-
+
assistant_register_success_message
"Le compte a été créé. Vous pouvez maintenant vous connecter"
Das Konto wurde erstellt. Sie können sich jetzt anmelden.
-
+
assistant_register_error_code
"Erreur dans le code de validation"
Fehler im Bestätigungscode
-
information_popup_error_title
- Fehler
+ Fehler
@@ -5219,13 +5218,13 @@ Ablauf: %1
PhoneNumberInput
-
+
prefix_phone_number_accessible_name
%1 prefix
%1-Präfix
-
+
number_phone_number_accessible_name
%1 number
%1-Nummer
@@ -5430,37 +5429,37 @@ Ablauf: %1
RegisterCheckingPage
-
+
email
"email"
Email
-
+
phone_number
"numéro de téléphone"
Telefonnummer
-
+
confirm_register_title
"Inscription | Confirmer votre %1"
Registrieren | %1 bestätigen
-
+
assistant_account_creation_confirmation_explanation
Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous
Wir haben Ihnen einen Bestätigungscode an Ihr %1 %2<br> geschickt. Bitte geben Sie diesen unten ein.
-
+
assistant_account_creation_confirmation_did_not_receive_code
"Vous n'avez pas reçu le code ?"
Code nicht erhalten?
-
+
assistant_account_creation_confirmation_resend_code
"Renvoyer un code"
Code erneut senden
@@ -5501,49 +5500,49 @@ Ablauf: %1
Mit E-Mail registrieren
-
-
+
+
username
Benutzername
-
-
-
-
-
+
+
+
+
+
mandatory_field_accessible_name
"%1 mandatory"
%1 ist verpflichtend
-
+
domain
Domäne
-
-
-
+
+
+
phone_number
"Numéro de téléphone"
Telefonnummer
-
-
+
+
email
Email
-
-
+
+
password
Passwort
-
-
+
+
assistant_account_register_password_confirmation
"Confirmation mot de passe"
Passwort bestätigen
@@ -5567,37 +5566,37 @@ Ablauf: %1
Datenschutzrichtlinie
-
+
assistant_account_create
"Créer"
Erstellen
-
+
assistant_account_create_missing_username_error
"Veuillez entrer un nom d'utilisateur"
Bitte Benutzernamen eingeben
-
+
assistant_account_create_missing_password_error
"Veuillez entrer un mot de passe"
Bitte Passwort eingeben
-
+
assistant_account_create_confirm_password_error
"Les mots de passe sont différents"
Die Passwörter stimmen nicht überein
-
+
assistant_account_create_missing_number_error
"Veuillez entrer un numéro de téléphone"
Bitte Telefonnummer eingeben
-
+
assistant_account_create_missing_email_error
"Veuillez entrer un email"
Bitte E-Mail eingeben
@@ -6088,7 +6087,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
Utils
-
+
nMinute
%1 Minute
@@ -6096,7 +6095,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
-
+
nHour
%1 Stunde
@@ -6104,8 +6103,8 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
-
-
+
+
nDay
%1 Tag
@@ -6113,7 +6112,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
-
+
nWeek
%1 Woche
@@ -6121,7 +6120,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
-
+
nSeconds
%1 Sekunde
@@ -6137,7 +6136,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
-
+
information_popup_error_title
Failed to create 1-1 conversation with %1 !
Fehler
@@ -6217,103 +6216,103 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
-
+
information_popup_chatroom_creation_error_message
1-zu-1-Konversation mit %1 konnte nicht erstellt werden!
-
+
contact_presence_status_available
Verfügbar
-
+
contact_presence_status_away
Abwesend
-
+
contact_presence_status_busy
Beschäftigt
-
+
contact_presence_status_do_not_disturb
Nicht stören
-
+
contact_presence_status_offline
Offline
-
+
recorder_error
Error with the recorder
Fehler mit der Aufzeichnung
-
-
-
+
+
+
chat_error
Fehler im Chat
-
+
chat_message_forward_error
Cannot forward an invalid message
Eine ungültige Nachricht kann nicht weitergeleitet werden
-
-
-
-
-
-
+
+
+
+
+
+
info_popup_error_title
Error
Fehler
-
+
info_popup_forward_message_error
Could not forward message : %1
Nachricht konnte nicht weitergeleitet werden: %1
-
+
info_popup_send_forward_message_error_message
Failed to create forward message
Weiterleitungsnachricht konnte nicht erstellt werden
-
+
chat_message_reply_error
Cannot reply to invalid message
Auf eine ungültige Nachricht kann nicht geantwortet werden
-
+
info_popup_reply_message_error
Could not send reply message : %1
Antwort konnte nicht gesendet werden: %1
-
+
info_popup_send_reply_message_error_message
Failed to create reply message
Antwort konnte nicht erstellt werden
-
+
info_popup_send_voice_message_error_message
Could not send voice message : %1
Sprachnachricht konnte nicht gesendet werden: %1
-
+
info_popup_send_voice_message_sending_error_message
Failed to create message from record
Nachricht aus der Aufnahme konnte nicht erstellt werden
diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts
index a42dbb93c..f555dec11 100644
--- a/Linphone/data/languages/en.ts
+++ b/Linphone/data/languages/en.ts
@@ -766,30 +766,30 @@
Print only logs from the application
-
+
hide_action
"Cacher" "Afficher"
Hide
-
+
show_action
Show
-
+
quit_action
"Quitter"
Quit
-
+
check_for_update
Check for update
Check for update
-
+
mark_all_read_action
Marquer tout comme lu
@@ -835,76 +835,76 @@
CallCore
-
+
call_record_end_message
"Enregistrement terminé"
Recording ended
-
+
call_record_saved_in_file_message
"L'appel a été enregistré dans le fichier : %1"
Recording has been saved in file : %1
-
-
+
+
call_stats_codec_label
"Codec: %1 / %2 kHz"
Codec: %1 / %2 kHz
-
-
+
+
call_stats_bandwidth_label
"Bande passante : %1 %2 kbits/s %3 %4 kbits/s"
Bandwidth : %1 %2 kbits/s %3 %4 kbits/s
-
-
+
+
call_stats_loss_rate_label
"Taux de perte: %1% %2%"
Loss rate: %1% %2%
-
+
call_stats_jitter_buffer_label
"Tampon de gigue: %1 ms"
Jitter buffer : %1 ms
-
+
call_stats_resolution_label
"Définition vidéo : %1 %2 %3 %4"
Video resolution: %1 %2 %3 %4
-
+
call_stats_fps_label
"FPS : %1 %2 %3 %4"
FPS : %1 %2 %3 %4
-
+
media_encryption_dtls
DTLS
DTLS
-
+
media_encryption_none
None
None
-
+
media_encryption_srtp
SRTP
SRTP
-
+
media_encryption_post_quantum
"ZRTP - Post quantique"
Post quantum ZRTP
@@ -1510,7 +1510,7 @@
-
+
information_popup_error_title
Error
@@ -1521,218 +1521,218 @@
Transfer failed
-
+
conference_error_empty_uri
"La conférence n'a pas pu démarrer en raison d'une erreur d'uri."
Meeting could start due to URI error.
-
+
call_close_window_dialog_title
"Terminer tous les appels en cours ?"
End all current calls ?
-
+
call_close_window_dialog_message
"La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours."
The window is about to be closed. This will end all current calls.
-
+
call_can_be_trusted_toast
"Appareil authentifié"
Device trusted
-
+
call_dir
%1 call
-
+
call_ended
Appel terminé
Call ended
-
+
conference_paused
Meeting paused
Meeting paused
-
+
call_paused
Call paused
Call paused
-
-
+
+
call_srtp_point_to_point_encrypted
Appel chiffré de point à point
Point-to-point encrypted call
-
+
call_zrtp_sas_validation_required
Vérification nécessaire
Validation required
-
+
call_zrtp_end_to_end_encrypted
Appel chiffré de bout en bout
End-to-end encrypted call
-
+
call_not_encrypted
"Appel non chiffré"
Unencrypted call
-
-
+
+
call_waiting_for_encryption_info
Waiting for encryption
Waiting for encryption
-
+
call_paused_by_remote
Call paused by remote
Call paused by remote
-
+
conference_user_is_recording
"You are recording the meeting"
You are recording the meeting
-
+
call_user_is_recording
"You are recording the call"
You are recording the call
-
+
conference_remote_is_recording
"Someone is recording the meeting"
Someone is recording the meeting
-
+
call_remote_recording
"%1 is recording the call"
%1 records the call
-
+
call_stop_recording
"Stop recording"
Stop recording
-
+
add
Add
-
+
call_transfer_current_call_title
"Transférer %1 à…"
Transfer %1 to…
-
-
+
+
call_transfer_confirm_dialog_tittle
"Confirmer le transfert"
Confirm transfer
-
-
+
+
call_transfer_confirm_dialog_message
"Vous allez transférer %1 à %2."
You are going to transfer %1 to %2.
-
+
call_action_start_new_call
"Nouvel appel"
New call
-
-
+
+
call_action_show_dialer
"Pavé numérique"
Dialer
-
+
call_action_change_layout
"Modifier la disposition"
Change layout
-
+
call_action_go_to_calls_list
"Liste d'appel"
Call list
-
+
Merger tous les appels
call_action_merge_calls
Merge all calls
-
-
+
+
call_action_go_to_settings
"Paramètres"
Settings
-
+
conference_action_screen_sharing
"Partage de votre écran"
Share your screen
-
+
conference_share_link_title
Partager le lien de la réunion
Share meeting link
-
+
copied
Copié
Copied
-
+
information_popup_meeting_address_copied_to_clipboard
Le lien de la réunion a été copié dans le presse-papier
Meeting link has been copied to the clipboard
-
-
-
+
+
+
conference_participants_list_title
"Participants (%1)"
Participants (%1)
-
-
+
+
group_call_participant_selected
%1 selected participant
@@ -1740,194 +1740,194 @@
-
+
meeting_schedule_add_participants_title
Add participants
-
+
call_encryption_title
Chiffrement
Encryption
-
+
open_statistic_panel_accessible_name
Open statistic panel
-
+
conference_user_is_sharing_screen
"You are sharing your screen"
You are sharing your screen
-
+
call_stop_screen_sharing
"Stop sharing"
Stop
-
+
stop_recording_accessible_name
Stop recording
Stop recording
-
+
stop_screen_sharing_accessible_name
"Stop screen sharing"
Stop screen sharing
-
+
call_stats_title
Statistiques
Statistics
-
-
+
+
call_action_end_call
"Terminer l'appel"
End call
-
-
+
+
call_action_resume_call
"Reprendre l'appel"
Resume call
-
-
+
+
call_action_pause_call
"Mettre l'appel en pause"
Pause call
-
-
+
+
call_action_transfer_call
"Transférer l'appel"
Transfer call
-
-
+
+
call_action_start_new_call_hint
"Initier un nouvel appel"
Start new call
-
-
+
+
call_display_call_list_hint
"Afficher la liste d'appels"
View call list
-
-
+
+
call_deactivate_video_hint
"Désactiver la vidéo" "Activer la vidéo"
Turn off video
-
-
+
+
call_activate_video_hint
Enable video
-
-
+
+
call_activate_microphone
"Activer le micro"
Activate microphone
-
-
+
+
call_deactivate_microphone
"Désactiver le micro"
Mute microphone
-
-
+
+
call_share_screen_hint
Partager l'écran…
Share screen…
-
-
+
+
call_open_chat_hint
Open chat…
Open conversation…
-
-
+
+
call_rise_hand_hint
"Lever la main"
Rise hand
-
-
+
+
call_send_reaction_hint
"Envoyer une réaction"
Send reaction
-
-
+
+
call_manage_participants_hint
"Gérer les participants"
Manage participants
-
-
+
+
call_more_options_hint
"Plus d'options…"
More options…
-
+
call_action_change_conference_layout
"Modifier la disposition"
Change layout
-
+
call_action_full_screen
"Mode Plein écran"
Full screen mode
-
+
call_action_stop_recording
"Terminer l'enregistrement"
End recording
-
+
call_action_record
"Enregistrer l'appel"
Record call
-
+
call_activate_speaker_hint
"Activer le son"
Activate speaker
-
+
call_deactivate_speaker_hint
"Désactiver le son"
Mute speaker
@@ -2099,54 +2099,54 @@
Draft : %1
-
+
chat_room_delete
"Delete"
Delete
-
+
chat_room_mute
Mute
-
+
chat_room_unmute
"Mute"
Unmute
-
+
chat_room_mark_as_read
"Mark as read"
Mark as read
-
+
chat_room_leave
"leave"
Leave
-
+
chat_list_leave_chat_popup_title
leave the conversation ?
Leave the conversation ?
-
+
chat_list_leave_chat_popup_message
You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?
You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?
-
+
chat_list_delete_chat_popup_title
Delete the conversation ?
Delete the conversation ?
-
+
chat_list_delete_chat_popup_message
This conversation and all its messages will be deleted. Do You want to continue ?
This conversation and all its messages will be deleted. Do You want to continue ?
@@ -3476,12 +3476,12 @@ Only your correspondent can decrypt them.
CoreModel
-
+
info_popup_error_title
Error
-
+
fetching_config_failed_error_message
"Remote provisioning cannot be retrieved"
Remote provisioning cannot be retrieved
@@ -4467,27 +4467,26 @@ Expiration : %1
Error while creating
-
+
assistant_register_success_title
"Compte créé"
Account created
-
+
assistant_register_success_message
"Le compte a été créé. Vous pouvez maintenant vous connecter"
The account has been created. You can now log in.
-
+
assistant_register_error_code
"Erreur dans le code de validation"
Error in validation code
-
information_popup_error_title
- Error
+ Error
@@ -5108,13 +5107,13 @@ Expiration : %1
PhoneNumberInput
-
+
prefix_phone_number_accessible_name
%1 prefix
%1 prefix
-
+
number_phone_number_accessible_name
%1 number
%1 number
@@ -5307,37 +5306,37 @@ Expiration : %1
RegisterCheckingPage
-
+
email
"email"
email
-
+
phone_number
"numéro de téléphone"
phone number
-
+
confirm_register_title
"Inscription | Confirmer votre %1"
Register | Confirm your %1
-
+
assistant_account_creation_confirmation_explanation
Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous
We have sent you a verification code to your %1 %2<br> Please enter it below
-
+
assistant_account_creation_confirmation_did_not_receive_code
"Vous n'avez pas reçu le code ?"
Didn't receive the code?
-
+
assistant_account_creation_confirmation_resend_code
"Renvoyer un code"
Resend code
@@ -5378,49 +5377,49 @@ Expiration : %1
Register with email
-
-
+
+
username
Username
-
-
-
-
-
+
+
+
+
+
mandatory_field_accessible_name
"%1 mandatory"
%1 mandatory
-
+
domain
Domain
-
-
-
+
+
+
phone_number
"Numéro de téléphone"
Phone number
-
-
+
+
email
Email
-
-
+
+
password
Password
-
-
+
+
assistant_account_register_password_confirmation
"Confirmation mot de passe"
Password confirmation
@@ -5444,37 +5443,37 @@ Expiration : %1
privacy policy
-
+
assistant_account_create
"Créer"
Create
-
+
assistant_account_create_missing_username_error
"Veuillez entrer un nom d'utilisateur"
Please enter a username
-
+
assistant_account_create_missing_password_error
"Veuillez entrer un mot de passe"
Please enter a password
-
+
assistant_account_create_confirm_password_error
"Les mots de passe sont différents"
Passwords do not match
-
+
assistant_account_create_missing_number_error
"Veuillez entrer un numéro de téléphone"
Please enter a phone number
-
+
assistant_account_create_missing_email_error
"Veuillez entrer un email"
Please enter an email
@@ -5953,7 +5952,7 @@ To enable them in a commercial project, please contact us.
Utils
-
+
nSeconds
%1 second
@@ -5961,7 +5960,7 @@ To enable them in a commercial project, please contact us.
-
+
nMinute
%1 minute
@@ -5969,43 +5968,43 @@ To enable them in a commercial project, please contact us.
-
+
chat_message_forward_error
Cannot forward an invalid message
Cannot forward an invalid message
-
+
info_popup_forward_message_error
Could not forward message : %1
Could not forward message : %1
-
+
info_popup_send_forward_message_error_message
Failed to create forward message
Failed to create forward message
-
+
chat_message_reply_error
Cannot reply to invalid message
Cannot reply to invalid message
-
+
info_popup_reply_message_error
Could not send reply message : %1
Could not send reply message : %1
-
+
info_popup_send_reply_message_error_message
Failed to create reply message
Failed to create reply message
-
+
nHour
%1 hour
@@ -6013,8 +6012,8 @@ To enable them in a commercial project, please contact us.
-
-
+
+
nDay
%1 day
@@ -6022,7 +6021,7 @@ To enable them in a commercial project, please contact us.
-
+
nWeek
%1 week
@@ -6030,27 +6029,27 @@ To enable them in a commercial project, please contact us.
-
+
contact_presence_status_available
Available
-
+
contact_presence_status_busy
Busy
-
+
contact_presence_status_do_not_disturb
Do not disturb
-
+
contact_presence_status_offline
Offline
-
+
contact_presence_status_away
Idle/Away
@@ -6063,7 +6062,7 @@ To enable them in a commercial project, please contact us.
-
+
information_popup_error_title
Failed to create 1-1 conversation with %1 !
Error
@@ -6143,42 +6142,42 @@ To enable them in a commercial project, please contact us.
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
-
+
information_popup_chatroom_creation_error_message
Failed to create 1-1 conversation with %1 !
-
+
recorder_error
Error with the recorder
Error with the recorder
-
-
-
+
+
+
chat_error
Error in the chat
-
-
-
-
-
-
+
+
+
+
+
+
info_popup_error_title
Error
Error
-
+
info_popup_send_voice_message_error_message
Could not send voice message : %1
Could not send voice message : %1
-
+
info_popup_send_voice_message_sending_error_message
Failed to create message from record
Failed to create message from record
diff --git a/Linphone/data/languages/fr.ts b/Linphone/data/languages/fr.ts
index 3571ba068..294304cd9 100644
--- a/Linphone/data/languages/fr.ts
+++ b/Linphone/data/languages/fr.ts
@@ -761,30 +761,30 @@
Print only logs from the application
-
+
hide_action
"Cacher" "Afficher"
Cacher
-
+
show_action
Afficher
-
+
quit_action
"Quitter"
Quitter
-
+
check_for_update
Check for update
Rechercher une mise à jour
-
+
mark_all_read_action
Marquer tout comme lu
@@ -830,76 +830,76 @@
CallCore
-
+
call_record_end_message
"Enregistrement terminé"
Enregistrement terminé
-
+
call_record_saved_in_file_message
"L'appel a été enregistré dans le fichier : %1"
L'appel a été enregistré dans le fichier : %1
-
-
+
+
call_stats_codec_label
"Codec: %1 / %2 kHz"
Codec: %1 / %2 kHz
-
-
+
+
call_stats_bandwidth_label
"Bande passante : %1 %2 kbits/s %3 %4 kbits/s"
Bande passante : %1 %2 kbits/s %3 %4 kbits/s
-
-
+
+
call_stats_loss_rate_label
"Taux de perte: %1% %2%"
Taux de perte: %1% %2%
-
+
call_stats_jitter_buffer_label
"Tampon de gigue: %1 ms"
Tampon de gigue: %1 ms
-
+
call_stats_resolution_label
"Définition vidéo : %1 %2 %3 %4"
Définition vidéo : %1 %2 %3 %4
-
+
call_stats_fps_label
"FPS : %1 %2 %3 %4"
FPS : %1 %2 %3 %4
-
+
media_encryption_dtls
DTLS
DTLS
-
+
media_encryption_none
None
None
-
+
media_encryption_srtp
SRTP
SRTP
-
+
media_encryption_post_quantum
"ZRTP - Post quantique"
ZRTP - Post quantique
@@ -907,36 +907,16 @@
CallForwardSettingsLayout
-
- settings_call_forward_activation_success
- Transfert d'appel activé vers : %1
-
settings_call_forward_to_voicemail
Boîte vocale
-
- settings_call_forward_deactivation_success
- Transfert d'appel désactivé
-
-
- settings_call_forward_address_timeout
- Impossible d'établir le transfert d'appel, la requête a expiré
-
settings_call_forward_address_cannot_be_empty
Une adresse ou un numéro de téléphone est nécessaire
-
- settings_call_forward_address_progress_disabling
- Désactiver le transfert d'appel
-
-
- settings_call_forward_address_progress_enabling
- Activer le transfert d'appel pour :
-
settings_call_forward_activate_title
@@ -1505,7 +1485,7 @@
-
+
information_popup_error_title
Erreur
@@ -1516,218 +1496,218 @@
Le transfert d'appel a échoué
-
+
conference_error_empty_uri
"La conférence n'a pas pu démarrer en raison d'une erreur d'uri."
La conférence n'a pas pu démarrer en raison d'une erreur d'uri.
-
+
call_close_window_dialog_title
"Terminer tous les appels en cours ?"
Terminer tous les appels en cours ?
-
+
call_close_window_dialog_message
"La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours."
La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours.
-
+
call_can_be_trusted_toast
"Appareil authentifié"
Appareil authentifié
-
+
call_dir
Appel %1
-
+
call_ended
Appel terminé
Appel terminé
-
+
conference_paused
Meeting paused
Réunion mise en pause
-
+
call_paused
Call paused
Appel mis en pause
-
-
+
+
call_srtp_point_to_point_encrypted
Appel chiffré de point à point
Appel chiffré de point à point
-
+
call_zrtp_sas_validation_required
Vérification nécessaire
Vérification nécessaire
-
+
call_zrtp_end_to_end_encrypted
Appel chiffré de bout en bout
Appel chiffré de bout en bout
-
+
call_not_encrypted
"Appel non chiffré"
Appel non chiffré
-
-
+
+
call_waiting_for_encryption_info
Waiting for encryption
En attente de chiffrement
-
+
call_paused_by_remote
Call paused by remote
Appel mis en pause par votre correspondant
-
+
conference_user_is_recording
"You are recording the meeting"
Vous enregistrez la réunion
-
+
call_user_is_recording
"You are recording the call"
Vous enregistrez l'appel
-
+
conference_remote_is_recording
"Someone is recording the meeting"
Un participant enregistre la réunion
-
+
call_remote_recording
"%1 is recording the call"
%1 enregistre l'appel
-
+
call_stop_recording
"Stop recording"
Arrêter l'enregistrement
-
+
add
Ajouter
-
+
call_transfer_current_call_title
"Transférer %1 à…"
Transférer %1 à…
-
-
+
+
call_transfer_confirm_dialog_tittle
"Confirmer le transfert"
Confirmer le transfert
-
-
+
+
call_transfer_confirm_dialog_message
"Vous allez transférer %1 à %2."
Vous allez transférer %1 à %2.
-
+
call_action_start_new_call
"Nouvel appel"
Nouvel appel
-
-
+
+
call_action_show_dialer
"Pavé numérique"
Pavé numérique
-
+
call_action_change_layout
"Modifier la disposition"
Modifier la disposition
-
+
call_action_go_to_calls_list
"Liste d'appel"
Liste d'appel
-
+
Merger tous les appels
call_action_merge_calls
Merger tous les appels
-
-
+
+
call_action_go_to_settings
"Paramètres"
Paramètres
-
+
conference_action_screen_sharing
"Partage de votre écran"
Partage de votre écran
-
+
conference_share_link_title
Partager le lien de la réunion
Partager le lien de la réunion
-
+
copied
Copié
Copié
-
+
information_popup_meeting_address_copied_to_clipboard
Le lien de la réunion a été copié dans le presse-papier
Le lien de la réunion a été copié dans le presse-papier
-
-
-
+
+
+
conference_participants_list_title
"Participants (%1)"
Participants (%1)
-
-
+
+
group_call_participant_selected
%1 participant sélectionné
@@ -1735,194 +1715,194 @@
-
+
meeting_schedule_add_participants_title
Ajouter des participants
-
+
call_encryption_title
Chiffrement
Chiffrement
-
+
open_statistic_panel_accessible_name
Ouvrir le panneau de statistiques
-
+
conference_user_is_sharing_screen
"You are sharing your screen"
Vous partagez votre écran
-
+
call_stop_screen_sharing
"Stop sharing"
Arrêter le partage
-
+
stop_recording_accessible_name
Stop recording
Arrêter l'enregistrement
-
+
stop_screen_sharing_accessible_name
"Stop screen sharing"
Arrêter le partage d'écran
-
+
call_stats_title
Statistiques
Statistiques
-
-
+
+
call_action_end_call
"Terminer l'appel"
Terminer l'appel
-
-
+
+
call_action_resume_call
"Reprendre l'appel"
Reprendre l'appel
-
-
+
+
call_action_pause_call
"Mettre l'appel en pause"
Mettre l'appel en pause
-
-
+
+
call_action_transfer_call
"Transférer l'appel"
Transférer l'appel
-
-
+
+
call_action_start_new_call_hint
"Initier un nouvel appel"
Initier un nouvel appel
-
-
+
+
call_display_call_list_hint
"Afficher la liste d'appels"
Afficher la liste d'appels
-
-
+
+
call_deactivate_video_hint
"Désactiver la vidéo" "Activer la vidéo"
Désactiver la vidéo
-
-
+
+
call_activate_video_hint
Activer la vidéo
-
-
+
+
call_activate_microphone
"Activer le micro"
Activer le micro
-
-
+
+
call_deactivate_microphone
"Désactiver le micro"
Désactiver le micro
-
-
+
+
call_share_screen_hint
Partager l'écran…
Partager l'écran…
-
-
+
+
call_open_chat_hint
Open chat…
Ouvrir le chat…
-
-
+
+
call_rise_hand_hint
"Lever la main"
Lever la main
-
-
+
+
call_send_reaction_hint
"Envoyer une réaction"
Envoyer une réaction
-
-
+
+
call_manage_participants_hint
"Gérer les participants"
Gérer les participants
-
-
+
+
call_more_options_hint
"Plus d'options…"
Plus d'options…
-
+
call_action_change_conference_layout
"Modifier la disposition"
Modifier la disposition
-
+
call_action_full_screen
"Mode Plein écran"
Mode Plein écran
-
+
call_action_stop_recording
"Terminer l'enregistrement"
Terminer l'enregistrement
-
+
call_action_record
"Enregistrer l'appel"
Enregistrer l'appel
-
+
call_activate_speaker_hint
"Activer le son"
Activer le son
-
+
call_deactivate_speaker_hint
"Désactiver le son"
Désactiver le son
@@ -2094,54 +2074,54 @@
Brouillon : %1
-
+
chat_room_delete
"Delete"
Supprimer
-
+
chat_room_mute
Mettre en sourdine
-
+
chat_room_unmute
"Mute"
Enlever la sourdine
-
+
chat_room_mark_as_read
"Mark as read"
Marquer comme lu
-
+
chat_room_leave
"leave"
Quitter la conversation
-
+
chat_list_leave_chat_popup_title
leave the conversation ?
Quitter la conversation ?
-
+
chat_list_leave_chat_popup_message
You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?
Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ?
-
+
chat_list_delete_chat_popup_title
Delete the conversation ?
Supprimer la conversation ?
-
+
chat_list_delete_chat_popup_message
This conversation and all its messages will be deleted. Do You want to continue ?
La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ?
@@ -3471,12 +3451,12 @@ en bout. Seul votre correspondant peut les déchiffrer.
CoreModel
-
+
info_popup_error_title
Erreur
-
+
fetching_config_failed_error_message
"Remote provisioning cannot be retrieved"
La configuration distante n'a pas pu être récupérée
@@ -4462,28 +4442,23 @@ Expiration : %1
Erreur lors de la création
-
+
assistant_register_success_title
"Compte créé"
Compte créé
-
+
assistant_register_success_message
"Le compte a été créé. Vous pouvez maintenant vous connecter"
Le compte a été créé. Vous pouvez maintenant vous connecter
-
+
assistant_register_error_code
"Erreur dans le code de validation"
Erreur dans le code de validation
-
-
- information_popup_error_title
- Erreur
-
ManageParticipants
@@ -5103,13 +5078,13 @@ Expiration : %1
PhoneNumberInput
-
+
prefix_phone_number_accessible_name
%1 prefix
%1 préfix
-
+
number_phone_number_accessible_name
%1 number
%1 indicatif téléphonique
@@ -5302,37 +5277,37 @@ Expiration : %1
RegisterCheckingPage
-
+
email
"email"
email
-
+
phone_number
"numéro de téléphone"
numéro de téléphone
-
+
confirm_register_title
"Inscription | Confirmer votre %1"
Inscription | Confirmer votre %1
-
+
assistant_account_creation_confirmation_explanation
Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous
Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous
-
+
assistant_account_creation_confirmation_did_not_receive_code
"Vous n'avez pas reçu le code ?"
Vous n'avez pas reçu le code ?
-
+
assistant_account_creation_confirmation_resend_code
"Renvoyer un code"
Renvoyer un code
@@ -5373,49 +5348,49 @@ Expiration : %1
S'inscrire avec un email
-
-
+
+
username
Nom d'utilisateur
-
-
-
-
-
+
+
+
+
+
mandatory_field_accessible_name
"%1 mandatory"
%1 requit
-
+
domain
Domaine
-
-
-
+
+
+
phone_number
"Numéro de téléphone"
Numéro de téléphone
-
-
+
+
email
Email
-
-
+
+
password
Mot de passe
-
-
+
+
assistant_account_register_password_confirmation
"Confirmation mot de passe"
Confirmation mot de passe
@@ -5439,37 +5414,37 @@ Expiration : %1
politique de confidentialité
-
+
assistant_account_create
"Créer"
Créer
-
+
assistant_account_create_missing_username_error
"Veuillez entrer un nom d'utilisateur"
Veuillez entrer un nom d'utilisateur
-
+
assistant_account_create_missing_password_error
"Veuillez entrer un mot de passe"
Veuillez entrer un mot de passe
-
+
assistant_account_create_confirm_password_error
"Les mots de passe sont différents"
Les mots de passe sont différents
-
+
assistant_account_create_missing_number_error
"Veuillez entrer un numéro de téléphone"
Veuillez entrer un numéro de téléphone
-
+
assistant_account_create_missing_email_error
"Veuillez entrer un email"
Veuillez entrer un email
@@ -5948,7 +5923,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.
Utils
-
+
nMinute
%1 minute
@@ -5956,7 +5931,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.
-
+
nHour
%1 heure
@@ -5964,8 +5939,8 @@ Pour les activer dans un projet commercial, merci de nous contacter.
-
-
+
+
nDay
%1 jour
@@ -5973,7 +5948,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.
-
+
nWeek
%1 semaine
@@ -5981,7 +5956,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.
-
+
nSeconds
%1 seconde
@@ -5989,27 +5964,27 @@ Pour les activer dans un projet commercial, merci de nous contacter.
-
+
contact_presence_status_available
Disponible
-
+
contact_presence_status_busy
Occupé
-
+
contact_presence_status_do_not_disturb
Ne pas déranger
-
+
contact_presence_status_offline
Hors ligne
-
+
contact_presence_status_away
Inactif/Absent
@@ -6022,7 +5997,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.
-
+
information_popup_error_title
Failed to create 1-1 conversation with %1 !
Erreur
@@ -6102,78 +6077,78 @@ Pour les activer dans un projet commercial, merci de nous contacter.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
-
+
information_popup_chatroom_creation_error_message
Erreur lors de la création de la conversation avec %1
-
+
recorder_error
Error with the recorder
Erreur avec l'enregistreur
-
-
-
+
+
+
chat_error
Erreur dans le chat
-
+
chat_message_forward_error
Cannot forward an invalid message
Impossible de transférer : message invalide
-
-
-
-
-
-
+
+
+
+
+
+
info_popup_error_title
Error
Erreur
-
+
info_popup_forward_message_error
Could not forward message : %1
Impossible de transférer le message : %1
-
+
info_popup_send_forward_message_error_message
Failed to create forward message
Impossible de créer le message
-
+
chat_message_reply_error
Cannot reply to invalid message
Impossible de répondre : message invalide
-
+
info_popup_reply_message_error
Could not send reply message : %1
Impossible d'envoyer la réponse : %1
-
+
info_popup_send_reply_message_error_message
Failed to create reply message
Impossible de créer le message
-
+
info_popup_send_voice_message_error_message
Could not send voice message : %1
Impossible d'envoyer le message vocal : %1
-
+
info_popup_send_voice_message_sending_error_message
Failed to create message from record
Impossible de créer le message vocal
diff --git a/Linphone/model/account/AccountManager.cpp b/Linphone/model/account/AccountManager.cpp
index da769e0d0..f745a04c8 100644
--- a/Linphone/model/account/AccountManager.cpp
+++ b/Linphone/model/account/AccountManager.cpp
@@ -357,10 +357,11 @@ void AccountManager::linkNewAccountUsingCode(const QString &code,
const std::string &errorMessage, const std::shared_ptr ¶meterErrors) {
if (request->getType() == linphone::AccountManagerServicesRequest::Type::LinkEmailUsingCode) {
lInfo() << "[AccountManager] error linking email to account" << errorMessage;
+ emit linkingNewAccountWithCodeFailed(Utils::coreStringToAppString(errorMessage));
} else if (request->getType() == linphone::AccountManagerServicesRequest::Type::LinkPhoneNumberUsingCode) {
lInfo() << "[AccountManager] error linking phone number to account" << errorMessage;
+ emit linkingNewAccountWithCodeFailed(Utils::coreStringToAppString(errorMessage));
}
- emit linkingNewAccountWithCodeFailed(Utils::coreStringToAppString(errorMessage));
});
if (registerType == RegisterType::Email)
mAccountManagerServicesModel->linkEmailToAccountUsingCode(sipIdentityAddress,
diff --git a/Linphone/view/Control/Button/CountryIndicatorCombobox.qml b/Linphone/view/Control/Button/CountryIndicatorCombobox.qml
index 5fe2c5dae..df9b03bd1 100644
--- a/Linphone/view/Control/Button/CountryIndicatorCombobox.qml
+++ b/Linphone/view/Control/Button/CountryIndicatorCombobox.qml
@@ -3,12 +3,18 @@ import QtQuick.Controls.Basic as Control
import QtQuick.Layouts
import QtQuick.Effects
import Linphone
+import CustomControls 1.0
import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils
Control.ComboBox {
id: mainItem
property string defaultCallingCode: ""
property bool enableBackgroundColors: false
+ onKeyboardFocusChanged: console.log("keyboard focus combobox", keyboardFocus)
+ property bool keyboardFocus: FocusHelper.keyboardFocus
+ property color keyboardFocusedBorderColor: DefaultStyle.main2_900
+ property real borderWidth: Utils.getSizeWithScreenRatio(1)
+ property real keyboardFocusedBorderWidth: Utils.getSizeWithScreenRatio(3)
property string text: combobox.model.getAt(combobox.currentIndex) ? combobox.model.getAt(combobox.currentIndex).countryCallingCode : ""
currentIndex: phoneNumberModel.count > 0 ? Math.max(0, phoneNumberModel.findIndexByCountryCallingCode(defaultCallingCode)) : -1
Accessible.name: mainItem.Accessible.name
@@ -19,13 +25,16 @@ Control.ComboBox {
anchors.fill: parent
radius: Utils.getSizeWithScreenRatio(63)
color: mainItem.enableBackgroundColor ? DefaultStyle.grey_100 : "transparent"
- border.color: mainItem.enableBackgroundColors
- ? (mainItem.errorMessage.length > 0
- ? DefaultStyle.danger_500_main
- : textField.activeFocus
- ? DefaultStyle.main1_500_main
- : DefaultStyle.grey_200)
- : "transparent"
+ border.color: mainItem.keyboardFocus
+ ? mainItem.keyboardFocusedBorderColor
+ : mainItem.enableBackgroundColors
+ ? (mainItem.errorMessage.length > 0
+ ? DefaultStyle.danger_500_main
+ : mainItem.activeFocus || textField.activeFocus
+ ? DefaultStyle.main1_500_main
+ : DefaultStyle.grey_200)
+ : "transparent"
+ border.width: mainItem.keyboardFocus ? mainItem.keyboardFocusedBorderWidth : mainItem.borderWidth
}
contentItem: RowLayout {
readonly property var currentItem: combobox.model.getAt(combobox.currentIndex)
@@ -95,8 +104,6 @@ Control.ComboBox {
maximumFlickVelocity: 1500
spacing: Utils.getSizeWithScreenRatio(10)
highlight: Rectangle {
- anchors.left: parent.left
- anchors.right: parent.right
width: listView.width
height: listView.height
color: DefaultStyle.main2_300
diff --git a/Linphone/view/Control/Container/FormItemLayout.qml b/Linphone/view/Control/Container/FormItemLayout.qml
index fceaf1296..6997d3c53 100644
--- a/Linphone/view/Control/Container/FormItemLayout.qml
+++ b/Linphone/view/Control/Container/FormItemLayout.qml
@@ -12,6 +12,7 @@ FocusScope{
property string labelIndication
property string tooltip: ""
property bool mandatory: false
+ property int errorTextTopMargin: 0//
property alias errorTextItem: errorText
property alias errorMessage: errorText.text
@@ -85,7 +86,7 @@ FocusScope{
Item {
Layout.preferredHeight: childrenRect.height
Layout.fillWidth: true
- StackLayout {
+ FocusScope {
id: contentItem
height: childrenRect.height
anchors.left: parent.left
@@ -94,6 +95,7 @@ FocusScope{
TemporaryText {
id: errorText
anchors.top: contentItem.bottom
+ anchors.topMargin: mainItem.errorTextTopMargin
color: DefaultStyle.danger_500_main
}
}
diff --git a/Linphone/view/Control/Input/DigitInput.qml b/Linphone/view/Control/Input/DigitInput.qml
index 43a7ee957..93e583c5b 100644
--- a/Linphone/view/Control/Input/DigitInput.qml
+++ b/Linphone/view/Control/Input/DigitInput.qml
@@ -6,6 +6,7 @@ import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils
Control.TextField {
id: mainItem
property real inputSize: Utils.getSizeWithScreenRatio(100)
+ property bool isError: false
color: activeFocus ? DefaultStyle.main1_500_main : DefaultStyle.main2_500_main
validator: IntValidator{bottom: 0; top: 9}
@@ -34,7 +35,11 @@ Control.TextField {
Rectangle {
id: background
border.width: Utils.getSizeWithScreenRatio(1)
- border.color: mainItem.activeFocus ? DefaultStyle.main1_500_main : DefaultStyle.main2_500_main
+ border.color: mainItem.isError
+ ? DefaultStyle.danger_500_main
+ : mainItem.activeFocus
+ ? DefaultStyle.main1_500_main
+ : DefaultStyle.main2_500_main
radius: mainItem.inputSize * 0.15
width: mainItem.inputSize * 0.9
height: mainItem.inputSize
diff --git a/Linphone/view/Control/Input/PhoneNumberInput.qml b/Linphone/view/Control/Input/PhoneNumberInput.qml
index 25a883e5f..72be8086e 100644
--- a/Linphone/view/Control/Input/PhoneNumberInput.qml
+++ b/Linphone/view/Control/Input/PhoneNumberInput.qml
@@ -18,7 +18,10 @@ ColumnLayout {
readonly property string phoneNumber: textField.text
readonly property string countryCode: combobox.text
property string defaultCallingCode
- property bool keyboardFocus: FocusHelper.keyboardFocus
+ property bool keyboardFocus: combobox.keyboardFocus || textField.keyboardFocus
+ property color keyboardFocusedBorderColor: DefaultStyle.main2_900
+ property real borderWidth: Utils.getSizeWithScreenRatio(1)
+ property real keyboardFocusedBorderWidth: Utils.getSizeWithScreenRatio(3)
spacing: Utils.getSizeWithScreenRatio(5)
@@ -26,7 +29,7 @@ ColumnLayout {
visible: label.length > 0
verticalAlignment: Text.AlignVCenter
text: mainItem.label + (mainItem.mandatory ? "*" : "")
- color: (combobox.hasActiveFocus || textField.hasActiveFocus) ? DefaultStyle.main1_500_main : DefaultStyle.main2_600
+ color: (combobox.activeFocus || textField.activeFocus) ? DefaultStyle.main1_500_main : DefaultStyle.main2_600
font {
pixelSize: Typography.p2.pixelSize
weight: Typography.p2.weight
@@ -36,25 +39,25 @@ ColumnLayout {
Control.Control {
Layout.preferredWidth: mainItem.width
Layout.preferredHeight: Utils.getSizeWithScreenRatio(49)
- leftPadding: Utils.getSizeWithScreenRatio(16)
background: Rectangle {
id: contentBackground
anchors.fill: parent
radius: Utils.getSizeWithScreenRatio(63)
color: DefaultStyle.grey_100
border.color: mainItem.errorMessage.length > 0
- ? DefaultStyle.danger_500_main
- : (textField.hasActiveFocus || combobox.hasActiveFocus)
- ? DefaultStyle.main1_500_main
- : DefaultStyle.grey_200
+ ? DefaultStyle.danger_500_main
+ : (textField.activeFocus || combobox.activeFocus)
+ ? DefaultStyle.main1_500_main
+ : DefaultStyle.grey_200
+ border.width: mainItem.borderWidth
}
contentItem: RowLayout {
CountryIndicatorCombobox {
id: combobox
implicitWidth: Utils.getSizeWithScreenRatio(110)
+ leftPadding: Utils.getSizeWithScreenRatio(16)
Layout.fillHeight: true
defaultCallingCode: mainItem.defaultCallingCode
- property bool keyboardFocus: FocusHelper.keyboardFocus
//: %1 prefix
Accessible.name: qsTr("prefix_phone_number_accessible_name").arg(mainItem.Accessible.name)
}
@@ -69,10 +72,15 @@ ColumnLayout {
id: textField
Layout.fillWidth: true
placeholderText: mainItem.placeholderText
- background: Item{}
+ background: Rectangle {
+ visible: textField.keyboardFocus
+ radius: Utils.getSizeWithScreenRatio(63)
+ color: "transparent"
+ border.color: mainItem.keyboardFocusedBorderColor
+ border.width: mainItem.keyboardFocusedBorderWidth
+ }
initialText: initialPhoneNumber
validator: RegularExpressionValidator{ regularExpression: /[0-9]+/}
- property bool keyboardFocus: FocusHelper.keyboardFocus
//: %1 number
Accessible.name: qsTr("number_phone_number_accessible_name").arg(mainItem.Accessible.name)
}
diff --git a/Linphone/view/Page/Form/Register/RegisterCheckingPage.qml b/Linphone/view/Page/Form/Register/RegisterCheckingPage.qml
index 437a0a0f2..2f88adff8 100644
--- a/Linphone/view/Page/Form/Register/RegisterCheckingPage.qml
+++ b/Linphone/view/Page/Form/Register/RegisterCheckingPage.qml
@@ -14,6 +14,7 @@ LoginLayout {
property string address
property string sipIdentityAddress
property string code
+ property alias errorMessage: codeItemLayout.errorMessage
property bool ctrlIsPressed
onCtrlIsPressedChanged: console.log("ctrl is pressed", ctrlIsPressed)
titleContent: [
@@ -78,66 +79,71 @@ LoginLayout {
text = qsTr("assistant_account_creation_confirmation_explanation").arg(completeString).arg(address)
}
}
- RowLayout {
- spacing: Utils.getSizeWithScreenRatio(45)
- Repeater {
- model: 4
- id: repeater
- signal pasteRequested(string text)
- DigitInput {
- id: digitInput
- required property int index
- Layout.preferredWidth: width
- Layout.preferredHeight: height
- Connections {
- target: repeater
- function onPasteRequested(text) {
- console.log("paste requested", text[digitInput.index])
- var test= text;
- if (UtilsCpp.isInteger(text))
- {
- digitInput.text = text[digitInput.index]
+ FormItemLayout {
+ id: codeItemLayout
+ errorTextTopMargin: Utils.getSizeWithScreenRatio(5)
+ contentItem: RowLayout {
+ spacing: Utils.getSizeWithScreenRatio(45)
+ Repeater {
+ model: 4
+ id: repeater
+ signal pasteRequested(string text)
+ DigitInput {
+ id: digitInput
+ required property int index
+ Layout.preferredWidth: width
+ Layout.preferredHeight: height
+ isError: codeItemLayout.errorMessage !== ""
+ Connections {
+ target: repeater
+ function onPasteRequested(text) {
+ console.log("paste requested", text[digitInput.index])
+ var test= text;
+ if (UtilsCpp.isInteger(text))
+ {
+ digitInput.text = text[digitInput.index]
+ }
}
}
- }
- onTextChanged: {
- console.log("text edited", text)
- if (text.length > 0 ) {
- mainItem.code = mainItem.code.slice(0, index) + text + mainItem.code.slice(index)
- if (index < 3)
- nextItemInFocusChain(true).forceActiveFocus()
- else {
- mainItem.sendCode(mainItem.code)
- mainItem.code = ""
- }
- } else {
- if (index > 0)
- nextItemInFocusChain(false).forceActiveFocus()
- }
- }
- Keys.onPressed: (event) => {
- if (event.key == Qt.Key_Backspace) {
- if (text.length === 0) {
- nextItemInFocusChain(false).forceActiveFocus()
- event.accepted = true
+ onTextChanged: {
+ console.log("text edited", text)
+ if (text.length > 0 ) {
+ mainItem.code = mainItem.code.slice(0, index) + text + mainItem.code.slice(index)
+ if (index < 3)
+ nextItemInFocusChain(true).forceActiveFocus()
+ else {
+ mainItem.sendCode(mainItem.code)
+ mainItem.code = ""
+ }
} else {
- event.accepted = false
+ if (index > 0)
+ nextItemInFocusChain(false).forceActiveFocus()
}
- } else if (event.key == Qt.Key_Control) {
- mainItem.ctrlIsPressed = true
- event.accepted = false
- } else if (mainItem.ctrlIsPressed && event.key == Qt.Key_V) {
- var clipboard = UtilsCpp.getClipboardText()
- console.log("paste", clipboard)
- repeater.pasteRequested(clipboard)
- } else {
- event.accepted = false
}
- }
- Keys.onReleased: (event) => {
- if (event.key == Qt.Key_Control) {
- mainItem.ctrlIsPressed = false
- event.accepted = true
+ Keys.onPressed: (event) => {
+ if (event.key == Qt.Key_Backspace) {
+ if (text.length === 0) {
+ nextItemInFocusChain(false).forceActiveFocus()
+ event.accepted = true
+ } else {
+ event.accepted = false
+ }
+ } else if (event.key == Qt.Key_Control) {
+ mainItem.ctrlIsPressed = true
+ event.accepted = false
+ } else if (mainItem.ctrlIsPressed && event.key == Qt.Key_V) {
+ var clipboard = UtilsCpp.getClipboardText()
+ console.log("paste", clipboard)
+ repeater.pasteRequested(clipboard)
+ } else {
+ event.accepted = false
+ }
+ }
+ Keys.onReleased: (event) => {
+ if (event.key == Qt.Key_Control) {
+ mainItem.ctrlIsPressed = false
+ event.accepted = true
+ }
}
}
}
diff --git a/Linphone/view/Page/Form/Register/RegisterPage.qml b/Linphone/view/Page/Form/Register/RegisterPage.qml
index 1dc83c687..2a1fd3749 100644
--- a/Linphone/view/Page/Form/Register/RegisterPage.qml
+++ b/Linphone/view/Page/Form/Register/RegisterPage.qml
@@ -128,15 +128,11 @@ LoginLayout {
ColumnLayout {
id: contentLayout
- anchors.left: parent.left
- anchors.right: parent.right
spacing: Utils.getSizeWithScreenRatio(8)
ColumnLayout {
id: formLayout
spacing: Utils.getSizeWithScreenRatio(24)
RowLayout {
- Layout.preferredHeight: usernameItem.height
- spacing: Utils.getSizeWithScreenRatio(16)
FormItemLayout {
id: usernameItem
label: qsTr("username")
@@ -152,6 +148,7 @@ LoginLayout {
}
RowLayout {
spacing: Utils.getSizeWithScreenRatio(10)
+ Layout.leftMargin: Utils.getSizeWithScreenRatio(16)
ComboBox {
Layout.preferredWidth: Utils.getSizeWithScreenRatio(210)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(49)
@@ -171,7 +168,8 @@ LoginLayout {
currentIndex: bar.currentIndex
PhoneNumberInput {
id: phoneNumberInput
- Layout.preferredWidth: Utils.getSizeWithScreenRatio(346)
+ Layout.fillWidth: false
+ Layout.preferredWidth: Utils.getSizeWithScreenRatio(390)
property string completePhoneNumber: countryCode + phoneNumber
//: "Numéro de téléphone"
label: qsTr("phone_number")
@@ -221,6 +219,7 @@ LoginLayout {
}
FormItemLayout {
Layout.preferredWidth: Utils.getSizeWithScreenRatio(346)
+ Layout.leftMargin: Utils.getSizeWithScreenRatio(16)
//: "Confirmation mot de passe"
label: qsTr("assistant_account_register_password_confirmation")
mandatory: true
@@ -235,13 +234,14 @@ LoginLayout {
}
}
}
- TemporaryText {
- id: otherErrorText
- Layout.fillWidth: true
- Layout.topMargin: Utils.getSizeWithScreenRatio(5)
- }
}
}
+ TemporaryText {
+ id: otherErrorText
+ Layout.fillWidth: true
+ Layout.preferredHeight: implicitHeight
+ // Layout.topMargin: Utils.getSizeWithScreenRatio(5)
+ }
// ColumnLayout {
// spacing: Utils.getSizeWithScreenRatio(18)
// RowLayout {
@@ -276,6 +276,7 @@ LoginLayout {
Accessible.name: acceptCguAndPrivacyPolicyItem.associatedText
}
Text {
+ id: privacyLinkText
text: acceptCguAndPrivacyPolicyItem.associatedText
onLinkActivated: (link) => Qt.openUrlExternally(link)
font {
@@ -284,9 +285,17 @@ LoginLayout {
}
MouseArea {
anchors.fill: parent
- acceptedButtons: Qt.NoButton
+ acceptedButtons: Qt.LeftButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
- onClicked: termsCheckBox.toggle()
+ onClicked: (mouse) => {
+ mouse.accepted = false
+ if (parent.hoveredLink) {
+ privacyLinkText.linkActivated(privacyLinkText.linkAt(mouse.x, mouse.y))
+ }
+ else {
+ termsCheckBox.toggle()
+ }
+ }
}
}
}
diff --git a/Linphone/view/Page/Window/Main/MainWindow.qml b/Linphone/view/Page/Window/Main/MainWindow.qml
index 30a0206e7..e35ded455 100644
--- a/Linphone/view/Page/Window/Main/MainWindow.qml
+++ b/Linphone/view/Page/Window/Main/MainWindow.qml
@@ -230,6 +230,7 @@ AbstractWindow {
Component {
id: checkingPage
RegisterCheckingPage {
+ id: registerCheckingPage
onReturnToRegister: mainWindowStackView.pop()
onSendCode: (code) => {
RegisterPageCpp.linkNewAccountUsingCode(code, registerWithEmail, sipIdentityAddress)
@@ -238,15 +239,16 @@ AbstractWindow {
target: RegisterPageCpp
function onLinkingNewAccountWithCodeSucceed() {
goToLogin()
- //: "Compte créé"
- mainWindow.showInformationPopup(qsTr("assistant_register_success_title"),
- //: "Le compte a été créé. Vous pouvez maintenant vous connecter"
- qsTr("assistant_register_success_message"), true)
+ //: "Compte créé"
+ mainWindow.showInformationPopup(qsTr("assistant_register_success_title"),
+ //: "Le compte a été créé. Vous pouvez maintenant vous connecter"
+ qsTr("assistant_register_success_message"), true)
}
function onLinkingNewAccountWithCodeFailed(errorMessage) {
- //: "Erreur dans le code de validation"
- if (errorMessage.length === 0) errorMessage = qsTr("assistant_register_error_code")
- mainWindow.showInformationPopup(qsTr("information_popup_error_title"), errorMessage, false)
+ registerCheckingPage.errorMessage = ""
+ //: "Erreur dans le code de validation"
+ if (errorMessage.length === 0) errorMessage = qsTr("assistant_register_error_code")
+ registerCheckingPage.errorMessage = errorMessage
}
}
}