Compare commits
9 commits
f58afe92cb
...
062f5d3811
Author | SHA1 | Date | |
---|---|---|---|
062f5d3811 | |||
034c70542f | |||
|
ef244c3319 | ||
|
556505894c | ||
|
7c63ad66f9 | ||
|
26772a48eb | ||
|
2ded14deda | ||
|
465c082328 | ||
|
25e6660e8e |
20 changed files with 398 additions and 272 deletions
|
@ -132,18 +132,22 @@ ListItem {
|
||||||
|
|
||||||
if (messageListItem.messageReactions) {
|
if (messageListItem.messageReactions) {
|
||||||
messageListItem.messageReactions = null;
|
messageListItem.messageReactions = null;
|
||||||
} else if (messageListItem.chatReactions) {
|
|
||||||
Debug.log("Using chat reactions")
|
|
||||||
messageListItem.messageReactions = chatReactions
|
|
||||||
showItemCompletelyTimer.requestedIndex = index;
|
|
||||||
showItemCompletelyTimer.start();
|
|
||||||
} else {
|
|
||||||
Debug.log("Obtaining message reactions")
|
|
||||||
tdLibWrapper.getMessageAvailableReactions(messageListItem.chatId, messageListItem.messageId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onDoubleClicked: {
|
||||||
|
if (messageListItem.chatReactions) {
|
||||||
|
Debug.log("Using chat reactions")
|
||||||
|
messageListItem.messageReactions = chatReactions
|
||||||
|
showItemCompletelyTimer.requestedIndex = index;
|
||||||
|
showItemCompletelyTimer.start();
|
||||||
|
} else {
|
||||||
|
Debug.log("Obtaining message reactions")
|
||||||
|
tdLibWrapper.getMessageAvailableReactions(messageListItem.chatId, messageListItem.messageId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onPressAndHold: {
|
onPressAndHold: {
|
||||||
if (openMenuOnPressAndHold) {
|
if (openMenuOnPressAndHold) {
|
||||||
openContextMenu()
|
openContextMenu()
|
||||||
|
|
|
@ -108,27 +108,38 @@ ListItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: chatUnreadReactionCountBackground
|
|
||||||
color: isMuted ? ((Theme.colorScheme === Theme.DarkOnLight) ? "lightgray" : "dimgray") : Theme.highlightBackgroundColor
|
color: isMuted ? ((Theme.colorScheme === Theme.DarkOnLight) ? "lightgray" : "dimgray") : Theme.highlightBackgroundColor
|
||||||
width: Theme.fontSizeLarge
|
width: Theme.fontSizeLarge
|
||||||
height: Theme.fontSizeLarge
|
height: Theme.fontSizeLarge
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
radius: parent.width / 2
|
radius: parent.width / 2
|
||||||
visible: chatListViewItem.unreadReactionCount > 0
|
visible: chatListViewItem.unreadReactionCount > 0 || chatListViewItem.unreadMentionCount > 0
|
||||||
}
|
|
||||||
|
|
||||||
Icon {
|
Icon {
|
||||||
source: "image://theme/icon-s-favorite"
|
source: "image://theme/icon-s-favorite"
|
||||||
height: Theme.iconSizeExtraSmall
|
height: Theme.iconSizeExtraSmall
|
||||||
width: Theme.iconSizeExtraSmall
|
width: Theme.iconSizeExtraSmall
|
||||||
highlighted: chatListViewItem.highlighted
|
highlighted: chatListViewItem.highlighted
|
||||||
anchors.centerIn: chatUnreadReactionCountBackground
|
anchors.centerIn: parent
|
||||||
visible: chatListViewItem.unreadReactionCount > 0
|
visible: chatListViewItem.unreadReactionCount > 0 && !chatListViewItem.unreadMentionCount
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
font {
|
||||||
|
pixelSize: Theme.iconSizeExtraSmall
|
||||||
|
bold: true
|
||||||
|
}
|
||||||
|
color: Theme.primaryColor
|
||||||
|
anchors.centerIn: parent
|
||||||
|
visible: chatListViewItem.unreadMentionCount > 0
|
||||||
|
opacity: isMuted ? Theme.opacityHigh : 1.0
|
||||||
|
text: "@"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id: contentColumn
|
id: contentColumn
|
||||||
anchors {
|
anchors {
|
||||||
|
|
|
@ -609,6 +609,15 @@ Page {
|
||||||
|
|
||||||
chatViewCooldownTimer.restart();
|
chatViewCooldownTimer.restart();
|
||||||
chatViewStartupReadTimer.restart();
|
chatViewStartupReadTimer.restart();
|
||||||
|
|
||||||
|
var remainingDoubleTapHints = appSettings.remainingDoubleTapHints;
|
||||||
|
Debug.log("Remaining double tap hints: " + remainingDoubleTapHints);
|
||||||
|
if (remainingDoubleTapHints > 0) {
|
||||||
|
doubleTapHintTimer.start();
|
||||||
|
tapHint.visible = true;
|
||||||
|
tapHintLabel.visible = true;
|
||||||
|
appSettings.remainingDoubleTapHints = remainingDoubleTapHints - 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onNewMessageReceived: {
|
onNewMessageReceived: {
|
||||||
if (( chatView.manuallyScrolledToBottom && Qt.application.state === Qt.ApplicationActive ) || message.sender_id.user_id === chatPage.myUserId) {
|
if (( chatView.manuallyScrolledToBottom && Qt.application.state === Qt.ApplicationActive ) || message.sender_id.user_id === chatPage.myUserId) {
|
||||||
|
@ -2157,4 +2166,31 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: doubleTapHintTimer
|
||||||
|
running: true
|
||||||
|
triggeredOnStart: false
|
||||||
|
repeat: false
|
||||||
|
interval: 6000
|
||||||
|
onTriggered: {
|
||||||
|
tapHint.visible = false;
|
||||||
|
tapHintLabel.visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TapInteractionHint {
|
||||||
|
id: tapHint
|
||||||
|
loops: Animation.Infinite
|
||||||
|
taps: 2
|
||||||
|
anchors.centerIn: parent
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
|
||||||
|
InteractionHintLabel {
|
||||||
|
id: tapHintLabel
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
text: qsTr("Double-tap on a message to choose a reaction")
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ Name: harbour-fernschreiber
|
||||||
|
|
||||||
Summary: Fernschreiber is a Telegram client for Aurora OS
|
Summary: Fernschreiber is a Telegram client for Aurora OS
|
||||||
Version: 0.17
|
Version: 0.17
|
||||||
Release: 6
|
Release: 7
|
||||||
Group: Qt/Qt
|
Group: Qt/Qt
|
||||||
License: LICENSE
|
License: LICENSE
|
||||||
URL: http://werkwolf.eu/
|
URL: http://werkwolf.eu/
|
||||||
|
|
|
@ -35,6 +35,7 @@ namespace {
|
||||||
const QString KEY_STORAGE_OPTIMIZER("useStorageOptimizer");
|
const QString KEY_STORAGE_OPTIMIZER("useStorageOptimizer");
|
||||||
const QString KEY_INLINEBOT_LOCATION_ACCESS("allowInlineBotLocationAccess");
|
const QString KEY_INLINEBOT_LOCATION_ACCESS("allowInlineBotLocationAccess");
|
||||||
const QString KEY_REMAINING_INTERACTION_HINTS("remainingInteractionHints");
|
const QString KEY_REMAINING_INTERACTION_HINTS("remainingInteractionHints");
|
||||||
|
const QString KEY_REMAINING_DOUBLE_TAP_HINTS("remainingDoubleTapHints");
|
||||||
const QString KEY_ONLINE_ONLY_MODE("onlineOnlyMode");
|
const QString KEY_ONLINE_ONLY_MODE("onlineOnlyMode");
|
||||||
const QString KEY_DELAY_MESSAGE_READ("delayMessageRead");
|
const QString KEY_DELAY_MESSAGE_READ("delayMessageRead");
|
||||||
const QString KEY_FOCUS_TEXTAREA_ON_CHAT_OPEN("focusTextAreaOnChatOpen");
|
const QString KEY_FOCUS_TEXTAREA_ON_CHAT_OPEN("focusTextAreaOnChatOpen");
|
||||||
|
@ -243,6 +244,20 @@ void AppSettings::setRemainingInteractionHints(int remainingHints)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AppSettings::remainingDoubleTapHints() const
|
||||||
|
{
|
||||||
|
return settings.value(KEY_REMAINING_DOUBLE_TAP_HINTS, 3).toInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppSettings::setRemainingDoubleTapHints(int remainingHints)
|
||||||
|
{
|
||||||
|
if (remainingDoubleTapHints() != remainingHints) {
|
||||||
|
LOG(KEY_REMAINING_DOUBLE_TAP_HINTS << remainingHints);
|
||||||
|
settings.setValue(KEY_REMAINING_DOUBLE_TAP_HINTS, remainingHints);
|
||||||
|
emit remainingDoubleTapHintsChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool AppSettings::onlineOnlyMode() const
|
bool AppSettings::onlineOnlyMode() const
|
||||||
{
|
{
|
||||||
return settings.value(KEY_ONLINE_ONLY_MODE, false).toBool();
|
return settings.value(KEY_ONLINE_ONLY_MODE, false).toBool();
|
||||||
|
|
|
@ -38,6 +38,7 @@ class AppSettings : public QObject {
|
||||||
Q_PROPERTY(bool storageOptimizer READ storageOptimizer WRITE setStorageOptimizer NOTIFY storageOptimizerChanged)
|
Q_PROPERTY(bool storageOptimizer READ storageOptimizer WRITE setStorageOptimizer NOTIFY storageOptimizerChanged)
|
||||||
Q_PROPERTY(bool allowInlineBotLocationAccess READ allowInlineBotLocationAccess WRITE setAllowInlineBotLocationAccess NOTIFY allowInlineBotLocationAccessChanged)
|
Q_PROPERTY(bool allowInlineBotLocationAccess READ allowInlineBotLocationAccess WRITE setAllowInlineBotLocationAccess NOTIFY allowInlineBotLocationAccessChanged)
|
||||||
Q_PROPERTY(int remainingInteractionHints READ remainingInteractionHints WRITE setRemainingInteractionHints NOTIFY remainingInteractionHintsChanged)
|
Q_PROPERTY(int remainingInteractionHints READ remainingInteractionHints WRITE setRemainingInteractionHints NOTIFY remainingInteractionHintsChanged)
|
||||||
|
Q_PROPERTY(int remainingDoubleTapHints READ remainingDoubleTapHints WRITE setRemainingDoubleTapHints NOTIFY remainingDoubleTapHintsChanged)
|
||||||
Q_PROPERTY(bool onlineOnlyMode READ onlineOnlyMode WRITE setOnlineOnlyMode NOTIFY onlineOnlyModeChanged)
|
Q_PROPERTY(bool onlineOnlyMode READ onlineOnlyMode WRITE setOnlineOnlyMode NOTIFY onlineOnlyModeChanged)
|
||||||
Q_PROPERTY(bool delayMessageRead READ delayMessageRead WRITE setDelayMessageRead NOTIFY delayMessageReadChanged)
|
Q_PROPERTY(bool delayMessageRead READ delayMessageRead WRITE setDelayMessageRead NOTIFY delayMessageReadChanged)
|
||||||
Q_PROPERTY(bool focusTextAreaOnChatOpen READ getFocusTextAreaOnChatOpen WRITE setFocusTextAreaOnChatOpen NOTIFY focusTextAreaOnChatOpenChanged)
|
Q_PROPERTY(bool focusTextAreaOnChatOpen READ getFocusTextAreaOnChatOpen WRITE setFocusTextAreaOnChatOpen NOTIFY focusTextAreaOnChatOpenChanged)
|
||||||
|
@ -104,6 +105,9 @@ public:
|
||||||
int remainingInteractionHints() const;
|
int remainingInteractionHints() const;
|
||||||
void setRemainingInteractionHints(int remainingHints);
|
void setRemainingInteractionHints(int remainingHints);
|
||||||
|
|
||||||
|
int remainingDoubleTapHints() const;
|
||||||
|
void setRemainingDoubleTapHints(int remainingHints);
|
||||||
|
|
||||||
bool onlineOnlyMode() const;
|
bool onlineOnlyMode() const;
|
||||||
void setOnlineOnlyMode(bool enable);
|
void setOnlineOnlyMode(bool enable);
|
||||||
|
|
||||||
|
@ -134,6 +138,7 @@ signals:
|
||||||
void storageOptimizerChanged();
|
void storageOptimizerChanged();
|
||||||
void allowInlineBotLocationAccessChanged();
|
void allowInlineBotLocationAccessChanged();
|
||||||
void remainingInteractionHintsChanged();
|
void remainingInteractionHintsChanged();
|
||||||
|
void remainingDoubleTapHintsChanged();
|
||||||
void onlineOnlyModeChanged();
|
void onlineOnlyModeChanged();
|
||||||
void delayMessageReadChanged();
|
void delayMessageReadChanged();
|
||||||
void focusTextAreaOnChatOpenChanged();
|
void focusTextAreaOnChatOpenChanged();
|
||||||
|
|
|
@ -175,6 +175,7 @@ TDLibReceiver::TDLibReceiver(void *tdLibClient, QObject *parent) : QThread(paren
|
||||||
handlers.insert("updateMessageInteractionInfo", &TDLibReceiver::processUpdateMessageInteractionInfo);
|
handlers.insert("updateMessageInteractionInfo", &TDLibReceiver::processUpdateMessageInteractionInfo);
|
||||||
handlers.insert("sessions", &TDLibReceiver::processSessions);
|
handlers.insert("sessions", &TDLibReceiver::processSessions);
|
||||||
handlers.insert("availableReactions", &TDLibReceiver::processAvailableReactions);
|
handlers.insert("availableReactions", &TDLibReceiver::processAvailableReactions);
|
||||||
|
handlers.insert("updateMessageMentionRead", &TDLibReceiver::processUpdateChatUnreadMentionCount);
|
||||||
handlers.insert("updateChatUnreadMentionCount", &TDLibReceiver::processUpdateChatUnreadMentionCount);
|
handlers.insert("updateChatUnreadMentionCount", &TDLibReceiver::processUpdateChatUnreadMentionCount);
|
||||||
handlers.insert("updateChatUnreadReactionCount", &TDLibReceiver::processUpdateChatUnreadReactionCount);
|
handlers.insert("updateChatUnreadReactionCount", &TDLibReceiver::processUpdateChatUnreadReactionCount);
|
||||||
handlers.insert("updateActiveEmojiReactions", &TDLibReceiver::processUpdateActiveEmojiReactions);
|
handlers.insert("updateActiveEmojiReactions", &TDLibReceiver::processUpdateActiveEmojiReactions);
|
||||||
|
@ -736,6 +737,8 @@ void TDLibReceiver::processAvailableReactions(const QVariantMap &receivedInforma
|
||||||
|
|
||||||
void TDLibReceiver::processUpdateChatUnreadMentionCount(const QVariantMap &receivedInformation)
|
void TDLibReceiver::processUpdateChatUnreadMentionCount(const QVariantMap &receivedInformation)
|
||||||
{
|
{
|
||||||
|
// Handles both updateMessageMentionRead and updateChatUnreadMentionCount
|
||||||
|
// They both have chat_id and unread_mention_count which is all we need
|
||||||
const qlonglong chatId = receivedInformation.value(CHAT_ID).toLongLong();
|
const qlonglong chatId = receivedInformation.value(CHAT_ID).toLongLong();
|
||||||
const int unreadMentionCount = receivedInformation.value(UNREAD_MENTION_COUNT).toInt();
|
const int unreadMentionCount = receivedInformation.value(UNREAD_MENTION_COUNT).toInt();
|
||||||
LOG("Chat unread mention count updated" << chatId << unreadMentionCount);
|
LOG("Chat unread mention count updated" << chatId << unreadMentionCount);
|
||||||
|
|
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Gelöschtes Konto</translation>
|
<translation>Gelöschtes Konto</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation>Drücke zweimal auf eine Nachricht, um eine Reaktion auszuwählen</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Deleted User</translation>
|
<translation>Deleted User</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="en">
|
<TS version="2.1" language="fr">
|
||||||
<context>
|
<context>
|
||||||
<name>AboutPage</name>
|
<name>AboutPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Supprimer l'utilisateur</translation>
|
<translation>Supprimer l'utilisateur</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation>Toucher deux fois sur un message pour réagir</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
@ -1159,7 +1163,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No contacts found.</source>
|
<source>No contacts found.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Aucun contact trouvé</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1577,23 +1581,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Always append message preview to notifications</source>
|
<source>Always append message preview to notifications</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Toujours visualiser le message dans les notifications</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>In addition to showing the number of unread messages, the latest message will also be appended to notifications.</source>
|
<source>In addition to showing the number of unread messages, the latest message will also be appended to notifications.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>En plus d'afficher le nombre de messages non-lus, le dernier message sera également ajouté aux notifications.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Highlight unread messages</source>
|
<source>Highlight unread messages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mettre en valeur les messages non-lus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Highlight Conversations with unread messages</source>
|
<source>Highlight Conversations with unread messages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mettre en valeur les conversations avec des messages non-lus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Hide content in notifications</source>
|
<source>Hide content in notifications</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Masquer le contenu dans les notifications</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1706,38 +1710,38 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 day(s)</source>
|
<source>%1 day(s)</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 jour(s)</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>1 week</source>
|
<source>1 week</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>1 semaine</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>1 month</source>
|
<source>1 month</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>1 mois</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>3 months</source>
|
<source>3 months</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>3 mois</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>6 months</source>
|
<source>6 months</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>6 mois</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>1 year</source>
|
<source>1 year</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>1 année</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Session Timeout</source>
|
<source>Session Timeout</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Délai d'inactivité de session</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Inactive sessions will be terminated after this timeframe</source>
|
<source>Inactive sessions will be terminated after this timeframe</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Sessions inactives seront terminées après ce délai</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -473,6 +473,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -493,6 +493,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Usunięty użytkownik</translation>
|
<translation>Usunięty użytkownik</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -348,11 +348,11 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>Leave Chat</source>
|
||||||
<translation>Выйти из Чата</translation>
|
<translation>Выйти из чата</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Join Chat</source>
|
||||||
<translation>Зайти в Чат</translation>
|
<translation>Зайти в чат</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
|
@ -427,7 +427,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search in Chat</source>
|
<source>Search in Chat</source>
|
||||||
<translation>Найти в Чате</translation>
|
<translation>Поиск в чате</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search in chat...</source>
|
<source>Search in chat...</source>
|
||||||
|
@ -493,6 +493,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Удалённый пользователь</translation>
|
<translation>Удалённый пользователь</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
@ -1152,7 +1156,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Secret Chat</source>
|
<source>Secret Chat</source>
|
||||||
<translation>Секретный Чат</translation>
|
<translation>Секретный чат</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>End-to-end-encrypted, accessible on this device only</source>
|
<source>End-to-end-encrypted, accessible on this device only</source>
|
||||||
|
@ -1234,7 +1238,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New Chat</source>
|
<source>New Chat</source>
|
||||||
<translation>Новый Чат</translation>
|
<translation>Новый чат</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Filter your chats...</source>
|
<source>Filter your chats...</source>
|
||||||
|
@ -1242,7 +1246,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation>Найти Чаты</translation>
|
<translation>Поиск чатов</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Download of %1 successful.</source>
|
<source>Download of %1 successful.</source>
|
||||||
|
@ -1453,7 +1457,7 @@
|
||||||
<name>SearchChatsPage</name>
|
<name>SearchChatsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>No chats found.</source>
|
<source>No chats found.</source>
|
||||||
<translation>Чаты не найдены</translation>
|
<translation>Ничего не найдено</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Searching chats...</source>
|
<source>Searching chats...</source>
|
||||||
|
@ -1461,7 +1465,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Private Chat</source>
|
<source>Private Chat</source>
|
||||||
<translation>Приватный Чат</translation>
|
<translation>Приватный чат</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Group</source>
|
<source>Group</source>
|
||||||
|
@ -1489,7 +1493,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation>Найти Чаты</translation>
|
<translation>Поиск чатов</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Search a chat...</source>
|
<source>Search a chat...</source>
|
||||||
|
@ -1607,23 +1611,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Always append message preview to notifications</source>
|
<source>Always append message preview to notifications</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Всегда показывать последнее сообщение на экране событий</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>In addition to showing the number of unread messages, the latest message will also be appended to notifications.</source>
|
<source>In addition to showing the number of unread messages, the latest message will also be appended to notifications.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Включать в текст на экране событий не только количество непрочитанных сообщений, но и содержимое последнего сообщения.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Highlight unread messages</source>
|
<source>Highlight unread messages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Выделять непрочитанные сообщения</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Highlight Conversations with unread messages</source>
|
<source>Highlight Conversations with unread messages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Помечать чаты и каналы с непрочитанными сообщениями другим шрифтом и цветом.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Hide content in notifications</source>
|
<source>Hide content in notifications</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Не показывать содержимое сообщений в уведомлениях</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1736,39 +1740,39 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 day(s)</source>
|
<source>%1 day(s)</source>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 день</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 дня</numerusform>
|
||||||
<numerusform></numerusform>
|
<numerusform>%1 дней</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>1 week</source>
|
<source>1 week</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>1 неделя</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>1 month</source>
|
<source>1 month</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>1 месяц</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>3 months</source>
|
<source>3 months</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>3 месяца</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>6 months</source>
|
<source>6 months</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>6 месяцев</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>1 year</source>
|
<source>1 year</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>1 год</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Session Timeout</source>
|
<source>Session Timeout</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Таймаут неактивности</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Inactive sessions will be terminated after this timeframe</source>
|
<source>Inactive sessions will be terminated after this timeframe</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Неактивные сеансы будут автоматически завершены через указанное время.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -493,6 +493,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Odstránený používateľ</translation>
|
<translation>Odstránený používateľ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation>Tog bort användare</translation>
|
<translation>Tog bort användare</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -473,6 +473,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
|
@ -483,6 +483,10 @@
|
||||||
<source>Deleted User</source>
|
<source>Deleted User</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Double-tap on a message to choose a reaction</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatSelectionPage</name>
|
<name>ChatSelectionPage</name>
|
||||||
|
|
Loading…
Reference in a new issue