show error message when remote provisioning failed on start

This commit is contained in:
Gaelle Braud 2025-07-31 14:51:01 +02:00
parent 98ad40e750
commit 785e15d9fd
7 changed files with 280 additions and 186 deletions

View file

@ -442,6 +442,21 @@ void App::initCore() {
CoreModel::create("", mLinphoneThread);
if (mParser->isSet("verbose")) QtLogger::enableVerbose(true);
if (mParser->isSet("qt-logs-only")) QtLogger::enableQtOnly(true);
// Config error message
connect(CoreModel::getInstance().get(), &CoreModel::configuringStatus, this,
[this](const std::shared_ptr<linphone::Core> &core, linphone::ConfiguringState status,
const std::string &message) {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
QMetaObject::invokeMethod(thread(), [this, message]() {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
//: Error
Utils::showInformationPopup(
tr("info_popup_error_title"),
tr("info_popup_configuration_failed_message").arg(Utils::coreStringToAppString(message)),
false);
});
});
QMetaObject::invokeMethod(
mLinphoneThread->getThreadId(),
[this, settings = mSettings]() mutable {
@ -564,6 +579,20 @@ void App::initCore() {
if (window) window->show();
} else lInfo() << log().arg("Stay minimized");
firstOpen = false;
lInfo() << log().arg("Checking remote provisioning");
if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Failed) {
QMetaObject::invokeMethod(thread(), [this]() {
auto message = CoreModel::getInstance()->mConfigMessage;
//: not reachable
if (message.isEmpty()) message = tr("configuration_error_detail");
mustBeInMainThread(log().arg(Q_FUNC_INFO));
//: Error
Utils::showInformationPopup(
tr("info_popup_error_title"),
//: Remote provisioning failed : %1
tr("info_popup_configuration_failed_message").arg(message), false);
});
}
}
},
Qt::QueuedConnection);

View file

