use display name instead of address for security example so the magic search does not search this fake address

outboundproxy configuration #LINQT-2012

fix chat events order

fix image picto only when file does not exist #LINQT-2049/2059
This commit is contained in:
Gaelle Braud 2025-10-09 15:03:40 +02:00
parent 9fd686c2ed
commit 82679ab997
27 changed files with 680 additions and 434 deletions

View file

@ -65,9 +65,11 @@ AccountCore::AccountCore(const std::shared_ptr<linphone::Account> &account) : QO
<< "TLS" << "TLS"
<< "DTLS"; << "DTLS";
mTransport = LinphoneEnums::toString(LinphoneEnums::fromLinphone(params->getTransport())); mTransport = LinphoneEnums::toString(LinphoneEnums::fromLinphone(params->getTransport()));
mServerAddress = mRegistrarUri =
params->getServerAddress() ? Utils::coreStringToAppString(params->getServerAddress()->asString()) : ""; params->getServerAddress() ? Utils::coreStringToAppString(params->getServerAddress()->asString()) : "";
mOutboundProxyEnabled = params->outboundProxyEnabled(); auto routesAddresses = params->getRoutesAddresses();
mOutboundProxyUri =
routesAddresses.empty() ? "" : Utils::coreStringToAppString(routesAddresses.front()->asString());
auto policy = params->getNatPolicy() ? params->getNatPolicy() : account->getCore()->createNatPolicy(); auto policy = params->getNatPolicy() ? params->getNatPolicy() : account->getCore()->createNatPolicy();
mStunServer = Utils::coreStringToAppString(policy->getStunServer()); mStunServer = Utils::coreStringToAppString(policy->getStunServer());
mIceEnabled = policy->iceEnabled(); mIceEnabled = policy->iceEnabled();
@ -136,8 +138,8 @@ AccountCore::AccountCore(const AccountCore &accountCore) {
mVoicemailAddress = accountCore.mVoicemailAddress; mVoicemailAddress = accountCore.mVoicemailAddress;
mTransport = accountCore.mTransport; mTransport = accountCore.mTransport;
mTransports = accountCore.mTransports; mTransports = accountCore.mTransports;
mServerAddress = accountCore.mServerAddress; mRegistrarUri = accountCore.mRegistrarUri;
mOutboundProxyEnabled = accountCore.mOutboundProxyEnabled; mOutboundProxyUri = accountCore.mOutboundProxyUri;
mStunServer = accountCore.mStunServer; mStunServer = accountCore.mStunServer;
mIceEnabled = accountCore.mIceEnabled; mIceEnabled = accountCore.mIceEnabled;
mAvpfEnabled = accountCore.mAvpfEnabled; mAvpfEnabled = accountCore.mAvpfEnabled;
@ -201,11 +203,11 @@ void AccountCore::setSelf(QSharedPointer<AccountCore> me) {
mAccountModelConnection->invokeToCore( mAccountModelConnection->invokeToCore(
[this, value]() { onTransportChanged(LinphoneEnums::toString(LinphoneEnums::fromLinphone(value))); }); [this, value]() { onTransportChanged(LinphoneEnums::toString(LinphoneEnums::fromLinphone(value))); });
}); });
mAccountModelConnection->makeConnectToModel(&AccountModel::serverAddressChanged, [this](QString value) { mAccountModelConnection->makeConnectToModel(&AccountModel::registrarUriChanged, [this](QString value) {
mAccountModelConnection->invokeToCore([this, value]() { onServerAddressChanged(value); }); mAccountModelConnection->invokeToCore([this, value]() { onRegistrarUriChanged(value); });
}); });
mAccountModelConnection->makeConnectToModel(&AccountModel::outboundProxyEnabledChanged, [this](bool value) { mAccountModelConnection->makeConnectToModel(&AccountModel::outboundProxyUriChanged, [this](QString value) {
mAccountModelConnection->invokeToCore([this, value]() { onOutboundProxyEnabledChanged(value); }); mAccountModelConnection->invokeToCore([this, value]() { onOutboundProxyUriChanged(value); });
}); });
mAccountModelConnection->makeConnectToModel(&AccountModel::stunServerChanged, [this](QString value) { mAccountModelConnection->makeConnectToModel(&AccountModel::stunServerChanged, [this](QString value) {
mAccountModelConnection->invokeToCore([this, value]() { onStunServerChanged(value); }); mAccountModelConnection->invokeToCore([this, value]() { onStunServerChanged(value); });
@ -307,8 +309,8 @@ void AccountCore::reset(const AccountCore &accountCore) {
setMwiServerAddress(accountCore.mMwiServerAddress); setMwiServerAddress(accountCore.mMwiServerAddress);
setVoicemailAddress(accountCore.mVoicemailAddress); setVoicemailAddress(accountCore.mVoicemailAddress);
setTransport(accountCore.mTransport); setTransport(accountCore.mTransport);
setServerAddress(accountCore.mServerAddress); setRegistrarUri(accountCore.mRegistrarUri);
setOutboundProxyEnabled(accountCore.mOutboundProxyEnabled); setOutboundProxyUri(accountCore.mOutboundProxyUri);
setStunServer(accountCore.mStunServer); setStunServer(accountCore.mStunServer);
setIceEnabled(accountCore.mIceEnabled); setIceEnabled(accountCore.mIceEnabled);
setAvpfEnabled(accountCore.mAvpfEnabled); setAvpfEnabled(accountCore.mAvpfEnabled);
@ -524,12 +526,12 @@ QString AccountCore::getTransport() {
return mTransport; return mTransport;
} }
QString AccountCore::getServerAddress() { QString AccountCore::getRegistrarUri() {
return mServerAddress; return mRegistrarUri;
} }
bool AccountCore::getOutboundProxyEnabled() { QString AccountCore::getOutboundProxyUri() {
return mOutboundProxyEnabled; return mOutboundProxyUri;
} }
QString AccountCore::getStunServer() { QString AccountCore::getStunServer() {
@ -582,32 +584,24 @@ void AccountCore::setVoicemailAddress(QString value) {
void AccountCore::setTransport(QString value) { void AccountCore::setTransport(QString value) {
if (mTransport != value) { if (mTransport != value) {
mAccountModelConnection->invokeToModel([this, value] { mTransport = value;
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO); emit transportChanged();
LinphoneEnums::TransportType transport;
LinphoneEnums::fromString(value, &transport);
mAccountModel->setTransport(LinphoneEnums::toLinphone(transport), false);
});
setIsSaved(false); setIsSaved(false);
} }
} }
void AccountCore::setServerAddress(QString value) { void AccountCore::setRegistrarUri(QString value) {
if (mServerAddress != value) { if (mRegistrarUri != value) {
mAccountModelConnection->invokeToModel([this, value, transportString = mTransport] { mRegistrarUri = value;
LinphoneEnums::TransportType transport; emit registrarUriChanged();
LinphoneEnums::fromString(transportString, &transport);
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO);
mAccountModel->setServerAddress(value, LinphoneEnums::toLinphone(transport), false);
});
setIsSaved(false); setIsSaved(false);
} }
} }
void AccountCore::setOutboundProxyEnabled(bool value) { void AccountCore::setOutboundProxyUri(QString value) {
if (mOutboundProxyEnabled != value) { if (mOutboundProxyUri != value) {
mOutboundProxyEnabled = value; mOutboundProxyUri = value;
emit outboundProxyEnabledChanged(); emit outboundProxyUriChanged();
setIsSaved(false); setIsSaved(false);
} }
} }
@ -715,19 +709,20 @@ void AccountCore::onTransportChanged(QString value) {
} }
} }
void AccountCore::onServerAddressChanged(QString value) { void AccountCore::onRegistrarUriChanged(QString value) {
if (value != mServerAddress) { if (value != mRegistrarUri) {
mServerAddress = value; mRegistrarUri = value;
emit serverAddressChanged(); emit registrarUriChanged();
} }
} }
void AccountCore::onOutboundProxyEnabledChanged(bool value) { void AccountCore::onOutboundProxyUriChanged(QString value) {
if (value != mOutboundProxyEnabled) { if (value != mOutboundProxyUri) {
mOutboundProxyEnabled = value; mOutboundProxyUri = value;
emit outboundProxyEnabledChanged(); emit outboundProxyUriChanged();
} }
} }
void AccountCore::onStunServerChanged(QString value) { void AccountCore::onStunServerChanged(QString value) {
if (value != mStunServer) { if (value != mStunServer) {
mStunServer = value; mStunServer = value;
@ -793,8 +788,8 @@ void AccountCore::writeIntoModel(std::shared_ptr<AccountModel> model) const {
LinphoneEnums::TransportType transport; LinphoneEnums::TransportType transport;
LinphoneEnums::fromString(mTransport, &transport); LinphoneEnums::fromString(mTransport, &transport);
model->setTransport(LinphoneEnums::toLinphone(transport), true); model->setTransport(LinphoneEnums::toLinphone(transport), true);
model->setServerAddress(mServerAddress, LinphoneEnums::toLinphone(transport), true); model->setRegistrarUri(mRegistrarUri);
model->setOutboundProxyEnabled(mOutboundProxyEnabled); model->setOutboundProxyUri(mOutboundProxyUri);
model->setStunServer(mStunServer); model->setStunServer(mStunServer);
model->setIceEnabled(mIceEnabled); model->setIceEnabled(mIceEnabled);
model->setAvpfEnabled(mAvpfEnabled); model->setAvpfEnabled(mAvpfEnabled);
@ -810,19 +805,19 @@ void AccountCore::writeFromModel(const std::shared_ptr<AccountModel> &model) {
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO); mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO);
setUnreadCallNotifications(model->getMissedCallsCount()); setUnreadCallNotifications(model->getMissedCallsCount());
setUnreadMessageNotifications(model->getUnreadMessagesCount()); setUnreadMessageNotifications(model->getUnreadMessagesCount());
setMwiServerAddress(model->getMwiServerAddress()); onMwiServerAddressChanged(model->getMwiServerAddress());
setTransport(LinphoneEnums::toString(LinphoneEnums::fromLinphone(model->getTransport()))); onTransportChanged(LinphoneEnums::toString(LinphoneEnums::fromLinphone(model->getTransport())));
setServerAddress(model->getServerAddress()); onRegistrarUriChanged(model->getRegistrarUri());
setOutboundProxyEnabled(model->getOutboundProxyEnabled()); onOutboundProxyUriChanged(model->getOutboundProxyUri());
setStunServer(model->getStunServer()); onStunServerChanged(model->getStunServer());
setIceEnabled(model->getIceEnabled()); onIceEnabledChanged(model->getIceEnabled());
setAvpfEnabled(model->getAvpfEnabled()); onAvpfEnabledChanged(model->getAvpfEnabled());
setBundleModeEnabled(model->getBundleModeEnabled()); onBundleModeEnabledChanged(model->getBundleModeEnabled());
setExpire(model->getExpire()); onExpireChanged(model->getExpire());
setConferenceFactoryAddress(model->getConferenceFactoryAddress()); onConferenceFactoryAddressChanged(model->getConferenceFactoryAddress());
setAudioVideoConferenceFactoryAddress(model->getAudioVideoConferenceFactoryAddress()); onAudioVideoConferenceFactoryAddressChanged(model->getAudioVideoConferenceFactoryAddress());
setLimeServerUrl(model->getLimeServerUrl()); onLimeServerUrlChanged(model->getLimeServerUrl());
setVoicemailAddress(model->getVoicemailAddress()); onVoicemailAddressChanged(model->getVoicemailAddress());
} }
void AccountCore::save() { void AccountCore::save() {

View file

@ -58,9 +58,9 @@ public:
QString mwiServerAddress READ getMwiServerAddress WRITE setMwiServerAddress NOTIFY mwiServerAddressChanged) QString mwiServerAddress READ getMwiServerAddress WRITE setMwiServerAddress NOTIFY mwiServerAddressChanged)
Q_PROPERTY(QStringList transports READ getTransports CONSTANT) Q_PROPERTY(QStringList transports READ getTransports CONSTANT)
Q_PROPERTY(QString transport READ getTransport WRITE setTransport NOTIFY transportChanged) Q_PROPERTY(QString transport READ getTransport WRITE setTransport NOTIFY transportChanged)
Q_PROPERTY(QString serverAddress READ getServerAddress WRITE setServerAddress NOTIFY serverAddressChanged) Q_PROPERTY(QString registrarUri READ getRegistrarUri WRITE setRegistrarUri NOTIFY registrarUriChanged)
Q_PROPERTY(bool outboundProxyEnabled READ getOutboundProxyEnabled WRITE setOutboundProxyEnabled NOTIFY Q_PROPERTY(
outboundProxyEnabledChanged) QString outboundProxyUri READ getOutboundProxyUri WRITE setOutboundProxyUri NOTIFY outboundProxyUriChanged)
Q_PROPERTY(QString stunServer READ getStunServer WRITE setStunServer NOTIFY stunServerChanged) Q_PROPERTY(QString stunServer READ getStunServer WRITE setStunServer NOTIFY stunServerChanged)
Q_PROPERTY(bool iceEnabled READ getIceEnabled WRITE setIceEnabled NOTIFY iceEnabledChanged) Q_PROPERTY(bool iceEnabled READ getIceEnabled WRITE setIceEnabled NOTIFY iceEnabledChanged)
Q_PROPERTY(bool avpfEnabled READ getAvpfEnabled WRITE setAvpfEnabled NOTIFY avpfEnabledChanged) Q_PROPERTY(bool avpfEnabled READ getAvpfEnabled WRITE setAvpfEnabled NOTIFY avpfEnabledChanged)
@ -132,8 +132,8 @@ public:
QString getMwiServerAddress(); QString getMwiServerAddress();
QString getTransport(); QString getTransport();
QStringList getTransports(); QStringList getTransports();
QString getServerAddress(); QString getRegistrarUri();
bool getOutboundProxyEnabled(); QString getOutboundProxyUri();
QString getStunServer(); QString getStunServer();
bool getIceEnabled(); bool getIceEnabled();
bool getAvpfEnabled(); bool getAvpfEnabled();
@ -146,8 +146,8 @@ public:
void setMwiServerAddress(QString value); void setMwiServerAddress(QString value);
void setTransport(QString value); void setTransport(QString value);
void setServerAddress(QString value); void setRegistrarUri(QString value);
void setOutboundProxyEnabled(bool value); void setOutboundProxyUri(QString value);
void setStunServer(QString value); void setStunServer(QString value);
void setIceEnabled(bool value); void setIceEnabled(bool value);
void setAvpfEnabled(bool value); void setAvpfEnabled(bool value);
@ -165,8 +165,8 @@ public:
void onMwiServerAddressChanged(QString value); void onMwiServerAddressChanged(QString value);
void onVoicemailAddressChanged(QString value); void onVoicemailAddressChanged(QString value);
void onTransportChanged(QString value); void onTransportChanged(QString value);
void onServerAddressChanged(QString value); void onRegistrarUriChanged(QString value);
void onOutboundProxyEnabledChanged(bool value); void onOutboundProxyUriChanged(QString value);
void onStunServerChanged(QString value); void onStunServerChanged(QString value);
void onIceEnabledChanged(bool value); void onIceEnabledChanged(bool value);
void onAvpfEnabledChanged(bool value); void onAvpfEnabledChanged(bool value);
@ -206,8 +206,8 @@ signals:
void notificationsAllowedChanged(); void notificationsAllowedChanged();
void mwiServerAddressChanged(); void mwiServerAddressChanged();
void transportChanged(); void transportChanged();
void serverAddressChanged(); void registrarUriChanged();
void outboundProxyEnabledChanged(); void outboundProxyUriChanged();
void stunServerChanged(); void stunServerChanged();
void iceEnabledChanged(); void iceEnabledChanged();
void avpfEnabledChanged(); void avpfEnabledChanged();
@ -257,8 +257,8 @@ private:
QString mMwiServerAddress; QString mMwiServerAddress;
QString mTransport; QString mTransport;
QStringList mTransports; QStringList mTransports;
QString mServerAddress; QString mRegistrarUri;
bool mOutboundProxyEnabled; QString mOutboundProxyUri;
QString mStunServer; QString mStunServer;
bool mIceEnabled; bool mIceEnabled;
bool mAvpfEnabled; bool mAvpfEnabled;

View file

@ -21,9 +21,9 @@
#ifndef ACCOUNT_DEVICE_LIST_H_ #ifndef ACCOUNT_DEVICE_LIST_H_
#define ACCOUNT_DEVICE_LIST_H_ #define ACCOUNT_DEVICE_LIST_H_
#include "../proxy/ListProxy.hpp"
#include "AccountDeviceCore.hpp" #include "AccountDeviceCore.hpp"
#include "core/account/AccountGui.hpp" #include "core/account/AccountGui.hpp"
#include "core/proxy/ListProxy.hpp"
#include "model/account/AccountManagerServicesModel.hpp" #include "model/account/AccountManagerServicesModel.hpp"
#include "tool/AbstractObject.hpp" #include "tool/AbstractObject.hpp"
#include "tool/thread/SafeConnection.hpp" #include "tool/thread/SafeConnection.hpp"

View file

@ -163,9 +163,9 @@ void EventLogList::displayMore() {
} }
mCoreModelConnection->invokeToCore([this, events, newCount] { mCoreModelConnection->invokeToCore([this, events, newCount] {
int currentCount = mList.count(); int currentCount = mList.count();
for (auto &event : *events) { for (auto it = events->end() - 1; it >= events->begin(); --it) {
connectItem(event); connectItem(*it);
add(event); prepend(*it);
} }
}); });
}); });

