fix inifnite loop #LINQT-2002

display name: do not modify username ui if there is not display name set by a user
remove unused signals

fix contact info update chat list #LINQT-1992

send invitations in secured chatrooms #LINQT-1996

extend meeting detail height #LINQT-1999

scrollbar call history #LINQT-1998

do not sort chat list when filtering it #LINQT-2003

remove useless signal which refresh the view for ephemeral messages (fix #LINQT-1989)
This commit is contained in:
Gaelle Braud 2025-09-24 10:05:30 +02:00
parent e901f0046b
commit 013ba607ec
17 changed files with 389 additions and 417 deletions

View file

@ -260,15 +260,6 @@ void AccountCore::setSelf(QSharedPointer<AccountCore> me) {
mAccountModelConnection->makeConnectToCore(&AccountCore::lRefreshNotifications, [this]() { mAccountModelConnection->makeConnectToCore(&AccountCore::lRefreshNotifications, [this]() {
mAccountModelConnection->invokeToModel([this]() { mAccountModel->refreshUnreadNotifications(); }); mAccountModelConnection->invokeToModel([this]() { mAccountModel->refreshUnreadNotifications(); });
}); });
mAccountModelConnection->makeConnectToCore(&AccountCore::unreadCallNotificationsChanged, [this]() {
mAccountModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::unreadMessageNotificationsChanged, [this]() {
mAccountModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::unreadNotificationsChanged, [this]() {
mAccountModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::lSetDisplayName, [this](QString displayName) { mAccountModelConnection->makeConnectToCore(&AccountCore::lSetDisplayName, [this](QString displayName) {
mAccountModelConnection->invokeToModel([this, displayName]() { mAccountModel->setDisplayName(displayName); }); mAccountModelConnection->invokeToModel([this, displayName]() { mAccountModel->setDisplayName(displayName); });
}); });

View file

@ -89,24 +89,6 @@ ChatCore::ChatCore(const std::shared_ptr<linphone::ChatRoom> &chatRoom) : QObjec
static_cast<int>(linphone::ChatRoom::HistoryFilter::InfoNoDevice) static_cast<int>(linphone::ChatRoom::HistoryFilter::InfoNoDevice)
: static_cast<int>(linphone::ChatRoom::HistoryFilter::ChatMessage); : static_cast<int>(linphone::ChatRoom::HistoryFilter::ChatMessage);
// auto history = chatRoom->getHistory(0, filter);
// std::list<std::shared_ptr<linphone::EventLog>> lHistory;
// for (auto &eventLog : history) {
// lHistory.push_back(eventLog);
// }
// QList<QSharedPointer<EventLogCore>> eventList;
// for (auto &event : lHistory) {
// auto eventLogCore = EventLogCore::create(event);
// eventList.append(eventLogCore);
// if (auto isMessage = eventLogCore->getChatMessageCore()) {
// for (auto content : isMessage->getChatMessageContentList()) {
// if (content->isFile() && !content->isVoiceRecording()) {
// mFileList.append(content);
// }
// }
// }
// }
// resetEventLogList(eventList);
mIdentifier = Utils::coreStringToAppString(chatRoom->getIdentifier()); mIdentifier = Utils::coreStringToAppString(chatRoom->getIdentifier());
mChatRoomState = LinphoneEnums::fromLinphone(chatRoom->getState()); mChatRoomState = LinphoneEnums::fromLinphone(chatRoom->getState());
mIsEncrypted = chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::Encrypted); mIsEncrypted = chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::Encrypted);
@ -116,25 +98,9 @@ ChatCore::ChatCore(const std::shared_ptr<linphone::ChatRoom> &chatRoom) : QObjec
localAccount && localAccount->getParams() && localAccount && localAccount->getParams() &&
localAccount->getParams()->getInstantMessagingEncryptionMandatory(); localAccount->getParams()->getInstantMessagingEncryptionMandatory();
mIsReadOnly = chatRoom->isReadOnly() || (!mIsEncrypted && associatedAccountHasIMEncryptionMandatory); mIsReadOnly = chatRoom->isReadOnly() || (!mIsEncrypted && associatedAccountHasIMEncryptionMandatory);
connect(this, &ChatCore::eventListChanged, this, &ChatCore::lUpdateLastMessage);
connect(this, &ChatCore::eventsInserted, this, &ChatCore::lUpdateLastMessage); connect(this, &ChatCore::eventsInserted, this, &ChatCore::lUpdateLastMessage);
connect(this, &ChatCore::eventRemoved, this, &ChatCore::lUpdateLastMessage);
auto resetFileListLambda = [this] {
QList<QSharedPointer<ChatMessageContentCore>> fileList;
// for (auto &eventLogCore : mEventLogList) {
// if (auto isMessage = eventLogCore->getChatMessageCore()) {
// for (auto content : isMessage->getChatMessageContentList()) {
// if (content->isFile() && !content->isVoiceRecording()) {
// fileList.append(content);
// }
// }
// }
// }
resetFileList(fileList);
};
connect(this, &ChatCore::eventListChanged, this, resetFileListLambda);
connect(this, &ChatCore::eventsInserted, this, resetFileListLambda);
connect(this, &ChatCore::eventRemoved, this, resetFileListLambda);
mEphemeralEnabled = chatRoom->ephemeralEnabled(); mEphemeralEnabled = chatRoom->ephemeralEnabled();
mEphemeralLifetime = chatRoom->ephemeralEnabled() ? chatRoom->getEphemeralLifetime() : 0; mEphemeralLifetime = chatRoom->ephemeralEnabled() ? chatRoom->getEphemeralLifetime() : 0;
mIsMuted = chatRoom->getMuted(); mIsMuted = chatRoom->getMuted();
@ -674,26 +640,33 @@ void ChatCore::updateInfo(const std::shared_ptr<linphone::Friend> &updatedFriend
auto chatroom = mChatModel->getMonitor(); auto chatroom = mChatModel->getMonitor();
auto chatRoomAddress = chatroom->getPeerAddress(); auto chatRoomAddress = chatroom->getPeerAddress();
if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::Basic)) { if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::Basic)) {
mTitle = ToolModel::getDisplayName(chatRoomAddress); auto title = ToolModel::getDisplayName(chatRoomAddress);
mAvatarUri = ToolModel::getDisplayName(chatRoomAddress); auto avatarUri = ToolModel::getDisplayName(chatRoomAddress);
emit titleChanged(mTitle); mChatModelConnection->invokeToCore([this, title, avatarUri] {
emit avatarUriChanged(); setTitle(title);
setAvatarUri(avatarUri);
});
} else { } else {
if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne)) { if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne)) {
auto participants = chatroom->getParticipants(); auto participants = chatroom->getParticipants();
if (participants.size() > 0) { if (participants.size() > 0) {
auto peer = participants.front(); auto peer = participants.front();
if (peer) mTitle = ToolModel::getDisplayName(peer->getAddress()); if (peer) {
mAvatarUri = ToolModel::getDisplayName(peer->getAddress()); auto title = ToolModel::getDisplayName(peer->getAddress());
if (participants.size() == 1) { auto avatarUri = ToolModel::getDisplayName(peer->getAddress());
auto peerAddress = peer->getAddress(); mChatModelConnection->invokeToCore([this, title, avatarUri] {
if (peerAddress) setTitle(title);
mParticipantAddress = Utils::coreStringToAppString(peerAddress->asStringUriOnly()); setAvatarUri(avatarUri);
});
} }
} }
} else if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::Conference)) { } else if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::Conference)) {
mTitle = Utils::coreStringToAppString(chatroom->getSubject()); auto title = Utils::coreStringToAppString(chatroom->getSubject());
mAvatarUri = Utils::coreStringToAppString(chatroom->getSubject()); auto avatarUri = Utils::coreStringToAppString(chatroom->getSubject());
mChatModelConnection->invokeToCore([this, title, avatarUri] {
setTitle(title);
setAvatarUri(avatarUri);
});
} }
} }
} }

View file

@ -161,10 +161,8 @@ signals:
void lastMessageChanged(); void lastMessageChanged();
void titleChanged(QString title); void titleChanged(QString title);
void unreadMessagesCountChanged(int count); void unreadMessagesCountChanged(int count);
void eventListChanged();
void eventListCleared(); void eventListCleared();
void eventsInserted(QList<QSharedPointer<EventLogCore>> list); void eventsInserted(QList<QSharedPointer<EventLogCore>> list);
void eventRemoved();
void avatarUriChanged(); void avatarUriChanged();
void deleted(); void deleted();
void composingUserChanged(); void composingUserChanged();

View file

@ -75,14 +75,13 @@ void ChatProxy::addChatInList(ChatGui *chatGui) {
} }
bool ChatProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { bool ChatProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
// auto l = getItemAtSource<ChatList, ChatCore>(sourceRow);
// return l != nullptr;
return true; return true;
} }
bool ChatProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const { bool ChatProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const {
if (!mFilterText.isEmpty()) return false;
auto l = getItemAtSource<ChatList, ChatCore>(sourceLeft.row()); auto l = getItemAtSource<ChatList, ChatCore>(sourceLeft.row());
auto r = getItemAtSource<ChatList, ChatCore>(sourceRight.row()); auto r = getItemAtSource<ChatList, ChatCore>(sourceRight.row());
if (l && r) return l->getLastUpdatedTime() >= r->getLastUpdatedTime(); if (l && r) return l->getLastUpdatedTime() >= r->getLastUpdatedTime();
else return true; return false;
} }

View file

