Merge branch 'master' into patch-34

This commit is contained in:
Sebastian Wolf 2021-12-08 00:36:02 +01:00 committed by GitHub
commit 54f4ce2dfe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 93 additions and 234 deletions

View file

@ -28,6 +28,16 @@ Column {
property var sponsoredMessageData; property var sponsoredMessageData;
Connections {
target: tdLibWrapper
onMessageLinkInfoReceived: {
if (sponsoredMessageData.link.url === url) {
messageOverlayLoader.overlayMessage = messageLinkInfo.message;
messageOverlayLoader.active = true;
}
}
}
Component.onCompleted: { Component.onCompleted: {
if (sponsoredMessageData) { if (sponsoredMessageData) {
if (typeof sponsoredMessageData.link === "undefined") { if (typeof sponsoredMessageData.link === "undefined") {
@ -35,10 +45,10 @@ Column {
sponsoredMessageButton.advertisesChannel = true; sponsoredMessageButton.advertisesChannel = true;
} else if (sponsoredMessageData.link['@type'] === "internalLinkTypeMessage") { } else if (sponsoredMessageData.link['@type'] === "internalLinkTypeMessage") {
sponsoredMessageButton.text = qsTr("Go to Message"); sponsoredMessageButton.text = qsTr("Go to Message");
sponsoredMessageButton.enabled = false; sponsoredMessageButton.advertisesMessage = true;
} else { } else {
sponsoredMessageButton.text = qsTr("Start Bot"); sponsoredMessageButton.text = qsTr("Start Bot");
sponsoredMessageButton.enabled = false; sponsoredMessageButton.advertisesBot = true;
} }
} }
} }
@ -46,12 +56,21 @@ Column {
Button { Button {
id: sponsoredMessageButton id: sponsoredMessageButton
property bool advertisesChannel: false; property bool advertisesChannel: false;
property bool advertisesMessage: false;
property bool advertisesBot: false;
anchors { anchors {
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
} }
onClicked: { onClicked: {
if (advertisesChannel) { if (advertisesChannel) {
tdLibWrapper.createSupergroupChat(sponsoredMessageData.sponsor_chat_id, "openDirectly"); tdLibWrapper.createSupergroupChat(tdLibWrapper.getChat(sponsoredMessageData.sponsor_chat_id).type.supergroup_id, "openDirectly");
}
if (advertisesMessage) {
tdLibWrapper.getMessageLinkInfo(sponsoredMessageData.link.url);
}
if (advertisesBot) {
tdLibWrapper.createPrivateChat(tdLibWrapper.getUserInformationByName(sponsoredMessageData.link.bot_username).id, "openAndSendStartToBot:" + sponsoredMessageData.link.start_parameter);
//tdLibWrapper.sendBotStartMessage(tdLibWrapper.getUserInformationByName(sponsoredMessageData.link.bot_username).id, sponsoredMessageData.sponsor_chat_id, sponsoredMessageData.link.start_parameter, "");
} }
} }
} }

View file

@ -47,9 +47,9 @@ function getMessageText(message, simple, currentUserId, ignoreEntities) {
return enhanceMessageText(message.content.text, ignoreEntities); return enhanceMessageText(message.content.text, ignoreEntities);
} }
case 'messageSticker': case 'messageSticker':
return simple ? qsTr("Sticker: %1").arg(message.content.sticker.emoji) : ""; return simple ? message.content.sticker.emoji : ""
case 'messageAnimatedEmoji': case 'messageAnimatedEmoji':
return simple ? qsTr("Animated Emoji: %1").arg(message.content.animated_emoji.sticker.emoji) : ""; return simple ? message.content.animated_emoji.sticker.emoji : ""
case 'messagePhoto': case 'messagePhoto':
if (message.content.caption.text !== "") { if (message.content.caption.text !== "") {
return simple ? qsTr("Picture: %1").arg(message.content.caption.text) : enhanceMessageText(message.content.caption, ignoreEntities) return simple ? qsTr("Picture: %1").arg(message.content.caption.text) : enhanceMessageText(message.content.caption, ignoreEntities)

View file

@ -37,6 +37,30 @@
#define DEBUG_MODULE FernschreiberUtils #define DEBUG_MODULE FernschreiberUtils
#include "debuglog.h" #include "debuglog.h"
namespace {
const QString _TYPE("@type");
const QString TEXT("text");
const QString EMOJI("emoji");
const QString ANIMATED_EMOJI("animated_emoji");
const QString STICKER("sticker");
const QString USER_ID("user_id");
const QString MESSAGE_SENDER_TYPE_USER("messageSenderUser");
const QString MESSAGE_CONTENT_TYPE_TEXT("messageText");
const QString MESSAGE_CONTENT_TYPE_STICKER("messageSticker");
const QString MESSAGE_CONTENT_TYPE_ANIMATED_EMOJI("messageAnimatedEmoji");
const QString MESSAGE_CONTENT_TYPE_PHOTO("messagePhoto");
const QString MESSAGE_CONTENT_TYPE_VIDEO("messageVideo");
const QString MESSAGE_CONTENT_TYPE_VIDEO_NOTE("messageVideoNote");
const QString MESSAGE_CONTENT_TYPE_ANIMATION("messageAnimation");
const QString MESSAGE_CONTENT_TYPE_AUDIO("messageAudio");
const QString MESSAGE_CONTENT_TYPE_VOICE_NOTE("messageVoiceNote");
const QString MESSAGE_CONTENT_TYPE_DOCUMENT("messageDocument");
const QString MESSAGE_CONTENT_TYPE_LOCATION("messageLocation");
const QString MESSAGE_CONTENT_TYPE_VENUE("messageVenue");
}
FernschreiberUtils::FernschreiberUtils(QObject *parent) : QObject(parent) FernschreiberUtils::FernschreiberUtils(QObject *parent) : QObject(parent)
{ {
LOG("Initializing audio recorder..."); LOG("Initializing audio recorder...");
@ -83,44 +107,45 @@ QString FernschreiberUtils::getMessageShortText(TDLibWrapper *tdLibWrapper, cons
return QString(); return QString();
} }
const bool myself = !isChannel && (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == currentUserId); const QString contentType(messageContent.value(_TYPE).toString());
const QString messageSenderType(messageSender.value(_TYPE).toString());
const qlonglong messageSenderUserId = messageSender.value(USER_ID).toLongLong();
const bool myself = !isChannel && (messageSenderType == MESSAGE_SENDER_TYPE_USER && messageSenderUserId == currentUserId);
QString contentType = messageContent.value("@type").toString(); if (contentType == MESSAGE_CONTENT_TYPE_TEXT) {
return messageContent.value(TEXT).toMap().value(TEXT).toString();
if (contentType == "messageText") {
return messageContent.value("text").toMap().value("text").toString();
} }
if (contentType == "messageSticker") { if (contentType == MESSAGE_CONTENT_TYPE_STICKER) {
return tr("Sticker: %1").arg(messageContent.value("sticker").toMap().value("emoji").toString()); return messageContent.value(STICKER).toMap().value(EMOJI).toString();
} }
if (contentType == "messageAnimatedEmoji") { if (contentType == MESSAGE_CONTENT_TYPE_ANIMATED_EMOJI) {
return tr("Animated Emoji: %1").arg(messageContent.value("animated_emoji").toMap().value("sticker").toMap().value("emoji").toString()); return messageContent.value(ANIMATED_EMOJI).toMap().value(STICKER).toMap().value(EMOJI).toString();
} }
if (contentType == "messagePhoto") { if (contentType == MESSAGE_CONTENT_TYPE_PHOTO) {
return myself ? tr("sent a picture", "myself") : tr("sent a picture"); return myself ? tr("sent a picture", "myself") : tr("sent a picture");
} }
if (contentType == "messageVideo") { if (contentType == MESSAGE_CONTENT_TYPE_VIDEO) {
return myself ? tr("sent a video", "myself") : tr("sent a video"); return myself ? tr("sent a video", "myself") : tr("sent a video");
} }
if (contentType == "messageVideoNote") { if (contentType == MESSAGE_CONTENT_TYPE_VIDEO_NOTE) {
return myself ? tr("sent a video note", "myself") : tr("sent a video note"); return myself ? tr("sent a video note", "myself") : tr("sent a video note");
} }
if (contentType == "messageAnimation") { if (contentType == MESSAGE_CONTENT_TYPE_ANIMATION) {
return myself ? tr("sent an animation", "myself") : tr("sent an animation"); return myself ? tr("sent an animation", "myself") : tr("sent an animation");
} }
if (contentType == "messageAudio") { if (contentType == MESSAGE_CONTENT_TYPE_AUDIO) {
return myself ? tr("sent an audio", "myself") : tr("sent an audio"); return myself ? tr("sent an audio", "myself") : tr("sent an audio");
} }
if (contentType == "messageVoiceNote") { if (contentType == MESSAGE_CONTENT_TYPE_VOICE_NOTE) {
return myself ? tr("sent a voice note", "myself") : tr("sent a voice note"); return myself ? tr("sent a voice note", "myself") : tr("sent a voice note");
} }
if (contentType == "messageDocument") { if (contentType == MESSAGE_CONTENT_TYPE_DOCUMENT) {
return myself ? tr("sent a document", "myself") : tr("sent a document"); return myself ? tr("sent a document", "myself") : tr("sent a document");
} }
if (contentType == "messageLocation") { if (contentType == MESSAGE_CONTENT_TYPE_LOCATION) {
return myself ? tr("sent a location", "myself") : tr("sent a location"); return myself ? tr("sent a location", "myself") : tr("sent a location");
} }
if (contentType == "messageVenue") { if (contentType == MESSAGE_CONTENT_TYPE_VENUE) {
return myself ? tr("sent a venue", "myself") : tr("sent a venue"); return myself ? tr("sent a venue", "myself") : tr("sent a venue");
} }
if (contentType == "messageContactRegistered") { if (contentType == "messageContactRegistered") {
@ -130,7 +155,7 @@ QString FernschreiberUtils::getMessageShortText(TDLibWrapper *tdLibWrapper, cons
return myself ? tr("joined this chat", "myself") : tr("joined this chat"); return myself ? tr("joined this chat", "myself") : tr("joined this chat");
} }
if (contentType == "messageChatAddMembers") { if (contentType == "messageChatAddMembers") {
if (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == messageContent.value("member_user_ids").toList().at(0).toLongLong()) { if (messageSenderType == MESSAGE_SENDER_TYPE_USER && messageSenderUserId == messageContent.value("member_user_ids").toList().at(0).toLongLong()) {
return myself ? tr("were added to this chat", "myself") : tr("was added to this chat"); return myself ? tr("were added to this chat", "myself") : tr("was added to this chat");
} else { } else {
QVariantList memberUserIds = messageContent.value("member_user_ids").toList(); QVariantList memberUserIds = messageContent.value("member_user_ids").toList();
@ -145,7 +170,7 @@ QString FernschreiberUtils::getMessageShortText(TDLibWrapper *tdLibWrapper, cons
} }
} }
if (contentType == "messageChatDeleteMember") { if (contentType == "messageChatDeleteMember") {
if (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == messageContent.value("user_id").toLongLong()) { if (messageSenderType == MESSAGE_SENDER_TYPE_USER && messageSenderUserId == messageContent.value("user_id").toLongLong()) {
return myself ? tr("left this chat", "myself") : tr("left this chat"); return myself ? tr("left this chat", "myself") : tr("left this chat");
} else { } 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()))); 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())));
@ -176,7 +201,7 @@ QString FernschreiberUtils::getMessageShortText(TDLibWrapper *tdLibWrapper, cons
return myself ? tr("upgraded this group to a supergroup", "myself") : tr("upgraded this group to a supergroup"); return myself ? tr("upgraded this group to a supergroup", "myself") : tr("upgraded this group to a supergroup");
} }
if (contentType == "messageCustomServiceAction") { if (contentType == "messageCustomServiceAction") {
return messageContent.value("text").toString(); return messageContent.value(TEXT).toString();
} }
if (contentType == "messagePinMessage") { if (contentType == "messagePinMessage") {
return myself ? tr("changed the pinned message", "myself") : tr("changed the pinned message"); return myself ? tr("changed the pinned message", "myself") : tr("changed the pinned message");

View file

@ -104,6 +104,7 @@ TDLibReceiver::TDLibReceiver(void *tdLibClient, QObject *parent) : QThread(paren
handlers.insert("sponsoredMessages", &TDLibReceiver::processSponsoredMessages); handlers.insert("sponsoredMessages", &TDLibReceiver::processSponsoredMessages);
handlers.insert("updateNewMessage", &TDLibReceiver::processUpdateNewMessage); handlers.insert("updateNewMessage", &TDLibReceiver::processUpdateNewMessage);
handlers.insert("message", &TDLibReceiver::processMessage); handlers.insert("message", &TDLibReceiver::processMessage);
handlers.insert("messageLinkInfo", &TDLibReceiver::processMessageLinkInfo);
handlers.insert("updateMessageSendSucceeded", &TDLibReceiver::processMessageSendSucceeded); handlers.insert("updateMessageSendSucceeded", &TDLibReceiver::processMessageSendSucceeded);
handlers.insert("updateActiveNotifications", &TDLibReceiver::processUpdateActiveNotifications); handlers.insert("updateActiveNotifications", &TDLibReceiver::processUpdateActiveNotifications);
handlers.insert("updateNotificationGroup", &TDLibReceiver::processUpdateNotificationGroup); handlers.insert("updateNotificationGroup", &TDLibReceiver::processUpdateNotificationGroup);
@ -380,6 +381,13 @@ void TDLibReceiver::processMessage(const QVariantMap &receivedInformation)
emit messageInformation(chatId, messageId, receivedInformation); emit messageInformation(chatId, messageId, receivedInformation);
} }
void TDLibReceiver::processMessageLinkInfo(const QVariantMap &receivedInformation)
{
const QString url = receivedInformation.value(EXTRA).toString();
LOG("Received message link info " << url);
emit messageLinkInfoReceived(url, receivedInformation);
}
void TDLibReceiver::processMessageSendSucceeded(const QVariantMap &receivedInformation) void TDLibReceiver::processMessageSendSucceeded(const QVariantMap &receivedInformation)
{ {
const qlonglong oldMessageId = receivedInformation.value(OLD_MESSAGE_ID).toLongLong(); const qlonglong oldMessageId = receivedInformation.value(OLD_MESSAGE_ID).toLongLong();

View file

@ -56,6 +56,7 @@ signals:
void superGroupUpdated(qlonglong groupId, const QVariantMap &groupInformation); void superGroupUpdated(qlonglong groupId, const QVariantMap &groupInformation);
void chatOnlineMemberCountUpdated(const QString &chatId, int onlineMemberCount); void chatOnlineMemberCountUpdated(const QString &chatId, int onlineMemberCount);
void messagesReceived(const QVariantList &messages, int totalCount); void messagesReceived(const QVariantList &messages, int totalCount);
void messageLinkInfoReceived(const QString &url, const QVariantMap &messageLinkInfo);
void sponsoredMessagesReceived(qlonglong chatId, const QVariantList &messages); void sponsoredMessagesReceived(qlonglong chatId, const QVariantList &messages);
void newMessageReceived(qlonglong chatId, const QVariantMap &message); void newMessageReceived(qlonglong chatId, const QVariantMap &message);
void messageInformation(qlonglong chatId, qlonglong messageId, const QVariantMap &message); void messageInformation(qlonglong chatId, qlonglong messageId, const QVariantMap &message);
@ -134,6 +135,7 @@ private:
void processSponsoredMessages(const QVariantMap &receivedInformation); void processSponsoredMessages(const QVariantMap &receivedInformation);
void processUpdateNewMessage(const QVariantMap &receivedInformation); void processUpdateNewMessage(const QVariantMap &receivedInformation);
void processMessage(const QVariantMap &receivedInformation); void processMessage(const QVariantMap &receivedInformation);
void processMessageLinkInfo(const QVariantMap &receivedInformation);
void processMessageSendSucceeded(const QVariantMap &receivedInformation); void processMessageSendSucceeded(const QVariantMap &receivedInformation);
void processUpdateActiveNotifications(const QVariantMap &receivedInformation); void processUpdateActiveNotifications(const QVariantMap &receivedInformation);
void processUpdateNotificationGroup(const QVariantMap &receivedInformation); void processUpdateNotificationGroup(const QVariantMap &receivedInformation);

View file

@ -119,6 +119,7 @@ void TDLibWrapper::initializeTDLibReciever() {
connect(this->tdLibReceiver, SIGNAL(chatOnlineMemberCountUpdated(QString, int)), this, SIGNAL(chatOnlineMemberCountUpdated(QString, int))); connect(this->tdLibReceiver, SIGNAL(chatOnlineMemberCountUpdated(QString, int)), this, SIGNAL(chatOnlineMemberCountUpdated(QString, int)));
connect(this->tdLibReceiver, SIGNAL(messagesReceived(QVariantList, int)), this, SIGNAL(messagesReceived(QVariantList, int))); connect(this->tdLibReceiver, SIGNAL(messagesReceived(QVariantList, int)), this, SIGNAL(messagesReceived(QVariantList, int)));
connect(this->tdLibReceiver, SIGNAL(sponsoredMessagesReceived(qlonglong, QVariantList)), this, SLOT(handleSponsoredMess(qlonglong, QVariantList))); connect(this->tdLibReceiver, SIGNAL(sponsoredMessagesReceived(qlonglong, QVariantList)), this, SLOT(handleSponsoredMess(qlonglong, QVariantList)));
connect(this->tdLibReceiver, SIGNAL(messageLinkInfoReceived(QString, QVariantMap)), this, SIGNAL(messageLinkInfoReceived(QString, QVariantMap)));
connect(this->tdLibReceiver, SIGNAL(newMessageReceived(qlonglong, QVariantMap)), this, SIGNAL(newMessageReceived(qlonglong, QVariantMap))); connect(this->tdLibReceiver, SIGNAL(newMessageReceived(qlonglong, QVariantMap)), this, SIGNAL(newMessageReceived(qlonglong, QVariantMap)));
connect(this->tdLibReceiver, SIGNAL(messageInformation(qlonglong, qlonglong, QVariantMap)), this, SLOT(handleMessageInformation(qlonglong, qlonglong, QVariantMap))); connect(this->tdLibReceiver, SIGNAL(messageInformation(qlonglong, qlonglong, QVariantMap)), this, SLOT(handleMessageInformation(qlonglong, qlonglong, QVariantMap)));
connect(this->tdLibReceiver, SIGNAL(messageSendSucceeded(qlonglong, qlonglong, QVariantMap)), this, SIGNAL(messageSendSucceeded(qlonglong, qlonglong, QVariantMap))); connect(this->tdLibReceiver, SIGNAL(messageSendSucceeded(qlonglong, qlonglong, QVariantMap)), this, SIGNAL(messageSendSucceeded(qlonglong, qlonglong, QVariantMap)));
@ -646,6 +647,16 @@ void TDLibWrapper::getMessage(qlonglong chatId, qlonglong messageId)
this->sendRequest(requestObject); this->sendRequest(requestObject);
} }
void TDLibWrapper::getMessageLinkInfo(const QString &url)
{
LOG("Retrieving message link info" << url);
QVariantMap requestObject;
requestObject.insert(_TYPE, "getMessageLinkInfo");
requestObject.insert("url", url);
requestObject.insert(_EXTRA, url);
this->sendRequest(requestObject);
}
void TDLibWrapper::getCallbackQueryAnswer(const QString &chatId, const QString &messageId, const QVariantMap &payload) void TDLibWrapper::getCallbackQueryAnswer(const QString &chatId, const QString &messageId, const QVariantMap &payload)
{ {
LOG("Getting Callback Query Answer" << chatId << messageId); LOG("Getting Callback Query Answer" << chatId << messageId);

View file

@ -171,6 +171,7 @@ public:
Q_INVOKABLE void sendPollMessage(const QString &chatId, const QString &question, const QVariantList &options, bool anonymous, int correctOption, bool multiple, const QString &explanation, const QString &replyToMessageId = "0"); Q_INVOKABLE void sendPollMessage(const QString &chatId, const QString &question, const QVariantList &options, bool anonymous, int correctOption, bool multiple, const QString &explanation, const QString &replyToMessageId = "0");
Q_INVOKABLE void forwardMessages(const QString &chatId, const QString &fromChatId, const QVariantList &messageIds, bool sendCopy, bool removeCaption); Q_INVOKABLE void forwardMessages(const QString &chatId, const QString &fromChatId, const QVariantList &messageIds, bool sendCopy, bool removeCaption);
Q_INVOKABLE void getMessage(qlonglong chatId, qlonglong messageId); Q_INVOKABLE void getMessage(qlonglong chatId, qlonglong messageId);
Q_INVOKABLE void getMessageLinkInfo(const QString &url);
Q_INVOKABLE void getCallbackQueryAnswer(const QString &chatId, const QString &messageId, const QVariantMap &payload); Q_INVOKABLE void getCallbackQueryAnswer(const QString &chatId, const QString &messageId, const QVariantMap &payload);
Q_INVOKABLE void getChatPinnedMessage(qlonglong chatId); Q_INVOKABLE void getChatPinnedMessage(qlonglong chatId);
Q_INVOKABLE void getChatSponsoredMessages(qlonglong chatId); Q_INVOKABLE void getChatSponsoredMessages(qlonglong chatId);
@ -263,6 +264,7 @@ signals:
void chatOnlineMemberCountUpdated(const QString &chatId, int onlineMemberCount); void chatOnlineMemberCountUpdated(const QString &chatId, int onlineMemberCount);
void messagesReceived(const QVariantList &messages, int totalCount); void messagesReceived(const QVariantList &messages, int totalCount);
void sponsoredMessagesReceived(qlonglong chatId, const QVariantList &messages); void sponsoredMessagesReceived(qlonglong chatId, const QVariantList &messages);
void messageLinkInfoReceived(const QString &url, const QVariantMap &messageLinkInfo);
void newMessageReceived(qlonglong chatId, const QVariantMap &message); void newMessageReceived(qlonglong chatId, const QVariantMap &message);
void copyToDownloadsSuccessful(const QString &fileName, const QString &filePath); void copyToDownloadsSuccessful(const QString &fileName, const QString &filePath);
void copyToDownloadsError(const QString &fileName, const QString &filePath); void copyToDownloadsError(const QString &fileName, const QString &filePath);

View file

@ -730,10 +730,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>hat diesen Chat verlassen</translation> <translation>hat diesen Chat verlassen</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -934,10 +930,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>hat eine Videonachricht geschickt</translation> <translation>hat eine Videonachricht geschickt</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animiertes Emoji: %1</translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1893,10 +1885,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Bild: %1</translation> <translation>Bild: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audio: %1</translation> <translation>Audio: %1</translation>
@ -2290,9 +2278,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>hat ein Spiel gesendet</translation> <translation>hat ein Spiel gesendet</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animiertes Emoji: %1</translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -732,10 +732,6 @@ messages</numerusform>
<source>left this chat</source> <source>left this chat</source>
<translation>left this chat</translation> <translation>left this chat</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -936,10 +932,6 @@ messages</numerusform>
<source>sent a video note</source> <source>sent a video note</source>
<translation>sent a video note</translation> <translation>sent a video note</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animated Emoji: %1</translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1895,10 +1887,6 @@ messages</numerusform>
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Picture: %1</translation> <translation>Picture: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audio: %1</translation> <translation>Audio: %1</translation>
@ -2292,9 +2280,5 @@ messages</numerusform>
<source>sent a game</source> <source>sent a game</source>
<translation>sent a game</translation> <translation>sent a game</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animated Emoji: %1</translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -730,10 +730,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>dejó esta conversación</translation> <translation>dejó esta conversación</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Pegatina: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -934,10 +930,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>envió una nota de video</translation> <translation>envió una nota de video</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Emoticono animado: %1</translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1893,10 +1885,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Imagen: %1</translation> <translation>Imagen: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Pegatina: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audio: %1</translation> <translation>Audio: %1</translation>
@ -2290,9 +2278,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>envió un juego</translation> <translation>envió un juego</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Emoticono animado: %1</translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -646,10 +646,6 @@
</context> </context>
<context> <context>
<name>FernschreiberUtils</name> <name>FernschreiberUtils</name>
<message>
<source>Sticker: %1</source>
<translation>Tarra: %1</translation>
</message>
<message> <message>
<source>sent a picture</source> <source>sent a picture</source>
<comment>myself</comment> <comment>myself</comment>
@ -935,10 +931,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>lähetti videoviestin</translation> <translation>lähetti videoviestin</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1894,10 +1886,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Kuva: %1</translation> <translation>Kuva: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Tarra: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Äänite: %1</translation> <translation>Äänite: %1</translation>
@ -2291,9 +2279,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>lähetti pelin</translation> <translation>lähetti pelin</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -730,10 +730,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>a quitté cette conversation</translation> <translation>a quitté cette conversation</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Autocollant : %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -934,10 +930,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>a envoyé une note vidéo</translation> <translation>a envoyé une note vidéo</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1893,10 +1885,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Image : %1</translation> <translation>Image : %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Autocollant : %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audio : %1</translation> <translation>Audio : %1</translation>
@ -2290,9 +2278,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>a envoyé un jeu</translation> <translation>a envoyé un jeu</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -718,10 +718,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation type="unfinished">kilépett a csevegésből</translation> <translation type="unfinished">kilépett a csevegésből</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation type="unfinished">Matrica: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -920,10 +916,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1866,10 +1858,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Kép: %1</translation> <translation>Kép: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Matrica: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audió: %1</translation> <translation>Audió: %1</translation>
@ -2262,9 +2250,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -730,10 +730,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>ha lasciato questa chat</translation> <translation>ha lasciato questa chat</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -934,10 +930,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>ha inviato un videomessaggio</translation> <translation>ha inviato un videomessaggio</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1893,10 +1885,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Foto: %1</translation> <translation>Foto: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audio: %1</translation> <translation>Audio: %1</translation>
@ -2290,9 +2278,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>ha inviato un gioco</translation> <translation>ha inviato un gioco</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -742,10 +742,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>opuścił ten czat</translation> <translation>opuścił ten czat</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Naklejka: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -948,10 +944,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>wysłał notatkę video</translation> <translation>wysłał notatkę video</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animowane Emoji: %1</translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1920,10 +1912,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Obraz: %1</translation> <translation>Obraz: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Naklejka: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Dźwięk: %1</translation> <translation>Dźwięk: %1</translation>
@ -2318,9 +2306,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>wysłał grę</translation> <translation>wysłał grę</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animowane Emoji: %1</translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -745,10 +745,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>покунул(а) чат</translation> <translation>покунул(а) чат</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Стикер: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -951,10 +947,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>отправил(а) видео заметку</translation> <translation>отправил(а) видео заметку</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1923,10 +1915,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Картинка: %1</translation> <translation>Картинка: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Стикер: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Аудио: %1</translation> <translation>Аудио: %1</translation>
@ -2321,9 +2309,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>отправил(а) игру</translation> <translation>отправил(а) игру</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -742,10 +742,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>opustil tento čet</translation> <translation>opustil tento čet</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Nálepka: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -948,10 +944,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>poslal video-poznámku</translation> <translation>poslal video-poznámku</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1920,10 +1912,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Obrázok: %1</translation> <translation>Obrázok: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Nálepka: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Zvuk: %1</translation> <translation>Zvuk: %1</translation>
@ -2318,9 +2306,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>poslal hru</translation> <translation>poslal hru</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -730,10 +730,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>lämnade denna chatt</translation> <translation>lämnade denna chatt</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Dekal: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -934,10 +930,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation>skickade ett videomeddelande</translation> <translation>skickade ett videomeddelande</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animerad emoji: %1</translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1893,10 +1885,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Bild: %1</translation> <translation>Bild: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Dekal: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Ljud: %1</translation> <translation>Ljud: %1</translation>
@ -2290,9 +2278,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation>skickade ett spel</translation> <translation>skickade ett spel</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation>Animerad emoji: %1</translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -719,10 +719,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -921,10 +917,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1867,10 +1859,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
@ -2263,9 +2251,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

View file

@ -730,10 +730,6 @@
<source>left this chat</source> <source>left this chat</source>
<translation>left this chat</translation> <translation>left this chat</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>sent a voice note</source> <source>sent a voice note</source>
<comment>myself</comment> <comment>myself</comment>
@ -934,10 +930,6 @@
<source>sent a video note</source> <source>sent a video note</source>
<translation type="unfinished">sent a video note</translation> <translation type="unfinished">sent a video note</translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ImagePage</name> <name>ImagePage</name>
@ -1893,10 +1885,6 @@
<source>Picture: %1</source> <source>Picture: %1</source>
<translation>Picture: %1</translation> <translation>Picture: %1</translation>
</message> </message>
<message>
<source>Sticker: %1</source>
<translation>Sticker: %1</translation>
</message>
<message> <message>
<source>Audio: %1</source> <source>Audio: %1</source>
<translation>Audio: %1</translation> <translation>Audio: %1</translation>
@ -2290,9 +2278,5 @@
<source>sent a game</source> <source>sent a game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Animated Emoji: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>