View file

@ -65,7 +65,8 @@ void LoginPage::login(const QString &username,
QString displayName, QString displayName,
QString domain, QString domain,
LinphoneEnums::TransportType transportType, LinphoneEnums::TransportType transportType,
QString serverAddress, QString registrarUri,
QString outboundProxyAddress,
QString connectionId) { QString connectionId) {
setErrorMessage(""); setErrorMessage("");
App::postModelAsync([=]() { App::postModelAsync([=]() {
@ -114,7 +115,7 @@ void LoginPage::login(const QString &username,
QString error; QString error;
if (!accountManager->login(username, password, displayName, domain, LinphoneEnums::toLinphone(transportType), if (!accountManager->login(username, password, displayName, domain, LinphoneEnums::toLinphone(transportType),
&error, serverAddress, connectionId)) { &error, registrarUri, outboundProxyAddress, connectionId)) {
setErrorMessage(error); setErrorMessage(error);
emit accountManager->registrationStateChanged(linphone::RegistrationState::None, linphone::Reason::None); emit accountManager->registrationStateChanged(linphone::RegistrationState::None, linphone::Reason::None);
} }

View file

@ -42,7 +42,8 @@ public:
QString displayName = QString(), QString displayName = QString(),
QString domain = QString(), QString domain = QString(),
LinphoneEnums::TransportType transportType = LinphoneEnums::TransportType::Tls, LinphoneEnums::TransportType transportType = LinphoneEnums::TransportType::Tls,
QString serverAddress = QString(), QString registrarUri = QString(),
QString outboundProxyAddress = QString(),
QString connectionId = QString()); QString connectionId = QString());
linphone::RegistrationState getRegistrationState() const; linphone::RegistrationState getRegistrationState() const;

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_13014_8071)">
<path d="M12 12.75C13.63 12.75 15.07 13.14 16.24 13.65C17.32 14.13 18 15.21 18 16.38V18H6V16.39C6 15.21 6.68 14.13 7.76 13.66C8.93 13.14 10.37 12.75 12 12.75ZM4 13C5.1 13 6 12.1 6 11C6 9.9 5.1 9 4 9C2.9 9 2 9.9 2 11C2 12.1 2.9 13 4 13ZM5.13 14.1C4.76 14.04 4.39 14 4 14C3.01 14 2.07 14.21 1.22 14.58C0.48 14.9 0 15.62 0 16.43V18H4.5V16.39C4.5 15.56 4.73 14.78 5.13 14.1ZM20 13C21.1 13 22 12.1 22 11C22 9.9 21.1 9 20 9C18.9 9 18 9.9 18 11C18 12.1 18.9 13 20 13ZM24 16.43C24 15.62 23.52 14.9 22.78 14.58C21.93 14.21 20.99 14 20 14C19.61 14 19.24 14.04 18.87 14.1C19.27 14.78 19.5 15.56 19.5 16.39V18H24V16.43ZM12 6C13.66 6 15 7.34 15 9C15 10.66 13.66 12 12 12C10.34 12 9 10.66 9 9C9 7.34 10.34 6 12 6Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_13014_8071">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 967 B

View file

@ -27,45 +27,45 @@
<context> <context>
<name>AccountCore</name> <name>AccountCore</name>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="436"/> <location filename="../../core/account/AccountCore.cpp" line="438"/>
<source>drawer_menu_account_connection_status_connected</source> <source>drawer_menu_account_connection_status_connected</source>
<extracomment>&quot;Connecté&quot;</extracomment> <extracomment>&quot;Connecté&quot;</extracomment>
<translation>Verbunden</translation> <translation>Verbunden</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="439"/> <location filename="../../core/account/AccountCore.cpp" line="441"/>
<source>drawer_menu_account_connection_status_refreshing</source> <source>drawer_menu_account_connection_status_refreshing</source>
<translation>Aktualisiere</translation> <translation>Aktualisiere</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="442"/> <location filename="../../core/account/AccountCore.cpp" line="444"/>
<source>drawer_menu_account_connection_status_progress</source> <source>drawer_menu_account_connection_status_progress</source>
<translation>Verbinde</translation> <translation>Verbinde</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="445"/> <location filename="../../core/account/AccountCore.cpp" line="447"/>
<source>drawer_menu_account_connection_status_failed</source> <source>drawer_menu_account_connection_status_failed</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="449"/> <location filename="../../core/account/AccountCore.cpp" line="451"/>
<source>drawer_menu_account_connection_status_cleared</source> <source>drawer_menu_account_connection_status_cleared</source>
<translation>Deaktiviert</translation> <translation>Deaktiviert</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="483"/> <location filename="../../core/account/AccountCore.cpp" line="485"/>
<source>manage_account_status_connected_summary</source> <source>manage_account_status_connected_summary</source>
<extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment> <extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment>
<translation>Sie sind online und erreichbar.</translation> <translation>Sie sind online und erreichbar.</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="486"/> <location filename="../../core/account/AccountCore.cpp" line="488"/>
<source>manage_account_status_failed_summary</source> <source>manage_account_status_failed_summary</source>
<extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment> <extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment>
<translation>Verbindungsfehler, überprüfen Sie Ihre Einstellungen.</translation> <translation>Verbindungsfehler, überprüfen Sie Ihre Einstellungen.</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="490"/> <location filename="../../core/account/AccountCore.cpp" line="492"/>
<source>manage_account_status_cleared_summary</source> <source>manage_account_status_cleared_summary</source>
<extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment> <extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment>
<translation>Konto deaktiviert, Sie erhalten keine Anrufe oder Nachrichten.</translation> <translation>Konto deaktiviert, Sie erhalten keine Anrufe oder Nachrichten.</translation>
@ -83,43 +83,43 @@
<context> <context>
<name>AccountManager</name> <name>AccountManager</name>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="86"/> <location filename="../../model/account/AccountManager.cpp" line="87"/>
<source>assistant_account_login_already_connected_error</source> <source>assistant_account_login_already_connected_error</source>
<extracomment>&quot;The account is already connected&quot;</extracomment> <extracomment>&quot;The account is already connected&quot;</extracomment>
<translation>Das Konto ist bereits verbunden</translation> <translation>Das Konto ist bereits verbunden</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="104"/> <location filename="../../model/account/AccountManager.cpp" line="109"/>
<source>assistant_account_login_proxy_address_error</source> <source>assistant_account_login_proxy_address_error</source>
<extracomment>&quot;Unable to create proxy address. Please check the domain name.&quot;</extracomment> <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> <translation>Proxy-Adresse konnte nicht erstellt werden. Bitte überprüfen Sie den Domänenname.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="117"/> <location filename="../../model/account/AccountManager.cpp" line="122"/>
<source>assistant_account_login_address_configuration_error</source> <source>assistant_account_login_address_configuration_error</source>
<extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment> <extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment>
<translation>Folgende Adresse konnte nicht konfiguriert werden: `%1`.</translation> <translation>Folgende Adresse konnte nicht konfiguriert werden: `%1`.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="124"/> <location filename="../../model/account/AccountManager.cpp" line="129"/>
<source>assistant_account_login_params_configuration_error</source> <source>assistant_account_login_params_configuration_error</source>
<extracomment>&quot;Unable to configure account settings.&quot;</extracomment> <extracomment>&quot;Unable to configure account settings.&quot;</extracomment>
<translation>Kontoeinstellungen konnten nicht konfiguriert werden.</translation> <translation>Kontoeinstellungen konnten nicht konfiguriert werden.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="148"/> <location filename="../../model/account/AccountManager.cpp" line="153"/>
<source>assistant_account_login_forbidden_error</source> <source>assistant_account_login_forbidden_error</source>
<extracomment>&quot;Username and password do not match&quot;</extracomment> <extracomment>&quot;Username and password do not match&quot;</extracomment>
<translation>Benutzername und Passwort stimmen nicht überein</translation> <translation>Benutzername und Passwort stimmen nicht überein</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="150"/> <location filename="../../model/account/AccountManager.cpp" line="155"/>
<source>assistant_account_login_error</source> <source>assistant_account_login_error</source>
<extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment> <extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment>
<translation>Fehler bei der Verbindung</translation> <translation>Fehler bei der Verbindung</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="163"/> <location filename="../../model/account/AccountManager.cpp" line="168"/>
<source>assistant_account_add_error</source> <source>assistant_account_add_error</source>
<extracomment>&quot;Unable to add account.&quot;</extracomment> <extracomment>&quot;Unable to add account.&quot;</extracomment>
<translation>Konto konnte nicht hinzugefügt werden.</translation> <translation>Konto konnte nicht hinzugefügt werden.</translation>
@ -134,25 +134,31 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="293"/> <location filename="../../model/account/AccountModel.cpp" line="292"/>
<source>set_server_address_failed_error_message</source> <source>set_server_address_failed_error_message</source>
<extracomment>&quot;Unable to set server address, failed creating address from %1&quot;</extracomment> <extracomment>&quot;Unable to set server address, failed creating address from %1&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="398"/> <location filename="../../model/account/AccountModel.cpp" line="309"/>
<source>set_outbound_proxy_uri_failed_error_message</source>
<extracomment>Unable to set outbound proxy uri, failed creating address from %1</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="418"/>
<source>set_conference_factory_address_failed_error_message</source> <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> <extracomment>&quot;Unable to set the conversation server address, failed creating address from %1&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="420"/> <location filename="../../model/account/AccountModel.cpp" line="440"/>
<source>set_audio_conference_factory_address_failed_error_message</source> <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> <extracomment>&quot;Unable to set the meeting server address, failed creating address from %1&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="467"/> <location filename="../../model/account/AccountModel.cpp" line="487"/>
<source>set_voicemail_address_failed_error_message</source> <source>set_voicemail_address_failed_error_message</source>
<extracomment>Unable to set voicemail address, failed creating address from %1</extracomment> <extracomment>Unable to set voicemail address, failed creating address from %1</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -325,104 +331,131 @@
<context> <context>
<name>AccountSettingsParametersLayout</name> <name>AccountSettingsParametersLayout</name>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="14"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="17"/>
<source>settings_title</source> <source>settings_title</source>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="18"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="21"/>
<source>settings_account_title</source> <source>settings_account_title</source>
<translation>Kontoeinstellungen</translation> <translation>Kontoeinstellungen</translation>
</message> </message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="32"/>
<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="unfinished"></translation>
</message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="34"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="34"/>
<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="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="35"/>
<source>info_popup_error_title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="45"/>
<source>information_popup_success_title</source> <source>information_popup_success_title</source>
<translation>Erfolg</translation> <translation>Erfolg</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="36"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="47"/>
<source>contact_editor_saved_changes_toast</source> <source>contact_editor_saved_changes_toast</source>
<extracomment>&quot;Modifications sauvegardés&quot;</extracomment> <extracomment>&quot;Modifications sauvegardés&quot;</extracomment>
<translation>Änderungen gespeichert</translation> <translation>Änderungen gespeichert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="43"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="54"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="63"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="74"/>
<source>account_settings_mwi_uri_title</source> <source>account_settings_mwi_uri_title</source>
<extracomment>&quot;URI du serveur de messagerie vocale&quot;</extracomment> <extracomment>&quot;URI du serveur de messagerie vocale&quot;</extracomment>
<translation>Voicemail-Server-URI</translation> <translation>Voicemail-Server-URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="84"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="95"/>
<source>account_settings_voicemail_uri_title</source> <source>account_settings_voicemail_uri_title</source>
<extracomment>&quot;URI de messagerie vocale&quot;</extracomment> <extracomment>&quot;URI de messagerie vocale&quot;</extracomment>
<translation>Voicemail-URI</translation> <translation>Voicemail-URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="108"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="120"/>
<source>account_settings_transport_title</source> <source>account_settings_transport_title</source>
<extracomment>&quot;Transport&quot;</extracomment> <extracomment>&quot;Transport&quot;</extracomment>
<translation>Transport</translation> <translation>Transport</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="122"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="127"/>
<source>account_settings_registrar_uri_title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="140"/>
<source>account_settings_sip_proxy_url_title</source> <source>account_settings_sip_proxy_url_title</source>
<translation>Proxy-Server-URL</translation> <translation>Proxy-Server-URL</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="145"/>
<source>account_settings_outbound_proxy_title</source> <source>login_proxy_server_url_tooltip</source>
<extracomment>&quot;Serveur mandataire sortant&quot;</extracomment> <extracomment>&quot;If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it.&quot;</extracomment>
<translation>Ausgehender Proxy-Server</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="138"/> <source>account_settings_outbound_proxy_title</source>
<extracomment>&quot;Outbound proxy enabled&quot;</extracomment>
<translation type="vanished">Ausgehender Proxy-Server</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="157"/>
<source>account_settings_stun_server_url_title</source> <source>account_settings_stun_server_url_title</source>
<extracomment>&quot;Adresse du serveur STUN&quot;</extracomment> <extracomment>&quot;Adresse du serveur STUN&quot;</extracomment>
<translation>STUN-Server-Adresse</translation> <translation>STUN-Server-Adresse</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="143"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="162"/>
<source>account_settings_enable_ice_title</source> <source>account_settings_enable_ice_title</source>
<extracomment>&quot;Activer ICE&quot;</extracomment> <extracomment>&quot;Activer ICE&quot;</extracomment>
<translation>ICE aktivieren</translation> <translation>ICE aktivieren</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="149"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="168"/>
<source>account_settings_avpf_title</source> <source>account_settings_avpf_title</source>
<extracomment>&quot;AVPF&quot;</extracomment> <extracomment>&quot;AVPF&quot;</extracomment>
<translation>AVPF</translation> <translation>AVPF</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="155"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="174"/>
<source>account_settings_bundle_mode_title</source> <source>account_settings_bundle_mode_title</source>
<extracomment>&quot;Mode bundle&quot;</extracomment> <extracomment>&quot;Mode bundle&quot;</extracomment>
<translation>Bundle-Modus</translation> <translation>Bundle-Modus</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="164"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="183"/>
<source>account_settings_expire_title</source> <source>account_settings_expire_title</source>
<extracomment>&quot;Expiration (en seconde)&quot;</extracomment> <extracomment>&quot;Expiration (en seconde)&quot;</extracomment>
<translation>Ablaufzeit (in Sekunden)</translation> <translation>Ablaufzeit (in Sekunden)</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="175"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="194"/>
<source>account_settings_conference_factory_uri_title</source> <source>account_settings_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de conversations&quot;</extracomment> <extracomment>&quot;URI du serveur de conversations&quot;</extracomment>
<translation>Konferenz-Factory-URI</translation> <translation>Konferenz-Factory-URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="192"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="211"/>
<source>account_settings_audio_video_conference_factory_uri_title</source> <source>account_settings_audio_video_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de réunions&quot;</extracomment> <extracomment>&quot;URI du serveur de réunions&quot;</extracomment>
<translation>Video-Konferenz-Factory-URI</translation> <translation>Video-Konferenz-Factory-URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="206"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="225"/>
<source>account_settings_lime_server_url_title</source> <source>account_settings_lime_server_url_title</source>
<extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment> <extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment>
<translation>Lime-Server-URL</translation> <translation>Lime-Server-URL</translation>
@ -546,19 +579,19 @@
<context> <context>
<name>AllContactListView</name> <name>AllContactListView</name>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="276"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="275"/>
<source>car_favorites_contacts_title</source> <source>car_favorites_contacts_title</source>
<extracomment>&quot;Favoris&quot;</extracomment> <extracomment>&quot;Favoris&quot;</extracomment>
<translation>Favoriten</translation> <translation>Favoriten</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="323"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="322"/>
<source>generic_address_picker_contacts_list_title</source> <source>generic_address_picker_contacts_list_title</source>
<extracomment>&apos;Contacts&apos;</extracomment> <extracomment>&apos;Contacts&apos;</extracomment>
<translation>Kontakte</translation> <translation>Kontakte</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="376"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="375"/>
<source>generic_address_picker_suggestions_list_title</source> <source>generic_address_picker_suggestions_list_title</source>
<extracomment>&quot;Suggestions&quot;</extracomment> <extracomment>&quot;Suggestions&quot;</extracomment>
<translation>Vorschläge</translation> <translation>Vorschläge</translation>
@ -900,42 +933,42 @@
<context> <context>
<name>CallLayout</name> <name>CallLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="70"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="75"/>
<source>meeting_event_conference_destroyed</source> <source>meeting_event_conference_destroyed</source>
<extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment> <extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment>
<translation>Sie haben die Besprechung verlassen</translation> <translation>Sie haben die Besprechung verlassen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="73"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="78"/>
<source>call_ended_by_user</source> <source>call_ended_by_user</source>
<extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment>
<translation>Sie haben den Anruf beendet</translation> <translation>Sie haben den Anruf beendet</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="76"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="81"/>
<source>call_ended_by_remote</source> <source>call_ended_by_remote</source>
<extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment>
<translation>Der Anrufer hat das Gespräch beendet</translation> <translation>Der Anrufer hat das Gespräch beendet</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="152"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="157"/>
<source>conference_call_empty</source> <source>conference_call_empty</source>
<extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment> <extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment>
<translation>Warten auf weitere Teilnehmer</translation> <translation>Warten auf weitere Teilnehmer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="170"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="175"/>
<source>conference_share_link_title</source> <source>conference_share_link_title</source>
<extracomment>&quot;Partager le lien&quot;</extracomment> <extracomment>&quot;Partager le lien&quot;</extracomment>
<translation>Link teilen</translation> <translation>Link teilen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="176"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="181"/>
<source>copied</source> <source>copied</source>
<translation>Kopiert</translation> <translation>Kopiert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="178"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="183"/>
<source>information_popup_meeting_address_copied_to_clipboard</source> <source>information_popup_meeting_address_copied_to_clipboard</source>
<extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment> <extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment>
<translation>Der Besprechungs-Link wurde in die Zwischenablage kopiert</translation> <translation>Der Besprechungs-Link wurde in die Zwischenablage kopiert</translation>
@ -1937,25 +1970,25 @@
<context> <context>
<name>ChatMessage</name> <name>ChatMessage</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="429"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="430"/>
<source>chat_message_copy_selection</source> <source>chat_message_copy_selection</source>
<extracomment>&quot;Copy selection&quot;</extracomment> <extracomment>&quot;Copy selection&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="431"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="432"/>
<source>chat_message_copy</source> <source>chat_message_copy</source>
<extracomment>&quot;Copy&quot;</extracomment> <extracomment>&quot;Copy&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="440"/>
<source>chat_message_copied_to_clipboard_title</source> <source>chat_message_copied_to_clipboard_title</source>
<extracomment>Copied</extracomment> <extracomment>Copied</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="441"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="442"/>
<source>chat_message_copied_to_clipboard_toast</source> <source>chat_message_copied_to_clipboard_toast</source>
<extracomment>&quot;to clipboard&quot;</extracomment> <extracomment>&quot;to clipboard&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1991,25 +2024,25 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="404"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="405"/>
<source>chat_message_reception_info</source> <source>chat_message_reception_info</source>
<extracomment>&quot;Reception info&quot;</extracomment> <extracomment>&quot;Reception info&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="416"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="417"/>
<source>chat_message_reply</source> <source>chat_message_reply</source>
<extracomment>Reply</extracomment> <extracomment>Reply</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="448"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="449"/>
<source>chat_message_forward</source> <source>chat_message_forward</source>
<extracomment>Forward</extracomment> <extracomment>Forward</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="465"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="466"/>
<source>chat_message_delete</source> <source>chat_message_delete</source>
<extracomment>&quot;Delete&quot;</extracomment> <extracomment>&quot;Delete&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2171,45 +2204,45 @@ Error</extracomment>
<context> <context>
<name>ChatMessagesListView</name> <name>ChatMessagesListView</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="112"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="110"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="121"/>
<source>popup_info_find_message_title</source> <source>popup_info_find_message_title</source>
<extracomment>Find message</extracomment> <extracomment>Find message</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="125"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/>
<source>info_popup_no_result_message</source> <source>info_popup_no_result_message</source>
<extracomment>No result found</extracomment> <extracomment>No result found</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="117"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/>
<source>info_popup_first_result_message</source> <source>info_popup_first_result_message</source>
<extracomment>First result reached</extracomment> <extracomment>First result reached</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="113"/>
<source>info_popup_last_result_message</source> <source>info_popup_last_result_message</source>
<extracomment>Last result reached</extracomment> <extracomment>Last result reached</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="161"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="159"/>
<source>chat_message_list_encrypted_header_title</source> <source>chat_message_list_encrypted_header_title</source>
<extracomment>End to end encrypted chat</extracomment> <extracomment>End to end encrypted chat</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="171"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="169"/>
<source>chat_message_list_encrypted_header_message</source> <source>chat_message_list_encrypted_header_message</source>
<extracomment>Les messages de cette conversation sont chiffrés de bout <extracomment>Les messages de cette conversation sont chiffrés de bout
en bout. Seul votre correspondant peut les déchiffrer.</extracomment> en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="211"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="209"/>
<source>chat_message_is_writing_info</source> <source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment> <extracomment>%1 is writing</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3197,13 +3230,13 @@ Error</extracomment>
<context> <context>
<name>DecoratedTextField</name> <name>DecoratedTextField</name>
<message> <message>
<location filename="../../view/Control/Input/DecoratedTextField.qml" line="54"/> <location filename="../../view/Control/Input/DecoratedTextField.qml" line="56"/>
<source>textfield_error_message_cannot_be_empty</source> <source>textfield_error_message_cannot_be_empty</source>
<extracomment>&quot;ne peut être vide&quot;</extracomment> <extracomment>&quot;ne peut être vide&quot;</extracomment>
<translation>darf nicht leer sein</translation> <translation>darf nicht leer sein</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Input/DecoratedTextField.qml" line="57"/> <location filename="../../view/Control/Input/DecoratedTextField.qml" line="59"/>
<source>textfield_error_message_unknown_format</source> <source>textfield_error_message_unknown_format</source>
<extracomment>&quot;Format non reconnu&quot;</extracomment> <extracomment>&quot;Format non reconnu&quot;</extracomment>
<translation>Unbekanntes Format</translation> <translation>Unbekanntes Format</translation>
@ -3490,50 +3523,50 @@ Error</extracomment>
<context> <context>
<name>HelpPage</name> <name>HelpPage</name>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="39"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="40"/>
<source>help_title</source> <source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment> <extracomment>&quot;Aide&quot;</extracomment>
<translation>Hilfe</translation> <translation>Hilfe</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="53"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="70"/>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="111"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="128"/>
<source>help_about_title</source> <source>help_about_title</source>
<extracomment>&quot;À propos de %1&quot;</extracomment> <extracomment>&quot;À propos de %1&quot;</extracomment>
<translation>Über %1</translation> <translation>Über %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="67"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="84"/>
<source>help_about_privacy_policy_title</source> <source>help_about_privacy_policy_title</source>
<extracomment>&quot;Règles de confidentialité&quot;</extracomment> <extracomment>&quot;Règles de confidentialité&quot;</extracomment>
<translation>Datenschutzrichtlinie</translation> <translation>Datenschutzrichtlinie</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="69"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="86"/>
<source>help_about_privacy_policy_subtitle</source> <source>help_about_privacy_policy_subtitle</source>
<extracomment>Quelles informations %1 collecte et utilise</extracomment> <extracomment>Quelles informations %1 collecte et utilise</extracomment>
<translation>Welche Informationen sammelt und verwendet %1</translation> <translation>Welche Informationen sammelt und verwendet %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="79"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="96"/>
<source>help_about_version_title</source> <source>help_about_version_title</source>
<extracomment>&quot;Version&quot;</extracomment> <extracomment>&quot;Version&quot;</extracomment>
<translation>Version</translation> <translation>Version</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="87"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="104"/>
<source>help_about_gpl_licence_title</source> <source>help_about_gpl_licence_title</source>
<extracomment>&quot;Licences GPLv3&quot;</extracomment> <extracomment>&quot;Licences GPLv3&quot;</extracomment>
<translation>GPLv3-Lizenzen</translation> <translation>GPLv3-Lizenzen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="98"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="115"/>
<source>help_about_contribute_translations_title</source> <source>help_about_contribute_translations_title</source>
<extracomment>&quot;Contribuer à la traduction de %1&quot;</extracomment> <extracomment>&quot;Contribuer à la traduction de %1&quot;</extracomment>
<translation>Zur Übersetzung von %1 beitragen</translation> <translation>Zur Übersetzung von %1 beitragen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="123"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="140"/>
<source>help_troubleshooting_title</source> <source>help_troubleshooting_title</source>
<extracomment>&quot;Dépannage&quot;</extracomment> <extracomment>&quot;Dépannage&quot;</extracomment>
<translation>Fehlerbehebung</translation> <translation>Fehlerbehebung</translation>
@ -3819,7 +3852,7 @@ Error</extracomment>
<translation>Link zur Remote-Konfiguration</translation> <translation>Link zur Remote-Konfiguration</translation>
</message> </message>
<message> <message>
<location filename="../../core/login/LoginPage.cpp" line="85"/> <location filename="../../core/login/LoginPage.cpp" line="86"/>
<source>default_account_connection_state_error_toast</source> <source>default_account_connection_state_error_toast</source>
<translation>Fehler bei der Verbindung</translation> <translation>Fehler bei der Verbindung</translation>
</message> </message>
@ -3906,31 +3939,31 @@ Error</extracomment>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="489"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="492"/>
<source>recordings_title</source> <source>recordings_title</source>
<extracomment>&quot;Enregistrements&quot;</extracomment> <extracomment>&quot;Enregistrements&quot;</extracomment>
<translation>Aufnahmen</translation> <translation>Aufnahmen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="504"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="507"/>
<source>help_title</source> <source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment> <extracomment>&quot;Aide&quot;</extracomment>
<translation>Hilfe</translation> <translation>Hilfe</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="521"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="526"/>
<source>help_quit_title</source> <source>help_quit_title</source>
<extracomment>&quot;Quitter l&apos;application&quot;</extracomment> <extracomment>&quot;Quitter l&apos;application&quot;</extracomment>
<translation>App beenden</translation> <translation>App beenden</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="526"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="531"/>
<source>quit_app_question</source> <source>quit_app_question</source>
<extracomment>&quot;Quitter %1 ?&quot;</extracomment> <extracomment>&quot;Quitter %1 ?&quot;</extracomment>
<translation>%1 beenden?</translation> <translation>%1 beenden?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="555"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="560"/>
<source>drawer_menu_add_account</source> <source>drawer_menu_add_account</source>
<extracomment>&quot;Ajouter un compte&quot;</extracomment> <extracomment>&quot;Ajouter un compte&quot;</extracomment>
<translation>Konto hinzufügen</translation> <translation>Konto hinzufügen</translation>
@ -4279,13 +4312,13 @@ Error</extracomment>
<translation>Zeitzone</translation> <translation>Zeitzone</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="899"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="898"/>
<source>meeting_info_organizer_label</source> <source>meeting_info_organizer_label</source>
<extracomment>&quot;Organisateur&quot;</extracomment> <extracomment>&quot;Organisateur&quot;</extracomment>
<translation>Organisator</translation> <translation>Organisator</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="918"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="917"/>
<source>meeting_info_join_title</source> <source>meeting_info_join_title</source>
<extracomment>&quot;Rejoindre la réunion&quot;</extracomment> <extracomment>&quot;Rejoindre la réunion&quot;</extracomment>
<translation>Besprechung beitreten</translation> <translation>Besprechung beitreten</translation>
@ -5028,13 +5061,25 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<message> <message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="375"/> <location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="375"/>
<source>login_proxy_server_url</source> <source>login_proxy_server_url</source>
<extracomment>&quot;Proxy server URL&quot;</extracomment> <extracomment>&quot;Outbound SIP Proxy URI&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="386"/> <location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="377"/>
<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 type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="388"/>
<source>login_registrar_uri</source>
<extracomment>&quot;Registrar URI&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="400"/>
<source>login_id</source> <source>login_id</source>
<extracomment>&quot;Connexion ID (if different)&quot;</extracomment> <extracomment>&quot;Authentication ID (if different)&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -5214,15 +5259,14 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<translation>Besprechungen</translation> <translation>Besprechungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="27"/>
<source>settings_security_title</source> <source>settings_security_title</source>
<extracomment>&quot;Affichage&quot; &quot;Security&quot;</extracomment> <extracomment>&quot;Affichage&quot; &quot;Security&quot;</extracomment>
<translation type="unfinished">Sicherheit / Verschlüsselung</translation> <translation type="obsolete">Sicherheit / Verschlüsselung</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="29"/> <location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="29"/>
<source>settings_network_title</source> <source>settings_network_title</source>
<extracomment>&quot;Réseau&quot;</extracomment> <extracomment>&quot;Affichage&quot; &quot;Security&quot; &quot;Réseau&quot;</extracomment>
<translation>Netzwerk</translation> <translation>Netzwerk</translation>
</message> </message>
<message> <message>
@ -5324,7 +5368,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<context> <context>
<name>Utils</name> <name>Utils</name>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2271"/> <location filename="../../tool/Utils.cpp" line="2275"/>
<source>nMinute</source> <source>nMinute</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform></numerusform>
@ -5332,7 +5376,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2272"/> <location filename="../../tool/Utils.cpp" line="2276"/>
<source>nHour</source> <source>nHour</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform></numerusform>
@ -5340,8 +5384,8 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2273"/> <location filename="../../tool/Utils.cpp" line="2277"/>
<location filename="../../tool/Utils.cpp" line="2274"/> <location filename="../../tool/Utils.cpp" line="2278"/>
<source>nDay</source> <source>nDay</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform></numerusform>
@ -5349,7 +5393,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2275"/> <location filename="../../tool/Utils.cpp" line="2279"/>
<source>nWeek</source> <source>nWeek</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform></numerusform>
@ -5357,7 +5401,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2276"/> <location filename="../../tool/Utils.cpp" line="2280"/>
<source>nSeconds</source> <source>nSeconds</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform></numerusform>

View file

@ -27,45 +27,45 @@
<context> <context>
<name>AccountCore</name> <name>AccountCore</name>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="436"/> <location filename="../../core/account/AccountCore.cpp" line="438"/>
<source>drawer_menu_account_connection_status_connected</source> <source>drawer_menu_account_connection_status_connected</source>
<extracomment>&quot;Connecté&quot;</extracomment> <extracomment>&quot;Connecté&quot;</extracomment>
<translation>Connected</translation> <translation>Connected</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="439"/> <location filename="../../core/account/AccountCore.cpp" line="441"/>
<source>drawer_menu_account_connection_status_refreshing</source> <source>drawer_menu_account_connection_status_refreshing</source>
<translation>Refreshing</translation> <translation>Refreshing</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="442"/> <location filename="../../core/account/AccountCore.cpp" line="444"/>
<source>drawer_menu_account_connection_status_progress</source> <source>drawer_menu_account_connection_status_progress</source>
<translation>Connecting</translation> <translation>Connecting</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="445"/> <location filename="../../core/account/AccountCore.cpp" line="447"/>
<source>drawer_menu_account_connection_status_failed</source> <source>drawer_menu_account_connection_status_failed</source>
<translation>Error</translation> <translation>Error</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="449"/> <location filename="../../core/account/AccountCore.cpp" line="451"/>
<source>drawer_menu_account_connection_status_cleared</source> <source>drawer_menu_account_connection_status_cleared</source>
<translation>Disabled</translation> <translation>Disabled</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="483"/> <location filename="../../core/account/AccountCore.cpp" line="485"/>
<source>manage_account_status_connected_summary</source> <source>manage_account_status_connected_summary</source>
<extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment> <extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment>
<translation>You are online and reachable.</translation> <translation>You are online and reachable.</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="486"/> <location filename="../../core/account/AccountCore.cpp" line="488"/>
<source>manage_account_status_failed_summary</source> <source>manage_account_status_failed_summary</source>
<extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment> <extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment>
<translation>Connection error, check your settings.</translation> <translation>Connection error, check your settings.</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="490"/> <location filename="../../core/account/AccountCore.cpp" line="492"/>
<source>manage_account_status_cleared_summary</source> <source>manage_account_status_cleared_summary</source>
<extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment> <extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment>
<translation>Account disabled, you will not receive calls or messages.</translation> <translation>Account disabled, you will not receive calls or messages.</translation>
@ -83,43 +83,43 @@
<context> <context>
<name>AccountManager</name> <name>AccountManager</name>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="86"/> <location filename="../../model/account/AccountManager.cpp" line="87"/>
<source>assistant_account_login_already_connected_error</source> <source>assistant_account_login_already_connected_error</source>
<extracomment>&quot;The account is already connected&quot;</extracomment> <extracomment>&quot;The account is already connected&quot;</extracomment>
<translation>The account is already connected</translation> <translation>The account is already connected</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="104"/> <location filename="../../model/account/AccountManager.cpp" line="109"/>
<source>assistant_account_login_proxy_address_error</source> <source>assistant_account_login_proxy_address_error</source>
<extracomment>&quot;Unable to create proxy address. Please check the domain name.&quot;</extracomment> <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> <translation>Unable to create proxy address. Please check the domain name.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="117"/> <location filename="../../model/account/AccountManager.cpp" line="122"/>
<source>assistant_account_login_address_configuration_error</source> <source>assistant_account_login_address_configuration_error</source>
<extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment> <extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment>
<translation>Unable to configure address: `%1`.</translation> <translation>Unable to configure address: `%1`.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="124"/> <location filename="../../model/account/AccountManager.cpp" line="129"/>
<source>assistant_account_login_params_configuration_error</source> <source>assistant_account_login_params_configuration_error</source>
<extracomment>&quot;Unable to configure account settings.&quot;</extracomment> <extracomment>&quot;Unable to configure account settings.&quot;</extracomment>
<translation>Unable to configure account settings.</translation> <translation>Unable to configure account settings.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="148"/> <location filename="../../model/account/AccountManager.cpp" line="153"/>
<source>assistant_account_login_forbidden_error</source> <source>assistant_account_login_forbidden_error</source>
<extracomment>&quot;Username and password do not match&quot;</extracomment> <extracomment>&quot;Username and password do not match&quot;</extracomment>
<translation>Username and password do not match</translation> <translation>Username and password do not match</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="150"/> <location filename="../../model/account/AccountManager.cpp" line="155"/>
<source>assistant_account_login_error</source> <source>assistant_account_login_error</source>
<extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment> <extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment>
<translation>Error during connection</translation> <translation>Error during connection</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="163"/> <location filename="../../model/account/AccountManager.cpp" line="168"/>
<source>assistant_account_add_error</source> <source>assistant_account_add_error</source>
<extracomment>&quot;Unable to add account.&quot;</extracomment> <extracomment>&quot;Unable to add account.&quot;</extracomment>
<translation>Unable to add account.</translation> <translation>Unable to add account.</translation>
@ -134,25 +134,31 @@
<translation>Unable to set voicemail server address, failed creating address from %1</translation> <translation>Unable to set voicemail server address, failed creating address from %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="293"/> <location filename="../../model/account/AccountModel.cpp" line="292"/>
<source>set_server_address_failed_error_message</source> <source>set_server_address_failed_error_message</source>
<extracomment>&quot;Unable to set server address, failed creating address from %1&quot;</extracomment> <extracomment>&quot;Unable to set server address, failed creating address from %1&quot;</extracomment>
<translation>Unable to set server address, failed creating address from %1</translation> <translation>Unable to set server address, failed creating address from %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="398"/> <location filename="../../model/account/AccountModel.cpp" line="309"/>
<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>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="418"/>
<source>set_conference_factory_address_failed_error_message</source> <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> <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> <translation>Unable to set the conversation server address, failed creating address from %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="420"/> <location filename="../../model/account/AccountModel.cpp" line="440"/>
<source>set_audio_conference_factory_address_failed_error_message</source> <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> <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> <translation>Unable to set the meeting server address, failed creating address from %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="467"/> <location filename="../../model/account/AccountModel.cpp" line="487"/>
<source>set_voicemail_address_failed_error_message</source> <source>set_voicemail_address_failed_error_message</source>
<extracomment>Unable to set voicemail address, failed creating address from %1</extracomment> <extracomment>Unable to set voicemail address, failed creating address from %1</extracomment>
<translation>Unable to set voicemail address, failed creating address from %1</translation> <translation>Unable to set voicemail address, failed creating address from %1</translation>
@ -325,104 +331,131 @@
<context> <context>
<name>AccountSettingsParametersLayout</name> <name>AccountSettingsParametersLayout</name>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="14"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="17"/>
<source>settings_title</source> <source>settings_title</source>
<translation>Settings</translation> <translation>Settings</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="18"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="21"/>
<source>settings_account_title</source> <source>settings_account_title</source>
<translation>Account settings</translation> <translation>Account settings</translation>
</message> </message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="32"/>
<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>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> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="34"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="34"/>
<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>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>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="35"/>
<source>info_popup_error_title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="45"/>
<source>information_popup_success_title</source> <source>information_popup_success_title</source>
<translation>Success</translation> <translation>Success</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="36"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="47"/>
<source>contact_editor_saved_changes_toast</source> <source>contact_editor_saved_changes_toast</source>
<extracomment>&quot;Modifications sauvegardés&quot;</extracomment> <extracomment>&quot;Modifications sauvegardés&quot;</extracomment>
<translation>Changes saved</translation> <translation>Changes saved</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="43"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="54"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Error</translation> <translation>Error</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="63"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="74"/>
<source>account_settings_mwi_uri_title</source> <source>account_settings_mwi_uri_title</source>
<extracomment>&quot;URI du serveur de messagerie vocale&quot;</extracomment> <extracomment>&quot;URI du serveur de messagerie vocale&quot;</extracomment>
<translation>Voicemail server URI</translation> <translation>Voicemail server URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="84"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="95"/>
<source>account_settings_voicemail_uri_title</source> <source>account_settings_voicemail_uri_title</source>
<extracomment>&quot;URI de messagerie vocale&quot;</extracomment> <extracomment>&quot;URI de messagerie vocale&quot;</extracomment>
<translation>Voicemail URI</translation> <translation>Voicemail URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="108"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="120"/>
<source>account_settings_transport_title</source> <source>account_settings_transport_title</source>
<extracomment>&quot;Transport&quot;</extracomment> <extracomment>&quot;Transport&quot;</extracomment>
<translation>Transport</translation> <translation>Transport</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="122"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="127"/>
<source>account_settings_registrar_uri_title</source>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="140"/>
<source>account_settings_sip_proxy_url_title</source> <source>account_settings_sip_proxy_url_title</source>
<translation>Proxy server URL</translation> <translation>Outbound SIP Proxy URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="145"/>
<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>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<source>account_settings_outbound_proxy_title</source> <source>account_settings_outbound_proxy_title</source>
<extracomment>&quot;Serveur mandataire sortant&quot;</extracomment> <extracomment>&quot;Outbound proxy enabled&quot;</extracomment>
<translation>Outgoing proxy server</translation> <translation type="vanished">Outbound proxy server enabled</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="138"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="157"/>
<source>account_settings_stun_server_url_title</source> <source>account_settings_stun_server_url_title</source>
<extracomment>&quot;Adresse du serveur STUN&quot;</extracomment> <extracomment>&quot;Adresse du serveur STUN&quot;</extracomment>
<translation>STUN server address</translation> <translation>STUN server address</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="143"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="162"/>
<source>account_settings_enable_ice_title</source> <source>account_settings_enable_ice_title</source>
<extracomment>&quot;Activer ICE&quot;</extracomment> <extracomment>&quot;Activer ICE&quot;</extracomment>
<translation>Enable ICE</translation> <translation>Enable ICE</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="149"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="168"/>
<source>account_settings_avpf_title</source> <source>account_settings_avpf_title</source>
<extracomment>&quot;AVPF&quot;</extracomment> <extracomment>&quot;AVPF&quot;</extracomment>
<translation>AVPF</translation> <translation>AVPF</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="155"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="174"/>
<source>account_settings_bundle_mode_title</source> <source>account_settings_bundle_mode_title</source>
<extracomment>&quot;Mode bundle&quot;</extracomment> <extracomment>&quot;Mode bundle&quot;</extracomment>
<translation>Bundle mode</translation> <translation>Bundle mode</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="164"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="183"/>
<source>account_settings_expire_title</source> <source>account_settings_expire_title</source>
<extracomment>&quot;Expiration (en seconde)&quot;</extracomment> <extracomment>&quot;Expiration (en seconde)&quot;</extracomment>
<translation>Expiration (in seconds)</translation> <translation>Expiration (in seconds)</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="175"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="194"/>
<source>account_settings_conference_factory_uri_title</source> <source>account_settings_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de conversations&quot;</extracomment> <extracomment>&quot;URI du serveur de conversations&quot;</extracomment>
<translation>Conference factory URI</translation> <translation>Conference factory URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="192"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="211"/>
<source>account_settings_audio_video_conference_factory_uri_title</source> <source>account_settings_audio_video_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de réunions&quot;</extracomment> <extracomment>&quot;URI du serveur de réunions&quot;</extracomment>
<translation>Video conference factory uri</translation> <translation>Video conference factory uri</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="206"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="225"/>
<source>account_settings_lime_server_url_title</source> <source>account_settings_lime_server_url_title</source>
<extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment> <extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment>
<translation>Lime server URL</translation> <translation>Lime server URL</translation>
@ -546,19 +579,19 @@
<context> <context>
<name>AllContactListView</name> <name>AllContactListView</name>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="276"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="275"/>
<source>car_favorites_contacts_title</source> <source>car_favorites_contacts_title</source>
<extracomment>&quot;Favoris&quot;</extracomment> <extracomment>&quot;Favoris&quot;</extracomment>
<translation>Favorites</translation> <translation>Favorites</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="323"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="322"/>
<source>generic_address_picker_contacts_list_title</source> <source>generic_address_picker_contacts_list_title</source>
<extracomment>&apos;Contacts&apos;</extracomment> <extracomment>&apos;Contacts&apos;</extracomment>
<translation>Contacts</translation> <translation>Contacts</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="376"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="375"/>
<source>generic_address_picker_suggestions_list_title</source> <source>generic_address_picker_suggestions_list_title</source>
<extracomment>&quot;Suggestions&quot;</extracomment> <extracomment>&quot;Suggestions&quot;</extracomment>
<translation>Suggestions</translation> <translation>Suggestions</translation>
@ -880,42 +913,42 @@
<context> <context>
<name>CallLayout</name> <name>CallLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="70"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="75"/>
<source>meeting_event_conference_destroyed</source> <source>meeting_event_conference_destroyed</source>
<extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment> <extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment>
<translation>You have left the meeting</translation> <translation>You have left the meeting</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="73"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="78"/>
<source>call_ended_by_user</source> <source>call_ended_by_user</source>
<extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment>
<translation>You have ended the call</translation> <translation>You have ended the call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="76"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="81"/>
<source>call_ended_by_remote</source> <source>call_ended_by_remote</source>
<extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment>
<translation>Your caller has ended the call</translation> <translation>Your caller has ended the call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="152"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="157"/>
<source>conference_call_empty</source> <source>conference_call_empty</source>
<extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment> <extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment>
<translation>Waiting for other participants</translation> <translation>Waiting for other participants</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="170"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="175"/>
<source>conference_share_link_title</source> <source>conference_share_link_title</source>
<extracomment>&quot;Partager le lien&quot;</extracomment> <extracomment>&quot;Partager le lien&quot;</extracomment>
<translation>Share link</translation> <translation>Share link</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="176"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="181"/>
<source>copied</source> <source>copied</source>
<translation>Copied</translation> <translation>Copied</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="178"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="183"/>
<source>information_popup_meeting_address_copied_to_clipboard</source> <source>information_popup_meeting_address_copied_to_clipboard</source>
<extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment> <extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment>
<translation>The meeting link has been copied to the clipboard</translation> <translation>The meeting link has been copied to the clipboard</translation>
@ -1899,25 +1932,25 @@
<context> <context>
<name>ChatMessage</name> <name>ChatMessage</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="429"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="430"/>
<source>chat_message_copy_selection</source> <source>chat_message_copy_selection</source>
<extracomment>&quot;Copy selection&quot;</extracomment> <extracomment>&quot;Copy selection&quot;</extracomment>
<translation>Copy selection</translation> <translation>Copy selection</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="431"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="432"/>
<source>chat_message_copy</source> <source>chat_message_copy</source>
<extracomment>&quot;Copy&quot;</extracomment> <extracomment>&quot;Copy&quot;</extracomment>
<translation>Copy</translation> <translation>Copy</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="440"/>
<source>chat_message_copied_to_clipboard_title</source> <source>chat_message_copied_to_clipboard_title</source>
<extracomment>Copied</extracomment> <extracomment>Copied</extracomment>
<translation>Copied</translation> <translation>Copied</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="441"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="442"/>
<source>chat_message_copied_to_clipboard_toast</source> <source>chat_message_copied_to_clipboard_toast</source>
<extracomment>&quot;to clipboard&quot;</extracomment> <extracomment>&quot;to clipboard&quot;</extracomment>
<translation>in clipboard</translation> <translation>in clipboard</translation>
@ -1953,25 +1986,25 @@
<translation>You replied</translation> <translation>You replied</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="404"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="405"/>
<source>chat_message_reception_info</source> <source>chat_message_reception_info</source>
<extracomment>&quot;Reception info&quot;</extracomment> <extracomment>&quot;Reception info&quot;</extracomment>
<translation>Reception info</translation> <translation>Reception info</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="416"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="417"/>
<source>chat_message_reply</source> <source>chat_message_reply</source>
<extracomment>Reply</extracomment> <extracomment>Reply</extracomment>
<translation>Reply</translation> <translation>Reply</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="448"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="449"/>
<source>chat_message_forward</source> <source>chat_message_forward</source>
<extracomment>Forward</extracomment> <extracomment>Forward</extracomment>
<translation>Forward</translation> <translation>Forward</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="465"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="466"/>
<source>chat_message_delete</source> <source>chat_message_delete</source>
<extracomment>&quot;Delete&quot;</extracomment> <extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation> <translation>Delete</translation>
@ -2133,38 +2166,38 @@ Error</extracomment>
<context> <context>
<name>ChatMessagesListView</name> <name>ChatMessagesListView</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="112"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="110"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="121"/>
<source>popup_info_find_message_title</source> <source>popup_info_find_message_title</source>
<extracomment>Find message</extracomment> <extracomment>Find message</extracomment>
<translation>Find message</translation> <translation>Find message</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="125"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/>
<source>info_popup_no_result_message</source> <source>info_popup_no_result_message</source>
<extracomment>No result found</extracomment> <extracomment>No result found</extracomment>
<translation>No result found</translation> <translation>No result found</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="117"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/>
<source>info_popup_first_result_message</source> <source>info_popup_first_result_message</source>
<extracomment>First result reached</extracomment> <extracomment>First result reached</extracomment>
<translation>First result reached</translation> <translation>First result reached</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="113"/>
<source>info_popup_last_result_message</source> <source>info_popup_last_result_message</source>
<extracomment>Last result reached</extracomment> <extracomment>Last result reached</extracomment>
<translation>Last result reached</translation> <translation>Last result reached</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="161"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="159"/>
<source>chat_message_list_encrypted_header_title</source> <source>chat_message_list_encrypted_header_title</source>
<extracomment>End to end encrypted chat</extracomment> <extracomment>End to end encrypted chat</extracomment>
<translation>End to end encrypted chat</translation> <translation>End to end encrypted chat</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="171"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="169"/>
<source>chat_message_list_encrypted_header_message</source> <source>chat_message_list_encrypted_header_message</source>
<extracomment>Les messages de cette conversation sont chiffrés de bout <extracomment>Les messages de cette conversation sont chiffrés de bout
en bout. Seul votre correspondant peut les déchiffrer.</extracomment> en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
@ -2172,7 +2205,7 @@ Error</extracomment>
Only your correspondent can decrypt them.</translation> Only your correspondent can decrypt them.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="211"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="209"/>
<source>chat_message_is_writing_info</source> <source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment> <extracomment>%1 is writing</extracomment>
<translation>%1 is writing</translation> <translation>%1 is writing</translation>
@ -3110,13 +3143,13 @@ Only your correspondent can decrypt them.</translation>
<context> <context>
<name>DecoratedTextField</name> <name>DecoratedTextField</name>
<message> <message>
<location filename="../../view/Control/Input/DecoratedTextField.qml" line="54"/> <location filename="../../view/Control/Input/DecoratedTextField.qml" line="56"/>
<source>textfield_error_message_cannot_be_empty</source> <source>textfield_error_message_cannot_be_empty</source>
<extracomment>&quot;ne peut être vide&quot;</extracomment> <extracomment>&quot;ne peut être vide&quot;</extracomment>
<translation>can not be empty</translation> <translation>can not be empty</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Input/DecoratedTextField.qml" line="57"/> <location filename="../../view/Control/Input/DecoratedTextField.qml" line="59"/>
<source>textfield_error_message_unknown_format</source> <source>textfield_error_message_unknown_format</source>
<extracomment>&quot;Format non reconnu&quot;</extracomment> <extracomment>&quot;Format non reconnu&quot;</extracomment>
<translation>Unknown format</translation> <translation>Unknown format</translation>
@ -3400,50 +3433,50 @@ Expiration : %1</translation>
<context> <context>
<name>HelpPage</name> <name>HelpPage</name>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="39"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="40"/>
<source>help_title</source> <source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment> <extracomment>&quot;Aide&quot;</extracomment>
<translation>Help</translation> <translation>Help</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="53"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="70"/>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="111"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="128"/>
<source>help_about_title</source> <source>help_about_title</source>
<extracomment>&quot;À propos de %1&quot;</extracomment> <extracomment>&quot;À propos de %1&quot;</extracomment>
<translation>About %1</translation> <translation>About %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="67"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="84"/>
<source>help_about_privacy_policy_title</source> <source>help_about_privacy_policy_title</source>
<extracomment>&quot;Règles de confidentialité&quot;</extracomment> <extracomment>&quot;Règles de confidentialité&quot;</extracomment>
<translation>Privacy Policy</translation> <translation>Privacy Policy</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="69"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="86"/>
<source>help_about_privacy_policy_subtitle</source> <source>help_about_privacy_policy_subtitle</source>
<extracomment>Quelles informations %1 collecte et utilise</extracomment> <extracomment>Quelles informations %1 collecte et utilise</extracomment>
<translation>What information does %1 collect and use</translation> <translation>What information does %1 collect and use</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="79"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="96"/>
<source>help_about_version_title</source> <source>help_about_version_title</source>
<extracomment>&quot;Version&quot;</extracomment> <extracomment>&quot;Version&quot;</extracomment>
<translation>Version</translation> <translation>Version</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="87"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="104"/>
<source>help_about_gpl_licence_title</source> <source>help_about_gpl_licence_title</source>
<extracomment>&quot;Licences GPLv3&quot;</extracomment> <extracomment>&quot;Licences GPLv3&quot;</extracomment>
<translation>GPLv3 licences</translation> <translation>GPLv3 licences</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="98"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="115"/>
<source>help_about_contribute_translations_title</source> <source>help_about_contribute_translations_title</source>
<extracomment>&quot;Contribuer à la traduction de %1&quot;</extracomment> <extracomment>&quot;Contribuer à la traduction de %1&quot;</extracomment>
<translation>Contribute to the translation of %1</translation> <translation>Contribute to the translation of %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="123"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="140"/>
<source>help_troubleshooting_title</source> <source>help_troubleshooting_title</source>
<extracomment>&quot;Dépannage&quot;</extracomment> <extracomment>&quot;Dépannage&quot;</extracomment>
<translation>Troubleshooting</translation> <translation>Troubleshooting</translation>
@ -3729,7 +3762,7 @@ Expiration : %1</translation>
<translation>Remote provisioning link</translation> <translation>Remote provisioning link</translation>
</message> </message>
<message> <message>
<location filename="../../core/login/LoginPage.cpp" line="85"/> <location filename="../../core/login/LoginPage.cpp" line="86"/>
<source>default_account_connection_state_error_toast</source> <source>default_account_connection_state_error_toast</source>
<translation>Error during connection</translation> <translation>Error during connection</translation>
</message> </message>
@ -3816,31 +3849,31 @@ Expiration : %1</translation>
<translation>Settings</translation> <translation>Settings</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="489"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="492"/>
<source>recordings_title</source> <source>recordings_title</source>
<extracomment>&quot;Enregistrements&quot;</extracomment> <extracomment>&quot;Enregistrements&quot;</extracomment>
<translation>Records</translation> <translation>Records</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="504"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="507"/>
<source>help_title</source> <source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment> <extracomment>&quot;Aide&quot;</extracomment>
<translation>Help</translation> <translation>Help</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="521"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="526"/>
<source>help_quit_title</source> <source>help_quit_title</source>
<extracomment>&quot;Quitter l&apos;application&quot;</extracomment> <extracomment>&quot;Quitter l&apos;application&quot;</extracomment>
<translation>Quit the app</translation> <translation>Quit the app</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="526"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="531"/>
<source>quit_app_question</source> <source>quit_app_question</source>
<extracomment>&quot;Quitter %1 ?&quot;</extracomment> <extracomment>&quot;Quitter %1 ?&quot;</extracomment>
<translation>Quit %1 ?</translation> <translation>Quit %1 ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="555"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="560"/>
<source>drawer_menu_add_account</source> <source>drawer_menu_add_account</source>
<extracomment>&quot;Ajouter un compte&quot;</extracomment> <extracomment>&quot;Ajouter un compte&quot;</extracomment>
<translation>Add an account</translation> <translation>Add an account</translation>
@ -4185,13 +4218,13 @@ Expiration : %1</translation>
<translation>Timezone</translation> <translation>Timezone</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="899"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="898"/>
<source>meeting_info_organizer_label</source> <source>meeting_info_organizer_label</source>
<extracomment>&quot;Organisateur&quot;</extracomment> <extracomment>&quot;Organisateur&quot;</extracomment>
<translation>Organizer</translation> <translation>Organizer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="918"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="917"/>
<source>meeting_info_join_title</source> <source>meeting_info_join_title</source>
<extracomment>&quot;Rejoindre la réunion&quot;</extracomment> <extracomment>&quot;Rejoindre la réunion&quot;</extracomment>
<translation>Join meeting</translation> <translation>Join meeting</translation>
@ -4917,14 +4950,26 @@ To enable them in a commercial project, please contact us.</translation>
<message> <message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="375"/> <location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="375"/>
<source>login_proxy_server_url</source> <source>login_proxy_server_url</source>
<extracomment>&quot;Proxy server URL&quot;</extracomment> <extracomment>&quot;Outbound SIP Proxy URI&quot;</extracomment>
<translation>Proxy server URL</translation> <translation>Outbound SIP Proxy URI</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="386"/> <location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="377"/>
<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/Form/Login/SIPLoginPage.qml" line="388"/>
<source>login_registrar_uri</source>
<extracomment>&quot;Registrar URI&quot;</extracomment>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="400"/>
<source>login_id</source> <source>login_id</source>
<extracomment>&quot;Connexion ID (if different)&quot;</extracomment> <extracomment>&quot;Authentication ID (if different)&quot;</extracomment>
<translation>Connexion ID (if different)</translation> <translation>Authentication ID (if different)</translation>
</message> </message>
</context> </context>
<context> <context>
@ -5103,15 +5148,14 @@ To enable them in a commercial project, please contact us.</translation>
<translation>Meetings</translation> <translation>Meetings</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="27"/>
<source>settings_security_title</source> <source>settings_security_title</source>
<extracomment>&quot;Affichage&quot; &quot;Security&quot;</extracomment> <extracomment>&quot;Affichage&quot; &quot;Security&quot;</extracomment>
<translation>Security / Encryption</translation> <translation type="vanished">Security / Encryption</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="29"/> <location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="29"/>
<source>settings_network_title</source> <source>settings_network_title</source>
<extracomment>&quot;Réseau&quot;</extracomment> <extracomment>&quot;Affichage&quot; &quot;Security&quot; &quot;Réseau&quot;</extracomment>
<translation>Network</translation> <translation>Network</translation>
</message> </message>
<message> <message>
@ -5213,7 +5257,7 @@ To enable them in a commercial project, please contact us.</translation>
<context> <context>
<name>Utils</name> <name>Utils</name>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2276"/> <location filename="../../tool/Utils.cpp" line="2280"/>
<source>nSeconds</source> <source>nSeconds</source>
<translation> <translation>
<numerusform>%1 second</numerusform> <numerusform>%1 second</numerusform>
@ -5221,7 +5265,7 @@ To enable them in a commercial project, please contact us.</translation>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2271"/> <location filename="../../tool/Utils.cpp" line="2275"/>
<source>nMinute</source> <source>nMinute</source>
<translation> <translation>
<numerusform>%1 minute</numerusform> <numerusform>%1 minute</numerusform>
@ -5265,7 +5309,7 @@ To enable them in a commercial project, please contact us.</translation>
<translation>Failed to create reply message</translation> <translation>Failed to create reply message</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2272"/> <location filename="../../tool/Utils.cpp" line="2276"/>
<source>nHour</source> <source>nHour</source>
<translation> <translation>
<numerusform>%1 hour</numerusform> <numerusform>%1 hour</numerusform>
@ -5273,8 +5317,8 @@ To enable them in a commercial project, please contact us.</translation>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2273"/> <location filename="../../tool/Utils.cpp" line="2277"/>
<location filename="../../tool/Utils.cpp" line="2274"/> <location filename="../../tool/Utils.cpp" line="2278"/>
<source>nDay</source> <source>nDay</source>
<translation> <translation>
<numerusform>%1 day</numerusform> <numerusform>%1 day</numerusform>
@ -5282,7 +5326,7 @@ To enable them in a commercial project, please contact us.</translation>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2275"/> <location filename="../../tool/Utils.cpp" line="2279"/>
<source>nWeek</source> <source>nWeek</source>
<translation> <translation>
<numerusform>%1 week</numerusform> <numerusform>%1 week</numerusform>

View file

@ -27,45 +27,45 @@
<context> <context>
<name>AccountCore</name> <name>AccountCore</name>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="436"/> <location filename="../../core/account/AccountCore.cpp" line="438"/>
<source>drawer_menu_account_connection_status_connected</source> <source>drawer_menu_account_connection_status_connected</source>
<extracomment>&quot;Connecté&quot;</extracomment> <extracomment>&quot;Connecté&quot;</extracomment>
<translation>Connecté</translation> <translation>Connecté</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="439"/> <location filename="../../core/account/AccountCore.cpp" line="441"/>
<source>drawer_menu_account_connection_status_refreshing</source> <source>drawer_menu_account_connection_status_refreshing</source>
<translation>En cours de rafraîchissement</translation> <translation>En cours de rafraîchissement</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="442"/> <location filename="../../core/account/AccountCore.cpp" line="444"/>
<source>drawer_menu_account_connection_status_progress</source> <source>drawer_menu_account_connection_status_progress</source>
<translation>Connexion</translation> <translation>Connexion</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="445"/> <location filename="../../core/account/AccountCore.cpp" line="447"/>
<source>drawer_menu_account_connection_status_failed</source> <source>drawer_menu_account_connection_status_failed</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="449"/> <location filename="../../core/account/AccountCore.cpp" line="451"/>
<source>drawer_menu_account_connection_status_cleared</source> <source>drawer_menu_account_connection_status_cleared</source>
<translation>Désactivé</translation> <translation>Désactivé</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="483"/> <location filename="../../core/account/AccountCore.cpp" line="485"/>
<source>manage_account_status_connected_summary</source> <source>manage_account_status_connected_summary</source>
<extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment> <extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment>
<translation>Vous êtes en ligne et joignable.</translation> <translation>Vous êtes en ligne et joignable.</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="486"/> <location filename="../../core/account/AccountCore.cpp" line="488"/>
<source>manage_account_status_failed_summary</source> <source>manage_account_status_failed_summary</source>
<extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment> <extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment>
<translation>Erreur de connexion, vérifiez vos paramètres.</translation> <translation>Erreur de connexion, vérifiez vos paramètres.</translation>
</message> </message>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="490"/> <location filename="../../core/account/AccountCore.cpp" line="492"/>
<source>manage_account_status_cleared_summary</source> <source>manage_account_status_cleared_summary</source>
<extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment> <extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment>
<translation>Compte désactivé, vous ne recevrez ni appel ni message.</translation> <translation>Compte désactivé, vous ne recevrez ni appel ni message.</translation>
@ -83,43 +83,43 @@
<context> <context>
<name>AccountManager</name> <name>AccountManager</name>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="86"/> <location filename="../../model/account/AccountManager.cpp" line="87"/>
<source>assistant_account_login_already_connected_error</source> <source>assistant_account_login_already_connected_error</source>
<extracomment>&quot;The account is already connected&quot;</extracomment> <extracomment>&quot;The account is already connected&quot;</extracomment>
<translation>Le compte est déjà connecté</translation> <translation>Le compte est déjà connecté</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="104"/> <location filename="../../model/account/AccountManager.cpp" line="109"/>
<source>assistant_account_login_proxy_address_error</source> <source>assistant_account_login_proxy_address_error</source>
<extracomment>&quot;Unable to create proxy address. Please check the domain name.&quot;</extracomment> <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> <translation>Impossible de créer l&apos;adresse proxy. Merci de vérifier le nom de domaine.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="117"/> <location filename="../../model/account/AccountManager.cpp" line="122"/>
<source>assistant_account_login_address_configuration_error</source> <source>assistant_account_login_address_configuration_error</source>
<extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment> <extracomment>&quot;Unable to configure address: `%1`.&quot;</extracomment>
<translation>Impossible de configurer l&apos;adresse : `%1`.</translation> <translation>Impossible de configurer l&apos;adresse : `%1`.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="124"/> <location filename="../../model/account/AccountManager.cpp" line="129"/>
<source>assistant_account_login_params_configuration_error</source> <source>assistant_account_login_params_configuration_error</source>
<extracomment>&quot;Unable to configure account settings.&quot;</extracomment> <extracomment>&quot;Unable to configure account settings.&quot;</extracomment>
<translation>Impossible de configurer les paramètres du compte.</translation> <translation>Impossible de configurer les paramètres du compte.</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="148"/> <location filename="../../model/account/AccountManager.cpp" line="153"/>
<source>assistant_account_login_forbidden_error</source> <source>assistant_account_login_forbidden_error</source>
<extracomment>&quot;Username and password do not match&quot;</extracomment> <extracomment>&quot;Username and password do not match&quot;</extracomment>
<translation>Le couple identifiant mot de passe ne correspond pas</translation> <translation>Le couple identifiant mot de passe ne correspond pas</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="150"/> <location filename="../../model/account/AccountManager.cpp" line="155"/>
<source>assistant_account_login_error</source> <source>assistant_account_login_error</source>
<extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment> <extracomment>&quot;Error during connection, please verify your parameters&quot;</extracomment>
<translation>Erreur durant la connexion, veuillez vérifier vos paramètres</translation> <translation>Erreur durant la connexion, veuillez vérifier vos paramètres</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountManager.cpp" line="163"/> <location filename="../../model/account/AccountManager.cpp" line="168"/>
<source>assistant_account_add_error</source> <source>assistant_account_add_error</source>
<extracomment>&quot;Unable to add account.&quot;</extracomment> <extracomment>&quot;Unable to add account.&quot;</extracomment>
<translation>Impossible d&apos;ajouter le compte.</translation> <translation>Impossible d&apos;ajouter le compte.</translation>
@ -134,25 +134,31 @@
<translation>Impossible de définir l&apos;adresse du serveur de messagerie vocale depuis l&apos;adresse %1</translation> <translation>Impossible de définir l&apos;adresse du serveur de messagerie vocale depuis l&apos;adresse %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="293"/> <location filename="../../model/account/AccountModel.cpp" line="292"/>
<source>set_server_address_failed_error_message</source> <source>set_server_address_failed_error_message</source>
<extracomment>&quot;Unable to set server address, failed creating address from %1&quot;</extracomment> <extracomment>&quot;Unable to set server address, failed creating address from %1&quot;</extracomment>
<translation>Impossible de définir l&apos;adresse du serveur depuis l&apos;adresse %1</translation> <translation>Impossible de définir l&apos;adresse du serveur depuis l&apos;adresse %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="398"/> <location filename="../../model/account/AccountModel.cpp" line="309"/>
<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>
</message>
<message>
<location filename="../../model/account/AccountModel.cpp" line="418"/>
<source>set_conference_factory_address_failed_error_message</source> <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> <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> <translation>Impossible de définir l&apos;uri du serveur de conversations depuis l&apos;adresse %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="420"/> <location filename="../../model/account/AccountModel.cpp" line="440"/>
<source>set_audio_conference_factory_address_failed_error_message</source> <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> <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> <translation>Impossible de définir l&apos;uri du serveur de réunions depuis l&apos;adresse %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/account/AccountModel.cpp" line="467"/> <location filename="../../model/account/AccountModel.cpp" line="487"/>
<source>set_voicemail_address_failed_error_message</source> <source>set_voicemail_address_failed_error_message</source>
<extracomment>Unable to set voicemail address, failed creating address from %1</extracomment> <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> <translation>Impossible de définir l&apos;adresse de messagerie vocale depuis l&apos;adresse %1</translation>
@ -325,104 +331,131 @@
<context> <context>
<name>AccountSettingsParametersLayout</name> <name>AccountSettingsParametersLayout</name>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="14"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="17"/>
<source>settings_title</source> <source>settings_title</source>
<translation>Paramètres</translation> <translation>Paramètres</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="18"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="21"/>
<source>settings_account_title</source> <source>settings_account_title</source>
<translation>Paramètres de compte</translation> <translation>Paramètres de compte</translation>
</message> </message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="32"/>
<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>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> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="34"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="34"/>
<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>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>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="35"/>
<source>info_popup_error_title</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="45"/>
<source>information_popup_success_title</source> <source>information_popup_success_title</source>
<translation>Succès</translation> <translation>Succès</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="36"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="47"/>
<source>contact_editor_saved_changes_toast</source> <source>contact_editor_saved_changes_toast</source>
<extracomment>&quot;Modifications sauvegardés&quot;</extracomment> <extracomment>&quot;Modifications sauvegardés&quot;</extracomment>
<translation>Modifications sauvegardés</translation> <translation>Modifications sauvegardés</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="43"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="54"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="63"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="74"/>
<source>account_settings_mwi_uri_title</source> <source>account_settings_mwi_uri_title</source>
<extracomment>&quot;URI du serveur de messagerie vocale&quot;</extracomment> <extracomment>&quot;URI du serveur de messagerie vocale&quot;</extracomment>
<translation>URI du serveur de messagerie vocale</translation> <translation>URI du serveur de messagerie vocale</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="84"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="95"/>
<source>account_settings_voicemail_uri_title</source> <source>account_settings_voicemail_uri_title</source>
<extracomment>&quot;URI de messagerie vocale&quot;</extracomment> <extracomment>&quot;URI de messagerie vocale&quot;</extracomment>
<translation>URI de messagerie vocale</translation> <translation>URI de messagerie vocale</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="108"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="120"/>
<source>account_settings_transport_title</source> <source>account_settings_transport_title</source>
<extracomment>&quot;Transport&quot;</extracomment> <extracomment>&quot;Transport&quot;</extracomment>
<translation>Transport</translation> <translation>Transport</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="122"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="127"/>
<source>account_settings_registrar_uri_title</source>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="140"/>
<source>account_settings_sip_proxy_url_title</source> <source>account_settings_sip_proxy_url_title</source>
<translation>URL du serveur mandataire</translation> <translation>URL du proxy SIP sortant</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="145"/>
<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>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="129"/>
<source>account_settings_outbound_proxy_title</source> <source>account_settings_outbound_proxy_title</source>
<extracomment>&quot;Serveur mandataire sortant&quot;</extracomment> <extracomment>&quot;Outbound proxy enabled&quot;</extracomment>
<translation>Serveur mandataire sortant</translation> <translation type="vanished">Serveur mandataire sortant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="138"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="157"/>
<source>account_settings_stun_server_url_title</source> <source>account_settings_stun_server_url_title</source>
<extracomment>&quot;Adresse du serveur STUN&quot;</extracomment> <extracomment>&quot;Adresse du serveur STUN&quot;</extracomment>
<translation>Adresse du serveur STUN</translation> <translation>Adresse du serveur STUN</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="143"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="162"/>
<source>account_settings_enable_ice_title</source> <source>account_settings_enable_ice_title</source>
<extracomment>&quot;Activer ICE&quot;</extracomment> <extracomment>&quot;Activer ICE&quot;</extracomment>
<translation>Activer ICE</translation> <translation>Activer ICE</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="149"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="168"/>
<source>account_settings_avpf_title</source> <source>account_settings_avpf_title</source>
<extracomment>&quot;AVPF&quot;</extracomment> <extracomment>&quot;AVPF&quot;</extracomment>
<translation>AVPF</translation> <translation>AVPF</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="155"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="174"/>
<source>account_settings_bundle_mode_title</source> <source>account_settings_bundle_mode_title</source>
<extracomment>&quot;Mode bundle&quot;</extracomment> <extracomment>&quot;Mode bundle&quot;</extracomment>
<translation>Mode bundle</translation> <translation>Mode bundle</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="164"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="183"/>
<source>account_settings_expire_title</source> <source>account_settings_expire_title</source>
<extracomment>&quot;Expiration (en seconde)&quot;</extracomment> <extracomment>&quot;Expiration (en seconde)&quot;</extracomment>
<translation>Expiration (en seconde)</translation> <translation>Expiration (en seconde)</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="175"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="194"/>
<source>account_settings_conference_factory_uri_title</source> <source>account_settings_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de conversations&quot;</extracomment> <extracomment>&quot;URI du serveur de conversations&quot;</extracomment>
<translation>URI du serveur de conversations</translation> <translation>URI du serveur de conversations</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="192"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="211"/>
<source>account_settings_audio_video_conference_factory_uri_title</source> <source>account_settings_audio_video_conference_factory_uri_title</source>
<extracomment>&quot;URI du serveur de réunions&quot;</extracomment> <extracomment>&quot;URI du serveur de réunions&quot;</extracomment>
<translation>URI du serveur de réunions</translation> <translation>URI du serveur de réunions</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="206"/> <location filename="../../view/Page/Layout/Settings/AccountSettingsParametersLayout.qml" line="225"/>
<source>account_settings_lime_server_url_title</source> <source>account_settings_lime_server_url_title</source>
<extracomment>&quot;URL du serveur déchange de clés de chiffrement&quot;</extracomment> <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> <translation>URL du serveur déchange de clés de chiffrement</translation>
@ -546,19 +579,19 @@
<context> <context>
<name>AllContactListView</name> <name>AllContactListView</name>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="276"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="275"/>
<source>car_favorites_contacts_title</source> <source>car_favorites_contacts_title</source>
<extracomment>&quot;Favoris&quot;</extracomment> <extracomment>&quot;Favoris&quot;</extracomment>
<translation>Favoris</translation> <translation>Favoris</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="323"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="322"/>
<source>generic_address_picker_contacts_list_title</source> <source>generic_address_picker_contacts_list_title</source>
<extracomment>&apos;Contacts&apos;</extracomment> <extracomment>&apos;Contacts&apos;</extracomment>
<translation>Contacts</translation> <translation>Contacts</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="376"/> <location filename="../../view/Control/Display/Contact/AllContactListView.qml" line="375"/>
<source>generic_address_picker_suggestions_list_title</source> <source>generic_address_picker_suggestions_list_title</source>
<extracomment>&quot;Suggestions&quot;</extracomment> <extracomment>&quot;Suggestions&quot;</extracomment>
<translation>Suggestions</translation> <translation>Suggestions</translation>
@ -880,42 +913,42 @@
<context> <context>
<name>CallLayout</name> <name>CallLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="70"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="75"/>
<source>meeting_event_conference_destroyed</source> <source>meeting_event_conference_destroyed</source>
<extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment> <extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment>
<translation>Vous avez quitté la conférence</translation> <translation>Vous avez quitté la conférence</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="73"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="78"/>
<source>call_ended_by_user</source> <source>call_ended_by_user</source>
<extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment>
<translation>Vous avez terminé l&apos;appel</translation> <translation>Vous avez terminé l&apos;appel</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="76"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="81"/>
<source>call_ended_by_remote</source> <source>call_ended_by_remote</source>
<extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment>
<translation>Votre correspondant a terminé l&apos;appel</translation> <translation>Votre correspondant a terminé l&apos;appel</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="152"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="157"/>
<source>conference_call_empty</source> <source>conference_call_empty</source>
<extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment> <extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment>
<translation>En attente d&apos;autres participants</translation> <translation>En attente d&apos;autres participants</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="170"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="175"/>
<source>conference_share_link_title</source> <source>conference_share_link_title</source>
<extracomment>&quot;Partager le lien&quot;</extracomment> <extracomment>&quot;Partager le lien&quot;</extracomment>
<translation>Partager le lien</translation> <translation>Partager le lien</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="176"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="181"/>
<source>copied</source> <source>copied</source>
<translation>Copié</translation> <translation>Copié</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="178"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="183"/>
<source>information_popup_meeting_address_copied_to_clipboard</source> <source>information_popup_meeting_address_copied_to_clipboard</source>
<extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment> <extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment>
<translation>Le lien de la réunion a é copié dans le presse-papier</translation> <translation>Le lien de la réunion a é copié dans le presse-papier</translation>
@ -1899,25 +1932,25 @@
<context> <context>
<name>ChatMessage</name> <name>ChatMessage</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="429"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="430"/>
<source>chat_message_copy_selection</source> <source>chat_message_copy_selection</source>
<extracomment>&quot;Copy selection&quot;</extracomment> <extracomment>&quot;Copy selection&quot;</extracomment>
<translation>Copier la sélection</translation> <translation>Copier la sélection</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="431"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="432"/>
<source>chat_message_copy</source> <source>chat_message_copy</source>
<extracomment>&quot;Copy&quot;</extracomment> <extracomment>&quot;Copy&quot;</extracomment>
<translation>Copier</translation> <translation>Copier</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="439"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="440"/>
<source>chat_message_copied_to_clipboard_title</source> <source>chat_message_copied_to_clipboard_title</source>
<extracomment>Copied</extracomment> <extracomment>Copied</extracomment>
<translation>Copié</translation> <translation>Copié</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="441"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="442"/>
<source>chat_message_copied_to_clipboard_toast</source> <source>chat_message_copied_to_clipboard_toast</source>
<extracomment>&quot;to clipboard&quot;</extracomment> <extracomment>&quot;to clipboard&quot;</extracomment>
<translation>dans le presse-papiers</translation> <translation>dans le presse-papiers</translation>
@ -1953,25 +1986,25 @@
<translation>Vous avez répondu</translation> <translation>Vous avez répondu</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="404"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="405"/>
<source>chat_message_reception_info</source> <source>chat_message_reception_info</source>
<extracomment>&quot;Reception info&quot;</extracomment> <extracomment>&quot;Reception info&quot;</extracomment>
<translation>Info de réception</translation> <translation>Info de réception</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="416"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="417"/>
<source>chat_message_reply</source> <source>chat_message_reply</source>
<extracomment>Reply</extracomment> <extracomment>Reply</extracomment>
<translation>Répondre</translation> <translation>Répondre</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="448"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="449"/>
<source>chat_message_forward</source> <source>chat_message_forward</source>
<extracomment>Forward</extracomment> <extracomment>Forward</extracomment>
<translation>Transférer</translation> <translation>Transférer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="465"/> <location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="466"/>
<source>chat_message_delete</source> <source>chat_message_delete</source>
<extracomment>&quot;Delete&quot;</extracomment> <extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation> <translation>Supprimer</translation>
@ -2133,38 +2166,38 @@ Error</extracomment>
<context> <context>
<name>ChatMessagesListView</name> <name>ChatMessagesListView</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="112"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="110"/>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="121"/>
<source>popup_info_find_message_title</source> <source>popup_info_find_message_title</source>
<extracomment>Find message</extracomment> <extracomment>Find message</extracomment>
<translation>Trouver un message</translation> <translation>Trouver un message</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="125"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/>
<source>info_popup_no_result_message</source> <source>info_popup_no_result_message</source>
<extracomment>No result found</extracomment> <extracomment>No result found</extracomment>
<translation>Aucun résultat trouvé</translation> <translation>Aucun résultat trouvé</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="117"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/>
<source>info_popup_first_result_message</source> <source>info_popup_first_result_message</source>
<extracomment>First result reached</extracomment> <extracomment>First result reached</extracomment>
<translation>Premier résultat atteint</translation> <translation>Premier résultat atteint</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="113"/>
<source>info_popup_last_result_message</source> <source>info_popup_last_result_message</source>
<extracomment>Last result reached</extracomment> <extracomment>Last result reached</extracomment>
<translation>Dernier résultat atteint</translation> <translation>Dernier résultat atteint</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="161"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="159"/>
<source>chat_message_list_encrypted_header_title</source> <source>chat_message_list_encrypted_header_title</source>
<extracomment>End to end encrypted chat</extracomment> <extracomment>End to end encrypted chat</extracomment>
<translation>Conversation chiffrée de bout en bout</translation> <translation>Conversation chiffrée de bout en bout</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="171"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="169"/>
<source>chat_message_list_encrypted_header_message</source> <source>chat_message_list_encrypted_header_message</source>
<extracomment>Les messages de cette conversation sont chiffrés de bout <extracomment>Les messages de cette conversation sont chiffrés de bout
en bout. Seul votre correspondant peut les déchiffrer.</extracomment> en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
@ -2172,7 +2205,7 @@ Error</extracomment>
en bout. Seul votre correspondant peut les déchiffrer.</translation> en bout. Seul votre correspondant peut les déchiffrer.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="211"/> <location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="209"/>
<source>chat_message_is_writing_info</source> <source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment> <extracomment>%1 is writing</extracomment>
<translation>%1 est en train d&apos;écrire</translation> <translation>%1 est en train d&apos;écrire</translation>
@ -3105,13 +3138,13 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<context> <context>
<name>DecoratedTextField</name> <name>DecoratedTextField</name>
<message> <message>
<location filename="../../view/Control/Input/DecoratedTextField.qml" line="54"/> <location filename="../../view/Control/Input/DecoratedTextField.qml" line="56"/>
<source>textfield_error_message_cannot_be_empty</source> <source>textfield_error_message_cannot_be_empty</source>
<extracomment>&quot;ne peut être vide&quot;</extracomment> <extracomment>&quot;ne peut être vide&quot;</extracomment>
<translation>ne peut être vide</translation> <translation>ne peut être vide</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Input/DecoratedTextField.qml" line="57"/> <location filename="../../view/Control/Input/DecoratedTextField.qml" line="59"/>
<source>textfield_error_message_unknown_format</source> <source>textfield_error_message_unknown_format</source>
<extracomment>&quot;Format non reconnu&quot;</extracomment> <extracomment>&quot;Format non reconnu&quot;</extracomment>
<translation>Format non reconnu</translation> <translation>Format non reconnu</translation>
@ -3395,50 +3428,50 @@ Expiration : %1</translation>
<context> <context>
<name>HelpPage</name> <name>HelpPage</name>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="39"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="40"/>
<source>help_title</source> <source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment> <extracomment>&quot;Aide&quot;</extracomment>
<translation>Aide</translation> <translation>Aide</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="53"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="70"/>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="111"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="128"/>
<source>help_about_title</source> <source>help_about_title</source>
<extracomment>&quot;À propos de %1&quot;</extracomment> <extracomment>&quot;À propos de %1&quot;</extracomment>
<translation>À propos de %1</translation> <translation>À propos de %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="67"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="84"/>
<source>help_about_privacy_policy_title</source> <source>help_about_privacy_policy_title</source>
<extracomment>&quot;Règles de confidentialité&quot;</extracomment> <extracomment>&quot;Règles de confidentialité&quot;</extracomment>
<translation>Règles de confidentialité</translation> <translation>Règles de confidentialité</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="69"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="86"/>
<source>help_about_privacy_policy_subtitle</source> <source>help_about_privacy_policy_subtitle</source>
<extracomment>Quelles informations %1 collecte et utilise</extracomment> <extracomment>Quelles informations %1 collecte et utilise</extracomment>
<translation>Quelles informations %1 collecte et utilise</translation> <translation>Quelles informations %1 collecte et utilise</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="79"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="96"/>
<source>help_about_version_title</source> <source>help_about_version_title</source>
<extracomment>&quot;Version&quot;</extracomment> <extracomment>&quot;Version&quot;</extracomment>
<translation>Version</translation> <translation>Version</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="87"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="104"/>
<source>help_about_gpl_licence_title</source> <source>help_about_gpl_licence_title</source>
<extracomment>&quot;Licences GPLv3&quot;</extracomment> <extracomment>&quot;Licences GPLv3&quot;</extracomment>
<translation>Licences GPLv3</translation> <translation>Licences GPLv3</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="98"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="115"/>
<source>help_about_contribute_translations_title</source> <source>help_about_contribute_translations_title</source>
<extracomment>&quot;Contribuer à la traduction de %1&quot;</extracomment> <extracomment>&quot;Contribuer à la traduction de %1&quot;</extracomment>
<translation>Contribuer à la traduction de %1</translation> <translation>Contribuer à la traduction de %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Help/HelpPage.qml" line="123"/> <location filename="../../view/Page/Main/Help/HelpPage.qml" line="140"/>
<source>help_troubleshooting_title</source> <source>help_troubleshooting_title</source>
<extracomment>&quot;Dépannage&quot;</extracomment> <extracomment>&quot;Dépannage&quot;</extracomment>
<translation>Dépannage</translation> <translation>Dépannage</translation>
@ -3724,7 +3757,7 @@ Expiration : %1</translation>
<translation>Lien de configuration distante</translation> <translation>Lien de configuration distante</translation>
</message> </message>
<message> <message>
<location filename="../../core/login/LoginPage.cpp" line="85"/> <location filename="../../core/login/LoginPage.cpp" line="86"/>
<source>default_account_connection_state_error_toast</source> <source>default_account_connection_state_error_toast</source>
<translation>Erreur durant la connexion</translation> <translation>Erreur durant la connexion</translation>
</message> </message>
@ -3811,31 +3844,31 @@ Expiration : %1</translation>
<translation>Paramètres</translation> <translation>Paramètres</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="489"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="492"/>
<source>recordings_title</source> <source>recordings_title</source>
<extracomment>&quot;Enregistrements&quot;</extracomment> <extracomment>&quot;Enregistrements&quot;</extracomment>
<translation>Enregistrements</translation> <translation>Enregistrements</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="504"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="507"/>
<source>help_title</source> <source>help_title</source>
<extracomment>&quot;Aide&quot;</extracomment> <extracomment>&quot;Aide&quot;</extracomment>
<translation>Aide</translation> <translation>Aide</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="521"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="526"/>
<source>help_quit_title</source> <source>help_quit_title</source>
<extracomment>&quot;Quitter l&apos;application&quot;</extracomment> <extracomment>&quot;Quitter l&apos;application&quot;</extracomment>
<translation>Quitter l&apos;application</translation> <translation>Quitter l&apos;application</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="526"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="531"/>
<source>quit_app_question</source> <source>quit_app_question</source>
<extracomment>&quot;Quitter %1 ?&quot;</extracomment> <extracomment>&quot;Quitter %1 ?&quot;</extracomment>
<translation>Quitter %1 ?</translation> <translation>Quitter %1 ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Main/MainLayout.qml" line="555"/> <location filename="../../view/Page/Layout/Main/MainLayout.qml" line="560"/>
<source>drawer_menu_add_account</source> <source>drawer_menu_add_account</source>
<extracomment>&quot;Ajouter un compte&quot;</extracomment> <extracomment>&quot;Ajouter un compte&quot;</extracomment>
<translation>Ajouter un compte</translation> <translation>Ajouter un compte</translation>
@ -4180,13 +4213,13 @@ Expiration : %1</translation>
<translation>Fuseau horaire</translation> <translation>Fuseau horaire</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="899"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="898"/>
<source>meeting_info_organizer_label</source> <source>meeting_info_organizer_label</source>
<extracomment>&quot;Organisateur&quot;</extracomment> <extracomment>&quot;Organisateur&quot;</extracomment>
<translation>Organisateur</translation> <translation>Organisateur</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="918"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="917"/>
<source>meeting_info_join_title</source> <source>meeting_info_join_title</source>
<extracomment>&quot;Rejoindre la réunion&quot;</extracomment> <extracomment>&quot;Rejoindre la réunion&quot;</extracomment>
<translation>Rejoindre la réunion</translation> <translation>Rejoindre la réunion</translation>
@ -4912,13 +4945,25 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<message> <message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="375"/> <location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="375"/>
<source>login_proxy_server_url</source> <source>login_proxy_server_url</source>
<extracomment>&quot;Proxy server URL&quot;</extracomment> <extracomment>&quot;Outbound SIP Proxy URI&quot;</extracomment>
<translation>URI du proxy SIP sortant</translation> <translation>URI du proxy SIP sortant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="386"/> <location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="377"/>
<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/Form/Login/SIPLoginPage.qml" line="388"/>
<source>login_registrar_uri</source>
<extracomment>&quot;Registrar URI&quot;</extracomment>
<translation>Registrar URI</translation>
</message>
<message>
<location filename="../../view/Page/Form/Login/SIPLoginPage.qml" line="400"/>
<source>login_id</source> <source>login_id</source>
<extracomment>&quot;Connexion ID (if different)&quot;</extracomment> <extracomment>&quot;Authentication ID (if different)&quot;</extracomment>
<translation>Identifiant de connexion (si différent)</translation> <translation>Identifiant de connexion (si différent)</translation>
</message> </message>
</context> </context>
@ -5098,15 +5143,14 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<translation>Réunions</translation> <translation>Réunions</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="27"/>
<source>settings_security_title</source> <source>settings_security_title</source>
<extracomment>&quot;Affichage&quot; &quot;Security&quot;</extracomment> <extracomment>&quot;Affichage&quot; &quot;Security&quot;</extracomment>
<translation>Sécurité / Chiffrement</translation> <translation type="vanished">Sécurité / Chiffrement</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="29"/> <location filename="../../view/Page/Form/Settings/SettingsPage.qml" line="29"/>
<source>settings_network_title</source> <source>settings_network_title</source>
<extracomment>&quot;Réseau&quot;</extracomment> <extracomment>&quot;Affichage&quot; &quot;Security&quot; &quot;Réseau&quot;</extracomment>
<translation>Réseau</translation> <translation>Réseau</translation>
</message> </message>
<message> <message>
@ -5208,7 +5252,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<context> <context>
<name>Utils</name> <name>Utils</name>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2271"/> <location filename="../../tool/Utils.cpp" line="2275"/>
<source>nMinute</source> <source>nMinute</source>
<translation> <translation>
<numerusform>%1 minute</numerusform> <numerusform>%1 minute</numerusform>
@ -5216,7 +5260,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2272"/> <location filename="../../tool/Utils.cpp" line="2276"/>
<source>nHour</source> <source>nHour</source>
<translation> <translation>
<numerusform>%1 heure</numerusform> <numerusform>%1 heure</numerusform>
@ -5224,8 +5268,8 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2273"/> <location filename="../../tool/Utils.cpp" line="2277"/>
<location filename="../../tool/Utils.cpp" line="2274"/> <location filename="../../tool/Utils.cpp" line="2278"/>
<source>nDay</source> <source>nDay</source>
<translation> <translation>
<numerusform>%1 jour</numerusform> <numerusform>%1 jour</numerusform>
@ -5233,7 +5277,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2275"/> <location filename="../../tool/Utils.cpp" line="2279"/>
<source>nWeek</source> <source>nWeek</source>
<translation> <translation>
<numerusform>%1 semaine</numerusform> <numerusform>%1 semaine</numerusform>
@ -5241,7 +5285,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../tool/Utils.cpp" line="2276"/> <location filename="../../tool/Utils.cpp" line="2280"/>
<source>nSeconds</source> <source>nSeconds</source>
<translation> <translation>
<numerusform>%1 seconde</numerusform> <numerusform>%1 seconde</numerusform>

View file

@ -60,7 +60,8 @@ bool AccountManager::login(QString username,
QString domain, QString domain,
linphone::TransportType transportType, linphone::TransportType transportType,
QString *errorMessage, QString *errorMessage,
QString serverAddress, QString registrarUri,
QString outboundProxyAddress,
QString connectionId) { QString connectionId) {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
auto core = CoreModel::getInstance()->getCore(); auto core = CoreModel::getInstance()->getCore();
@ -89,9 +90,13 @@ bool AccountManager::login(QString username,
} }
if (!displayName.isEmpty()) identity->setDisplayName(Utils::appStringToCoreString(displayName)); if (!displayName.isEmpty()) identity->setDisplayName(Utils::appStringToCoreString(displayName));
if (!serverAddress.isEmpty()) { if (!registrarUri.isEmpty()) {
auto linServerAddress = ToolModel::interpretUrl(serverAddress); auto linRegistrarUri = ToolModel::interpretUrl(registrarUri);
params->setServerAddress(linServerAddress); params->setServerAddress(linRegistrarUri);
}
if (!outboundProxyAddress.isEmpty()) {
auto linOutboundProxyAddress = ToolModel::interpretUrl(outboundProxyAddress);
params->setRoutesAddresses({linOutboundProxyAddress});
} }
if (!domain.isEmpty()) { if (!domain.isEmpty()) {
identity->setDomain(Utils::appStringToCoreString(domain)); identity->setDomain(Utils::appStringToCoreString(domain));

View file

@ -42,7 +42,8 @@ public:
QString domain = QString(), QString domain = QString(),
linphone::TransportType transportType = linphone::TransportType::Tls, linphone::TransportType transportType = linphone::TransportType::Tls,
QString *errorMessage = nullptr, QString *errorMessage = nullptr,
QString serverAddress = QString(), QString registrarUri = QString(),
QString outboundProxyAddress = QString(),
QString connectionId = QString()); QString connectionId = QString());
std::shared_ptr<linphone::Account> createAccount(const QString &assistantFile); std::shared_ptr<linphone::Account> createAccount(const QString &assistantFile);

View file

@ -268,31 +268,51 @@ void AccountModel::setTransport(linphone::TransportType value, bool save) {
params->setServerAddress(addressClone); params->setServerAddress(addressClone);
if (save) mMonitor->setParams(params); if (save) mMonitor->setParams(params);
emit transportChanged(value); emit transportChanged(value);
emit serverAddressChanged(Utils::coreStringToAppString(addressClone->asString())); emit registrarUriChanged(Utils::coreStringToAppString(addressClone->asString()));
} }
} }
QString AccountModel::getServerAddress() const { QString AccountModel::getRegistrarUri() const {
if (mMonitor->getParams()->getServerAddress()) if (mMonitor->getParams()->getServerAddress())
return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString()); return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString());
else return ""; else return "";
} }
void AccountModel::setServerAddress(QString value, linphone::TransportType transport, bool save) { void AccountModel::setRegistrarUri(QString value) {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
auto params = mMonitor->getParams()->clone(); auto params = mMonitor->getParams()->clone();
auto address = CoreModel::getInstance()->getCore()->interpretUrl(Utils::appStringToCoreString(value), false); auto address = CoreModel::getInstance()->getCore()->interpretUrl(Utils::appStringToCoreString(value), false);
if (address) { if (address) {
if (save) address->setTransport(transport);
params->setServerAddress(address); params->setServerAddress(address);
if (save) mMonitor->setParams(params); mMonitor->setParams(params);
emit serverAddressChanged(value); emit registrarUriChanged(value);
emit transportChanged(address->getTransport()); emit transportChanged(address->getTransport());
} else { } else {
//: "Unable to set server address, failed creating address from %1" //: "Unable to set server address, failed creating address from %1"
emit setValueFailed(tr("set_server_address_failed_error_message").arg(value)); emit setValueFailed(tr("set_server_address_failed_error_message").arg(value));
qWarning() << "Unable to set ServerAddress, failed creating address from" << value; qWarning() << "Unable to set ServerAddress, failed creating address from" << value;
} }
emit registrarUriChanged(Utils::coreStringToAppString(address->asString()));
}
QString AccountModel::getOutboundProxyUri() const {
auto routeAddresses = mMonitor->getParams()->getRoutesAddresses();
auto outbound =
routeAddresses.empty() ? QString() : Utils::coreStringToAppString(routeAddresses.front()->asString());
return outbound;
}
void AccountModel::setOutboundProxyUri(QString value) {
auto linOutboundProxyAddress = ToolModel::interpretUrl(value);
if (!linOutboundProxyAddress) {
//: Unable to set outbound proxy uri, failed creating address from %1
emit setValueFailed(tr("set_outbound_proxy_uri_failed_error_message").arg(value));
return;
}
auto params = mMonitor->getParams()->clone();
params->setRoutesAddresses({linOutboundProxyAddress});
emit outboundProxyUriChanged(value);
} }
bool AccountModel::getOutboundProxyEnabled() const { bool AccountModel::getOutboundProxyEnabled() const {

View file

@ -59,8 +59,10 @@ public:
void setMwiServerAddress(QString value); void setMwiServerAddress(QString value);
linphone::TransportType getTransport() const; linphone::TransportType getTransport() const;
void setTransport(linphone::TransportType value, bool save); void setTransport(linphone::TransportType value, bool save);
QString getServerAddress() const; QString getRegistrarUri() const;
void setServerAddress(QString value, linphone::TransportType transport, bool save); void setRegistrarUri(QString value);
QString getOutboundProxyUri() const;
void setOutboundProxyUri(QString value);
bool getOutboundProxyEnabled() const; bool getOutboundProxyEnabled() const;
void setOutboundProxyEnabled(bool value); void setOutboundProxyEnabled(bool value);
QString getStunServer() const; QString getStunServer() const;
@ -107,7 +109,8 @@ signals:
void notificationsAllowedChanged(bool value); void notificationsAllowedChanged(bool value);
void mwiServerAddressChanged(QString value); void mwiServerAddressChanged(QString value);
void transportChanged(linphone::TransportType value); void transportChanged(linphone::TransportType value);
void serverAddressChanged(QString value); void registrarUriChanged(QString value);
void outboundProxyUriChanged(QString value);
void outboundProxyEnabledChanged(bool value); void outboundProxyEnabledChanged(bool value);
void stunServerChanged(QString value); void stunServerChanged(QString value);
void iceEnabledChanged(bool value); void iceEnabledChanged(bool value);

View file

@ -23,6 +23,7 @@
#include <QDir> #include <QDir>
#include <QObject> #include <QObject>
#include <QRegularExpression>
#include <QString> #include <QString>
#include "config.h" #include "config.h"
@ -102,6 +103,11 @@ public:
Q_PROPERTY(QString DefaultLocale MEMBER DefaultLocale CONSTANT) Q_PROPERTY(QString DefaultLocale MEMBER DefaultLocale CONSTANT)
Q_PROPERTY(int maxMosaicParticipants MEMBER MaxMosaicParticipants CONSTANT) Q_PROPERTY(int maxMosaicParticipants MEMBER MaxMosaicParticipants CONSTANT)
Q_PROPERTY(QStringList reactionsList READ getReactionsList CONSTANT) Q_PROPERTY(QStringList reactionsList READ getReactionsList CONSTANT)
Q_PROPERTY(QRegularExpression uriRegExp MEMBER mUriRegExp CONSTANT)
// Uri regexp
QRegularExpression mUriRegExp = QRegularExpression(
"(sip|sips):[[:alnum:]]+[.]*[[[:alnum:]]+[.]*[[:alnum:]]+]*:?[0-9]*?;transport=(tls|tcp|udp|dtls)");
// For Webviews // For Webviews
static constexpr char DefaultAssistantRegistrationUrl[] = "https://subscribe.linphone.org/register"; static constexpr char DefaultAssistantRegistrationUrl[] = "https://subscribe.linphone.org/register";

View file

@ -2242,6 +2242,10 @@ bool Utils::isAnimatedImage(const QString &path) {
return reader.canRead() && reader.supportsAnimation() && reader.imageCount() > 1; return reader.canRead() && reader.supportsAnimation() && reader.imageCount() > 1;
} }
bool Utils::fileExists(const QString &path) {
return QFileInfo::exists(path);
}
bool Utils::canHaveThumbnail(const QString &path) { bool Utils::canHaveThumbnail(const QString &path) {
if (path.isEmpty()) return false; if (path.isEmpty()) return false;
return isImage(path) || isAnimatedImage(path) /*|| isPdf(path)*/ || isVideo(path); return isImage(path) || isAnimatedImage(path) /*|| isPdf(path)*/ || isVideo(path);
@ -2275,3 +2279,9 @@ QString Utils::getEphemeralFormatedTime(int selectedTime) {
else if (selectedTime == 604800) return tr("nWeek", "", 1).arg(1); else if (selectedTime == 604800) return tr("nWeek", "", 1).arg(1);
else return tr("nSeconds", "", selectedTime).arg(selectedTime); else return tr("nSeconds", "", selectedTime).arg(selectedTime);
} }
bool Utils::stringMatchFormat(QString toMatch, QRegularExpression regExp) {
if (!regExp.isValid()) return false;
auto match = regExp.match(toMatch);
return match.hasMatch();
}

View file

@ -166,6 +166,7 @@ public:
Q_INVOKABLE static bool isVideo(const QString &path); Q_INVOKABLE static bool isVideo(const QString &path);
static QString getSafeFilePath(const QString &filePath, bool *soFarSoGood); static QString getSafeFilePath(const QString &filePath, bool *soFarSoGood);
Q_INVOKABLE static bool isAnimatedImage(const QString &path); Q_INVOKABLE static bool isAnimatedImage(const QString &path);
Q_INVOKABLE static bool fileExists(const QString &path);
Q_INVOKABLE static bool canHaveThumbnail(const QString &path); Q_INVOKABLE static bool canHaveThumbnail(const QString &path);
Q_INVOKABLE static bool isImage(const QString &path); Q_INVOKABLE static bool isImage(const QString &path);
Q_INVOKABLE static bool isPdf(const QString &path); Q_INVOKABLE static bool isPdf(const QString &path);
@ -186,6 +187,8 @@ public:
Q_INVOKABLE static void sendVoiceRecordingMessage(RecorderGui *recorderGui, ChatGui *chatGui); Q_INVOKABLE static void sendVoiceRecordingMessage(RecorderGui *recorderGui, ChatGui *chatGui);
Q_INVOKABLE static QString getEphemeralFormatedTime(int selectedTime); Q_INVOKABLE static QString getEphemeralFormatedTime(int selectedTime);
Q_INVOKABLE static bool stringMatchFormat(QString toMatch, QRegularExpression regExp);
// QDir findDirectoryByName(QString startPath, QString name); // QDir findDirectoryByName(QString startPath, QString name);
static QString getApplicationProduct(); static QString getApplicationProduct();

View file

@ -21,8 +21,8 @@ Button {
topPadding: 0 topPadding: 0
bottomPadding: 0 bottomPadding: 0
icon.source: AppIcons.verticalDots icon.source: AppIcons.verticalDots
icon.width: Math.round(24 * DefaultStyle.dp) icon.width: width
icon.height: Math.round(24 * DefaultStyle.dp) icon.height: width
function close() { function close() {
popup.close() popup.close()
} }

View file

@ -69,11 +69,19 @@ FocusScope {
contentItem: RowLayout { contentItem: RowLayout {
spacing: Math.round(16 * DefaultStyle.dp) spacing: Math.round(16 * DefaultStyle.dp)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Image { Rectangle {
source: AppIcons.groupCall width: Math.round(44 * DefaultStyle.dp)
Layout.preferredWidth: Math.round(44 * DefaultStyle.dp) height: width
sourceSize.width: Math.round(44 * DefaultStyle.dp) radius: width / 2
fillMode: Image.PreserveAspectFit color: DefaultStyle.main1_500_main
EffectImage {
imageSource: AppIcons.usersThreeFilled
anchors.centerIn: parent
width: Math.round(24 * DefaultStyle.dp)
height: width
fillMode: Image.PreserveAspectFit
colorizationColor: DefaultStyle.grey_0
}
} }
Text { Text {
text: mainItem.startGroupButtonText text: mainItem.startGroupButtonText

View file

@ -2,11 +2,13 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Effects import QtQuick.Effects
import Linphone import Linphone
import "qrc:/qt/qml/Linphone/view/Style/buttonStyle.js" as ButtonStyle
FocusScope{ FocusScope{
id: mainItem id: mainItem
property alias contentItem: contentItem.data property alias contentItem: contentItem.data
property string label: "" property string label: ""
property string tooltip: ""
property bool mandatory: false property bool mandatory: false
property alias errorTextItem: errorText property alias errorTextItem: errorText
@ -41,20 +43,33 @@ FocusScope{
spacing: Math.round(5 * DefaultStyle.dp) spacing: Math.round(5 * DefaultStyle.dp)
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
RowLayout {
Text { spacing: Math.round(8 * DefaultStyle.dp)
visible: label.length > 0 Text {
verticalAlignment: Text.AlignVCenter visible: label.length > 0
text: mainItem.label + (mainItem.mandatory ? "*" : "") verticalAlignment: Text.AlignVCenter
color: contentItem.activeFocus ? DefaultStyle.main1_500_main : DefaultStyle.main2_600 text: mainItem.label + (mainItem.mandatory ? "*" : "")
elide: Text.ElideRight color: contentItem.activeFocus ? DefaultStyle.main1_500_main : DefaultStyle.main2_600
wrapMode: Text.Wrap elide: Text.ElideRight
maximumLineCount: 1 wrapMode: Text.Wrap
textFormat: Text.RichText maximumLineCount: 1
textFormat: Text.RichText
font {
pixelSize: Typography.p2.pixelSize font {
weight: Typography.p2.weight pixelSize: Typography.p2.pixelSize
weight: Typography.p2.weight
}
}
Item{Layout.fillWidth: true}
PopupButton {
visible: mainItem.tooltip !== ""
Layout.preferredWidth: Math.round(24 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(24 * DefaultStyle.dp)
style: ButtonStyle.noBackground
icon.source: AppIcons.info
popup.contentItem: Text {
text: mainItem.tooltip
}
} }
} }

View file

@ -67,14 +67,19 @@ Item {
sourceSize.height: mainItem.height sourceSize.height: mainItem.height
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
} }
Image { Rectangle {
anchors.fill: image anchors.fill: parent
z: image.z + 1 color: DefaultStyle.main1_200
visible: image.status == Image.Error || image.status == Image.Null || image.frameCount === 0 opacity: 0.5
source: AppIcons.fileImage Image {
sourceSize.width: mainItem.width anchors.fill: image
sourceSize.height: mainItem.height z: parent.z + 1
fillMode: Image.PreserveAspectFit visible: image.status == Image.Error || image.status == Image.Null || !UtilsCpp.fileExists(mainItem.filePath)
source: AppIcons.fileImage
sourceSize.width: mainItem.width
sourceSize.height: mainItem.height
fillMode: Image.PreserveAspectFit
}
} }
Image { Image {
id: image id: image

View file

@ -19,6 +19,8 @@ FormItemLayout {
property bool canBeEmpty: true property bool canBeEmpty: true
property bool toValidate: false property bool toValidate: false
property alias text: textField.text property alias text: textField.text
property var value: propertyOwnerGui ? propertyOwnerGui.core[propertyName] : propertyOwner[propertyName]
function value() { function value() {
return propertyOwnerGui ? propertyOwnerGui.core[propertyName] : propertyOwner[propertyName] return propertyOwnerGui ? propertyOwnerGui.core[propertyName] : propertyOwner[propertyName]

View file

@ -347,7 +347,7 @@ LoginLayout {
} }
console.debug("[SIPLoginPage] User: Log in") console.debug("[SIPLoginPage] User: Log in")
LoginPageCpp.login(usernameEdit.text, passwordEdit.text, displayName.text, domainEdit.text, LoginPageCpp.login(usernameEdit.text, passwordEdit.text, displayName.text, domainEdit.text,
transportCbox.currentValue, serverAddressEdit.text, connectionIdEdit.text); transportCbox.currentValue, registrarUriEdit.text, outboundProxyUriEdit.text, connectionIdEdit.text);
connectionButton.enabled = false connectionButton.enabled = false
connectionButtonContent.currentIndex = 1 connectionButtonContent.currentIndex = 1
} }
@ -370,25 +370,39 @@ LoginLayout {
ColumnLayout { ColumnLayout {
spacing: Math.round(10 * DefaultStyle.dp) spacing: Math.round(10 * DefaultStyle.dp)
FormItemLayout { FormItemLayout {
id: serverAddress id: outboundProxyUri
//: "Proxy server URL" //: "Outbound SIP Proxy URI"
label: qsTr("login_proxy_server_url") label: qsTr("login_proxy_server_url")
//: "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")
Layout.fillWidth: true Layout.fillWidth: true
contentItem: TextField { contentItem: TextField {
id: serverAddressEdit id: outboundProxyUriEdit
Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) Layout.preferredWidth: Math.round(360 * DefaultStyle.dp)
KeyNavigation.down: registrarUriEdit
}
}
FormItemLayout {
id: registrarUri
//: "Registrar URI"
label: qsTr("login_registrar_uri")
Layout.fillWidth: true
contentItem: TextField {
id: registrarUriEdit
Layout.preferredWidth: Math.round(360 * DefaultStyle.dp)
KeyNavigation.up: outboundProxyUriEdit
KeyNavigation.down: connectionIdEdit KeyNavigation.down: connectionIdEdit
} }
} }
FormItemLayout { FormItemLayout {
id: connectionId id: connectionId
//: "Connexion ID (if different)" //: "Authentication ID (if different)"
label: qsTr("login_id") label: qsTr("login_id")
Layout.fillWidth: true Layout.fillWidth: true
contentItem: TextField { contentItem: TextField {
id: connectionIdEdit id: connectionIdEdit
Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) Layout.preferredWidth: Math.round(360 * DefaultStyle.dp)
KeyNavigation.up: serverAddressEdit KeyNavigation.up: registrarUriEdit
} }
} }
} }

View file

@ -6,10 +6,13 @@ import QtQuick.Dialogs
import Linphone import Linphone
import SettingsCpp 1.0 import SettingsCpp 1.0
import UtilsCpp import UtilsCpp
import ConstantsCpp
AbstractSettingsLayout { AbstractSettingsLayout {
id: mainItem id: mainItem
width: parent?.width width: parent?.width
property bool registrarUriIsValid
property bool outboundProxyIsValid
contentModel: [{ contentModel: [{
"title": qsTr("settings_title"), "title": qsTr("settings_title"),
"subTitle": "", "subTitle": "",
@ -23,7 +26,15 @@ AbstractSettingsLayout {
property alias account: mainItem.model property alias account: mainItem.model
onSave: { onSave: {
account.core.save() if (!registrarUriIsValid || !outboundProxyIsValid) {
var message = !registrarUriIsValid
//: Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional)
? qsTr("info_popup_invalid_registrar_uri_message")
//: Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional)
: qsTr("info_popup_invalid_outbound_proxy_message")
mainWindow.showInformationPopup(qsTr("info_popup_error_title"), message, false)
}
else account.core.save()
} }
onUndo: account.core.undo() onUndo: account.core.undo()
Connections { Connections {
@ -110,26 +121,33 @@ AbstractSettingsLayout {
color: DefaultStyle.main2_600 color: DefaultStyle.main2_600
font: Typography.p2l font: Typography.p2l
} }
ComboSetting { DecoratedTextField {
Layout.fillWidth: true Layout.fillWidth: true
Layout.topMargin: Math.round(-15 * DefaultStyle.dp) //:"Registrar URI"
entries: account.core.transports title: qsTr("account_settings_registrar_uri_title")
propertyName: "transport" propertyName: "registrarUri"
propertyOwnerGui: account propertyOwnerGui: account
toValidate: true
isValid: function(text) {
var valid = text === "" || UtilsCpp.stringMatchFormat(text, ConstantsCpp.uriRegExp)
mainItem.registrarUriIsValid = valid
return valid
}
} }
DecoratedTextField { DecoratedTextField {
Layout.fillWidth: true Layout.fillWidth: true
//:"URL du serveur mandataire" //:"Outbound SIP Proxy URI"
title: qsTr("account_settings_sip_proxy_url_title") title: qsTr("account_settings_sip_proxy_url_title")
propertyName: "serverAddress" propertyName: "outboundProxyUri"
propertyOwnerGui: account propertyOwnerGui: account
toValidate: true toValidate: true
} //: "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it."
SwitchSetting { tooltip: qsTr("login_proxy_server_url_tooltip")
//: "Serveur mandataire sortant" isValid: function(text) {
titleText: qsTr("account_settings_outbound_proxy_title") var isValid = text === "" || UtilsCpp.stringMatchFormat(text, ConstantsCpp.uriRegExp)
propertyName: "outboundProxyEnabled" mainItem.outboundProxyIsValid = isValid
propertyOwnerGui: account return isValid
}
} }
DecoratedTextField { DecoratedTextField {
Layout.fillWidth: true Layout.fillWidth: true

View file

@ -178,7 +178,7 @@ FriendGui{
content: RowLayout { content: RowLayout {
spacing: Math.round(50 * DefaultStyle.dp) spacing: Math.round(50 * DefaultStyle.dp)
Avatar { Avatar {
_address: "sip:a.c@sip.linphone.org" displayNameVal: "A C"
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp) Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp) Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
} }
@ -189,7 +189,7 @@ FriendGui{
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp) Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
} }
Avatar { Avatar {
_address: "sip:a.c@sip.linphone.org" displayNameVal: "A C"
secured: true secured: true
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp) Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp) Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)

View file

@ -49,6 +49,7 @@ QtObject {
property string chatTeardropTextSelected: "image://internal/chat-teardrop-text-fill.svg" property string chatTeardropTextSelected: "image://internal/chat-teardrop-text-fill.svg"
property string usersThree: "image://internal/users-three.svg" property string usersThree: "image://internal/users-three.svg"
property string usersThreeSelected: "image://internal/users-three-fill.svg" property string usersThreeSelected: "image://internal/users-three-fill.svg"
property string usersThreeFilled: "image://internal/users-three-filled.svg"
property string userPlus: "image://internal/user-plus.svg" property string userPlus: "image://internal/user-plus.svg"
property string noItemImage: "image://internal/noItemImage.svg" property string noItemImage: "image://internal/noItemImage.svg"
property string verticalDots: "image://internal/dots-three-vertical.svg" property string verticalDots: "image://internal/dots-three-vertical.svg"