@ -529,68 +529,88 @@
<translation>Möchten Sie die Remote-Konfiguration von dieser Adresse herunterladen und anwenden?</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="818"/>
<location filename="../../core/App.cpp" line="455"/>
<location filename="../../core/App.cpp" line="591"/>
<source>info_popup_error_title</source>
<extracomment>Error</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/App.cpp" line="456"/>
<location filename="../../core/App.cpp" line="593"/>
<source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/App.cpp" line="587"/>
<source>configuration_error_detail</source>
<extracomment>not reachable</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/App.cpp" line="847"/>
<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="820"/>
<location filename="../../core/App.cpp" line="849"/>
<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="824"/>
<location filename="../../core/App.cpp" line="853"/>
<source>command_line_option_show_help</source>
<translation>Zeige Hilfe</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="829"/>
<location filename="../../core/App.cpp" line="858"/>
<source>command_line_option_show_app_version</source>
<translation type="unfinished">Zeige App-Version</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="836"/>
<location filename="../../core/App.cpp" line="865"/>
<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="838"/>
<location filename="../../core/App.cpp" line="867"/>
<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="843"/>
<location filename="../../core/App.cpp" line="872"/>
<source>command_line_option_minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/App.cpp" line="846"/>
<location filename="../../core/App.cpp" line="875"/>
<source>command_line_option_log_to_stdout</source>
<translation>Debug-Informationen auf der Standardausgabe ausgeben</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="849"/>
<location filename="../../core/App.cpp" line="878"/>
<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="1219"/>
<location filename="../../core/App.cpp" line="1248"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Ausblenden</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1219"/>
<location filename="../../core/App.cpp" line="1248"/>
<source>show_action</source>
<translation>Zeigen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1234"/>
<location filename="../../core/App.cpp" line="1263"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Beenden</translation>
@ -649,64 +669,64 @@
<translation>Die Aufnahme wurde in der folgenden Datei gespeichert: %1</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="392"/>
<location filename="../../core/call/CallCore.cpp" line="417"/>
<location filename="../../core/call/CallCore.cpp" line="393"/>
<location filename="../../core/call/CallCore.cpp" line="418"/>
<source>call_stats_codec_label</source>
<extracomment>&quot;Codec: %1 / %2 kHz&quot;</extracomment>
<translation>Codec: %1 / %2 kHz</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="396"/>
<location filename="../../core/call/CallCore.cpp" line="420"/>
<location filename="../../core/call/CallCore.cpp" line="397"/>
<location filename="../../core/call/CallCore.cpp" line="421"/>
<source>call_stats_bandwidth_label</source>
<extracomment>&quot;Bande passante : %1 %2 kbits/s %3 %4 kbits/s&quot;</extracomment>
<translation>Bandbreite: %1 %2 kbits/s %3 %4 kbits/s</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="402"/>
<location filename="../../core/call/CallCore.cpp" line="425"/>
<location filename="../../core/call/CallCore.cpp" line="403"/>
<location filename="../../core/call/CallCore.cpp" line="426"/>
<source>call_stats_loss_rate_label</source>
<extracomment>&quot;Taux de perte: %1% %2%&quot;</extracomment>
<translation>Verlustquote: %1% %2%</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="407"/>
<location filename="../../core/call/CallCore.cpp" line="408"/>
<source>call_stats_jitter_buffer_label</source>
<extracomment>&quot;Tampon de gigue: %1 ms&quot;</extracomment>
<translation>Jitter-Puffer: %1 ms</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="434"/>
<location filename="../../core/call/CallCore.cpp" line="435"/>
<source>call_stats_resolution_label</source>
<extracomment>&quot;Définition vidéo : %1 %2 %3 %4&quot;</extracomment>
<translation>Videoauflösung: %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="440"/>
<location filename="../../core/call/CallCore.cpp" line="441"/>
<source>call_stats_fps_label</source>
<extracomment>&quot;FPS : %1 %2 %3 %4&quot;</extracomment>
<translation>FPS : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="653"/>
<location filename="../../core/call/CallCore.cpp" line="654"/>
<source>media_encryption_dtls</source>
<extracomment>DTLS</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="656"/>
<location filename="../../core/call/CallCore.cpp" line="657"/>
<source>media_encryption_none</source>
<extracomment>None</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="659"/>
<location filename="../../core/call/CallCore.cpp" line="660"/>
<source>media_encryption_srtp</source>
<extracomment>SRTP</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="662"/>
<location filename="../../core/call/CallCore.cpp" line="663"/>
<source>media_encryption_post_quantum</source>
<extracomment>&quot;ZRTP - Post quantique&quot;</extracomment>
<translation type="unfinished">Post-quantum ZRTP</translation>
@ -907,43 +927,43 @@
<context>
<name>CallModel</name>
<message>
<location filename="../../model/call/CallModel.cpp" line="342"/>
<location filename="../../model/call/CallModel.cpp" line="344"/>
<source>call_error_user_declined_toast</source>
<extracomment>&quot;Le correspondant a décliné l&apos;appel&quot;</extracomment>
<translation>Der Benutzer hat den Anruf abgelehnt</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="346"/>
<location filename="../../model/call/CallModel.cpp" line="348"/>
<source>call_error_user_not_found_toast</source>
<extracomment>&quot;Le correspondant n&apos;a pas é trouvé&quot;</extracomment>
<translation>Benutzer nicht gefunden</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="350"/>
<location filename="../../model/call/CallModel.cpp" line="352"/>
<source>call_error_user_busy_toast</source>
<extracomment>&quot;Le correspondant est occupé&quot;</extracomment>
<translation>Der Benutzer ist beschäftigt</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="354"/>
<location filename="../../model/call/CallModel.cpp" line="356"/>
<source>call_error_incompatible_media_params_toast</source>
<extracomment>&quot;Le correspondant ne peut accepter votre appel.&quot;</extracomment>
<translation>Der Benutzer kann Ihren Anruf nicht annehmen</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="358"/>
<location filename="../../model/call/CallModel.cpp" line="360"/>
<source>call_error_io_error_toast</source>
<extracomment>&quot;Service indisponible ou erreur réseau&quot;</extracomment>
<translation>Dienst nicht verfügbar oder Netzwerkfehler</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="362"/>
<location filename="../../model/call/CallModel.cpp" line="364"/>
<source>call_error_temporarily_unavailable_toast</source>
<extracomment>&quot;Temporairement indisponible&quot;</extracomment>
<translation>Vorübergehend nicht verfügbar</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="366"/>
<location filename="../../model/call/CallModel.cpp" line="368"/>
<source>call_error_server_timeout_toast</source>
<extracomment>&quot;Délai d&apos;attente du serveur dépassé&quot;</extracomment>
<translation>Server-Zeitüberschreitung</translation>
@ -1728,13 +1748,13 @@
<context>
<name>ChatCore</name>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="166"/>
<location filename="../../core/chat/ChatCore.cpp" line="165"/>
<source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="168"/>
<location filename="../../core/chat/ChatCore.cpp" line="167"/>
<source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment>
<translation type="unfinished"></translation>
@ -1825,25 +1845,25 @@
<context>
<name>ChatMessage</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="420"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="429"/>
<source>chat_message_copy_selection</source>
<extracomment>&quot;Copy selection&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="422"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="431"/>
<source>chat_message_copy</source>
<extracomment>&quot;Copy&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="430"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/>
<source>chat_message_copied_to_clipboard_title</source>
<extracomment>Copied</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="432"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="441"/>
<source>chat_message_copied_to_clipboard_toast</source>
<extracomment>&quot;to clipboard&quot;</extracomment>
<translation type="unfinished"></translation>
@ -1879,25 +1899,25 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="395"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="404"/>
<source>chat_message_reception_info</source>
<extracomment>&quot;Reception info&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="407"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="416"/>
<source>chat_message_reply</source>
<extracomment>Reply</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="448"/>
<source>chat_message_forward</source>
<extracomment>Forward</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="456"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="465"/>
<source>chat_message_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation type="unfinished"></translation>
@ -2077,20 +2097,20 @@ Error</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="138"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="140"/>
<source>chat_message_list_encrypted_header_title</source>
<extracomment>End to end encrypted chat</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="148"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="150"/>
<source>chat_message_list_encrypted_header_message</source>
<extracomment>Les messages de cette conversation sont chiffrés de bout
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="294"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="296"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation type="unfinished"></translation>
@ -2246,13 +2266,13 @@ Error</extracomment>
<context>
<name>ConferenceInfoCore</name>
<message>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="577"/>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="568"/>
<source>information_popup_error_title</source>
<extracomment>&quot;Erreur&quot;</extracomment>
<translation>Fehler</translation>
</message>
<message>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="579"/>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="570"/>
<source>information_popup_disconnected_account_message</source>
<extracomment>&quot;Votre compte est déconnecté&quot;</extracomment>
<translation>Ihr Konto ist getrennt</translation>
@ -3714,78 +3734,78 @@ Error</extracomment>
<translation>Besprechungen</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="210"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="211"/>
<source>searchbar_placeholder_text</source>
<extracomment>&quot;Rechercher un contact, appeler %1&quot;</extracomment>
<translation>Kontakt suchen, %1 anrufen</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="213"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="214"/>
<source>searchbar_placeholder_text_chat_feature_enabled</source>
<extracomment>&quot;ou envoyer un message &quot;</extracomment>
<translation>oder eine Nachricht senden </translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="319"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="453"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="320"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="454"/>
<source>contact_presence_status_disable_do_not_disturb</source>
<extracomment>&quot;Désactiver ne pas déranger&quot;</extracomment>
<translation>Nicht stören deaktivieren</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="375"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="376"/>
<source>information_popup_error_title</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="377"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="378"/>
<source>no_voicemail_uri_error_message</source>
<extracomment>&quot;L&apos;URI de messagerie vocale n&apos;est pas définie.&quot;</extracomment>
<translation>Die Voicemail-URI ist nicht definiert.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="437"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="438"/>
<source>drawer_menu_manage_account</source>
<extracomment>Mon compte</extracomment>
<translation>Mein Konto</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="455"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="456"/>
<source>contact_presence_status_enable_do_not_disturb</source>
<extracomment>&quot;Activer ne pas déranger&quot;</extracomment>
<translation>Nicht stören aktivieren</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="474"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="475"/>
<source>settings_title</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="492"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="493"/>
<source>recordings_title</source>
<extracomment>&quot;Enregistrements&quot;</extracomment>
<translation>Aufnahmen</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="507"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="508"/>
<source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment>
<translation>Hilfe</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="524"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="525"/>
<source>help_quit_title</source>
<extracomment>&quot;Quitter l&apos;application&quot;</extracomment>
<translation>App beenden</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="529"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="530"/>
<source>quit_app_question</source>
<extracomment>&quot;Quitter %1 ?&quot;</extracomment>
<translation>%1 beenden?</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="558"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="559"/>
<source>drawer_menu_add_account</source>
<extracomment>&quot;Ajouter un compte&quot;</extracomment>
<translation>Konto hinzufügen</translation>

