fix account parameters saving + add outbound proxy uri check

add outbound proxy uri check before connecting third party account
This commit is contained in:
Gaelle Braud 2025-12-11 15:13:11 +01:00
parent 9902bb4ae7
commit be6bf6f2a9
9 changed files with 279 additions and 218 deletions

View file

@ -314,19 +314,19 @@ void AccountCore::reset(const AccountCore &accountCore) {
setUnreadNotifications(accountCore.mUnreadNotifications);
setUnreadCallNotifications(accountCore.mUnreadCallNotifications);
setUnreadMessageNotifications(accountCore.mUnreadMessageNotifications);
setMwiServerAddress(accountCore.mMwiServerAddress);
setVoicemailAddress(accountCore.mVoicemailAddress);
setTransport(accountCore.mTransport);
setRegistrarUri(accountCore.mRegistrarUri);
setOutboundProxyUri(accountCore.mOutboundProxyUri);
onMwiServerAddressChanged(accountCore.mMwiServerAddress);
onVoicemailAddressChanged(accountCore.mVoicemailAddress);
onTransportChanged(accountCore.mTransport);
onRegistrarUriChanged(accountCore.mRegistrarUri);
onOutboundProxyUriChanged(accountCore.mOutboundProxyUri);
setStunServer(accountCore.mStunServer);
setIceEnabled(accountCore.mIceEnabled);
setAvpfEnabled(accountCore.mAvpfEnabled);
setBundleModeEnabled(accountCore.mBundleModeEnabled);
setExpire(accountCore.mExpire);
setConferenceFactoryAddress(accountCore.mConferenceFactoryAddress);
setAudioVideoConferenceFactoryAddress(accountCore.mAudioVideoConferenceFactoryAddress);
setLimeServerUrl(accountCore.mLimeServerUrl);
onIceEnabledChanged(accountCore.mIceEnabled);
onAvpfEnabledChanged(accountCore.mAvpfEnabled);
onBundleModeEnabledChanged(accountCore.mBundleModeEnabled);
onExpireChanged(accountCore.mExpire);
onConferenceFactoryAddressChanged(accountCore.mConferenceFactoryAddress);
onAudioVideoConferenceFactoryAddressChanged(accountCore.mAudioVideoConferenceFactoryAddress);
onLimeServerUrlChanged(accountCore.mLimeServerUrl);
}
const std::shared_ptr<AccountModel> &AccountCore::getModel() const {

View file

@ -110,37 +110,43 @@
<translation>Das Konto ist bereits verbunden</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="115"/>
<location filename="../../model/account/AccountManager.cpp" line="109"/>
<source>assistant_account_login_outbound_proxy_uri_error</source>
<extracomment>Outbound proxy uri is invalid. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="121"/>
<source>assistant_account_login_proxy_address_error</source>
<extracomment>&quot;Unable to create proxy address. Please check the domain name.&quot;</extracomment>
<translation>Proxy-Adresse konnte nicht erstellt werden. Bitte überprüfen Sie den Domänenname.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="128"/>
<location filename="../../model/account/AccountManager.cpp" line="134"/>
<source>assistant_account_login_address_configuration_error</source>
<extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment>
<translation>Folgende Adresse konnte nicht konfiguriert werden: `%1`.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="135"/>
<location filename="../../model/account/AccountManager.cpp" line="141"/>
<source>assistant_account_login_params_configuration_error</source>
<extracomment>&quot;Unable to configure account settings.&quot;</extracomment>
<translation>Kontoeinstellungen konnten nicht konfiguriert werden.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="159"/>
<location filename="../../model/account/AccountManager.cpp" line="165"/>
<source>assistant_account_login_forbidden_error</source>
<extracomment>&quot;Username and password do not match&quot;</extracomment>
<translation>Benutzername und Passwort stimmen nicht überein</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="161"/>
<location filename="../../model/account/AccountManager.cpp" line="167"/>
<source>assistant_account_login_error</source>
<extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment>
<translation>Fehler bei der Verbindung</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="175"/>
<location filename="../../model/account/AccountManager.cpp" line="181"/>
<source>assistant_account_add_error</source>
<extracomment>&quot;Unable to add account.&quot;</extracomment>
<translation>Konto konnte nicht hinzugefügt werden.</translation>
@ -161,25 +167,25 @@
<translation>Serveradresse kann nicht festgelegt werden. Ungültige Adresse aus %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="308"/>
<location filename="../../model/account/AccountModel.cpp" line="310"/>
<source>set_outbound_proxy_uri_failed_error_message</source>
<extracomment>Unable to set outbound proxy uri, failed creating address from %1</extracomment>
<extracomment>Unable to set outbound proxy uri from address %1. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation>Ausgehende Proxy-Adresse kann nicht festgelegt werden. Ungültige Adresse aus %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="417"/>
<location filename="../../model/account/AccountModel.cpp" line="419"/>
<source>set_conference_factory_address_failed_error_message</source>
<extracomment>&quot;Unable to set the conversation server address, failed creating address from %1&quot;</extracomment>
<translation>Chat-Serveradresse kann nicht festgelegt werden. Ungültige Adresse aus %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="439"/>
<location filename="../../model/account/AccountModel.cpp" line="441"/>
<source>set_audio_conference_factory_address_failed_error_message</source>
<extracomment>&quot;Unable to set the meeting server address, failed creating address from %1&quot;</extracomment>
<translation>Meeting-Serveradresse kann nicht festgelegt werden. Ungültige Adresse aus %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="486"/>
<location filename="../../model/account/AccountModel.cpp" line="488"/>
<source>set_voicemail_address_failed_error_message</source>
<extracomment>Unable to set voicemail address, failed creating address from %1</extracomment>
<translation>Anrufbeantworter-Adresse kann nicht festgelegt werden. Ungültige Adresse aus %1</translation>
@ -420,27 +426,26 @@
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="85"/>
<source>account_settings_voicemail_uri_title</source>
<extracomment>&quot;URI de messagerie vocale&quot;</extracomment>
<extracomment>&quot;Voicemail address&quot;</extracomment>
<translation>Voicemail-URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="110"/>
<source>account_settings_transport_title</source>
<extracomment>&quot;Transport&quot;</extracomment>
<translation>Transport</translation>
<translation type="vanished">Transport</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="117"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="112"/>
<source>account_settings_registrar_uri_title</source>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="125"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<source>account_settings_sip_proxy_url_title</source>
<translation>Ausgehende Proxy-Server-URL</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="133"/>
<source>login_proxy_server_url_tooltip</source>
<extracomment>&quot;If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it.&quot;</extracomment>
<translation>Wenn dieses Feld ausgefüllt ist, wird der ausgehende Proxy automatisch aktiviert. Lassen Sie es leer, um ihn zu deaktivieren.</translation>
@ -451,49 +456,49 @@
<translation type="vanished">Ausgehender Proxy-Server</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="137"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="150"/>
<source>account_settings_stun_server_url_title</source>
<extracomment>&quot;Adresse du serveur STUN&quot;</extracomment>
<translation>STUN-Server-Adresse</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="142"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="164"/>
<source>account_settings_enable_ice_title</source>
<extracomment>&quot;Activer ICE&quot;</extracomment>
<translation>ICE aktivieren</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="148"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="179"/>
<source>account_settings_avpf_title</source>
<extracomment>&quot;AVPF&quot;</extracomment>
<translation>AVPF</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="154"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="194"/>
<source>account_settings_bundle_mode_title</source>
<extracomment>&quot;Mode bundle&quot;</extracomment>
<translation>Bundle-Modus</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="163"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="212"/>
<source>account_settings_expire_title</source>
<extracomment>&quot;Expiration (en seconde)&quot;</extracomment>
<translation>Ablaufzeit (in Sekunden)</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="174"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="230"/>
<source>account_settings_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de conversations&quot;</extracomment>
<translation>Konferenz-Factory-URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="191"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="247"/>
<source>account_settings_audio_video_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de réunions&quot;</extracomment>
<translation>Video-Konferenz-Factory-URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="205"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="262"/>
<source>account_settings_lime_server_url_title</source>
<extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment>
<translation>Lime-Server-URL</translation>
@ -622,7 +627,7 @@
<translation>Erstelle Ende-zu-Ende verschlüsselte Konferenzen und Gruppenrufe</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AdvancedSettingsLayout.qml" line="239"/>
<location filename="../../view/Page/Layout/Settings/AdvancedSettingsLayout.qml" line="241"/>
<source>settings_advanced_hide_fps_title</source>
<translation>FPS ausblenden</translation>
</message>
@ -712,80 +717,80 @@
<translation>nicht erreichbar</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="973"/>
<location filename="../../core/App.cpp" line="975"/>
<source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>Ein kostenloses Open-Source SIP Video-Telefon.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="975"/>
<location filename="../../core/App.cpp" line="977"/>
<source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Kommandozeilen-Befehl an die Anwendung schicken</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="979"/>
<location filename="../../core/App.cpp" line="981"/>
<source>command_line_option_show_help</source>
<translation>Zeige Hilfe</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="984"/>
<location filename="../../core/App.cpp" line="986"/>
<source>command_line_option_show_app_version</source>
<translation>App-Version anzeigen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="992"/>
<location filename="../../core/App.cpp" line="994"/>
<source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="994"/>
<location filename="../../core/App.cpp" line="996"/>
<source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, Pfad oder Datei</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="999"/>
<location filename="../../core/App.cpp" line="1001"/>
<source>command_line_option_minimized</source>
<translation>Minimieren</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1002"/>
<location filename="../../core/App.cpp" line="1004"/>
<source>command_line_option_log_to_stdout</source>
<translation>Debug-Informationen auf der Standardausgabe ausgeben</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1005"/>
<location filename="../../core/App.cpp" line="1007"/>
<source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Nur Anwendungs-Logs ausgeben</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1437"/>
<location filename="../../core/App.cpp" line="1439"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Ausblenden</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1437"/>
<location filename="../../core/App.cpp" line="1439"/>
<source>show_action</source>
<translation>Zeigen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1452"/>
<location filename="../../core/App.cpp" line="1454"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Beenden</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1470"/>
<location filename="../../core/App.cpp" line="1472"/>
<source>check_for_update</source>
<extracomment>Check for update</extracomment>
<translation>Auf Updates prüfen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1588"/>
<location filename="../../core/App.cpp" line="1590"/>
<source>mark_all_read_action</source>
<translation>Alle als gelesen markieren</translation>
</message>
@ -2109,65 +2114,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="251"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="258"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 schreibt</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="253"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="260"/>
<source>chat_message_draft_sending_text</source>
<translation>Entwurf: %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="398"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="405"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Löschen</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="337"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="344"/>
<source>chat_room_mute</source>
<translation>Stummschalten</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="336"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Stummschaltung aufheben</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="350"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="357"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Als gelesen markieren</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="376"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Verlassen</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Chat verlassen?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="384"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>Sie können in diesem Chat keine Nachrichten mehr senden oder empfangen. Möchten Sie fortfahren?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment>
<translation>Chat löschen?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="413"/>
<source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>Dieser Chat und alle seine Nachrichten werden gelöscht. Möchten Sie fortfahren?</translation>

View file

@ -110,37 +110,43 @@
<translation>The account is already connected</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="115"/>
<location filename="../../model/account/AccountManager.cpp" line="109"/>
<source>assistant_account_login_outbound_proxy_uri_error</source>
<extracomment>Outbound proxy uri is invalid. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation>Outbound proxy uri is invalid. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="121"/>
<source>assistant_account_login_proxy_address_error</source>
<extracomment>&quot;Unable to create proxy address. Please check the domain name.&quot;</extracomment>
<translation>Unable to create proxy address. Please check the domain name.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="128"/>
<location filename="../../model/account/AccountManager.cpp" line="134"/>
<source>assistant_account_login_address_configuration_error</source>
<extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment>
<translation>Unable to configure address: `%1`.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="135"/>
<location filename="../../model/account/AccountManager.cpp" line="141"/>
<source>assistant_account_login_params_configuration_error</source>
<extracomment>&quot;Unable to configure account settings.&quot;</extracomment>
<translation>Unable to configure account settings.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="159"/>
<location filename="../../model/account/AccountManager.cpp" line="165"/>
<source>assistant_account_login_forbidden_error</source>
<extracomment>&quot;Username and password do not match&quot;</extracomment>
<translation>Username and password do not match</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="161"/>
<location filename="../../model/account/AccountManager.cpp" line="167"/>
<source>assistant_account_login_error</source>
<extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment>
<translation>Error during connection</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="175"/>
<location filename="../../model/account/AccountManager.cpp" line="181"/>
<source>assistant_account_add_error</source>
<extracomment>&quot;Unable to add account.&quot;</extracomment>
<translation>Unable to add account.</translation>
@ -161,25 +167,25 @@
<translation>Unable to set server address, failed creating address from %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="308"/>
<location filename="../../model/account/AccountModel.cpp" line="310"/>
<source>set_outbound_proxy_uri_failed_error_message</source>
<extracomment>Unable to set outbound proxy uri, failed creating address from %1</extracomment>
<translation>Unable to set outbound proxy uri, failed creating address from %1</translation>
<extracomment>Unable to set outbound proxy uri from address %1. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation>Unable to set outbound proxy uri from address %1. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="417"/>
<location filename="../../model/account/AccountModel.cpp" line="419"/>
<source>set_conference_factory_address_failed_error_message</source>
<extracomment>&quot;Unable to set the conversation server address, failed creating address from %1&quot;</extracomment>
<translation>Unable to set the conversation server address, failed creating address from %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="439"/>
<location filename="../../model/account/AccountModel.cpp" line="441"/>
<source>set_audio_conference_factory_address_failed_error_message</source>
<extracomment>&quot;Unable to set the meeting server address, failed creating address from %1&quot;</extracomment>
<translation>Unable to set the meeting server address, failed creating address from %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="486"/>
<location filename="../../model/account/AccountModel.cpp" line="488"/>
<source>set_voicemail_address_failed_error_message</source>
<extracomment>Unable to set voicemail address, failed creating address from %1</extracomment>
<translation>Unable to set voicemail address, failed creating address from %1</translation>
@ -381,20 +387,6 @@
<source>settings_account_title</source>
<translation>Account settings</translation>
</message>
<message>
<source>info_popup_invalid_registrar_uri_message</source>
<extracomment>Registrar uri is invalid. Please make sure it matches the following format : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation type="vanished">Registrar uri is invalid. Please make sure it matches the following format : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</translation>
</message>
<message>
<source>info_popup_invalid_outbound_proxy_message</source>
<extracomment>Outbound proxy uri is invalid. Please make sure it matches the following format : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation type="vanished">Outbound proxy uri is invalid. Please make sure it matches the following format : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</translation>
</message>
<message>
<source>info_popup_error_title</source>
<translation type="vanished">Error</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="38"/>
<source>information_popup_success_title</source>
@ -420,75 +412,74 @@
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="85"/>
<source>account_settings_voicemail_uri_title</source>
<extracomment>&quot;URI de messagerie vocale&quot;</extracomment>
<extracomment>&quot;Voicemail address&quot;</extracomment>
<translation>Voicemail URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="110"/>
<source>account_settings_transport_title</source>
<extracomment>&quot;Transport&quot;</extracomment>
<translation>Transport</translation>
<translation type="vanished">Transport</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="117"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="112"/>
<source>account_settings_registrar_uri_title</source>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="125"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<source>account_settings_sip_proxy_url_title</source>
<translation>Outbound SIP Proxy URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="133"/>
<source>login_proxy_server_url_tooltip</source>
<extracomment>&quot;If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it.&quot;</extracomment>
<translation>If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="137"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="150"/>
<source>account_settings_stun_server_url_title</source>
<extracomment>&quot;Adresse du serveur STUN&quot;</extracomment>
<translation>STUN server address</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="142"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="164"/>
<source>account_settings_enable_ice_title</source>
<extracomment>&quot;Activer ICE&quot;</extracomment>
<translation>Enable ICE</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="148"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="179"/>
<source>account_settings_avpf_title</source>
<extracomment>&quot;AVPF&quot;</extracomment>
<translation>AVPF</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="154"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="194"/>
<source>account_settings_bundle_mode_title</source>
<extracomment>&quot;Mode bundle&quot;</extracomment>
<translation>Bundle mode</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="163"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="212"/>
<source>account_settings_expire_title</source>
<extracomment>&quot;Expiration (en seconde)&quot;</extracomment>
<translation>Expiration (in seconds)</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="174"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="230"/>
<source>account_settings_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de conversations&quot;</extracomment>
<translation>Conference factory URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="191"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="247"/>
<source>account_settings_audio_video_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de réunions&quot;</extracomment>
<translation>Video conference factory uri</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="205"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="262"/>
<source>account_settings_lime_server_url_title</source>
<extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment>
<translation>Lime server URL</translation>
@ -617,7 +608,7 @@
<translation>Create end to end encrypted meetings and group calls</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AdvancedSettingsLayout.qml" line="239"/>
<location filename="../../view/Page/Layout/Settings/AdvancedSettingsLayout.qml" line="241"/>
<source>settings_advanced_hide_fps_title</source>
<translation>Hide FPS</translation>
</message>
@ -707,80 +698,80 @@
<translation>not reachable</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="973"/>
<location filename="../../core/App.cpp" line="975"/>
<source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>A free and open source SIP video-phone.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="975"/>
<location filename="../../core/App.cpp" line="977"/>
<source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Send an order to the application towards a command line</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="979"/>
<location filename="../../core/App.cpp" line="981"/>
<source>command_line_option_show_help</source>
<translation>Show this help</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="984"/>
<location filename="../../core/App.cpp" line="986"/>
<source>command_line_option_show_app_version</source>
<translation>Show app version</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="992"/>
<location filename="../../core/App.cpp" line="994"/>
<source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="994"/>
<location filename="../../core/App.cpp" line="996"/>
<source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, path or file</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="999"/>
<location filename="../../core/App.cpp" line="1001"/>
<source>command_line_option_minimized</source>
<translation>Minimize</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1002"/>
<location filename="../../core/App.cpp" line="1004"/>
<source>command_line_option_log_to_stdout</source>
<translation>Log to stdout some debug information while running</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1005"/>
<location filename="../../core/App.cpp" line="1007"/>
<source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Print only logs from the application</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1437"/>
<location filename="../../core/App.cpp" line="1439"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Hide</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1437"/>
<location filename="../../core/App.cpp" line="1439"/>
<source>show_action</source>
<translation>Show</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1452"/>
<location filename="../../core/App.cpp" line="1454"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quit</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1470"/>
<location filename="../../core/App.cpp" line="1472"/>
<source>check_for_update</source>
<extracomment>Check for update</extracomment>
<translation>Check for update</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1588"/>
<location filename="../../core/App.cpp" line="1590"/>
<source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation>
</message>
@ -2086,65 +2077,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="251"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="258"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 is writing</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="253"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="260"/>
<source>chat_message_draft_sending_text</source>
<translation>Draft : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="398"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="405"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="337"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="344"/>
<source>chat_room_mute</source>
<translation>Mute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="336"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Unmute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="350"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="357"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Mark as read</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="376"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Leave</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Leave the conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="384"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment>
<translation>Delete the conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="413"/>
<source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>This conversation and all its messages will be deleted. Do You want to continue ?</translation>

View file

@ -110,37 +110,43 @@
<translation>Le compte est déjà connecté</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="115"/>
<location filename="../../model/account/AccountManager.cpp" line="109"/>
<source>assistant_account_login_outbound_proxy_uri_error</source>
<extracomment>Outbound proxy uri is invalid. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation type="unfinished">L&apos;uri du proxy SIP sortant est invalide. Assurez-vous qu&apos;elle corresponde format suivant : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; est optionnel)</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="121"/>
<source>assistant_account_login_proxy_address_error</source>
<extracomment>&quot;Unable to create proxy address. Please check the domain name.&quot;</extracomment>
<translation>Impossible de créer l&apos;adresse proxy. Merci de vérifier le nom de domaine.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="128"/>
<location filename="../../model/account/AccountManager.cpp" line="134"/>
<source>assistant_account_login_address_configuration_error</source>
<extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment>
<translation>Impossible de configurer l&apos;adresse : `%1`.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="135"/>
<location filename="../../model/account/AccountManager.cpp" line="141"/>
<source>assistant_account_login_params_configuration_error</source>
<extracomment>&quot;Unable to configure account settings.&quot;</extracomment>
<translation>Impossible de configurer les paramètres du compte.</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="159"/>
<location filename="../../model/account/AccountManager.cpp" line="165"/>
<source>assistant_account_login_forbidden_error</source>
<extracomment>&quot;Username and password do not match&quot;</extracomment>
<translation>Le couple identifiant mot de passe ne correspond pas</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="161"/>
<location filename="../../model/account/AccountManager.cpp" line="167"/>
<source>assistant_account_login_error</source>
<extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment>
<translation>Erreur durant la connexion, veuillez vérifier vos paramètres</translation>
</message>
<message>
<location filename="../../model/account/AccountManager.cpp" line="175"/>
<location filename="../../model/account/AccountManager.cpp" line="181"/>
<source>assistant_account_add_error</source>
<extracomment>&quot;Unable to add account.&quot;</extracomment>
<translation>Impossible d&apos;ajouter le compte.</translation>
@ -161,25 +167,25 @@
<translation>Impossible de définir l&apos;adresse du serveur depuis l&apos;adresse %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="308"/>
<location filename="../../model/account/AccountModel.cpp" line="310"/>
<source>set_outbound_proxy_uri_failed_error_message</source>
<extracomment>Unable to set outbound proxy uri, failed creating address from %1</extracomment>
<translation>Impossible de définir l&apos;adresse du proxy sip sortant depuis l&apos;adresse %1</translation>
<extracomment>Unable to set outbound proxy uri from address %1. Please make sure it matches the following format : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation>Impossible de définir l&apos;adresse du proxy sip sortant depuis l&apos;adresse %1. Assurez-vous qu&apos;elle corresponde au format suivant : sip:host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; est optionnel)</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="417"/>
<location filename="../../model/account/AccountModel.cpp" line="419"/>
<source>set_conference_factory_address_failed_error_message</source>
<extracomment>&quot;Unable to set the conversation server address, failed creating address from %1&quot;</extracomment>
<translation>Impossible de définir l&apos;uri du serveur de conversations depuis l&apos;adresse %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="439"/>
<location filename="../../model/account/AccountModel.cpp" line="441"/>
<source>set_audio_conference_factory_address_failed_error_message</source>
<extracomment>&quot;Unable to set the meeting server address, failed creating address from %1&quot;</extracomment>
<translation>Impossible de définir l&apos;uri du serveur de réunions depuis l&apos;adresse %1</translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="486"/>
<location filename="../../model/account/AccountModel.cpp" line="488"/>
<source>set_voicemail_address_failed_error_message</source>
<extracomment>Unable to set voicemail address, failed creating address from %1</extracomment>
<translation>Impossible de définir l&apos;adresse de messagerie vocale depuis l&apos;adresse %1</translation>
@ -381,20 +387,6 @@
<source>settings_account_title</source>
<translation>Paramètres de compte</translation>
</message>
<message>
<source>info_popup_invalid_registrar_uri_message</source>
<extracomment>Registrar uri is invalid. Please make sure it matches the following format : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation type="vanished">La registrar URI est invalide. Veuillez vous assurer qu&apos;elle respecte le format suivant : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; est facultatif)</translation>
</message>
<message>
<source>info_popup_invalid_outbound_proxy_message</source>
<extracomment>Outbound proxy uri is invalid. Please make sure it matches the following format : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; is optional)</extracomment>
<translation type="vanished">L&apos;uri du proxy sip sortant est invalide. Veuillez vous assurer qu&apos;elle respecte le format suivant : sip:&lt;host&gt;:&lt;port&gt;;transport=&lt;transport&gt; (:&lt;port&gt; est facultatif)</translation>
</message>
<message>
<source>info_popup_error_title</source>
<translation type="vanished">Erreur</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="38"/>
<source>information_popup_success_title</source>
@ -420,75 +412,74 @@
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="85"/>
<source>account_settings_voicemail_uri_title</source>
<extracomment>&quot;URI de messagerie vocale&quot;</extracomment>
<translation>URI de messagerie vocale</translation>
<extracomment>&quot;Voicemail address&quot;</extracomment>
<translation>URI de la boîte vocale</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="110"/>
<source>account_settings_transport_title</source>
<extracomment>&quot;Transport&quot;</extracomment>
<translation>Transport</translation>
<translation type="vanished">Transport</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="117"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="112"/>
<source>account_settings_registrar_uri_title</source>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="125"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<source>account_settings_sip_proxy_url_title</source>
<translation>URL du proxy SIP sortant</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="133"/>
<source>login_proxy_server_url_tooltip</source>
<extracomment>&quot;If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it.&quot;</extracomment>
<translation>Si ce champ est rempli, loutbound proxy sera activé automatiquement. Laissez-le vide pour le désactiver.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="137"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="150"/>
<source>account_settings_stun_server_url_title</source>
<extracomment>&quot;Adresse du serveur STUN&quot;</extracomment>
<translation>Adresse du serveur STUN</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="142"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="164"/>
<source>account_settings_enable_ice_title</source>
<extracomment>&quot;Activer ICE&quot;</extracomment>
<translation>Activer ICE</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="148"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="179"/>
<source>account_settings_avpf_title</source>
<extracomment>&quot;AVPF&quot;</extracomment>
<translation>AVPF</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="154"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="194"/>
<source>account_settings_bundle_mode_title</source>
<extracomment>&quot;Mode bundle&quot;</extracomment>
<translation>Mode bundle</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="163"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="212"/>
<source>account_settings_expire_title</source>
<extracomment>&quot;Expiration (en seconde)&quot;</extracomment>
<translation>Expiration (en seconde)</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="174"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="230"/>
<source>account_settings_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de conversations&quot;</extracomment>
<translation>URI du serveur de conversations</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="191"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="247"/>
<source>account_settings_audio_video_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de réunions&quot;</extracomment>
<translation>URI du serveur de réunions</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="205"/>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="262"/>
<source>account_settings_lime_server_url_title</source>
<extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment>
<translation>URL du serveur déchange de clés de chiffrement</translation>
@ -617,7 +608,7 @@
<translation>Créer des appels de groupe et conférences chiffré(e)s de bout en bout</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AdvancedSettingsLayout.qml" line="239"/>
<location filename="../../view/Page/Layout/Settings/AdvancedSettingsLayout.qml" line="241"/>
<source>settings_advanced_hide_fps_title</source>
<translation>Cacher les FPS</translation>
</message>
@ -707,80 +698,80 @@
<translation>indisponible</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="973"/>
<location filename="../../core/App.cpp" line="975"/>
<source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>A free and open source SIP video-phone.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="975"/>
<location filename="../../core/App.cpp" line="977"/>
<source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Send an order to the application towards a command line</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="979"/>
<location filename="../../core/App.cpp" line="981"/>
<source>command_line_option_show_help</source>
<translation>Show this help</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="984"/>
<location filename="../../core/App.cpp" line="986"/>
<source>command_line_option_show_app_version</source>
<translation>Afficher la version de l&apos;application</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="992"/>
<location filename="../../core/App.cpp" line="994"/>
<source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="994"/>
<location filename="../../core/App.cpp" line="996"/>
<source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, path or file</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="999"/>
<location filename="../../core/App.cpp" line="1001"/>
<source>command_line_option_minimized</source>
<translation>Minimiser</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1002"/>
<location filename="../../core/App.cpp" line="1004"/>
<source>command_line_option_log_to_stdout</source>
<translation>Log to stdout some debug information while running</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1005"/>
<location filename="../../core/App.cpp" line="1007"/>
<source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Print only logs from the application</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1437"/>
<location filename="../../core/App.cpp" line="1439"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Cacher</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1437"/>
<location filename="../../core/App.cpp" line="1439"/>
<source>show_action</source>
<translation>Afficher</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1452"/>
<location filename="../../core/App.cpp" line="1454"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quitter</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1470"/>
<location filename="../../core/App.cpp" line="1472"/>
<source>check_for_update</source>
<extracomment>Check for update</extracomment>
<translation>Rechercher une mise à jour</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1588"/>
<location filename="../../core/App.cpp" line="1590"/>
<source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation>
</message>
@ -2086,65 +2077,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="251"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="258"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 est en train d&apos;écrire</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="253"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="260"/>
<source>chat_message_draft_sending_text</source>
<translation>Brouillon : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="398"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="405"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="337"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="344"/>
<source>chat_room_mute</source>
<translation>Mettre en sourdine</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="336"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Enlever la sourdine </translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="350"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="357"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Marquer comme lu</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="376"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Quitter la conversation</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Quitter la conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="384"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment>
<translation>Supprimer la conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="413"/>
<source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ?</translation>

