From 5622016824b89e1edddecc3aa9b785e737e47978 Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Wed, 21 Jan 2026 17:00:23 +0100 Subject: [PATCH 1/5] fix crash when eventLog from newEvent signal is null --- Linphone/core/chat/ChatCore.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Linphone/core/chat/ChatCore.cpp b/Linphone/core/chat/ChatCore.cpp index 1bf174f18..5cb58be68 100644 --- a/Linphone/core/chat/ChatCore.cpp +++ b/Linphone/core/chat/ChatCore.cpp @@ -211,6 +211,7 @@ void ChatCore::setSelf(QSharedPointer me) { const std::shared_ptr &eventLog) { if (mChatModel->getMonitor() != chatRoom) return; lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle(); + if (!eventLog) return; auto event = EventLogCore::create(eventLog, chatRoom); if (event->isHandled()) { mChatModelConnection->invokeToCore([this, event]() { emit eventsInserted({event}); }); From 37d6649fa4d90b0528e8464489fdb28ccbc68e2a Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Thu, 22 Jan 2026 09:47:19 +0100 Subject: [PATCH 2/5] do not replace symbols by their rich text code as qml will handle it itself replace \n by
to handle carriage return --- Linphone/core/chat/ChatCore.cpp | 2 +- Linphone/data/languages/de.ts | 18 +++++++++--------- Linphone/data/languages/en.ts | 18 +++++++++--------- Linphone/data/languages/fr.ts | 18 +++++++++--------- Linphone/model/tool/ToolModel.cpp | 10 ++++++---- .../Control/Display/Chat/ChatTextContent.qml | 2 +- 6 files changed, 35 insertions(+), 33 deletions(-) diff --git a/Linphone/core/chat/ChatCore.cpp b/Linphone/core/chat/ChatCore.cpp index 5cb58be68..d128e1b3e 100644 --- a/Linphone/core/chat/ChatCore.cpp +++ b/Linphone/core/chat/ChatCore.cpp @@ -210,8 +210,8 @@ void ChatCore::setSelf(QSharedPointer me) { &ChatModel::newEvent, [this](const std::shared_ptr &chatRoom, const std::shared_ptr &eventLog) { if (mChatModel->getMonitor() != chatRoom) return; - lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle(); if (!eventLog) return; + lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle(); auto event = EventLogCore::create(eventLog, chatRoom); if (event->isHandled()) { mChatModelConnection->invokeToCore([this, event]() { emit eventsInserted({event}); }); diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index 135a3eb7c..ab6604219 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -6050,49 +6050,49 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte. ToolModel - + call_error_uninterpretable_sip_address "The calling address is not an interpretable SIP address : %1 Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1 - + group_call_error_no_account Kein Standardkonto gefunden, Gruppengespräch kann nicht erstellt werden - + group_call_error_participants_invite Teilnehmer konnten nicht zum Gruppengespräch eingeladen werden - + group_call_error_creation Gruppengespräch konnte nicht erstellt werden - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Sprachnachricht (%1) - + conference_invitation Meeting-Einladung - + conference_invitation_updated Meeting-Änderung - + conference_invitation_cancelled Meeting-Absage - + unknown_audio_device_name Unbekannter Gerätename diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index d24f26775..eaa2c3d96 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -5915,49 +5915,49 @@ To enable them in a commercial project, please contact us. ToolModel - + call_error_uninterpretable_sip_address "The calling address is not an interpretable SIP address : %1 The calling address is not an interpretable SIP address : %1 - + group_call_error_no_account No default account found, can't create group call - + group_call_error_participants_invite Couldn't invite participants to group call - + group_call_error_creation Group call couldn't be created - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Voice recording (%1) - + unknown_audio_device_name Unknown device name - + conference_invitation Meeting invitation - + conference_invitation_cancelled Meeting cancellation - + conference_invitation_updated Meeting modification diff --git a/Linphone/data/languages/fr.ts b/Linphone/data/languages/fr.ts index 84f75a637..944c0a69b 100644 --- a/Linphone/data/languages/fr.ts +++ b/Linphone/data/languages/fr.ts @@ -5886,49 +5886,49 @@ Pour les activer dans un projet commercial, merci de nous contacter. ToolModel - + call_error_uninterpretable_sip_address "The calling address is not an interpretable SIP address : %1 L'adresse n'est pas interprétable comme une adresse SIP - + group_call_error_no_account Impossible de créer l'appel de groupe, le compte par défaut n'est pas défini - + group_call_error_participants_invite Impossible d'inviter les participants à l'appel de groupe - + group_call_error_creation L'appel de groupe n'a pas pu être créé - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Message vocal (%1) - + unknown_audio_device_name Appareil inconnu - + conference_invitation Invitation à une réunion - + conference_invitation_cancelled Annulation d'une réunion - + conference_invitation_updated Modification d'une réunion diff --git a/Linphone/model/tool/ToolModel.cpp b/Linphone/model/tool/ToolModel.cpp index bc5dcc714..831ef7dfb 100644 --- a/Linphone/model/tool/ToolModel.cpp +++ b/Linphone/model/tool/ToolModel.cpp @@ -160,11 +160,13 @@ QString ToolModel::encodeTextToQmlRichFormat(const QString &text, for (int i = 0; i < iriParsed.size(); ++i) { QString iri = iriParsed[i] - .second.replace('&', "&") + .second + // .replace('&', "&") .replace('<', "\u2063<") - .replace('>', "\u2063>") - .replace('"', """) - .replace('\'', "'"); + .replace('\n', "
"); + // .replace('>', "\u2063>") + // .replace('"', """) + // .replace('\'', "'"); if (!iriParsed[i].first) { if (lastWasUrl) { lastWasUrl = false; diff --git a/Linphone/view/Control/Display/Chat/ChatTextContent.qml b/Linphone/view/Control/Display/Chat/ChatTextContent.qml index b300e4c8b..2c3ae7855 100644 --- a/Linphone/view/Control/Display/Chat/ChatTextContent.qml +++ b/Linphone/view/Control/Display/Chat/ChatTextContent.qml @@ -31,7 +31,7 @@ TextEdit { contentGui.core.setSearchedTextPart(searchedTextPart) } - textFormat: Text.AutoText // To supports links and imgs. + textFormat: Text.RichText // To supports links and imgs. wrapMode: TextEdit.Wrap onLinkActivated: (link) => { From df979d4270df13e9063e4e67852b0402dd588eae Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Thu, 22 Jan 2026 14:38:37 +0100 Subject: [PATCH 3/5] Update settings when configuration succeed in case it contains settings modifications --- Linphone/core/App.cpp | 53 +++++++------ Linphone/core/setting/SettingsCore.cpp | 105 ++++++++++++++++++++++++- Linphone/core/setting/SettingsCore.hpp | 5 +- 3 files changed, 137 insertions(+), 26 deletions(-) diff --git a/Linphone/core/App.cpp b/Linphone/core/App.cpp index 3e41237b1..f82e89b33 100644 --- a/Linphone/core/App.cpp +++ b/Linphone/core/App.cpp @@ -434,6 +434,8 @@ void App::setSelf(QSharedPointer(me)) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Successful) { bool accountConnected = account && account->getState() == linphone::RegistrationState::Ok; + // update settings if case config contains changes + if (mSettings) mSettings->reloadSettings(); mCoreModelConnection->invokeToCore([this, accountConnected]() { mustBeInMainThread(log().arg(Q_FUNC_INFO)); // There is an account added by a remote provisioning, force switching to main page @@ -443,6 +445,9 @@ void App::setSelf(QSharedPointer(me)) { Q_ARG(QVariant, accountConnected)); } mPossiblyLookForAddedAccount = false; + // setLocale(mSettings->getConfigLocale()); + // setAutoStart(mSettings->getAutoStart()); + // setQuitOnLastWindowClosed(mSettings->getExitOnClose()); }); } }); @@ -640,7 +645,7 @@ void App::initCore() { lDebug() << log().arg("Creating SettingsModel"); SettingsModel::create(); lDebug() << log().arg("Creating SettingsCore"); - if (!settings) settings = SettingsCore::create(); + settings = SettingsCore::create(); lDebug() << log().arg("Checking downloaded codecs updates"); Utils::checkDownloadedCodecsUpdates(); lDebug() << log().arg("Setting Video Codec Priority Policy"); @@ -722,30 +727,30 @@ void App::initCore() { } }); - if (!mSettings) { - mSettings = settings; - setLocale(settings->getConfigLocale()); - setAutoStart(settings->getAutoStart()); - setQuitOnLastWindowClosed(settings->getExitOnClose()); - mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership); + // if (!mSettings) { + mSettings = settings; + setLocale(settings->getConfigLocale()); + setAutoStart(settings->getAutoStart()); + setQuitOnLastWindowClosed(settings->getExitOnClose()); + mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership); - connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged, - Qt::UniqueConnection); - QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() { - mustBeInMainThread(log().arg(Q_FUNC_INFO)); - setAutoStart(mSettings->getAutoStart()); - }); - QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() { - mustBeInMainThread(log().arg(Q_FUNC_INFO)); - if (mSettings) setLocale(mSettings->getConfigLocale()); - }); - connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged, - Qt::UniqueConnection); - } else { - setLocale(settings->getConfigLocale()); - setAutoStart(settings->getAutoStart()); - setQuitOnLastWindowClosed(settings->getExitOnClose()); - } + connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged, + Qt::UniqueConnection); + QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() { + mustBeInMainThread(log().arg(Q_FUNC_INFO)); + setAutoStart(mSettings->getAutoStart()); + }); + QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() { + mustBeInMainThread(log().arg(Q_FUNC_INFO)); + if (mSettings) setLocale(mSettings->getConfigLocale()); + }); + connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged, + Qt::UniqueConnection); + // } else { + // setLocale(settings->getConfigLocale()); + // setAutoStart(settings->getAutoStart()); + // setQuitOnLastWindowClosed(settings->getExitOnClose()); + // } const QUrl url("qrc:/qt/qml/Linphone/view/Page/Window/Main/MainWindow.qml"); QObject::connect( mEngine, &QQmlApplicationEngine::objectCreated, this, diff --git a/Linphone/core/setting/SettingsCore.cpp b/Linphone/core/setting/SettingsCore.cpp index ef2fa5efc..ff32c150c 100644 --- a/Linphone/core/setting/SettingsCore.cpp +++ b/Linphone/core/setting/SettingsCore.cpp @@ -126,7 +126,6 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) { INIT_CORE_MEMBER(HideAccountSettings, settingsModel) INIT_CORE_MEMBER(DisableCallRecordings, settingsModel) INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel) - INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel) INIT_CORE_MEMBER(AssistantDisableQrCode, settingsModel) INIT_CORE_MEMBER(AssistantHideThirdPartyAccount, settingsModel) @@ -239,6 +238,110 @@ SettingsCore::SettingsCore(const SettingsCore &settingsCore) { SettingsCore::~SettingsCore() { } +void SettingsCore::reloadSettings() { + mustBeInLinphoneThread(getClassName()); + auto settingsModel = SettingsModel::getInstance(); + assert(settingsModel); + + // Security + setVfsEnabled(settingsModel->getVfsEnabled()); + + // Call + setVideoEnabled(settingsModel->getVideoEnabled()); + setEchoCancellationEnabled(settingsModel->getEchoCancellationEnabled()); + setAutoDownloadReceivedFiles(settingsModel->getAutoDownloadReceivedFiles()); + setAutomaticallyRecordCallsEnabled(settingsModel->getAutomaticallyRecordCallsEnabled()); + setRingtone(settingsModel->getRingtone()); + + // Network + setIpv6Enabled(settingsModel->getIpv6Enabled()); + + // Advanced + setAutoStart(settingsModel->getAutoStart()); + setHideFps(settingsModel->getHideFps()); + + // Audio + setCaptureDevices(settingsModel->getCaptureDevices()); + setPlaybackDevices(settingsModel->getPlaybackDevices()); + setRingerDevices(settingsModel->getRingerDevices()); + setCaptureDevice(settingsModel->getCaptureDevice()); + setPlaybackDevice(settingsModel->getPlaybackDevice()); + setRingerDevice(settingsModel->getRingerDevice()); + + setConferenceLayout( + LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultConferenceLayout()))); + + setMediaEncryption( + LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultMediaEncryption()))); + + setMediaEncryptionMandatory(settingsModel->getMediaEncryptionMandatory()); + setCreateEndToEndEncryptedMeetingsAndGroupCalls(settingsModel->getCreateEndToEndEncryptedMeetingsAndGroupCalls()); + + setCaptureGain(settingsModel->getCaptureGain()); + setPlaybackGain(settingsModel->getPlaybackGain()); + + // Video + setVideoDevice(settingsModel->getVideoDevice()); + setVideoDevices(settingsModel->getVideoDevices()); + + // Logs + setLogsEnabled(settingsModel->getLogsEnabled()); + setFullLogsEnabled(settingsModel->getFullLogsEnabled()); + setCrashReporterEnabled(settingsModel->getCrashReporterEnabled()); + setLogsFolder(settingsModel->getLogsFolder()); + mLogsEmail = settingsModel->getLogsEmail(); + + // DND + setDndEnabled(settingsModel->dndEnabled()); + + mDefaultDomain = settingsModel->getDefaultDomain(); + auto currentAccount = CoreModel::getInstance()->getCore()->getDefaultAccount(); + if (currentAccount) { + auto accountDomain = Utils::coreStringToAppString(currentAccount->getParams()->getDomain()); + setShowAccountDevices(accountDomain == mDefaultDomain); + } + + // Chat + mEmojiFont = settingsModel->getEmojiFont(); + mTextMessageFont = settingsModel->getTextMessageFont(); + + // Check for update + mIsCheckForUpdateAvailable = settingsModel->isCheckForUpdateAvailable(); + + setDisableChatFeature(settingsModel->getDisableChatFeature()); + setDisableMeetingsFeature(settingsModel->getDisableMeetingsFeature()); + setDisableBroadcastFeature(settingsModel->getDisableBroadcastFeature()); + + setHideSettings(settingsModel->getHideSettings()); + setHideAccountSettings(settingsModel->getHideAccountSettings()); + + setDisableCallRecordings(settingsModel->getDisableCallRecordings()); + setAssistantHideCreateAccount(settingsModel->getAssistantHideCreateAccount()); + setAssistantDisableQrCode(settingsModel->getAssistantDisableQrCode()); + setAssistantHideThirdPartyAccount(settingsModel->getAssistantHideThirdPartyAccount()); + setHideSipAddresses(settingsModel->getHideSipAddresses()); + setDarkModeAllowed(settingsModel->getDarkModeAllowed()); + setMaxAccount(settingsModel->getMaxAccount()); + setAssistantGoDirectlyToThirdPartySipAccountLogin( + settingsModel->getAssistantGoDirectlyToThirdPartySipAccountLogin()); + setAssistantGoDirectlyToThirdPartySipAccountLogin( + settingsModel->getAssistantGoDirectlyToThirdPartySipAccountLogin()); + setAssistantThirdPartySipAccountDomain(settingsModel->getAssistantThirdPartySipAccountDomain()); + setAssistantThirdPartySipAccountTransport(settingsModel->getAssistantThirdPartySipAccountTransport()); + setAutoStart(settingsModel->getAutoStart()); + setExitOnClose(settingsModel->getExitOnClose()); + setSyncLdapContacts(settingsModel->getSyncLdapContacts()); + setConfigLocale(settingsModel->getConfigLocale()); + setDownloadFolder(settingsModel->getDownloadFolder()); + + setCallToneIndicationsEnabled(settingsModel->getCallToneIndicationsEnabled()); + setCommandLine(settingsModel->getCommandLine()); + setDisableCommandLine(settingsModel->getDisableCommandLine()); + setCallForwardToAddress(settingsModel->getCallForwardToAddress()); + setThemeMainColor(settingsModel->getThemeMainColor()); + setThemeAboutPictureUrl(settingsModel->getThemeAboutPictureUrl()); +} + void SettingsCore::setSelf(QSharedPointer me) { mustBeInLinphoneThread(getClassName()); mSettingsModelConnection = SafeConnection::create(me, SettingsModel::getInstance()); diff --git a/Linphone/core/setting/SettingsCore.hpp b/Linphone/core/setting/SettingsCore.hpp index 50f5dea9b..25cde25cd 100644 --- a/Linphone/core/setting/SettingsCore.hpp +++ b/Linphone/core/setting/SettingsCore.hpp @@ -91,7 +91,8 @@ public: Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged) Q_PROPERTY(bool fullLogsEnabled READ getFullLogsEnabled WRITE setFullLogsEnabled NOTIFY fullLogsEnabledChanged) - Q_PROPERTY(bool crashReporterEnabled READ getCrashReporterEnabled WRITE setCrashReporterEnabled NOTIFY crashReporterEnabledChanged) + Q_PROPERTY(bool crashReporterEnabled READ getCrashReporterEnabled WRITE setCrashReporterEnabled NOTIFY + crashReporterEnabledChanged) Q_PROPERTY(QString logsEmail READ getLogsEmail) Q_PROPERTY(QString logsFolder READ getLogsFolder) Q_PROPERTY(QString ringtoneName READ getRingtoneFileName NOTIFY ringtoneChanged) @@ -108,6 +109,8 @@ public: SettingsCore(const SettingsCore &settingsCore); virtual ~SettingsCore(); + void reloadSettings(); + void setSelf(QSharedPointer me); void reset(const SettingsCore &settingsCore); From 6d5b9c58f2e29bd387c44773f4e39477eb86ba5c Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Thu, 22 Jan 2026 14:38:47 +0100 Subject: [PATCH 4/5] Do not add chatroom to the list if created from a conference call --- Linphone/core/chat/ChatList.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Linphone/core/chat/ChatList.cpp b/Linphone/core/chat/ChatList.cpp index 44e22befc..65808e842 100644 --- a/Linphone/core/chat/ChatList.cpp +++ b/Linphone/core/chat/ChatList.cpp @@ -177,6 +177,10 @@ void ChatList::setSelf(QSharedPointer me) { [this, addChatToList](const std::shared_ptr &core, const std::shared_ptr &chatRoom, linphone::ChatRoom::State state) { if (state == linphone::ChatRoom::State::Created) { + if (chatRoom->getConferenceInfo()) { + qWarning() << log().arg("Chatroom created during a conference, return"); + return; + } auto chatAccount = chatRoom->getAccount(); auto defaultAccount = core->getDefaultAccount(); if (!chatAccount || !defaultAccount) return; From e416b01ba4d04595c6342cfae739d3745a884ac1 Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Thu, 22 Jan 2026 14:38:54 +0100 Subject: [PATCH 5/5] update translations --- Linphone/data/languages/de.ts | 48 +++++++++++++++++------------------ Linphone/data/languages/en.ts | 48 +++++++++++++++++------------------ Linphone/data/languages/fr.ts | 48 +++++++++++++++++------------------ 3 files changed, 72 insertions(+), 72 deletions(-) diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index ab6604219..2c668769d 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -681,134 +681,134 @@ - - + + info_popup_error_title Error Fehler - + info_popup_configuration_failed_message Remote provisioning failed : %1 Remote-Provisionierung fehlgeschlagen: %1 - + info_popup_error_checking_update An error occured while trying to check update. Please try again later or contact support team. Fehler bei der Update-Prüfung. Bitte später erneut versuchen oder Support-Team kontaktieren. - + info_popup_new_version_download_label Herunterladen! - + info_popup_new_version_available_title New version available ! Neue Version verfügbar! - + info_popup_new_version_available_message A new version of Linphone (%1) is available. %2 Eine neue Version von Linphone (%1) ist unter %1 verfügbar - + info_popup_version_up_to_date_title Auf dem neuesten Stand - + info_popup_version_up_to_date_message Your version is up to date Ihre Version ist auf dem neuesten Stand - + configuration_error_detail not reachable nicht erreichbar - + application_description "A free and open source SIP video-phone." Ein kostenloses Open-Source SIP Video-Telefon. - + command_line_arg_order "Send an order to the application towards a command line" Kommandozeilen-Befehl an die Anwendung schicken - + command_line_option_show_help Zeige Hilfe - + command_line_option_show_app_version App-Version anzeigen - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, Pfad oder Datei - + command_line_option_minimized Minimieren - + command_line_option_log_to_stdout Debug-Informationen auf der Standardausgabe ausgeben - + command_line_option_print_app_logs_only "Print only logs from the application" Nur Anwendungs-Logs ausgeben - + hide_action "Cacher" "Afficher" Ausblenden - + show_action Zeigen - + quit_action "Quitter" Beenden - + check_for_update Check for update Auf Updates prüfen - + mark_all_read_action Alle als gelesen markieren diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index eaa2c3d96..01500ffda 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -662,134 +662,134 @@ - - + + info_popup_error_title Error Error - + info_popup_configuration_failed_message Remote provisioning failed : %1 Remote provisioning failed : %1 - + info_popup_error_checking_update An error occured while trying to check update. Please try again later or contact support team. An error occured while trying to check update. Please try again later or contact support team. - + info_popup_new_version_download_label Download it ! - + info_popup_new_version_available_title New version available ! New version available ! - + info_popup_new_version_available_message A new version of Linphone (%1) is available. %2 A new version of Linphone (%1) is available at %1 - + info_popup_version_up_to_date_title Up to date - + info_popup_version_up_to_date_message Your version is up to date Up to date Your version is up to date - + configuration_error_detail not reachable not reachable - + application_description "A free and open source SIP video-phone." A free and open source SIP video-phone. - + command_line_arg_order "Send an order to the application towards a command line" Send an order to the application towards a command line - + command_line_option_show_help Show this help - + command_line_option_show_app_version Show app version - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Specify the linphone configuration file to be fetched. It will be merged with the current configuration. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, path or file - + command_line_option_minimized Minimize - + command_line_option_log_to_stdout Log to stdout some debug information while running - + command_line_option_print_app_logs_only "Print only logs from the application" Print only logs from the application - + hide_action "Cacher" "Afficher" Hide - + show_action Show - + quit_action "Quitter" Quit - + check_for_update Check for update Check for update - + mark_all_read_action Marquer tout comme lu diff --git a/Linphone/data/languages/fr.ts b/Linphone/data/languages/fr.ts index 944c0a69b..cd15a94d6 100644 --- a/Linphone/data/languages/fr.ts +++ b/Linphone/data/languages/fr.ts @@ -657,134 +657,134 @@ - - + + info_popup_error_title Error Erreur - + info_popup_configuration_failed_message Remote provisioning failed : %1 La configuration distante a échoué : %1 - + info_popup_error_checking_update An error occured while trying to check update. Please try again later or contact support team. Une erreur est survenue lors de la recherche de mise à jour. Merci de réessayer plus tard ou de contacter l'équipe de support. - + info_popup_new_version_download_label Téléchargez-là ! - + info_popup_new_version_available_title New version available ! Nouvelle version disponible ! - + info_popup_new_version_available_message A new version of Linphone (%1) is available. %2 Une nouvelle version de Linphone (%1) est disponible. %2 - + info_popup_version_up_to_date_title À jour - + info_popup_version_up_to_date_message Your version is up to date Votre version est à jour - + configuration_error_detail not reachable indisponible - + application_description "A free and open source SIP video-phone." A free and open source SIP video-phone. - + command_line_arg_order "Send an order to the application towards a command line" Send an order to the application towards a command line - + command_line_option_show_help Show this help - + command_line_option_show_app_version Afficher la version de l'application - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Specify the linphone configuration file to be fetched. It will be merged with the current configuration. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, path or file - + command_line_option_minimized Minimiser - + command_line_option_log_to_stdout Log to stdout some debug information while running - + command_line_option_print_app_logs_only "Print only logs from the application" Print only logs from the application - + hide_action "Cacher" "Afficher" Cacher - + show_action Afficher - + quit_action "Quitter" Quitter - + check_for_update Check for update Rechercher une mise à jour - + mark_all_read_action Marquer tout comme lu