@ -78,23 +78,16 @@ void EventLogList::connectItem(const QSharedPointer<EventLogCore> &item) {
if (mChatCore) emit mChatCore->lUpdateLastMessage(); if (mChatCore) emit mChatCore->lUpdateLastMessage();
remove(item); remove(item);
}); });
connect(message.get(), &ChatMessageCore::ephemeralDurationChanged, this, [this, item](int duration) {
int i;
get(item.get(), &i);
emit dataChanged(index(i), index(i));
});
} }
} }
void EventLogList::setChatCore(QSharedPointer<ChatCore> core) { void EventLogList::setChatCore(QSharedPointer<ChatCore> core) {
if (mChatCore != core) { if (mChatCore != core) {
if (mChatCore) { if (mChatCore) {
disconnect(mChatCore.get(), &ChatCore::eventListChanged, this, nullptr);
disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr); disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr);
} }
mChatCore = core; mChatCore = core;
if (mChatCore) { if (mChatCore) {
connect(mChatCore.get(), &ChatCore::eventListChanged, this, &EventLogList::lUpdate);
connect(mChatCore.get(), &ChatCore::eventListCleared, this, [this] { resetData(); }); connect(mChatCore.get(), &ChatCore::eventListCleared, this, [this] { resetData(); });
connect(mChatCore.get(), &ChatCore::eventsInserted, this, [this](QList<QSharedPointer<EventLogCore>> list) { connect(mChatCore.get(), &ChatCore::eventsInserted, this, [this](QList<QSharedPointer<EventLogCore>> list) {
auto eventsList = getSharedList<EventLogCore>(); auto eventsList = getSharedList<EventLogCore>();

View file

@ -27,45 +27,45 @@
<context> <context>
<name>AccountCore</name> <name>AccountCore</name>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="445"/> <location filename="../../core/account/AccountCore.cpp" line="436"/>
<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="448"/> <location filename="../../core/account/AccountCore.cpp" line="439"/>
<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="451"/> <location filename="../../core/account/AccountCore.cpp" line="442"/>
<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="454"/> <location filename="../../core/account/AccountCore.cpp" line="445"/>
<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="458"/> <location filename="../../core/account/AccountCore.cpp" line="449"/>
<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="492"/> <location filename="../../core/account/AccountCore.cpp" line="483"/>
<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="495"/> <location filename="../../core/account/AccountCore.cpp" line="486"/>
<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="499"/> <location filename="../../core/account/AccountCore.cpp" line="490"/>
<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>
@ -867,25 +867,25 @@
<translation type="vanished">Offline</translation> <translation type="vanished">Offline</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="116"/>
<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>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="135"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="134"/>
<source>contact_call_action</source> <source>contact_call_action</source>
<extracomment>&quot;Appel&quot;</extracomment> <extracomment>&quot;Appel&quot;</extracomment>
<translation>Anrufen</translation> <translation>Anrufen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="149"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="148"/>
<source>contact_message_action</source> <source>contact_message_action</source>
<extracomment>&quot;Message&quot;</extracomment> <extracomment>&quot;Message&quot;</extracomment>
<translation>Nachricht</translation> <translation>Nachricht</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="165"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="164"/>
<source>contact_video_call_action</source> <source>contact_video_call_action</source>
<extracomment>&quot;Appel Video&quot;</extracomment> <extracomment>&quot;Appel Video&quot;</extracomment>
<translation>Videoanruf</translation> <translation>Videoanruf</translation>
@ -1077,7 +1077,7 @@
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="529"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="527"/>
<source>menu_delete_history</source> <source>menu_delete_history</source>
<extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment> <extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment>
<translation>Verlauf löschen</translation> <translation>Verlauf löschen</translation>
@ -1149,7 +1149,7 @@
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="503"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
@ -1166,55 +1166,55 @@
<translation>Sie sind nicht verbunden</translation> <translation>Sie sind nicht verbunden</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="468"/>
<source>menu_see_existing_contact</source> <source>menu_see_existing_contact</source>
<extracomment>&quot;Show contact&quot;</extracomment> <extracomment>&quot;Show contact&quot;</extracomment>
<translation>Kontakt anzeigen</translation> <translation>Kontakt anzeigen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="472"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<source>menu_add_address_to_contacts</source> <source>menu_add_address_to_contacts</source>
<extracomment>&quot;Add to contacts&quot;</extracomment> <extracomment>&quot;Add to contacts&quot;</extracomment>
<translation>Zu Kontakten hinzufügen</translation> <translation>Zu Kontakten hinzufügen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="487"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="485"/>
<source>menu_copy_sip_address</source> <source>menu_copy_sip_address</source>
<extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment> <extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment>
<translation>SIP-Adresse kopieren</translation> <translation>SIP-Adresse kopieren</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="497"/>
<source>sip_address_copied_to_clipboard_toast</source> <source>sip_address_copied_to_clipboard_toast</source>
<extracomment>Adresse copiée</extracomment> <extracomment>Adresse copiée</extracomment>
<translation>SIP-Adresse kopiert</translation> <translation>SIP-Adresse kopiert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="501"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<source>sip_address_copied_to_clipboard_message</source> <source>sip_address_copied_to_clipboard_message</source>
<extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment> <extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment>
<translation>Die Adresse wurde in die Zwischenablage kopiert</translation> <translation>Die Adresse wurde in die Zwischenablage kopiert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="507"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<source>sip_address_copy_to_clipboard_error</source> <source>sip_address_copy_to_clipboard_error</source>
<extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment> <extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment>
<translation>Fehler beim Kopieren der Adresse</translation> <translation>Fehler beim Kopieren der Adresse</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="605"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="612"/>
<source>notification_missed_call_title</source> <source>notification_missed_call_title</source>
<extracomment>&quot;Appel manqué&quot;</extracomment> <extracomment>&quot;Appel manqué&quot;</extracomment>
<translation>Verpasster Anruf</translation> <translation>Verpasster Anruf</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="608"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="615"/>
<source>call_outgoing</source> <source>call_outgoing</source>
<extracomment>&quot;Appel sortant&quot;</extracomment> <extracomment>&quot;Appel sortant&quot;</extracomment>
<translation>Ausgehender Anruf</translation> <translation>Ausgehender Anruf</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="610"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="617"/>
<source>call_audio_incoming</source> <source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment> <extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Eingehender Anruf</translation> <translation>Eingehender Anruf</translation>
@ -1822,13 +1822,13 @@
<context> <context>
<name>ChatCore</name> <name>ChatCore</name>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="176"/> <location filename="../../core/chat/ChatCore.cpp" line="142"/>
<source>info_toast_deleted_title</source> <source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment> <extracomment>Deleted</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="178"/> <location filename="../../core/chat/ChatCore.cpp" line="144"/>
<source>info_toast_deleted_message_history</source> <source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment> <extracomment>Message history has been deleted</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1852,65 +1852,65 @@
<context> <context>
<name>ChatListView</name> <name>ChatListView</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="286"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="285"/>
<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>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="288"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="287"/>
<source>chat_message_draft_sending_text</source> <source>chat_message_draft_sending_text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="430"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="429"/>
<source>chat_room_delete</source> <source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment> <extracomment>&quot;Delete&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="370"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<source>chat_room_mute</source> <source>chat_room_mute</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
<source>chat_room_unmute</source> <source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment> <extracomment>&quot;Mute&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<source>chat_room_mark_as_read</source> <source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment> <extracomment>&quot;Mark as read&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="401"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<source>chat_room_leave</source> <source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment> <extracomment>&quot;leave&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="407"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<source>chat_list_leave_chat_popup_title</source> <source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment> <extracomment>leave the conversation ?</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<source>chat_list_leave_chat_popup_message</source> <source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment> <extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="436"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="435"/>
<source>chat_list_delete_chat_popup_title</source> <source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment> <extracomment>Delete the conversation ?</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="438"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="437"/>
<source>chat_list_delete_chat_popup_message</source> <source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment> <extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3244,42 +3244,42 @@ Error</extracomment>
<context> <context>
<name>EphemeralSettings</name> <name>EphemeralSettings</name>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="58"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="57"/>
<source>title</source> <source>title</source>
<translation>Ephemeral messages</translation> <translation>Ephemeral messages</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="77"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="76"/>
<source>explanations</source> <source>explanations</source>
<translation>By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period.</translation> <translation>By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="21"/>
<source>one_minute</source> <source>one_minute</source>
<translation>1 minute</translation> <translation>1 minute</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<source>one_hour</source> <source>one_hour</source>
<translation>1 hour</translation> <translation>1 hour</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<source>one_day</source> <source>one_day</source>
<translation>1 day</translation> <translation>1 day</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<source>one_week</source> <source>one_week</source>
<translation>1 week</translation> <translation>1 week</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="26"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<source>disabled</source> <source>disabled</source>
<translation>Disabled</translation> <translation>Disabled</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="35"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="34"/>
<source>custom</source> <source>custom</source>
<translation>Custom: </translation> <translation>Custom: </translation>
</message> </message>
@ -4092,110 +4092,110 @@ Error</extracomment>
<translation>Zurück</translation> <translation>Zurück</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="180"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="179"/>
<source>meetings_list_title</source> <source>meetings_list_title</source>
<extracomment>Réunions</extracomment> <extracomment>Réunions</extracomment>
<translation>Besprechungen</translation> <translation>Besprechungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="219"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="218"/>
<source>meetings_search_hint</source> <source>meetings_search_hint</source>
<extracomment>&quot;Rechercher une réunion&quot;</extracomment> <extracomment>&quot;Rechercher une réunion&quot;</extracomment>
<translation>Besprechung suchen</translation> <translation>Besprechung suchen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="236"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="235"/>
<source>list_filter_no_result_found</source> <source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment> <extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Kein Ergebnis</translation> <translation>Kein Ergebnis</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="238"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="237"/>
<source>meetings_empty_list</source> <source>meetings_empty_list</source>
<extracomment>&quot;Aucune réunion&quot;</extracomment> <extracomment>&quot;Aucune réunion&quot;</extracomment>
<translation>Keine Besprechungen</translation> <translation>Keine Besprechungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="308"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="307"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="369"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="368"/>
<source>meeting_schedule_title</source> <source>meeting_schedule_title</source>
<extracomment>&quot;Nouvelle réunion&quot;</extracomment> <extracomment>&quot;Nouvelle réunion&quot;</extracomment>
<translation>Neue Besprechung</translation> <translation>Neue Besprechung</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="319"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="318"/>
<source>create</source> <source>create</source>
<translation>Erstellen</translation> <translation>Erstellen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="326"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="325"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="330"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="329"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="381"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="380"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="481"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="484"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="533"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="532"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="328"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="327"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="483"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<source>meeting_schedule_mandatory_field_not_filled_toast</source> <source>meeting_schedule_mandatory_field_not_filled_toast</source>
<extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment> <extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment>
<translation>Bitte Titel bestimmen und mindestens einen Teilnehmer auswählen</translation> <translation>Bitte Titel bestimmen und mindestens einen Teilnehmer auswählen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="332"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="331"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="486"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<source>meeting_schedule_duration_error_toast</source> <source>meeting_schedule_duration_error_toast</source>
<extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment> <extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment>
<translation>Das Ende der Besprechung muss nach dem Beginn liegen</translation> <translation>Das Ende der Besprechung muss nach dem Beginn liegen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="336"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="335"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="376"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="375"/>
<source>meeting_schedule_creation_in_progress</source> <source>meeting_schedule_creation_in_progress</source>
<extracomment>&quot;Création de la réunion en cours &quot;</extracomment> <extracomment>&quot;Création de la réunion en cours &quot;</extracomment>
<translation>Besprechung wird erstellt</translation> <translation>Besprechung wird erstellt</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="371"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="370"/>
<source>meeting_info_created_toast</source> <source>meeting_info_created_toast</source>
<extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment> <extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment>
<translation>Besprechung erfolgreich erstellt</translation> <translation>Besprechung erfolgreich erstellt</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="383"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="382"/>
<source>meeting_failed_to_schedule_toast</source> <source>meeting_failed_to_schedule_toast</source>
<extracomment>&quot;Échec de création de la réunion !&quot;</extracomment> <extracomment>&quot;Échec de création de la réunion !&quot;</extracomment>
<translation>Besprechung konnte nicht erstellt werden!</translation> <translation>Besprechung konnte nicht erstellt werden!</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="475"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="474"/>
<source>save</source> <source>save</source>
<translation>Speichern</translation> <translation>Speichern</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="524"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="523"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="758"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="759"/>
<source>saved</source> <source>saved</source>
<extracomment>&quot;Enregistré&quot;</extracomment> <extracomment>&quot;Enregistré&quot;</extracomment>
<translation>Gespeichert</translation> <translation>Gespeichert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="526"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="525"/>
<source>meeting_info_updated_toast</source> <source>meeting_info_updated_toast</source>
<extracomment>&quot;Réunion mise à jour&quot;</extracomment> <extracomment>&quot;Réunion mise à jour&quot;</extracomment>
<translation>Besprechung geändert</translation> <translation>Besprechung geändert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="531"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="530"/>
<source>meeting_schedule_edit_in_progress</source> <source>meeting_schedule_edit_in_progress</source>
<extracomment>&quot;Modification de la réunion en cours&quot;</extracomment> <extracomment>&quot;Modification de la réunion en cours&quot;</extracomment>
<translation>Bersprechung wird geändert</translation> <translation>Bersprechung wird geändert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="535"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="534"/>
<source>meeting_failed_to_edit_toast</source> <source>meeting_failed_to_edit_toast</source>
<extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment> <extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment>
<translation>Besprechung konnte nicht geändert werden!</translation> <translation>Besprechung konnte nicht geändert werden!</translation>
@ -4225,19 +4225,19 @@ Error</extracomment>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="688"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="690"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Besprechung löschen</translation> <translation>Besprechung löschen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="760"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="761"/>
<source>meeting_address_copied_to_clipboard_toast</source> <source>meeting_address_copied_to_clipboard_toast</source>
<extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment> <extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment>
<translation>Besprechungs-URI kopiert</translation> <translation>Besprechungs-URI kopiert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="796"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="797"/>
<source>meeting_schedule_timezone_title</source> <source>meeting_schedule_timezone_title</source>
<extracomment>&quot;Fuseau horaire&quot;</extracomment> <extracomment>&quot;Fuseau horaire&quot;</extracomment>
<translation>Zeitzone</translation> <translation>Zeitzone</translation>
@ -4389,19 +4389,19 @@ Error</extracomment>
<context> <context>
<name>NotificationReceivedCall</name> <name>NotificationReceivedCall</name>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="93"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="94"/>
<source>call_audio_incoming</source> <source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment> <extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Eingehender Anruf</translation> <translation>Eingehender Anruf</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="116"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="117"/>
<source>dialog_accept</source> <source>dialog_accept</source>
<extracomment>&quot;Accepter&quot;</extracomment> <extracomment>&quot;Accepter&quot;</extracomment>
<translation>Akzeptieren</translation> <translation>Akzeptieren</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="134"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="135"/>
<source>dialog_deny</source> <source>dialog_deny</source>
<extracomment>&quot;Refuser</extracomment> <extracomment>&quot;Refuser</extracomment>
<translation>Ablehnen</translation> <translation>Ablehnen</translation>
@ -5238,49 +5238,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<context> <context>
<name>ToolModel</name> <name>ToolModel</name>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="298"/> <location filename="../../model/tool/ToolModel.cpp" line="311"/>
<source>call_error_uninterpretable_sip_address</source> <source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment> <extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation> <translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="370"/> <location filename="../../model/tool/ToolModel.cpp" line="383"/>
<source>group_call_error_no_account</source> <source>group_call_error_no_account</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="395"/> <location filename="../../model/tool/ToolModel.cpp" line="408"/>
<source>group_call_error_participants_invite</source> <source>group_call_error_participants_invite</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="399"/> <location filename="../../model/tool/ToolModel.cpp" line="412"/>
<source>group_call_error_creation</source> <source>group_call_error_creation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="499"/> <location filename="../../model/tool/ToolModel.cpp" line="512"/>
<source>voice_recording_duration</source> <source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment> <extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="507"/> <location filename="../../model/tool/ToolModel.cpp" line="520"/>
<source>conference_invitation</source> <source>conference_invitation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="509"/> <location filename="../../model/tool/ToolModel.cpp" line="522"/>
<source>conference_invitation_updated</source> <source>conference_invitation_updated</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="511"/> <location filename="../../model/tool/ToolModel.cpp" line="524"/>
<source>conference_invitation_cancelled</source> <source>conference_invitation_cancelled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="572"/> <location filename="../../model/tool/ToolModel.cpp" line="585"/>
<source>unknown_audio_device_name</source> <source>unknown_audio_device_name</source>
<translation>Unbekannter Gerätename</translation> <translation>Unbekannter Gerätename</translation>
</message> </message>

View file

@ -27,45 +27,45 @@
<context> <context>
<name>AccountCore</name> <name>AccountCore</name>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="445"/> <location filename="../../core/account/AccountCore.cpp" line="436"/>
<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="448"/> <location filename="../../core/account/AccountCore.cpp" line="439"/>
<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="451"/> <location filename="../../core/account/AccountCore.cpp" line="442"/>
<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="454"/> <location filename="../../core/account/AccountCore.cpp" line="445"/>
<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="458"/> <location filename="../../core/account/AccountCore.cpp" line="449"/>
<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="492"/> <location filename="../../core/account/AccountCore.cpp" line="483"/>
<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="495"/> <location filename="../../core/account/AccountCore.cpp" line="486"/>
<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="499"/> <location filename="../../core/account/AccountCore.cpp" line="490"/>
<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>
@ -847,25 +847,25 @@
<context> <context>
<name>CallHistoryLayout</name> <name>CallHistoryLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="116"/>
<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>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="135"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="134"/>
<source>contact_call_action</source> <source>contact_call_action</source>
<extracomment>&quot;Appel&quot;</extracomment> <extracomment>&quot;Appel&quot;</extracomment>
<translation>Call</translation> <translation>Call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="149"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="148"/>
<source>contact_message_action</source> <source>contact_message_action</source>
<extracomment>&quot;Message&quot;</extracomment> <extracomment>&quot;Message&quot;</extracomment>
<translation>Message</translation> <translation>Message</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="165"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="164"/>
<source>contact_video_call_action</source> <source>contact_video_call_action</source>
<extracomment>&quot;Appel Video&quot;</extracomment> <extracomment>&quot;Appel Video&quot;</extracomment>
<translation>Video call</translation> <translation>Video call</translation>
@ -1067,7 +1067,7 @@
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="529"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="527"/>
<source>menu_delete_history</source> <source>menu_delete_history</source>
<extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment> <extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment>
<translation>Delete history</translation> <translation>Delete history</translation>
@ -1111,7 +1111,7 @@
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="503"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Error</translation> <translation>Error</translation>
</message> </message>
@ -1128,55 +1128,55 @@
<translation>You are not connected</translation> <translation>You are not connected</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="468"/>
<source>menu_see_existing_contact</source> <source>menu_see_existing_contact</source>
<extracomment>&quot;Show contact&quot;</extracomment> <extracomment>&quot;Show contact&quot;</extracomment>
<translation>Show contact</translation> <translation>Show contact</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="472"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<source>menu_add_address_to_contacts</source> <source>menu_add_address_to_contacts</source>
<extracomment>&quot;Add to contacts&quot;</extracomment> <extracomment>&quot;Add to contacts&quot;</extracomment>
<translation>Add to contacts</translation> <translation>Add to contacts</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="487"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="485"/>
<source>menu_copy_sip_address</source> <source>menu_copy_sip_address</source>
<extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment> <extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment>
<translation>Copy SIP address</translation> <translation>Copy SIP address</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="497"/>
<source>sip_address_copied_to_clipboard_toast</source> <source>sip_address_copied_to_clipboard_toast</source>
<extracomment>Adresse copiée</extracomment> <extracomment>Adresse copiée</extracomment>
<translation>SIP address copied</translation> <translation>SIP address copied</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="501"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<source>sip_address_copied_to_clipboard_message</source> <source>sip_address_copied_to_clipboard_message</source>
<extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment> <extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment>
<translation>The address has been copied to the clipboard</translation> <translation>The address has been copied to the clipboard</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="507"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<source>sip_address_copy_to_clipboard_error</source> <source>sip_address_copy_to_clipboard_error</source>
<extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment> <extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment>
<translation>Error copying address</translation> <translation>Error copying address</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="605"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="612"/>
<source>notification_missed_call_title</source> <source>notification_missed_call_title</source>
<extracomment>&quot;Appel manqué&quot;</extracomment> <extracomment>&quot;Appel manqué&quot;</extracomment>
<translation>Missed call</translation> <translation>Missed call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="608"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="615"/>
<source>call_outgoing</source> <source>call_outgoing</source>
<extracomment>&quot;Appel sortant&quot;</extracomment> <extracomment>&quot;Appel sortant&quot;</extracomment>
<translation>Outgoing call</translation> <translation>Outgoing call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="610"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="617"/>
<source>call_audio_incoming</source> <source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment> <extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Incoming call</translation> <translation>Incoming call</translation>
@ -1784,13 +1784,13 @@
<context> <context>
<name>ChatCore</name> <name>ChatCore</name>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="176"/> <location filename="../../core/chat/ChatCore.cpp" line="142"/>
<source>info_toast_deleted_title</source> <source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment> <extracomment>Deleted</extracomment>
<translation>Deleted</translation> <translation>Deleted</translation>
</message> </message>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="178"/> <location filename="../../core/chat/ChatCore.cpp" line="144"/>
<source>info_toast_deleted_message_history</source> <source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment> <extracomment>Message history has been deleted</extracomment>
<translation>Message history has been deleted</translation> <translation>Message history has been deleted</translation>
@ -1814,65 +1814,65 @@
<context> <context>
<name>ChatListView</name> <name>ChatListView</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="286"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="285"/>
<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>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="288"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="287"/>
<source>chat_message_draft_sending_text</source> <source>chat_message_draft_sending_text</source>
<translation>Draft : %1</translation> <translation>Draft : %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="430"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="429"/>
<source>chat_room_delete</source> <source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment> <extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation> <translation>Delete</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="370"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<source>chat_room_mute</source> <source>chat_room_mute</source>
<translation>Mute</translation> <translation>Mute</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
<source>chat_room_unmute</source> <source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment> <extracomment>&quot;Mute&quot;</extracomment>
<translation>Unmute</translation> <translation>Unmute</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<source>chat_room_mark_as_read</source> <source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment> <extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Mark as read</translation> <translation>Mark as read</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="401"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<source>chat_room_leave</source> <source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment> <extracomment>&quot;leave&quot;</extracomment>
<translation>Leave</translation> <translation>Leave</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="407"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<source>chat_list_leave_chat_popup_title</source> <source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment> <extracomment>leave the conversation ?</extracomment>
<translation>Leave the conversation ?</translation> <translation>Leave the conversation ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<source>chat_list_leave_chat_popup_message</source> <source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment> <extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</translation> <translation>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="436"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="435"/>
<source>chat_list_delete_chat_popup_title</source> <source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment> <extracomment>Delete the conversation ?</extracomment>
<translation>Delete the conversation ?</translation> <translation>Delete the conversation ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="438"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="437"/>
<source>chat_list_delete_chat_popup_message</source> <source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment> <extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>This conversation and all its messages will be deleted. Do You want to continue ?</translation> <translation>This conversation and all its messages will be deleted. Do You want to continue ?</translation>
@ -3157,42 +3157,42 @@ Only your correspondent can decrypt them.</translation>
<context> <context>
<name>EphemeralSettings</name> <name>EphemeralSettings</name>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="58"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="57"/>
<source>title</source> <source>title</source>
<translation>Ephemeral messages</translation> <translation>Ephemeral messages</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="77"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="76"/>
<source>explanations</source> <source>explanations</source>
<translation>By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period.</translation> <translation>By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="21"/>
<source>one_minute</source> <source>one_minute</source>
<translation>1 minute</translation> <translation>1 minute</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<source>one_hour</source> <source>one_hour</source>
<translation>1 hour</translation> <translation>1 hour</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<source>one_day</source> <source>one_day</source>
<translation>1 day</translation> <translation>1 day</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<source>one_week</source> <source>one_week</source>
<translation>1 week</translation> <translation>1 week</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="26"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<source>disabled</source> <source>disabled</source>
<translation>Disabled</translation> <translation>Disabled</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="35"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="34"/>
<source>custom</source> <source>custom</source>
<translation>Custom: </translation> <translation>Custom: </translation>
</message> </message>
@ -4002,110 +4002,110 @@ Expiration : %1</translation>
<translation>Back</translation> <translation>Back</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="180"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="179"/>
<source>meetings_list_title</source> <source>meetings_list_title</source>
<extracomment>Réunions</extracomment> <extracomment>Réunions</extracomment>
<translation>Meetings</translation> <translation>Meetings</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="219"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="218"/>
<source>meetings_search_hint</source> <source>meetings_search_hint</source>
<extracomment>&quot;Rechercher une réunion&quot;</extracomment> <extracomment>&quot;Rechercher une réunion&quot;</extracomment>
<translation>Find meeting</translation> <translation>Find meeting</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="236"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="235"/>
<source>list_filter_no_result_found</source> <source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment> <extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>No result</translation> <translation>No result</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="238"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="237"/>
<source>meetings_empty_list</source> <source>meetings_empty_list</source>
<extracomment>&quot;Aucune réunion&quot;</extracomment> <extracomment>&quot;Aucune réunion&quot;</extracomment>
<translation>No meeting</translation> <translation>No meeting</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="308"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="307"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="369"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="368"/>
<source>meeting_schedule_title</source> <source>meeting_schedule_title</source>
<extracomment>&quot;Nouvelle réunion&quot;</extracomment> <extracomment>&quot;Nouvelle réunion&quot;</extracomment>
<translation>New meeting</translation> <translation>New meeting</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="319"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="318"/>
<source>create</source> <source>create</source>
<translation>Create</translation> <translation>Create</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="326"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="325"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="330"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="329"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="381"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="380"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="481"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="484"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="533"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="532"/>
<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/Main/Meeting/MeetingPage.qml" line="328"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="327"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="483"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<source>meeting_schedule_mandatory_field_not_filled_toast</source> <source>meeting_schedule_mandatory_field_not_filled_toast</source>
<extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment> <extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment>
<translation>Please fill the title and select at least one participant</translation> <translation>Please fill the title and select at least one participant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="332"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="331"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="486"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<source>meeting_schedule_duration_error_toast</source> <source>meeting_schedule_duration_error_toast</source>
<extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment> <extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment>
<translation>The end of the conference must be more recent than its beginning</translation> <translation>The end of the conference must be more recent than its beginning</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="336"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="335"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="376"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="375"/>
<source>meeting_schedule_creation_in_progress</source> <source>meeting_schedule_creation_in_progress</source>
<extracomment>&quot;Création de la réunion en cours &quot;</extracomment> <extracomment>&quot;Création de la réunion en cours &quot;</extracomment>
<translation>Creation in progress</translation> <translation>Creation in progress</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="371"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="370"/>
<source>meeting_info_created_toast</source> <source>meeting_info_created_toast</source>
<extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment> <extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment>
<translation>Meeting successfully created</translation> <translation>Meeting successfully created</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="383"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="382"/>
<source>meeting_failed_to_schedule_toast</source> <source>meeting_failed_to_schedule_toast</source>
<extracomment>&quot;Échec de création de la réunion !&quot;</extracomment> <extracomment>&quot;Échec de création de la réunion !&quot;</extracomment>
<translation>Failed to create meeting!</translation> <translation>Failed to create meeting!</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="475"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="474"/>
<source>save</source> <source>save</source>
<translation>Save</translation> <translation>Save</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="524"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="523"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="758"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="759"/>
<source>saved</source> <source>saved</source>
<extracomment>&quot;Enregistré&quot;</extracomment> <extracomment>&quot;Enregistré&quot;</extracomment>
<translation>Saved</translation> <translation>Saved</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="526"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="525"/>
<source>meeting_info_updated_toast</source> <source>meeting_info_updated_toast</source>
<extracomment>&quot;Réunion mise à jour&quot;</extracomment> <extracomment>&quot;Réunion mise à jour&quot;</extracomment>
<translation>Meeting updated</translation> <translation>Meeting updated</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="531"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="530"/>
<source>meeting_schedule_edit_in_progress</source> <source>meeting_schedule_edit_in_progress</source>
<extracomment>&quot;Modification de la réunion en cours&quot;</extracomment> <extracomment>&quot;Modification de la réunion en cours&quot;</extracomment>
<translation>Meeting update in progress</translation> <translation>Meeting update in progress</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="535"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="534"/>
<source>meeting_failed_to_edit_toast</source> <source>meeting_failed_to_edit_toast</source>
<extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment> <extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment>
<translation>Failed to update meeting !</translation> <translation>Failed to update meeting !</translation>
@ -4131,19 +4131,19 @@ Expiration : %1</translation>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="688"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="690"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Delete meeting</translation> <translation>Delete meeting</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="760"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="761"/>
<source>meeting_address_copied_to_clipboard_toast</source> <source>meeting_address_copied_to_clipboard_toast</source>
<extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment> <extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment>
<translation>Meeting URI copied</translation> <translation>Meeting URI copied</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="796"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="797"/>
<source>meeting_schedule_timezone_title</source> <source>meeting_schedule_timezone_title</source>
<extracomment>&quot;Fuseau horaire&quot;</extracomment> <extracomment>&quot;Fuseau horaire&quot;</extracomment>
<translation>Timezone</translation> <translation>Timezone</translation>
@ -4290,19 +4290,19 @@ Expiration : %1</translation>
<context> <context>
<name>NotificationReceivedCall</name> <name>NotificationReceivedCall</name>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="93"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="94"/>
<source>call_audio_incoming</source> <source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment> <extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Incoming call</translation> <translation>Incoming call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="116"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="117"/>
<source>dialog_accept</source> <source>dialog_accept</source>
<extracomment>&quot;Accepter&quot;</extracomment> <extracomment>&quot;Accepter&quot;</extracomment>
<translation>Accept</translation> <translation>Accept</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="134"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="135"/>
<source>dialog_deny</source> <source>dialog_deny</source>
<extracomment>&quot;Refuser</extracomment> <extracomment>&quot;Refuser</extracomment>
<translation>Decline</translation> <translation>Decline</translation>
@ -5127,49 +5127,49 @@ To enable them in a commercial project, please contact us.</translation>
<context> <context>
<name>ToolModel</name> <name>ToolModel</name>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="298"/> <location filename="../../model/tool/ToolModel.cpp" line="311"/>
<source>call_error_uninterpretable_sip_address</source> <source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment> <extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>The calling address is not an interpretable SIP address : %1</translation> <translation>The calling address is not an interpretable SIP address : %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="370"/> <location filename="../../model/tool/ToolModel.cpp" line="383"/>
<source>group_call_error_no_account</source> <source>group_call_error_no_account</source>
<translation>No default account found, can&apos;t create group call</translation> <translation>No default account found, can&apos;t create group call</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="395"/> <location filename="../../model/tool/ToolModel.cpp" line="408"/>
<source>group_call_error_participants_invite</source> <source>group_call_error_participants_invite</source>
<translation>Couldn&apos;t invite participants to group call</translation> <translation>Couldn&apos;t invite participants to group call</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="399"/> <location filename="../../model/tool/ToolModel.cpp" line="412"/>
<source>group_call_error_creation</source> <source>group_call_error_creation</source>
<translation>Group call couldn&apos;t be created</translation> <translation>Group call couldn&apos;t be created</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="499"/> <location filename="../../model/tool/ToolModel.cpp" line="512"/>
<source>voice_recording_duration</source> <source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment> <extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Voice recording (%1)</translation> <translation>Voice recording (%1)</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="572"/> <location filename="../../model/tool/ToolModel.cpp" line="585"/>
<source>unknown_audio_device_name</source> <source>unknown_audio_device_name</source>
<translation>Unknown device name</translation> <translation>Unknown device name</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="507"/> <location filename="../../model/tool/ToolModel.cpp" line="520"/>
<source>conference_invitation</source> <source>conference_invitation</source>
<translation>Meeting invitation</translation> <translation>Meeting invitation</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="511"/> <location filename="../../model/tool/ToolModel.cpp" line="524"/>
<source>conference_invitation_cancelled</source> <source>conference_invitation_cancelled</source>
<translation>Meeting cancellation</translation> <translation>Meeting cancellation</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="509"/> <location filename="../../model/tool/ToolModel.cpp" line="522"/>
<source>conference_invitation_updated</source> <source>conference_invitation_updated</source>
<translation>Meeting modification</translation> <translation>Meeting modification</translation>
</message> </message>

View file

@ -27,45 +27,45 @@
<context> <context>
<name>AccountCore</name> <name>AccountCore</name>
<message> <message>
<location filename="../../core/account/AccountCore.cpp" line="445"/> <location filename="../../core/account/AccountCore.cpp" line="436"/>
<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="448"/> <location filename="../../core/account/AccountCore.cpp" line="439"/>
<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="451"/> <location filename="../../core/account/AccountCore.cpp" line="442"/>
<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="454"/> <location filename="../../core/account/AccountCore.cpp" line="445"/>
<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="458"/> <location filename="../../core/account/AccountCore.cpp" line="449"/>
<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="492"/> <location filename="../../core/account/AccountCore.cpp" line="483"/>
<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="495"/> <location filename="../../core/account/AccountCore.cpp" line="486"/>
<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="499"/> <location filename="../../core/account/AccountCore.cpp" line="490"/>
<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>
@ -847,25 +847,25 @@
<context> <context>
<name>CallHistoryLayout</name> <name>CallHistoryLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="116"/>
<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>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="135"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="134"/>
<source>contact_call_action</source> <source>contact_call_action</source>
<extracomment>&quot;Appel&quot;</extracomment> <extracomment>&quot;Appel&quot;</extracomment>
<translation>Appel</translation> <translation>Appel</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="149"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="148"/>
<source>contact_message_action</source> <source>contact_message_action</source>
<extracomment>&quot;Message&quot;</extracomment> <extracomment>&quot;Message&quot;</extracomment>
<translation>Message</translation> <translation>Message</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="165"/> <location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="164"/>
<source>contact_video_call_action</source> <source>contact_video_call_action</source>
<extracomment>&quot;Appel Video&quot;</extracomment> <extracomment>&quot;Appel Video&quot;</extracomment>
<translation>Appel Vidéo</translation> <translation>Appel Vidéo</translation>
@ -1057,7 +1057,7 @@
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="529"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="527"/>
<source>menu_delete_history</source> <source>menu_delete_history</source>
<extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment> <extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment>
<translation>Supprimer l&apos;historique</translation> <translation>Supprimer l&apos;historique</translation>
@ -1111,7 +1111,7 @@
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="503"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
@ -1128,55 +1128,55 @@
<translation>Vous n&apos;etes pas connecté</translation> <translation>Vous n&apos;etes pas connecté</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="468"/>
<source>menu_see_existing_contact</source> <source>menu_see_existing_contact</source>
<extracomment>&quot;Show contact&quot;</extracomment> <extracomment>&quot;Show contact&quot;</extracomment>
<translation>Voir le contact</translation> <translation>Voir le contact</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="472"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<source>menu_add_address_to_contacts</source> <source>menu_add_address_to_contacts</source>
<extracomment>&quot;Add to contacts&quot;</extracomment> <extracomment>&quot;Add to contacts&quot;</extracomment>
<translation>Ajouter aux contacts</translation> <translation>Ajouter aux contacts</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="487"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="485"/>
<source>menu_copy_sip_address</source> <source>menu_copy_sip_address</source>
<extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment> <extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment>
<translation>Copier l&apos;adresse SIP</translation> <translation>Copier l&apos;adresse SIP</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="497"/>
<source>sip_address_copied_to_clipboard_toast</source> <source>sip_address_copied_to_clipboard_toast</source>
<extracomment>Adresse copiée</extracomment> <extracomment>Adresse copiée</extracomment>
<translation>Adresse copiée</translation> <translation>Adresse copiée</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="501"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<source>sip_address_copied_to_clipboard_message</source> <source>sip_address_copied_to_clipboard_message</source>
<extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment> <extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment>
<translation>L&apos;adresse a é copié dans le presse-papiers</translation> <translation>L&apos;adresse a é copié dans le presse-papiers</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="507"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<source>sip_address_copy_to_clipboard_error</source> <source>sip_address_copy_to_clipboard_error</source>
<extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment> <extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment>
<translation>Erreur lors de la copie de l&apos;adresse</translation> <translation>Erreur lors de la copie de l&apos;adresse</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="605"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="612"/>
<source>notification_missed_call_title</source> <source>notification_missed_call_title</source>
<extracomment>&quot;Appel manqué&quot;</extracomment> <extracomment>&quot;Appel manqué&quot;</extracomment>
<translation>Appel manqué</translation> <translation>Appel manqué</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="608"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="615"/>
<source>call_outgoing</source> <source>call_outgoing</source>
<extracomment>&quot;Appel sortant&quot;</extracomment> <extracomment>&quot;Appel sortant&quot;</extracomment>
<translation>Appel sortant</translation> <translation>Appel sortant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="610"/> <location filename="../../view/Page/Main/Call/CallPage.qml" line="617"/>
<source>call_audio_incoming</source> <source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment> <extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Appel entrant</translation> <translation>Appel entrant</translation>
@ -1784,13 +1784,13 @@
<context> <context>
<name>ChatCore</name> <name>ChatCore</name>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="176"/> <location filename="../../core/chat/ChatCore.cpp" line="142"/>
<source>info_toast_deleted_title</source> <source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment> <extracomment>Deleted</extracomment>
<translation>Supprimé</translation> <translation>Supprimé</translation>
</message> </message>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="178"/> <location filename="../../core/chat/ChatCore.cpp" line="144"/>
<source>info_toast_deleted_message_history</source> <source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment> <extracomment>Message history has been deleted</extracomment>
<translation>L&apos;historique des messages a é supprimé</translation> <translation>L&apos;historique des messages a é supprimé</translation>
@ -1814,65 +1814,65 @@
<context> <context>
<name>ChatListView</name> <name>ChatListView</name>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="286"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="285"/>
<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>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="288"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="287"/>
<source>chat_message_draft_sending_text</source> <source>chat_message_draft_sending_text</source>
<translation>Brouillon : %1</translation> <translation>Brouillon : %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="430"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="429"/>
<source>chat_room_delete</source> <source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment> <extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation> <translation>Supprimer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="370"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<source>chat_room_mute</source> <source>chat_room_mute</source>
<translation>Mettre en sourdine</translation> <translation>Mettre en sourdine</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
<source>chat_room_unmute</source> <source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment> <extracomment>&quot;Mute&quot;</extracomment>
<translation>Enlever la sourdine </translation> <translation>Enlever la sourdine </translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<source>chat_room_mark_as_read</source> <source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment> <extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Marquer comme lu</translation> <translation>Marquer comme lu</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="401"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<source>chat_room_leave</source> <source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment> <extracomment>&quot;leave&quot;</extracomment>
<translation>Quitter la conversation</translation> <translation>Quitter la conversation</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="407"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<source>chat_list_leave_chat_popup_title</source> <source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment> <extracomment>leave the conversation ?</extracomment>
<translation>Quitter la conversation ?</translation> <translation>Quitter la conversation ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<source>chat_list_leave_chat_popup_message</source> <source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment> <extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ?</translation> <translation>Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="436"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="435"/>
<source>chat_list_delete_chat_popup_title</source> <source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment> <extracomment>Delete the conversation ?</extracomment>
<translation>Supprimer la conversation ?</translation> <translation>Supprimer la conversation ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="438"/> <location filename="../../view/Control/Display/Chat/ChatListView.qml" line="437"/>
<source>chat_list_delete_chat_popup_message</source> <source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment> <extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ?</translation> <translation>La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ?</translation>
@ -3157,42 +3157,42 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<context> <context>
<name>EphemeralSettings</name> <name>EphemeralSettings</name>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="58"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="57"/>
<source>title</source> <source>title</source>
<translation>Messages éphémères</translation> <translation>Messages éphémères</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="77"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="76"/>
<source>explanations</source> <source>explanations</source>
<translation>En activant les messages éphémères dans cette discussion, les messages envoyés seront automatiquement détruits après le délai défini.</translation> <translation>En activant les messages éphémères dans cette discussion, les messages envoyés seront automatiquement détruits après le délai défini.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="21"/>
<source>one_minute</source> <source>one_minute</source>
<translation>1 minute</translation> <translation>1 minute</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<source>one_hour</source> <source>one_hour</source>
<translation>1 heure</translation> <translation>1 heure</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<source>one_day</source> <source>one_day</source>
<translation>1 jour</translation> <translation>1 jour</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<source>one_week</source> <source>one_week</source>
<translation>1 semaine</translation> <translation>1 semaine</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="26"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<source>disabled</source> <source>disabled</source>
<translation>Désactivé</translation> <translation>Désactivé</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="35"/> <location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="34"/>
<source>custom</source> <source>custom</source>
<translation>Personnalisé: </translation> <translation>Personnalisé: </translation>
</message> </message>
@ -4002,110 +4002,110 @@ Expiration : %1</translation>
<translation>Retour</translation> <translation>Retour</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="180"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="179"/>
<source>meetings_list_title</source> <source>meetings_list_title</source>
<extracomment>Réunions</extracomment> <extracomment>Réunions</extracomment>
<translation>Réunions</translation> <translation>Réunions</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="219"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="218"/>
<source>meetings_search_hint</source> <source>meetings_search_hint</source>
<extracomment>&quot;Rechercher une réunion&quot;</extracomment> <extracomment>&quot;Rechercher une réunion&quot;</extracomment>
<translation>Rechercher une réunion</translation> <translation>Rechercher une réunion</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="236"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="235"/>
<source>list_filter_no_result_found</source> <source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment> <extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Aucun résultat</translation> <translation>Aucun résultat</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="238"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="237"/>
<source>meetings_empty_list</source> <source>meetings_empty_list</source>
<extracomment>&quot;Aucune réunion&quot;</extracomment> <extracomment>&quot;Aucune réunion&quot;</extracomment>
<translation>Aucune réunion</translation> <translation>Aucune réunion</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="308"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="307"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="369"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="368"/>
<source>meeting_schedule_title</source> <source>meeting_schedule_title</source>
<extracomment>&quot;Nouvelle réunion&quot;</extracomment> <extracomment>&quot;Nouvelle réunion&quot;</extracomment>
<translation>Nouvelle réunion</translation> <translation>Nouvelle réunion</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="319"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="318"/>
<source>create</source> <source>create</source>
<translation>Créer</translation> <translation>Créer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="326"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="325"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="330"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="329"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="381"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="380"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="481"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="484"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="533"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="532"/>
<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/Main/Meeting/MeetingPage.qml" line="328"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="327"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="483"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<source>meeting_schedule_mandatory_field_not_filled_toast</source> <source>meeting_schedule_mandatory_field_not_filled_toast</source>
<extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment> <extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment>
<translation>Veuillez saisir un titre et sélectionner au moins un participant</translation> <translation>Veuillez saisir un titre et sélectionner au moins un participant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="332"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="331"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="486"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<source>meeting_schedule_duration_error_toast</source> <source>meeting_schedule_duration_error_toast</source>
<extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment> <extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment>
<translation>La fin de la conférence doit être plus récente que son début</translation> <translation>La fin de la conférence doit être plus récente que son début</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="336"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="335"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="376"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="375"/>
<source>meeting_schedule_creation_in_progress</source> <source>meeting_schedule_creation_in_progress</source>
<extracomment>&quot;Création de la réunion en cours &quot;</extracomment> <extracomment>&quot;Création de la réunion en cours &quot;</extracomment>
<translation>Création de la réunion en cours</translation> <translation>Création de la réunion en cours</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="371"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="370"/>
<source>meeting_info_created_toast</source> <source>meeting_info_created_toast</source>
<extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment> <extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment>
<translation>Réunion planifiée avec succès</translation> <translation>Réunion planifiée avec succès</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="383"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="382"/>
<source>meeting_failed_to_schedule_toast</source> <source>meeting_failed_to_schedule_toast</source>
<extracomment>&quot;Échec de création de la réunion !&quot;</extracomment> <extracomment>&quot;Échec de création de la réunion !&quot;</extracomment>
<translation>Échec de création de la réunion !</translation> <translation>Échec de création de la réunion !</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="475"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="474"/>
<source>save</source> <source>save</source>
<translation>Enregistrer</translation> <translation>Enregistrer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="524"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="523"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="758"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="759"/>
<source>saved</source> <source>saved</source>
<extracomment>&quot;Enregistré&quot;</extracomment> <extracomment>&quot;Enregistré&quot;</extracomment>
<translation>Enregistré</translation> <translation>Enregistré</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="526"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="525"/>
<source>meeting_info_updated_toast</source> <source>meeting_info_updated_toast</source>
<extracomment>&quot;Réunion mise à jour&quot;</extracomment> <extracomment>&quot;Réunion mise à jour&quot;</extracomment>
<translation>Réunion mise à jour</translation> <translation>Réunion mise à jour</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="531"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="530"/>
<source>meeting_schedule_edit_in_progress</source> <source>meeting_schedule_edit_in_progress</source>
<extracomment>&quot;Modification de la réunion en cours&quot;</extracomment> <extracomment>&quot;Modification de la réunion en cours&quot;</extracomment>
<translation>Modification de la réunion en cours</translation> <translation>Modification de la réunion en cours</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="535"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="534"/>
<source>meeting_failed_to_edit_toast</source> <source>meeting_failed_to_edit_toast</source>
<extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment> <extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment>
<translation>Échec de la modification de la réunion !</translation> <translation>Échec de la modification de la réunion !</translation>
@ -4131,19 +4131,19 @@ Expiration : %1</translation>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="688"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="690"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Supprimer la réunion</translation> <translation>Supprimer la réunion</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="760"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="761"/>
<source>meeting_address_copied_to_clipboard_toast</source> <source>meeting_address_copied_to_clipboard_toast</source>
<extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment> <extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment>
<translation>Adresse de la réunion copiée</translation> <translation>Adresse de la réunion copiée</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="796"/> <location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="797"/>
<source>meeting_schedule_timezone_title</source> <source>meeting_schedule_timezone_title</source>
<extracomment>&quot;Fuseau horaire&quot;</extracomment> <extracomment>&quot;Fuseau horaire&quot;</extracomment>
<translation>Fuseau horaire</translation> <translation>Fuseau horaire</translation>
@ -4290,19 +4290,19 @@ Expiration : %1</translation>
<context> <context>
<name>NotificationReceivedCall</name> <name>NotificationReceivedCall</name>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="93"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="94"/>
<source>call_audio_incoming</source> <source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment> <extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Appel entrant</translation> <translation>Appel entrant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="116"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="117"/>
<source>dialog_accept</source> <source>dialog_accept</source>
<extracomment>&quot;Accepter&quot;</extracomment> <extracomment>&quot;Accepter&quot;</extracomment>
<translation>Accepter</translation> <translation>Accepter</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="134"/> <location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="135"/>
<source>dialog_deny</source> <source>dialog_deny</source>
<extracomment>&quot;Refuser</extracomment> <extracomment>&quot;Refuser</extracomment>
<translation>Refuser</translation> <translation>Refuser</translation>
@ -5127,49 +5127,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<context> <context>
<name>ToolModel</name> <name>ToolModel</name>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="298"/> <location filename="../../model/tool/ToolModel.cpp" line="311"/>
<source>call_error_uninterpretable_sip_address</source> <source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment> <extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>L&apos;adresse n&apos;est pas interprétable comme une adresse SIP</translation> <translation>L&apos;adresse n&apos;est pas interprétable comme une adresse SIP</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="370"/> <location filename="../../model/tool/ToolModel.cpp" line="383"/>
<source>group_call_error_no_account</source> <source>group_call_error_no_account</source>
<translation>Impossible de créer l&apos;appel de groupe, le compte par défaut n&apos;est pas défini</translation> <translation>Impossible de créer l&apos;appel de groupe, le compte par défaut n&apos;est pas défini</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="395"/> <location filename="../../model/tool/ToolModel.cpp" line="408"/>
<source>group_call_error_participants_invite</source> <source>group_call_error_participants_invite</source>
<translation>Impossible d&apos;inviter les participants à l&apos;appel de groupe</translation> <translation>Impossible d&apos;inviter les participants à l&apos;appel de groupe</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="399"/> <location filename="../../model/tool/ToolModel.cpp" line="412"/>
<source>group_call_error_creation</source> <source>group_call_error_creation</source>
<translation>L&apos;appel de groupe n&apos;a pas pu être créé</translation> <translation>L&apos;appel de groupe n&apos;a pas pu être créé</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="499"/> <location filename="../../model/tool/ToolModel.cpp" line="512"/>
<source>voice_recording_duration</source> <source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment> <extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Message vocal (%1)</translation> <translation>Message vocal (%1)</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="572"/> <location filename="../../model/tool/ToolModel.cpp" line="585"/>
<source>unknown_audio_device_name</source> <source>unknown_audio_device_name</source>
<translation>Appareil inconnu</translation> <translation>Appareil inconnu</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="507"/> <location filename="../../model/tool/ToolModel.cpp" line="520"/>
<source>conference_invitation</source> <source>conference_invitation</source>
<translation>Invitation à une réunion</translation> <translation>Invitation à une réunion</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="511"/> <location filename="../../model/tool/ToolModel.cpp" line="524"/>
<source>conference_invitation_cancelled</source> <source>conference_invitation_cancelled</source>
<translation>Annulation d&apos;une réunion</translation> <translation>Annulation d&apos;une réunion</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="509"/> <location filename="../../model/tool/ToolModel.cpp" line="522"/>
<source>conference_invitation_updated</source> <source>conference_invitation_updated</source>
<translation>Modification d&apos;une réunion</translation> <translation>Modification d&apos;une réunion</translation>
</message> </message>

View file

@ -68,10 +68,13 @@ void ConferenceInfoModel::setConferenceScheduler(const std::shared_ptr<Conferenc
params->enableChat(true); params->enableChat(true);
params->enableGroup(false); params->enableGroup(false);
params->setAccount(mConferenceSchedulerModel->getMonitor()->getAccount()); params->setAccount(mConferenceSchedulerModel->getMonitor()->getAccount());
// set to basic cause FlexisipChat force to set a subject params->setSubject("Meeting invitation"); // won't be used but necessary to send in a
params->getChatParams()->setBackend(linphone::ChatRoom::Backend::Basic); // secured chatroom
// Lime si chiffré, si non None auto chatParams = params->getChatParams();
params->getChatParams()->setEncryptionBackend(linphone::ChatRoom::EncryptionBackend::None); if (!chatParams) return;
chatParams->setEphemeralLifetime(0);
chatParams->setBackend(linphone::ChatRoom::Backend::FlexisipChat);
params->setSecurityLevel(linphone::Conference::SecurityLevel::EndToEnd);
mConferenceSchedulerModel->getMonitor()->sendInvitations(params); mConferenceSchedulerModel->getMonitor()->sendInvitations(params);
} }
emit schedulerStateChanged(state); emit schedulerStateChanged(state);

View file

@ -91,8 +91,21 @@ QString ToolModel::getDisplayName(const std::shared_ptr<const linphone::Address>
if (displayName.isEmpty()) { if (displayName.isEmpty()) {
displayName = Utils::coreStringToAppString(address->getDisplayName()); displayName = Utils::coreStringToAppString(address->getDisplayName());
if (displayName.isEmpty()) { if (displayName.isEmpty()) {
displayName = Utils::coreStringToAppString(address->getUsername()); auto accounts = CoreModel::getInstance()->getCore()->getAccountList();
displayName.replace('.', ' '); auto found = std::find_if(accounts.begin(), accounts.end(),
[address](std::shared_ptr<linphone::Account> account) {
return address->weakEqual(account->getParams()->getIdentityAddress());
});
if (found != accounts.end()) {
displayName =
Utils::coreStringToAppString(found->get()->getParams()->getIdentityAddress()->getDisplayName());
}
if (displayName.isEmpty()) {
displayName = Utils::coreStringToAppString(address->getUsername());
if (displayName.isEmpty()) {
return Utils::coreStringToAppString(address->asStringUriOnly());
}
}
} }
} }
// TODO // TODO

View file

@ -74,7 +74,6 @@ ColumnLayout {
font { font {
pixelSize: Typography.p1.pixelSize pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight weight: Typography.p1.weight
capitalization: Font.Capitalize
} }
} }
Text { Text {

View file

@ -145,14 +145,12 @@ ListView {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Math.round(5 * DefaultStyle.dp) spacing: Math.round(5 * DefaultStyle.dp)
Text { Text {
id: friendAddress
Layout.fillWidth: true Layout.fillWidth: true
maximumLineCount: 1 maximumLineCount: 1
text: modelData.core.displayName text: modelData.core.displayName
font { font {
pixelSize: Typography.p1.pixelSize pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight weight: Typography.p1.weight
capitalization: Font.Capitalize
} }
} }
RowLayout { RowLayout {

View file

@ -28,6 +28,9 @@ ListView {
} }
onChatClicked: (chat) => {selectChat(chat)} onChatClicked: (chat) => {selectChat(chat)}
onCountChanged: {
selectChat(currentChatGui)
}
signal markAllAsRead() signal markAllAsRead()
signal chatClicked(ChatGui chat) signal chatClicked(ChatGui chat)
@ -38,10 +41,7 @@ ListView {
loading = true loading = true
} }
filterText: mainItem.searchText filterText: mainItem.searchText
onFilterTextChanged: maxDisplayItems = initialDisplayItems initialDisplayItems: Math.max(20, 2 * mainItem.height / (Math.round(56 * DefaultStyle.dp)))
initialDisplayItems: Math.max(
20,
2 * mainItem.height / (Math.round(56 * DefaultStyle.dp)))
displayItemsStep: 3 * initialDisplayItems / 2 displayItemsStep: 3 * initialDisplayItems / 2
onModelReset: { onModelReset: {
loading = false loading = false
@ -205,7 +205,6 @@ ListView {
font { font {
pixelSize: Typography.p1.pixelSize pixelSize: Typography.p1.pixelSize
weight: unreadCount.unread > 0 ? Typography.p2.weight : Typography.p1.weight weight: unreadCount.unread > 0 ? Typography.p2.weight : Typography.p1.weight
capitalization: Font.Capitalize
} }
} }

View file

@ -242,7 +242,7 @@ ListView {
Component.onCompleted: { Component.onCompleted: {
if (index === 0) mainItem.lastItemVisible = isFullyVisible if (index === 0) mainItem.lastItemVisible = isFullyVisible
} }
onYChanged: if (index === 0) mainItem.lastItemVisible = isFullyVisible // onYChanged: if (index === 0) mainItem.lastItemVisible = isFullyVisible
chat: mainItem.chat chat: mainItem.chat
searchedTextPart: mainItem.filterText searchedTextPart: mainItem.filterText
maxWidth: Math.round(mainItem.width * (3/4)) maxWidth: Math.round(mainItem.width * (3/4))

View file

@ -13,8 +13,7 @@ ColumnLayout {
id: mainItem id: mainItem
property ChatGui chatGui property ChatGui chatGui
property var chatCore: chatGui.core property int selectedLifetime: chatGui.core.ephemeralLifetime
property int selectedLifetime: chatCore.ephemeralLifetime
spacing: Math.round(5 * DefaultStyle.dp) spacing: Math.round(5 * DefaultStyle.dp)
signal done() signal done()
@ -48,8 +47,8 @@ ColumnLayout {
style: ButtonStyle.noBackground style: ButtonStyle.noBackground
icon.source: AppIcons.leftArrow icon.source: AppIcons.leftArrow
onClicked: { onClicked: {
if (chatCore.ephemeralLifetime != selectedLifetime) if (chatGui.core.ephemeralLifetime != selectedLifetime)
chatCore.ephemeralLifetime = selectedLifetime chatGui.core.ephemeralLifetime = selectedLifetime
mainItem.done() mainItem.done()
} }
} }

View file

@ -430,8 +430,6 @@ AbstractMainPage {
Component { Component {
id: contactDetailComp id: contactDetailComp
FocusScope { FocusScope {
// width: parent?.width
// height: parent?.height
CallHistoryLayout { CallHistoryLayout {
id: contactDetail id: contactDetail
anchors.fill: parent anchors.fill: parent
@ -552,10 +550,9 @@ AbstractMainPage {
Layout.fillHeight: true Layout.fillHeight: true
RoundedPane { RoundedPane {
id: detailControl id: detailControl
visible: detailListView.count > 0
width: parent.width width: parent.width
height: Math.min( height: Math.min(parent.height, detailListView.contentHeight) + topPadding + bottomPadding
parent.height,
detailListView.contentHeight) + topPadding + bottomPadding
background: Rectangle { background: Rectangle {
id: detailListBackground id: detailListBackground
anchors.fill: parent anchors.fill: parent
@ -563,79 +560,90 @@ AbstractMainPage {
radius: Math.round(15 * DefaultStyle.dp) radius: Math.round(15 * DefaultStyle.dp)
} }
contentItem: CallHistoryListView { contentItem: Control.ScrollView {
id: detailListView id: historyScrollView
Layout.fillWidth: true Control.ScrollBar.vertical: ScrollBar {
Layout.fillHeight: true id: historyScrollBar
spacing: Math.round(14 * DefaultStyle.dp) visible: historyScrollView.contentHeight > historyScrollView.height
clip: true anchors.top: parent.top
searchText: mainItem.selectedRowHistoryGui ? mainItem.selectedRowHistoryGui.core.remoteAddress : "" anchors.bottom: parent.bottom
busyIndicatorSize: Math.round(40 * DefaultStyle.dp) anchors.right: parent.right
}
CallHistoryListView {
id: detailListView
Layout.fillWidth: true
Layout.fillHeight: true
Layout.rightMargin: historyScrollBar.width + Math.round(8 * DefaultStyle.dp)
spacing: Math.round(14 * DefaultStyle.dp)
clip: true
searchText: mainItem.selectedRowHistoryGui ? mainItem.selectedRowHistoryGui.core.remoteAddress : ""
busyIndicatorSize: Math.round(40 * DefaultStyle.dp)
delegate: Item { delegate: Item {
width: detailListView.width width: detailListView.width
height: Math.round(56 * DefaultStyle.dp) height: Math.round(56 * DefaultStyle.dp)
RowLayout { RowLayout {
anchors.fill: parent anchors.fill: parent
anchors.leftMargin: Math.round(20 * DefaultStyle.dp) anchors.leftMargin: Math.round(20 * DefaultStyle.dp)
anchors.rightMargin: Math.round(20 * DefaultStyle.dp) anchors.rightMargin: Math.round(20 * DefaultStyle.dp)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
ColumnLayout { ColumnLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
RowLayout { RowLayout {
EffectImage { EffectImage {
id: statusIcon id: statusIcon
imageSource: modelData.core.status imageSource: modelData.core.status
=== LinphoneEnums.CallStatus.Declined === LinphoneEnums.CallStatus.Declined
|| modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted ? AppIcons.arrowElbow : modelData.core.isOutgoing ? AppIcons.arrowUpRight : AppIcons.arrowDownLeft || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted ? AppIcons.arrowElbow : modelData.core.isOutgoing ? AppIcons.arrowUpRight : AppIcons.arrowDownLeft
colorizationColor: modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted || modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : modelData.core.isOutgoing ? DefaultStyle.info_500_main : DefaultStyle.success_500main colorizationColor: modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted || modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : modelData.core.isOutgoing ? DefaultStyle.info_500_main : DefaultStyle.success_500main
Layout.preferredWidth: Math.round(16 * DefaultStyle.dp) Layout.preferredWidth: Math.round(16 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(16 * DefaultStyle.dp) Layout.preferredHeight: Math.round(16 * DefaultStyle.dp)
transform: Rotation { transform: Rotation {
angle: modelData.core.isOutgoing angle: modelData.core.isOutgoing
&& (modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted) ? 180 : 0 && (modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted) ? 180 : 0
origin { origin {
x: statusIcon.width / 2 x: statusIcon.width / 2
y: statusIcon.height / 2 y: statusIcon.height / 2
}
}
}
Text {
//: "Appel manqué"
text: modelData.core.status === LinphoneEnums.CallStatus.Missed ? qsTr("notification_missed_call_title")
: modelData.core.isOutgoing
//: "Appel sortant"
? qsTr("call_outgoing")
//: "Appel entrant"
: qsTr("call_audio_incoming")
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
} }
} }
} }
Text { Text {
//: "Appel manqué" text: UtilsCpp.formatDate(modelData.core.date)
text: modelData.core.status === LinphoneEnums.CallStatus.Missed ? qsTr("notification_missed_call_title") color: modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : DefaultStyle.main2_500main
: modelData.core.isOutgoing
//: "Appel sortant"
? qsTr("call_outgoing")
//: "Appel entrant"
: qsTr("call_audio_incoming")
font { font {
pixelSize: Typography.p1.pixelSize pixelSize: Math.round(12 * DefaultStyle.dp)
weight: Typography.p1.weight weight: Math.round(300 * DefaultStyle.dp)
} }
} }
} }
Item {
Layout.fillHeight: true
Layout.fillWidth: true
}
Text { Text {
text: UtilsCpp.formatDate(modelData.core.date) text: UtilsCpp.formatElapsedTime(
color: modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : DefaultStyle.main2_500main modelData.core.duration,
false)
font { font {
pixelSize: Math.round(12 * DefaultStyle.dp) pixelSize: Math.round(12 * DefaultStyle.dp)
weight: Math.round(300 * DefaultStyle.dp) weight: Math.round(300 * DefaultStyle.dp)
} }
} }
} }
Item {
Layout.fillHeight: true
Layout.fillWidth: true
}
Text {
text: UtilsCpp.formatElapsedTime(
modelData.core.duration,
false)
font {
pixelSize: Math.round(12 * DefaultStyle.dp)
weight: Math.round(300 * DefaultStyle.dp)
}
}
} }
} }
} }

View file

@ -132,7 +132,6 @@ AbstractMainPage {
anchors.bottomMargin: Math.round(30 * DefaultStyle.dp) anchors.bottomMargin: Math.round(30 * DefaultStyle.dp)
height: parent.height - anchors.topMargin height: parent.height - anchors.topMargin
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
contentHeight: overridenRightPanelStackView.currentItem ? overridenRightPanelStackView.currentItem.childrenRect.height : 0
contentWidth: width contentWidth: width
clip: true clip: true
Control.ScrollBar.vertical: ScrollBar { Control.ScrollBar.vertical: ScrollBar {
@ -141,7 +140,7 @@ AbstractMainPage {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.right: parent.right anchors.right: parent.right
} }
contentChildren: ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
anchors.rightMargin: Math.round(10 * DefaultStyle.dp) anchors.rightMargin: Math.round(10 * DefaultStyle.dp)
width: Math.round(393 * DefaultStyle.dp) width: Math.round(393 * DefaultStyle.dp)
@ -149,7 +148,7 @@ AbstractMainPage {
id: overridenRightPanelStackView id: overridenRightPanelStackView
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.fillHeight: true
height: currentItem ? currentItem.height : 0 Layout.preferredHeight: currentItem ? currentItem.childrenRect.height : 0
} }
} }
} }
@ -551,6 +550,7 @@ AbstractMainPage {
ColumnLayout { ColumnLayout {
id: addParticipantsLayout id: addParticipantsLayout
spacing: Math.round(18 * DefaultStyle.dp) spacing: Math.round(18 * DefaultStyle.dp)
anchors.rightMargin: Math.round(8 * DefaultStyle.dp)
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
@ -626,13 +626,15 @@ AbstractMainPage {
id: meetingDetail id: meetingDetail
FocusScope{ FocusScope{
width: overridenRightPanelStackView.width width: overridenRightPanelStackView.width
height: meetingDetailsLayout.childrenRect.height
ColumnLayout { ColumnLayout {
id: meetingDetailsLayout id: meetingDetailsLayout
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
// anchors.fill: parent
visible: mainItem.selectedConference visible: mainItem.selectedConference
spacing: Math.round(25 * DefaultStyle.dp) spacing: Math.round(16 * DefaultStyle.dp)
Section { Section {
visible: mainItem.selectedConference visible: mainItem.selectedConference
Layout.fillWidth: true Layout.fillWidth: true
@ -752,7 +754,6 @@ AbstractMainPage {
KeyNavigation.right: linkButton KeyNavigation.right: linkButton
KeyNavigation.up: deletePopup KeyNavigation.up: deletePopup
KeyNavigation.down: joinButton KeyNavigation.down: joinButton
Layout.preferredWidth: Math.round(24 * DefaultStyle.dp)
onClicked: { onClicked: {
var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri) var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri)
if (success) UtilsCpp.showInformationPopup(qsTr("saved"), if (success) UtilsCpp.showInformationPopup(qsTr("saved"),
@ -848,9 +849,8 @@ AbstractMainPage {
} }
Section { Section {
visible: participantList.count > 0 visible: participantList.count > 0
Layout.fillWidth: true
content: RowLayout { content: RowLayout {
Layout.preferredHeight: participantList.height Layout.preferredHeight: participantList.contentHeight
width: Math.round(393 * DefaultStyle.dp) width: Math.round(393 * DefaultStyle.dp)
spacing: Math.round(8 * DefaultStyle.dp) spacing: Math.round(8 * DefaultStyle.dp)
EffectImage { EffectImage {
@ -863,7 +863,7 @@ AbstractMainPage {
} }
ListView { ListView {
id: participantList id: participantList
Layout.preferredHeight: Math.min(Math.round(184 * DefaultStyle.dp), contentHeight) Layout.preferredHeight: contentHeight
Layout.fillWidth: true Layout.fillWidth: true
model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : [] model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : []
clip: true clip: true
@ -928,7 +928,6 @@ AbstractMainPage {
UtilsCpp.smartShowWindow(callsWindow) UtilsCpp.smartShowWindow(callsWindow)
} }
} }
Item { Layout.fillHeight: true}
} }
} }
} }