View file

@ -529,68 +529,88 @@
<translation>Do you want to download and apply remote provisioning from this address ?</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="818"/>
<location filename="../../core/App.cpp" line="455"/>
<location filename="../../core/App.cpp" line="591"/>
<source>info_popup_error_title</source>
<extracomment>Error</extracomment>
<translation>Error</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="456"/>
<location filename="../../core/App.cpp" line="593"/>
<source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment>
<translation>Remote provisioning failed : %1</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="587"/>
<source>configuration_error_detail</source>
<extracomment>not reachable</extracomment>
<translation>not reachable</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="847"/>
<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="820"/>
<location filename="../../core/App.cpp" line="849"/>
<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="824"/>
<location filename="../../core/App.cpp" line="853"/>
<source>command_line_option_show_help</source>
<translation>Show this help</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="829"/>
<location filename="../../core/App.cpp" line="858"/>
<source>command_line_option_show_app_version</source>
<translation>Show app version</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="836"/>
<location filename="../../core/App.cpp" line="865"/>
<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="838"/>
<location filename="../../core/App.cpp" line="867"/>
<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="843"/>
<location filename="../../core/App.cpp" line="872"/>
<source>command_line_option_minimized</source>
<translation>Minimize</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="846"/>
<location filename="../../core/App.cpp" line="875"/>
<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="849"/>
<location filename="../../core/App.cpp" line="878"/>
<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="1219"/>
<location filename="../../core/App.cpp" line="1248"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Hide</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1219"/>
<location filename="../../core/App.cpp" line="1248"/>
<source>show_action</source>
<translation>Show</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1234"/>
<location filename="../../core/App.cpp" line="1263"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quit</translation>
@ -649,64 +669,64 @@
<translation>Recording has been saved in file : %1</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="392"/>
<location filename="../../core/call/CallCore.cpp" line="417"/>
<location filename="../../core/call/CallCore.cpp" line="393"/>
<location filename="../../core/call/CallCore.cpp" line="418"/>
<source>call_stats_codec_label</source>
<extracomment>&quot;Codec: %1 / %2 kHz&quot;</extracomment>
<translation>Codec: %1 / %2 kHz</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="396"/>
<location filename="../../core/call/CallCore.cpp" line="420"/>
<location filename="../../core/call/CallCore.cpp" line="397"/>
<location filename="../../core/call/CallCore.cpp" line="421"/>
<source>call_stats_bandwidth_label</source>
<extracomment>&quot;Bande passante : %1 %2 kbits/s %3 %4 kbits/s&quot;</extracomment>
<translation>Bandwidth : %1 %2 kbits/s %3 %4 kbits/s</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="402"/>
<location filename="../../core/call/CallCore.cpp" line="425"/>
<location filename="../../core/call/CallCore.cpp" line="403"/>
<location filename="../../core/call/CallCore.cpp" line="426"/>
<source>call_stats_loss_rate_label</source>
<extracomment>&quot;Taux de perte: %1% %2%&quot;</extracomment>
<translation>Loss rate: %1% %2%</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="407"/>
<location filename="../../core/call/CallCore.cpp" line="408"/>
<source>call_stats_jitter_buffer_label</source>
<extracomment>&quot;Tampon de gigue: %1 ms&quot;</extracomment>
<translation>Jitter buffer : %1 ms</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="434"/>
<location filename="../../core/call/CallCore.cpp" line="435"/>
<source>call_stats_resolution_label</source>
<extracomment>&quot;Définition vidéo : %1 %2 %3 %4&quot;</extracomment>
<translation>Video resolution: %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="440"/>
<location filename="../../core/call/CallCore.cpp" line="441"/>
<source>call_stats_fps_label</source>
<extracomment>&quot;FPS : %1 %2 %3 %4&quot;</extracomment>
<translation>FPS : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="653"/>
<location filename="../../core/call/CallCore.cpp" line="654"/>
<source>media_encryption_dtls</source>
<extracomment>DTLS</extracomment>
<translation>DTLS</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="656"/>
<location filename="../../core/call/CallCore.cpp" line="657"/>
<source>media_encryption_none</source>
<extracomment>None</extracomment>
<translation>None</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="659"/>
<location filename="../../core/call/CallCore.cpp" line="660"/>
<source>media_encryption_srtp</source>
<extracomment>SRTP</extracomment>
<translation>SRTP</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="662"/>
<location filename="../../core/call/CallCore.cpp" line="663"/>
<source>media_encryption_post_quantum</source>
<extracomment>&quot;ZRTP - Post quantique&quot;</extracomment>
<translation>Post quantum ZRTP</translation>
@ -887,43 +907,43 @@
<context>
<name>CallModel</name>
<message>
<location filename="../../model/call/CallModel.cpp" line="342"/>
<location filename="../../model/call/CallModel.cpp" line="344"/>
<source>call_error_user_declined_toast</source>
<extracomment>&quot;Le correspondant a décliné l&apos;appel&quot;</extracomment>
<translation>User declined the call</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="346"/>
<location filename="../../model/call/CallModel.cpp" line="348"/>
<source>call_error_user_not_found_toast</source>
<extracomment>&quot;Le correspondant n&apos;a pas é trouvé&quot;</extracomment>
<translation>User was not found</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="350"/>
<location filename="../../model/call/CallModel.cpp" line="352"/>
<source>call_error_user_busy_toast</source>
<extracomment>&quot;Le correspondant est occupé&quot;</extracomment>
<translation>User is busy</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="354"/>
<location filename="../../model/call/CallModel.cpp" line="356"/>
<source>call_error_incompatible_media_params_toast</source>
<extracomment>&quot;Le correspondant ne peut accepter votre appel.&quot;</extracomment>
<translation>User can&apos;t accept your call</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="358"/>
<location filename="../../model/call/CallModel.cpp" line="360"/>
<source>call_error_io_error_toast</source>
<extracomment>&quot;Service indisponible ou erreur réseau&quot;</extracomment>
<translation>Unavailable service or network error</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="362"/>
<location filename="../../model/call/CallModel.cpp" line="364"/>
<source>call_error_temporarily_unavailable_toast</source>
<extracomment>&quot;Temporairement indisponible&quot;</extracomment>
<translation>temporarily unavailable</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="366"/>
<location filename="../../model/call/CallModel.cpp" line="368"/>
<source>call_error_server_timeout_toast</source>
<extracomment>&quot;Délai d&apos;attente du serveur dépassé&quot;</extracomment>
<translation>Server tiemout</translation>
@ -1690,13 +1710,13 @@
<context>
<name>ChatCore</name>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="166"/>
<location filename="../../core/chat/ChatCore.cpp" line="165"/>
<source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment>
<translation>Deleted</translation>
</message>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="168"/>
<location filename="../../core/chat/ChatCore.cpp" line="167"/>
<source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment>
<translation>Message history has been deleted</translation>
@ -1787,25 +1807,25 @@
<context>
<name>ChatMessage</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="420"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="429"/>
<source>chat_message_copy_selection</source>
<extracomment>&quot;Copy selection&quot;</extracomment>
<translation>Copy selection</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="422"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="431"/>
<source>chat_message_copy</source>
<extracomment>&quot;Copy&quot;</extracomment>
<translation>Copy</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="430"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/>
<source>chat_message_copied_to_clipboard_title</source>
<extracomment>Copied</extracomment>
<translation>Copied</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="432"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="441"/>
<source>chat_message_copied_to_clipboard_toast</source>
<extracomment>&quot;to clipboard&quot;</extracomment>
<translation>in clipboard</translation>
@ -1841,25 +1861,25 @@
<translation>You replied</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="395"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="404"/>
<source>chat_message_reception_info</source>
<extracomment>&quot;Reception info&quot;</extracomment>
<translation>Reception info</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="407"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="416"/>
<source>chat_message_reply</source>
<extracomment>Reply</extracomment>
<translation>Reply</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="448"/>
<source>chat_message_forward</source>
<extracomment>Forward</extracomment>
<translation>Forward</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="456"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="465"/>
<source>chat_message_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation>
@ -2039,13 +2059,13 @@ Error</extracomment>
<translation>Last result reached</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="138"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="140"/>
<source>chat_message_list_encrypted_header_title</source>
<extracomment>End to end encrypted chat</extracomment>
<translation>End to end encrypted chat</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="148"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="150"/>
<source>chat_message_list_encrypted_header_message</source>
<extracomment>Les messages de cette conversation sont chiffrés de bout
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
@ -2053,7 +2073,7 @@ Error</extracomment>
Only your correspondent can decrypt them.</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="294"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="296"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 is writing</translation>
@ -2209,13 +2229,13 @@ Only your correspondent can decrypt them.</translation>
<context>
<name>ConferenceInfoCore</name>
<message>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="577"/>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="568"/>
<source>information_popup_error_title</source>
<extracomment>&quot;Erreur&quot;</extracomment>
<translation>Error</translation>
</message>
<message>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="579"/>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="570"/>
<source>information_popup_disconnected_account_message</source>
<extracomment>&quot;Votre compte est déconnecté&quot;</extracomment>
<translation>Your account is disconnected</translation>
@ -3634,78 +3654,78 @@ Expiration : %1</translation>
<translation>Meetings</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="210"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="211"/>
<source>searchbar_placeholder_text</source>
<extracomment>&quot;Rechercher un contact, appeler %1&quot;</extracomment>
<translation>Find contact, call %1</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="213"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="214"/>
<source>searchbar_placeholder_text_chat_feature_enabled</source>
<extracomment>&quot;ou envoyer un message &quot;</extracomment>
<translation>or send message </translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="319"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="453"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="320"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="454"/>
<source>contact_presence_status_disable_do_not_disturb</source>
<extracomment>&quot;Désactiver ne pas déranger&quot;</extracomment>
<translation>Disable do not disturb</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="375"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="376"/>
<source>information_popup_error_title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="377"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="378"/>
<source>no_voicemail_uri_error_message</source>
<extracomment>&quot;L&apos;URI de messagerie vocale n&apos;est pas définie.&quot;</extracomment>
<translation>The voicemail URI is not defined.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="437"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="438"/>
<source>drawer_menu_manage_account</source>
<extracomment>Mon compte</extracomment>
<translation>My account</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="455"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="456"/>
<source>contact_presence_status_enable_do_not_disturb</source>
<extracomment>&quot;Activer ne pas déranger&quot;</extracomment>
<translation>Enable do not disturb</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="474"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="475"/>
<source>settings_title</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="492"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="493"/>
<source>recordings_title</source>
<extracomment>&quot;Enregistrements&quot;</extracomment>
<translation>Records</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="507"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="508"/>
<source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment>
<translation>Help</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="524"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="525"/>
<source>help_quit_title</source>
<extracomment>&quot;Quitter l&apos;application&quot;</extracomment>
<translation>Quit the app</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="529"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="530"/>
<source>quit_app_question</source>
<extracomment>&quot;Quitter %1 ?&quot;</extracomment>
<translation>Quit %1 ?</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="558"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="559"/>
<source>drawer_menu_add_account</source>
<extracomment>&quot;Ajouter un compte&quot;</extracomment>
<translation>Add an account</translation>