View file

@ -101,8 +101,14 @@ bool AccountManager::login(QString username,
params->setServerAddress(linRegistrarUri);
}
if (!outboundProxyAddress.isEmpty()) {
auto linOutboundProxyAddress = ToolModel::interpretUrl(outboundProxyAddress);
auto linOutboundProxyAddress = factory->createAddress(Utils::appStringToCoreString(outboundProxyAddress));
if (linOutboundProxyAddress) params->setRoutesAddresses({linOutboundProxyAddress});
else {
//: Outbound proxy uri is invalid. Please make sure it matches the following format :
//: sip:host>:<port>;transport=<transport> (:<port> is optional)
*errorMessage = tr("assistant_account_login_outbound_proxy_uri_error");
return false;
}
}
if (!domain.isEmpty()) {
identity->setDomain(Utils::appStringToCoreString(domain));

View file

@ -302,9 +302,11 @@ QString AccountModel::getOutboundProxyUri() const {
}
void AccountModel::setOutboundProxyUri(QString value) {
auto linOutboundProxyAddress = ToolModel::interpretUrl(value);
auto linOutboundProxyAddress = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(value));
if (!linOutboundProxyAddress) {
//: Unable to set outbound proxy uri, failed creating address from %1
//: Unable to set outbound proxy uri from address %1.
//: Please make sure it matches the following format :
//: sip:host>:<port>;transport=<transport> (:<port> is optional)
emit setValueFailed(tr("set_outbound_proxy_uri_failed_error_message").arg(value));
return;
} else {

View file

@ -12,12 +12,10 @@ RowLayout {
property var propertyOwner
property var propertyOwnerGui
property bool enabled: true
property alias checked: switchButton.checked
spacing : Utils.getSizeWithScreenRatio(20)
signal checkedChanged(bool checked)
function setChecked(value) {
switchButton.checked = value
}
signal toggled()
ColumnLayout {
Layout.minimumHeight: Utils.getSizeWithScreenRatio(32)
@ -44,8 +42,10 @@ RowLayout {
checked: propertyOwnerGui ? propertyOwnerGui.core[mainItem.propertyName]
: propertyOwner ? propertyOwner[mainItem.propertyName] : false
enabled: mainItem.enabled
onCheckedChanged: mainItem.checkedChanged(checked)
onToggled: binding.when = true
onToggled: {
binding.when = true
mainItem.toggled()
}
implicitHeight: Utils.getSizeWithScreenRatio(30)
Accessible.name: "%1 %2".arg(mainItem.titleText).arg(mainItem.subTitleText)
}

View file

@ -81,7 +81,7 @@ AbstractSettingsLayout {
id: voicemailAddressField
propertyName: "voicemailAddress"
propertyOwnerGui: account
//: "URI de messagerie vocale"
//: "Voicemail address"
title: qsTr("account_settings_voicemail_uri_title")
Layout.fillWidth: true
toValidate: true
@ -105,21 +105,25 @@ AbstractSettingsLayout {
ColumnLayout {
Layout.fillWidth: true
spacing: Utils.getSizeWithScreenRatio(20)
Text {
//: "Transport"
text: qsTr("account_settings_transport_title")
color: DefaultStyle.main2_600
font: Typography.p2l
}
DecoratedTextField {
id: registrarUriField
Layout.fillWidth: true
//:"Registrar URI"
title: qsTr("account_settings_registrar_uri_title")
propertyName: "registrarUri"
propertyOwnerGui: account
toValidate: true
Connections {
enabled: account
target: account.core
function onRegistrarUriChanged() {
if (registrarUriField.text != registrarUriField.propertyOwnerGui.core[registrarUriField.propertyName])
registrarUriField.text = registrarUriField.propertyOwnerGui.core[registrarUriField.propertyName]
}
}
}
DecoratedTextField {
id: outboundProxyUriField
Layout.fillWidth: true
//:"Outbound SIP Proxy URI"
title: qsTr("account_settings_sip_proxy_url_title")
@ -128,34 +132,79 @@ AbstractSettingsLayout {
//: "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it."
tooltip: qsTr("login_proxy_server_url_tooltip")
toValidate: true
Connections {
enabled: account
target: account.core
function onOutboundProxyUriChanged() {
if (outboundProxyUriField.text != outboundProxyUriField.propertyOwnerGui.core[outboundProxyUriField.propertyName])
outboundProxyUriField.text = outboundProxyUriField.propertyOwnerGui.core[outboundProxyUriField.propertyName]
}
}
}
DecoratedTextField {
id: stunServerField
Layout.fillWidth: true
propertyName: "stunServer"
propertyOwnerGui: account
//: "Adresse du serveur STUN"
title: qsTr("account_settings_stun_server_url_title")
toValidate: true
Connections {
enabled: account
target: account.core
function onStunServerChanged() {
if (stunServerField.text != stunServerField.propertyOwnerGui.core[stunServerField.propertyName])
stunServerField.text = stunServerField.propertyOwnerGui.core[stunServerField.propertyName]
}
}
}
SwitchSetting {
id: iceSwitch
//: "Activer ICE"
titleText: qsTr("account_settings_enable_ice_title")
propertyName: "iceEnabled"
propertyOwnerGui: account
Connections {
enabled: account
target: account.core
function onIceEnabledChanged() {
if (iceSwitch.checked != iceSwitch.propertyOwnerGui.core[iceSwitch.propertyName])
iceSwitch.checked = iceSwitch.propertyOwnerGui.core[iceSwitch.propertyName]
}
}
}
SwitchSetting {
id: avpfSwitch
//: "AVPF"
titleText: qsTr("account_settings_avpf_title")
propertyName: "avpfEnabled"
propertyOwnerGui: account
Connections {
enabled: account
target: account.core
function onAvpfEnabledChanged() {
if (avpfSwitch.checked != avpfSwitch.propertyOwnerGui.core[avpfSwitch.propertyName])
avpfSwitch.checked = avpfSwitch.propertyOwnerGui.core[avpfSwitch.propertyName]
}
}
}
SwitchSetting {
id: bundleModeSwitch
//: "Mode bundle"
titleText: qsTr("account_settings_bundle_mode_title")
propertyName: "bundleModeEnabled"
propertyOwnerGui: account
Connections {
enabled: account
target: account.core
function onBundleModeEnabledChanged() {
if (bundleModeSwitch.checked != bundleModeSwitch.propertyOwnerGui.core[bundleModeSwitch.propertyName])
bundleModeSwitch.checked = bundleModeSwitch.propertyOwnerGui.core[bundleModeSwitch.propertyName]
}
}
}
DecoratedTextField {
id: expireField
Layout.fillWidth: true
propertyName: "expire"
propertyOwnerGui: account
@ -166,6 +215,13 @@ AbstractSettingsLayout {
return !isNaN(Number(text))
}
toValidate: true
Connections {
target: account.core
function onExpireChanged() {
if (expireField.text != expireField.propertyOwnerGui.core[expireField.propertyName])
expireField.text = expireField.propertyOwnerGui.core[expireField.propertyName]
}
}
}
DecoratedTextField {
id: conferenceFactoryUriField
@ -174,6 +230,7 @@ AbstractSettingsLayout {
title: qsTr("account_settings_conference_factory_uri_title")
propertyName: "conferenceFactoryAddress"
propertyOwnerGui: account
toValidate: true
Connections {
target: account.core
function onConferenceFactoryAddressChanged() {
@ -181,7 +238,6 @@ AbstractSettingsLayout {
conferenceFactoryUriField.text = conferenceFactoryUriField.propertyOwnerGui.core[conferenceFactoryUriField.propertyName]
}
}
toValidate: true
}
DecoratedTextField {
id: audioVideoConfUriField
@ -200,12 +256,20 @@ AbstractSettingsLayout {
}
}
DecoratedTextField {
id: limeServerUrlField
Layout.fillWidth: true
//: "URL du serveur déchange de clés de chiffrement"
title: qsTr("account_settings_lime_server_url_title")
propertyName: "limeServerUrl"
propertyOwnerGui: account
toValidate: true
Connections {
target: account.core
function onLimeServerUrlChanged() {
if (limeServerUrlField.text != limeServerUrlField.propertyOwnerGui.core[limeServerUrlField.propertyName])
limeServerUrlField.text = limeServerUrlField.propertyOwnerGui.core[limeServerUrlField.propertyName]
}
}
}
}
}

View file

@ -180,6 +180,7 @@ AbstractSettingsLayout {
ColumnLayout {
spacing: Utils.getSizeWithScreenRatio(20)
ListView {
id: videoCodecList
Layout.preferredHeight: contentHeight
Layout.fillWidth: true
spacing: Utils.getSizeWithScreenRatio(20)
@ -188,7 +189,7 @@ AbstractSettingsLayout {
filterType: PayloadTypeProxy.Video | PayloadTypeProxy.NotDownloadable
}
delegate: SwitchSetting {
width: parent.width
width: videoCodecList.width
height: Utils.getSizeWithScreenRatio(32)
titleText: Utils.capitalizeFirstLetter(modelData.core.mimeType)
subTitleText: modelData.core.encoderDescription
@ -197,6 +198,7 @@ AbstractSettingsLayout {
}
}
ListView {
id: payloadList
Layout.preferredHeight: contentHeight
Layout.fillWidth: true
spacing: Utils.getSizeWithScreenRatio(20)
@ -205,22 +207,22 @@ AbstractSettingsLayout {
filterType: PayloadTypeProxy.Video | PayloadTypeProxy.Downloadable
}
delegate: SwitchSetting {
width: parent.width
width: payloadList.width
height: Utils.getSizeWithScreenRatio(32)
titleText: Utils.capitalizeFirstLetter(modelData.core.mimeType)
subTitleText: modelData.core.encoderDescription
onCheckedChanged: Utils.openCodecOnlineInstallerDialog(
onToggled: Utils.openCodecOnlineInstallerDialog(
UtilsCpp.getMainWindow(),
modelData.core,
function cancelCallBack() {
setChecked(false)
checked = false
},
function successCallBack() {
videoPayloadTypeProxy.reload()
downloadableVideoPayloadTypeProxy.reload()
},
function errorCallBack() {
setChecked(false)
checked = false
})
}
}