Merge remote-tracking branch 'origin/master' into searching

This commit is contained in:
Sebastian Wolf 2020-12-29 16:33:40 +01:00
commit b4b1eb4bc0
No known key found for this signature in database
GPG key ID: CEA9522B5F38A90A
23 changed files with 475 additions and 43 deletions

View file

@ -37,7 +37,7 @@ Row {
onInReplyToMessageChanged: {
if (inReplyToMessage) {
inReplyToUserText.text = (inReplyToMessage.sender["@type"] === "messageSenderChat" ? page.chatInformation.title : (inReplyToRow.inReplyToMessage.sender.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You"));
inReplyToMessageText.text = Emoji.emojify(Functions.getMessageText(inReplyToRow.inReplyToMessage, true, inReplyToRow.inReplyToMessage.sender.user_id === inReplyToRow.myUserId, false), inReplyToMessageText.font.pixelSize);
inReplyToMessageText.text = Emoji.emojify(Functions.getMessageText(inReplyToRow.inReplyToMessage, true, inReplyToRow.myUserId, false), inReplyToMessageText.font.pixelSize);
}
}

View file

@ -106,7 +106,7 @@ ListItem {
}
MenuItem {
onClicked: {
Clipboard.text = Functions.getMessageText(myMessage, true, false, true);
Clipboard.text = Functions.getMessageText(myMessage, true, userInformation.id, true);
}
text: qsTr("Copy Message to Clipboard")
}
@ -163,7 +163,7 @@ ListItem {
if (index === modelIndex) {
Debug.log("[ChatModel] This message was updated, index ", index, ", updating content...");
messageDateText.text = getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed);
messageText.text = Emoji.emojify(Functions.getMessageText(myMessage, false, messageListItem.isOwnMessage. false), messageText.font.pixelSize);
messageText.text = Emoji.emojify(Functions.getMessageText(myMessage, false, page.myUserId, false), messageText.font.pixelSize);
}
}
}
@ -392,7 +392,7 @@ ListItem {
Text {
id: messageText
width: parent.width
text: Emoji.emojify(Functions.getMessageText(myMessage, false, messageListItem.isOwnMessage, false), font.pixelSize)
text: Emoji.emojify(Functions.getMessageText(myMessage, false, page.myUserId, false), font.pixelSize)
font.pixelSize: Theme.fontSizeSmall
color: messageListItem.textColor
wrapMode: Text.Wrap

View file

@ -43,7 +43,7 @@ Item {
color: Theme.highlightColor
horizontalAlignment: Text.AlignHCenter
font.pixelSize: Theme.fontSizeExtraSmall
text: "<a style=\"text-decoration: none; font-weight: bold; color:"+Theme.primaryColor+"\" href=\"userId://" + messageListItem.userInformation.id + "\">" + (!messageListItem.isOwnMessage ? Emoji.emojify(Functions.getUserName(messageListItem.userInformation), font.pixelSize) : qsTr("You")) + "</a> " + Emoji.emojify(Functions.getMessageText(messageListItem.myMessage, false, messageListItem.isOwnMessage, false), font.pixelSize)
text: "<a style=\"text-decoration: none; font-weight: bold; color:"+Theme.primaryColor+"\" href=\"userId://" + messageListItem.userInformation.id + "\">" + (!messageListItem.isOwnMessage ? Emoji.emojify(Functions.getUserName(messageListItem.userInformation), font.pixelSize) : qsTr("You")) + "</a> " + Emoji.emojify(Functions.getMessageText(messageListItem.myMessage, false, chatPage.myUserId, false), font.pixelSize)
textFormat: Text.RichText
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
onLinkActivated: {

View file

@ -139,7 +139,7 @@ Flickable {
Text {
id: overlayMessageText
width: parent.width
text: Emoji.emojify(Functions.getMessageText(overlayMessage, false, messageOverlayFlickable.isOwnMessage, false), font.pixelSize)
text: Emoji.emojify(Functions.getMessageText(overlayMessage, false, tdLibWrapper.getUserInformation().id, false), font.pixelSize)
font.pixelSize: Theme.fontSizeMedium
color: Theme.primaryColor
wrapMode: Text.Wrap

View file

@ -35,7 +35,7 @@ Item {
Debug.log("[ChatPage] Activating pinned message");
var messageUserText = (pinnedMessage.sender.user_id !== chatPage.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(pinnedMessage.sender.user_id)), pinnedMessageUserText.font.pixelSize) : qsTr("You");
pinnedMessageUserText.text = (messageUserText === "" ? qsTr("Pinned Message") : messageUserText );
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, pinnedMessage.sender.user_id === chatPage.myUserId, false), pinnedMessageText.font.pixelSize);
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, chatPage.myUserId, false), pinnedMessageText.font.pixelSize);
pinnedMessageItem.visible = true;
} else {
pinnedMessageItem.visible = false;

View file

@ -32,7 +32,10 @@ function getUserName(userInformation) {
return ((userInformation.first_name || "") + " " + (userInformation.last_name || "")).trim();
}
function getMessageText(message, simple, myself, ignoreEntities) {
function getMessageText(message, simple, currentUserId, ignoreEntities) {
var myself = ( message.sender['@type'] === "messageSenderUser" && message.sender.user_id.toString() === currentUserId.toString() );
switch(message.content['@type']) {
case 'messageText':
if (simple) {
@ -89,9 +92,24 @@ function getMessageText(message, simple, myself, ignoreEntities) {
case 'messageChatJoinByLink':
return myself ? qsTr("joined this chat", "myself") : qsTr("joined this chat");
case 'messageChatAddMembers':
return myself ? qsTr("were added to this chat", "myself") : qsTr("was added to this chat");
if (message.sender['@type'] === "messageSenderUser" && message.sender.user_id === message.content.member_user_ids[0]) {
return myself ? qsTr("were added to this chat", "myself") : qsTr("was added to this chat");
} else {
var addedUserNames = "";
for (var i = 0; i < message.content.member_user_ids.length; i++) {
if (i > 0) {
addedUserNames += ", ";
}
addedUserNames += getUserName(tdLibWrapper.getUserInformation(message.content.member_user_ids[i]));
}
return myself ? qsTr("have added %1 to the chat", "myself").arg(addedUserNames) : qsTr("has added %1 to the chat").arg(addedUserNames);
}
case 'messageChatDeleteMember':
return myself ? qsTr("left this chat", "myself") : qsTr("left this chat");
if (message.sender['@type'] === "messageSenderUser" && message.sender.user_id === message.content.user_id) {
return myself ? qsTr("left this chat", "myself") : qsTr("left this chat");
} else {
return myself ? qsTr("have removed %1 from the chat", "myself").arg(getUserName(tdLibWrapper.getUserInformation(message.content.user_id))) : qsTr("has removed %1 from the chat").arg(getUserName(tdLibWrapper.getUserInformation(message.content.user_id)));
}
case 'messageChatChangeTitle':
return myself ? qsTr("changed the chat title to %1", "myself").arg(message.content.title) : qsTr("changed the chat title to %1").arg(message.content.title);
case 'messagePoll':
@ -415,7 +433,7 @@ function getMessagesArrayText(messages) {
lines.push(senderName);
}
lastSenderName = senderName;
lines.push(getMessageText(messages[i], true, false));
lines.push(getMessageText(messages[i], true, tdLibWrapper.getUserInformation().id, false));
lines.push("");
}
return lines.join("\n");

View file

@ -1002,7 +1002,7 @@ Page {
}
onEditMessage: {
newMessageColumn.editMessageId = messageId
newMessageTextField.text = Functions.getMessageText(myMessage, false, false, true)
newMessageTextField.text = Functions.getMessageText(myMessage, false, chatPage.myUserId, true)
newMessageTextField.focus = true
}
}

View file

@ -55,7 +55,7 @@ class ChatListModel::ChatData
{
public:
ChatData(const QVariantMap &data, const QVariantMap &userInformation);
ChatData(TDLibWrapper *tdLibWrapper, const QVariantMap &data);
int compareTo(const ChatData *chat) const;
bool setOrder(const QString &order);
@ -77,6 +77,7 @@ public:
QVector<int> updateLastMessage(const QVariantMap &message);
QVector<int> updateGroup(const TDLibWrapper::Group *group);
QVector<int> updateSecretChat(const QVariantMap &secretChatDetails);
TDLibWrapper *tdLibWrapper;
public:
QVariantMap chatData;
@ -90,7 +91,8 @@ public:
QVariantMap userInformation;
};
ChatListModel::ChatData::ChatData(const QVariantMap &data, const QVariantMap &userInfo) :
ChatListModel::ChatData::ChatData(TDLibWrapper *tdLibWrapper, const QVariantMap &data) :
tdLibWrapper(tdLibWrapper),
chatData(data),
chatId(data.value(ID).toLongLong()),
order(data.value(ORDER).toLongLong()),
@ -98,7 +100,7 @@ ChatListModel::ChatData::ChatData(const QVariantMap &data, const QVariantMap &us
verified(false),
memberStatus(TDLibWrapper::ChatMemberStatusUnknown),
secretChatState(TDLibWrapper::SecretChatStateUnknown),
userInformation(userInfo)
userInformation(tdLibWrapper->getUserInformation())
{
const QVariantMap type(data.value(TYPE).toMap());
switch (chatType = TDLibWrapper::chatTypeFromString(type.value(_TYPE).toString())) {
@ -182,7 +184,7 @@ qlonglong ChatListModel::ChatData::senderMessageDate() const
QString ChatListModel::ChatData::senderMessageText() const
{
return FernschreiberUtils::getMessageShortText(lastMessage(CONTENT).toMap(), ( isChannel() ? false : this->userInformation.value(ID).toLongLong() == senderUserId() ) );
return FernschreiberUtils::getMessageShortText(tdLibWrapper, lastMessage(CONTENT).toMap(), isChannel(), this->userInformation.value(ID).toLongLong(), lastMessage(SENDER).toMap() );
}
QString ChatListModel::ChatData::senderMessageStatus() const
@ -577,7 +579,7 @@ void ChatListModel::setShowAllChats(bool showAll)
void ChatListModel::handleChatDiscovered(const QString &, const QVariantMap &chatToBeAdded)
{
ChatData *chat = new ChatData(chatToBeAdded, tdLibWrapper->getUserInformation());
ChatData *chat = new ChatData(tdLibWrapper, chatToBeAdded);
const TDLibWrapper::Group *group = tdLibWrapper->getGroup(chat->groupId);
if (group) {

View file

@ -8,12 +8,14 @@ FernschreiberUtils::FernschreiberUtils(QObject *parent) : QObject(parent)
}
QString FernschreiberUtils::getMessageShortText(const QVariantMap &messageContent, const bool &myself)
QString FernschreiberUtils::getMessageShortText(TDLibWrapper *tdLibWrapper, const QVariantMap &messageContent, const bool isChannel, const qlonglong currentUserId, const QVariantMap &messageSender)
{
if (messageContent.isEmpty()) {
return QString();
}
const bool myself = !isChannel && (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == currentUserId);
QString contentType = messageContent.value("@type").toString();
if (contentType == "messageText") {
@ -53,10 +55,26 @@ QString FernschreiberUtils::getMessageShortText(const QVariantMap &messageConten
return myself ? tr("joined this chat", "myself") : tr("joined this chat");
}
if (contentType == "messageChatAddMembers") {
return myself ? tr("were added to this chat", "myself") : tr("was added to this chat");
if (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == messageContent.value("member_user_ids").toList().at(0).toLongLong()) {
return myself ? tr("were added to this chat", "myself") : tr("was added to this chat");
} else {
QVariantList memberUserIds = messageContent.value("member_user_ids").toList();
QString addedUserNames;
for (int i = 0; i < memberUserIds.size(); i++) {
if (i > 0) {
addedUserNames += ", ";
}
addedUserNames += getUserName(tdLibWrapper->getUserInformation(memberUserIds.at(i).toString()));
}
return myself ? tr("have added %1 to the chat", "myself").arg(addedUserNames) : tr("has added %1 to the chat").arg(addedUserNames);
}
}
if (contentType == "messageChatDeleteMember") {
return myself ? tr("left this chat", "myself") : tr("left this chat");
if (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == messageContent.value("user_id").toLongLong()) {
return myself ? tr("left this chat", "myself") : tr("left this chat");
} else {
return myself ? tr("have removed %1 from the chat", "myself").arg(getUserName(tdLibWrapper->getUserInformation(messageContent.value("user_id").toString()))) : tr("has removed %1 from the chat").arg(getUserName(tdLibWrapper->getUserInformation(messageContent.value("user_id").toString())));
}
}
if (contentType == "messageChatChangeTitle") {
return myself ? tr("changed the chat title", "myself") : tr("changed the chat title");
@ -103,3 +121,10 @@ QString FernschreiberUtils::getMessageShortText(const QVariantMap &messageConten
return myself ? tr("sent an unsupported message: %1", "myself").arg(contentType.mid(7)) : tr("sent an unsupported message: %1").arg(contentType.mid(7));
}
QString FernschreiberUtils::getUserName(const QVariantMap &userInformation)
{
const QString firstName = userInformation.value("first_name").toString();
const QString lastName = userInformation.value("last_name").toString();
return QString(firstName + " " + lastName).trimmed();
}

View file

@ -2,6 +2,7 @@
#define FERNSCHREIBERUTILS_H
#include <QObject>
#include "tdlibwrapper.h"
class FernschreiberUtils : public QObject
{
@ -9,7 +10,8 @@ class FernschreiberUtils : public QObject
public:
explicit FernschreiberUtils(QObject *parent = nullptr);
static QString getMessageShortText(const QVariantMap &messageContent, const bool &myself);
static QString getMessageShortText(TDLibWrapper *tdLibWrapper, const QVariantMap &messageContent, const bool isChannel, const qlonglong currentUserId, const QVariantMap &messageSender);
static QString getUserName(const QVariantMap &userInformation);
signals:

View file

@ -332,25 +332,22 @@ void NotificationManager::publishNotification(const NotificationGroup *notificat
}
QString notificationBody;
const QVariantMap senderInformation = messageMap.value(SENDER).toMap();
if (notificationGroup->totalCount == 1 && !messageMap.isEmpty()) {
LOG("Group" << notificationGroup->notificationGroupId << "has 1 notification");
if (chatInformation && (chatInformation->type == TDLibWrapper::ChatTypeBasicGroup ||
(chatInformation->type == TDLibWrapper::ChatTypeSupergroup && !chatInformation->isChannel))) {
// Add author
const QVariantMap senderInformation = messageMap.value(SENDER).toMap();
QString fullName;
if (senderInformation.value(_TYPE).toString() == "messageSenderChat") {
fullName = tdLibWrapper->getChat(senderInformation.value(CHAT_ID).toString()).value(TITLE).toString();
} else {
const QVariantMap authorInformation = tdLibWrapper->getUserInformation(senderInformation.value(USER_ID).toString());
const QString firstName = authorInformation.value(FIRST_NAME).toString();
const QString lastName = authorInformation.value(LAST_NAME).toString();
fullName = firstName + " " + lastName;
fullName = FernschreiberUtils::getUserName(tdLibWrapper->getUserInformation(senderInformation.value(USER_ID).toString()));
}
notificationBody = notificationBody + fullName.trimmed() + ": ";
}
notificationBody += getNotificationText(messageMap.value(CONTENT).toMap());
notificationBody += FernschreiberUtils::getMessageShortText(tdLibWrapper, messageMap.value(CONTENT).toMap(), (chatInformation ? chatInformation->isChannel : false), tdLibWrapper->getUserInformation().value(ID).toLongLong(), senderInformation );
nemoNotification->setBody(notificationBody);
} else {
// Either we have more than one notification or we have no content to display
@ -380,13 +377,6 @@ void NotificationManager::publishNotification(const NotificationGroup *notificat
nemoNotification->publish();
}
QString NotificationManager::getNotificationText(const QVariantMap &notificationContent)
{
LOG("Getting notification text from content" << notificationContent);
return FernschreiberUtils::getMessageShortText(notificationContent, false);
}
void NotificationManager::controlLedNotification(bool enabled)
{
static const QString PATTERN("PatternCommunicationIM");

View file

@ -50,7 +50,6 @@ public slots:
private:
void publishNotification(const NotificationGroup *notificationGroup, bool needFeedback);
QString getNotificationText(const QVariantMap &notificationContent);
void controlLedNotification(bool enabled);
void updateNotificationGroup(int groupId, qlonglong chatId, int totalCount,
const QVariantList &addedNotifications,

View file

@ -773,6 +773,24 @@
<source>sent an audio</source>
<translation>hat eine Audiodatei gesendet</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation>hat %1 zum Chat hinzugefügt</translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation>hat %1 vom Chat entfernt</translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation>haben %1 zum Chat hinzugefügt</translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation>haben %1 vom Chat entfernt</translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1044,11 +1062,11 @@
</message>
<message>
<source>Download of %1 successful.</source>
<translation type="unfinished">Download von %1 erfolgreich.</translation>
<translation>Download von %1 erfolgreich.</translation>
</message>
<message>
<source>Download failed.</source>
<translation type="unfinished">Download fehlgeschlagen.</translation>
<translation>Download fehlgeschlagen.</translation>
</message>
</context>
<context>
@ -1771,5 +1789,23 @@
<source>Pending acknowledgement</source>
<translation>Ausstehende Bestätigung</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation>hat %1 zum Chat hinzugefügt</translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation>hat %1 vom Chat entfernt</translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation>haben %1 zum Chat hinzugefügt</translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation>haben %1 vom Chat entfernt</translation>
</message>
</context>
</TS>

View file

@ -773,6 +773,24 @@
<source>sent an audio</source>
<translation>sent an audio</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation>has added %1 to the chat</translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation>has removed %1 from the chat</translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation>have added %1 to the chat</translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation>have removed %1 from the chat</translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1044,11 +1062,11 @@
</message>
<message>
<source>Download of %1 successful.</source>
<translation type="unfinished">Download of %1 successful.</translation>
<translation>Download of %1 successful.</translation>
</message>
<message>
<source>Download failed.</source>
<translation type="unfinished">Download failed.</translation>
<translation>Download failed.</translation>
</message>
</context>
<context>
@ -1771,5 +1789,23 @@
<source>Pending acknowledgement</source>
<translation>Pending acknowledgement</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished">has added %1 to the chat</translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished">has removed %1 from the chat</translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished">have added %1 to the chat</translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished">have removed %1 from the chat</translation>
</message>
</context>
</TS>

View file

@ -763,6 +763,24 @@
<source>sent an audio</source>
<translation>envió un audio</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1752,5 +1770,23 @@
<source>Pending acknowledgement</source>
<translation>Pendiente de reconocimiento</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -774,6 +774,24 @@
<source>sent an audio</source>
<translation>lähetti äänitteen</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1772,5 +1790,23 @@
<source>Pending acknowledgement</source>
<translation>Odottaa hyväksyntää</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -763,6 +763,24 @@
<source>sent an audio</source>
<translation type="unfinished">audiót küldött</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1752,5 +1770,23 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -773,6 +773,24 @@
<source>sent an audio</source>
<translation>ha inviato un audio</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1771,5 +1789,23 @@
<source>Pending acknowledgement</source>
<translation>In attesa di conferma</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -783,6 +783,24 @@
<source>sent an audio</source>
<translation>wysłał plik dźwiękowy</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1790,5 +1808,23 @@
<source>Pending acknowledgement</source>
<translation>Oczekujące na potwierdzenie</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -783,6 +783,24 @@
<source>sent an audio</source>
<translation>отправил(а) аудио</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1790,5 +1808,23 @@
<source>Pending acknowledgement</source>
<translation>Ожидание подтверждения</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -773,6 +773,24 @@
<source>sent an audio</source>
<translation>skickade en ljudfil</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1771,5 +1789,23 @@
<source>Pending acknowledgement</source>
<translation>Väntar bekräftelse</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -763,6 +763,24 @@
<source>sent an audio</source>
<translation></translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -900,11 +918,11 @@
</message>
<message>
<source>Message unpinned</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Unpin Message</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -1033,11 +1051,11 @@
</message>
<message>
<source>Download of %1 successful.</source>
<translation type="unfinished"> %1 </translation>
<translation> %1 </translation>
</message>
<message>
<source>Download failed.</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -1752,5 +1770,23 @@
<source>Pending acknowledgement</source>
<translation></translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -773,6 +773,24 @@
<source>sent an audio</source>
<translation type="unfinished">sent an audio</translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImagePage</name>
@ -1771,5 +1789,23 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has added %1 to the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>has removed %1 from the chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have added %1 to the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>have removed %1 from the chat</source>
<comment>myself</comment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>