View file

@ -529,68 +529,88 @@
<translation>Voulez-vous télécharger et appliquer la configuration depuis cette adresse ?</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="818"/>
<location filename="../../core/App.cpp" line="455"/>
<location filename="../../core/App.cpp" line="591"/>
<source>info_popup_error_title</source>
<extracomment>Error</extracomment>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="456"/>
<location filename="../../core/App.cpp" line="593"/>
<source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment>
<translation>La configuration distante a échoué : %1</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="587"/>
<source>configuration_error_detail</source>
<extracomment>not reachable</extracomment>
<translation>indisponible</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="847"/>
<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="820"/>
<location filename="../../core/App.cpp" line="849"/>
<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="824"/>
<location filename="../../core/App.cpp" line="853"/>
<source>command_line_option_show_help</source>
<translation>Show this help</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="829"/>
<location filename="../../core/App.cpp" line="858"/>
<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="836"/>
<location filename="../../core/App.cpp" line="865"/>
<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="838"/>
<location filename="../../core/App.cpp" line="867"/>
<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="843"/>
<location filename="../../core/App.cpp" line="872"/>
<source>command_line_option_minimized</source>
<translation>Minimiser</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="846"/>
<location filename="../../core/App.cpp" line="875"/>
<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="849"/>
<location filename="../../core/App.cpp" line="878"/>
<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="1219"/>
<location filename="../../core/App.cpp" line="1248"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Cacher</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1219"/>
<location filename="../../core/App.cpp" line="1248"/>
<source>show_action</source>
<translation>Afficher</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1234"/>
<location filename="../../core/App.cpp" line="1263"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quitter</translation>
@ -649,64 +669,64 @@
<translation>L&apos;appel a é enregistré dans le fichier : %1</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="392"/>
<location filename="../../core/call/CallCore.cpp" line="417"/>
<location filename="../../core/call/CallCore.cpp" line="393"/>
<location filename="../../core/call/CallCore.cpp" line="418"/>
<source>call_stats_codec_label</source>
<extracomment>&quot;Codec: %1 / %2 kHz&quot;</extracomment>
<translation>Codec: %1 / %2 kHz</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="396"/>
<location filename="../../core/call/CallCore.cpp" line="420"/>
<location filename="../../core/call/CallCore.cpp" line="397"/>
<location filename="../../core/call/CallCore.cpp" line="421"/>
<source>call_stats_bandwidth_label</source>
<extracomment>&quot;Bande passante : %1 %2 kbits/s %3 %4 kbits/s&quot;</extracomment>
<translation>Bande passante : %1 %2 kbits/s %3 %4 kbits/s</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="402"/>
<location filename="../../core/call/CallCore.cpp" line="425"/>
<location filename="../../core/call/CallCore.cpp" line="403"/>
<location filename="../../core/call/CallCore.cpp" line="426"/>
<source>call_stats_loss_rate_label</source>
<extracomment>&quot;Taux de perte: %1% %2%&quot;</extracomment>
<translation>Taux de perte: %1% %2%</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="407"/>
<location filename="../../core/call/CallCore.cpp" line="408"/>
<source>call_stats_jitter_buffer_label</source>
<extracomment>&quot;Tampon de gigue: %1 ms&quot;</extracomment>
<translation>Tampon de gigue: %1 ms</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="434"/>
<location filename="../../core/call/CallCore.cpp" line="435"/>
<source>call_stats_resolution_label</source>
<extracomment>&quot;Définition vidéo : %1 %2 %3 %4&quot;</extracomment>
<translation>Définition vidéo : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="440"/>
<location filename="../../core/call/CallCore.cpp" line="441"/>
<source>call_stats_fps_label</source>
<extracomment>&quot;FPS : %1 %2 %3 %4&quot;</extracomment>
<translation>FPS : %1 %2 %3 %4</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="653"/>
<location filename="../../core/call/CallCore.cpp" line="654"/>
<source>media_encryption_dtls</source>
<extracomment>DTLS</extracomment>
<translation>DTLS</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="656"/>
<location filename="../../core/call/CallCore.cpp" line="657"/>
<source>media_encryption_none</source>
<extracomment>None</extracomment>
<translation>None</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="659"/>
<location filename="../../core/call/CallCore.cpp" line="660"/>
<source>media_encryption_srtp</source>
<extracomment>SRTP</extracomment>
<translation>SRTP</translation>
</message>
<message>
<location filename="../../core/call/CallCore.cpp" line="662"/>
<location filename="../../core/call/CallCore.cpp" line="663"/>
<source>media_encryption_post_quantum</source>
<extracomment>&quot;ZRTP - Post quantique&quot;</extracomment>
<translation>ZRTP - Post quantique</translation>
@ -887,43 +907,43 @@
<context>
<name>CallModel</name>
<message>
<location filename="../../model/call/CallModel.cpp" line="342"/>
<location filename="../../model/call/CallModel.cpp" line="344"/>
<source>call_error_user_declined_toast</source>
<extracomment>&quot;Le correspondant a décliné l&apos;appel&quot;</extracomment>
<translation>Le correspondant a décliné l&apos;appel</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="346"/>
<location filename="../../model/call/CallModel.cpp" line="348"/>
<source>call_error_user_not_found_toast</source>
<extracomment>&quot;Le correspondant n&apos;a pas é trouvé&quot;</extracomment>
<translation>Le correspondant n&apos;a pas é trouvé</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="350"/>
<location filename="../../model/call/CallModel.cpp" line="352"/>
<source>call_error_user_busy_toast</source>
<extracomment>&quot;Le correspondant est occupé&quot;</extracomment>
<translation>Le correspondant est occupé</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="354"/>
<location filename="../../model/call/CallModel.cpp" line="356"/>
<source>call_error_incompatible_media_params_toast</source>
<extracomment>&quot;Le correspondant ne peut accepter votre appel.&quot;</extracomment>
<translation>Le correspondant ne peut accepter votre appel</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="358"/>
<location filename="../../model/call/CallModel.cpp" line="360"/>
<source>call_error_io_error_toast</source>
<extracomment>&quot;Service indisponible ou erreur réseau&quot;</extracomment>
<translation>Service indisponible ou erreur réseau</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="362"/>
<location filename="../../model/call/CallModel.cpp" line="364"/>
<source>call_error_temporarily_unavailable_toast</source>
<extracomment>&quot;Temporairement indisponible&quot;</extracomment>
<translation>Temporairement indisponible</translation>
</message>
<message>
<location filename="../../model/call/CallModel.cpp" line="366"/>
<location filename="../../model/call/CallModel.cpp" line="368"/>
<source>call_error_server_timeout_toast</source>
<extracomment>&quot;Délai d&apos;attente du serveur dépassé&quot;</extracomment>
<translation>Délai d&apos;attente du serveur dépassé</translation>
@ -1690,13 +1710,13 @@
<context>
<name>ChatCore</name>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="166"/>
<location filename="../../core/chat/ChatCore.cpp" line="165"/>
<source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment>
<translation>Supprimé</translation>
</message>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="168"/>
<location filename="../../core/chat/ChatCore.cpp" line="167"/>
<source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment>
<translation>L&apos;historique des messages a é supprimé</translation>
@ -1787,25 +1807,25 @@
<context>
<name>ChatMessage</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="420"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="429"/>
<source>chat_message_copy_selection</source>
<extracomment>&quot;Copy selection&quot;</extracomment>
<translation>Copier la sélection</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="422"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="431"/>
<source>chat_message_copy</source>
<extracomment>&quot;Copy&quot;</extracomment>
<translation>Copier</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="430"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/>
<source>chat_message_copied_to_clipboard_title</source>
<extracomment>Copied</extracomment>
<translation>Copié</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="432"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="441"/>
<source>chat_message_copied_to_clipboard_toast</source>
<extracomment>&quot;to clipboard&quot;</extracomment>
<translation>dans le presse-papiers</translation>
@ -1841,25 +1861,25 @@
<translation>Vous avez répondu</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="395"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="404"/>
<source>chat_message_reception_info</source>
<extracomment>&quot;Reception info&quot;</extracomment>
<translation>Info de réception</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="407"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="416"/>
<source>chat_message_reply</source>
<extracomment>Reply</extracomment>
<translation>Répondre</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="448"/>
<source>chat_message_forward</source>
<extracomment>Forward</extracomment>
<translation>Transférer</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="456"/>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="465"/>
<source>chat_message_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation>
@ -2039,13 +2059,13 @@ Error</extracomment>
<translation>Dernier résultat atteint</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="138"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="140"/>
<source>chat_message_list_encrypted_header_title</source>
<extracomment>End to end encrypted chat</extracomment>
<translation>Conversation chiffrée de bout en bout</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="148"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="150"/>
<source>chat_message_list_encrypted_header_message</source>
<extracomment>Les messages de cette conversation sont chiffrés de bout
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
@ -2053,7 +2073,7 @@ Error</extracomment>
en bout. Seul votre correspondant peut les déchiffrer.</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="294"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="296"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 est en train d&apos;écrire</translation>
@ -2209,13 +2229,13 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<context>
<name>ConferenceInfoCore</name>
<message>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="577"/>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="568"/>
<source>information_popup_error_title</source>
<extracomment>&quot;Erreur&quot;</extracomment>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="579"/>
<location filename="../../core/conference/ConferenceInfoCore.cpp" line="570"/>
<source>information_popup_disconnected_account_message</source>
<extracomment>&quot;Votre compte est déconnecté&quot;</extracomment>
<translation>Votre compte est déconnecté</translation>
@ -3634,78 +3654,78 @@ Expiration : %1</translation>
<translation>Réunions</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="210"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="211"/>
<source>searchbar_placeholder_text</source>
<extracomment>&quot;Rechercher un contact, appeler %1&quot;</extracomment>
<translation>Rechercher un contact, appeler %1</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="213"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="214"/>
<source>searchbar_placeholder_text_chat_feature_enabled</source>
<extracomment>&quot;ou envoyer un message &quot;</extracomment>
<translation>ou envoyer un message </translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="319"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="453"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="320"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="454"/>
<source>contact_presence_status_disable_do_not_disturb</source>
<extracomment>&quot;Désactiver ne pas déranger&quot;</extracomment>
<translation>Désactiver ne pas déranger</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="375"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="376"/>
<source>information_popup_error_title</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="377"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="378"/>
<source>no_voicemail_uri_error_message</source>
<extracomment>&quot;L&apos;URI de messagerie vocale n&apos;est pas définie.&quot;</extracomment>
<translation>L&apos;URI de messagerie vocale n&apos;est pas définie.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="437"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="438"/>
<source>drawer_menu_manage_account</source>
<extracomment>Mon compte</extracomment>
<translation>Mon compte</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="455"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="456"/>
<source>contact_presence_status_enable_do_not_disturb</source>
<extracomment>&quot;Activer ne pas déranger&quot;</extracomment>
<translation>Activer ne pas déranger</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="474"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="475"/>
<source>settings_title</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="492"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="493"/>
<source>recordings_title</source>
<extracomment>&quot;Enregistrements&quot;</extracomment>
<translation>Enregistrements</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="507"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="508"/>
<source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment>
<translation>Aide</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="524"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="525"/>
<source>help_quit_title</source>
<extracomment>&quot;Quitter l&apos;application&quot;</extracomment>
<translation>Quitter l&apos;application</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="529"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="530"/>
<source>quit_app_question</source>
<extracomment>&quot;Quitter %1 ?&quot;</extracomment>
<translation>Quitter %1 ?</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="558"/>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="559"/>
<source>drawer_menu_add_account</source>
<extracomment>&quot;Ajouter un compte&quot;</extracomment>
<translation>Ajouter un compte</translation>

View file

@ -409,7 +409,7 @@ void CoreModel::onCallStateChanged(const std::shared_ptr<linphone::Core> &core,
linphone::Call::State state,
const std::string &message) {
if (state == linphone::Call::State::IncomingReceived) {
if (App::getInstance()->getNotifier()) App::getInstance()->getNotifier()->notifyReceivedCall(call);
if (App::getInstance()->getNotifier()) App::getInstance()->getNotifier()->notifyReceivedCall(call);
if (!core->getConfig()->getBool(SettingsModel::UiSection, "disable_command_line", false) &&
!core->getConfig()->getString(SettingsModel::UiSection, "command_line", "").empty()) {
QString command = Utils::coreStringToAppString(
@ -464,6 +464,8 @@ void CoreModel::onConferenceStateChanged(const std::shared_ptr<linphone::Core> &
void CoreModel::onConfiguringStatus(const std::shared_ptr<linphone::Core> &core,
linphone::ConfiguringState status,
const std::string &message) {
mConfigStatus = status;
mConfigMessage = Utils::coreStringToAppString(message);
emit configuringStatus(core, status, message);
}
void CoreModel::onDefaultAccountChanged(const std::shared_ptr<linphone::Core> &core,
@ -513,14 +515,14 @@ void CoreModel::onMessageReceived(const std::shared_ptr<linphone::Core> &core,
emit unreadNotificationsChanged();
std::list<std::shared_ptr<linphone::ChatMessage>> messages;
messages.push_back(message);
if (App::getInstance()->getNotifier()) App::getInstance()->getNotifier()->notifyReceivedMessages(room, messages);
if (App::getInstance()->getNotifier()) App::getInstance()->getNotifier()->notifyReceivedMessages(room, messages);
emit messageReceived(core, room, message);
}
void CoreModel::onMessagesReceived(const std::shared_ptr<linphone::Core> &core,
const std::shared_ptr<linphone::ChatRoom> &room,
const std::list<std::shared_ptr<linphone::ChatMessage>> &messages) {
emit unreadNotificationsChanged();
if (App::getInstance()->getNotifier()) App::getInstance()->getNotifier()->notifyReceivedMessages(room, messages);
if (App::getInstance()->getNotifier()) App::getInstance()->getNotifier()->notifyReceivedMessages(room, messages);
emit messagesReceived(core, room, messages);
}

View file

@ -66,6 +66,8 @@ public:
int maxResults);
bool mEnd = false;
linphone::ConfiguringState mConfigStatus;
QString mConfigMessage;
std::shared_ptr<linphone::Core> mCore;
std::shared_ptr<LoggerModel> mLogger;

View file

@ -192,6 +192,7 @@ Item {
}
initButtons()
currentIndex = SettingsCpp.getLastActiveTabIndex()
if (currentIndex === -1) currentIndex = 0
}
}
ColumnLayout {