Search for public chats...
This commit is contained in:
parent
0f28db0115
commit
2e970f2003
17 changed files with 792 additions and 2 deletions
|
@ -84,6 +84,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \
|
|||
qml/pages/AboutPage.qml \
|
||||
qml/pages/PollCreationPage.qml \
|
||||
qml/pages/PollResultsPage.qml \
|
||||
qml/pages/SearchChatsPage.qml \
|
||||
qml/pages/SettingsPage.qml \
|
||||
qml/pages/VideoPage.qml \
|
||||
rpm/harbour-fernschreiber.changes \
|
||||
|
|
|
@ -230,6 +230,10 @@ Page {
|
|||
text: qsTr("Settings")
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("../pages/SettingsPage.qml"))
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Search Chats")
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("../pages/SearchChatsPage.qml"))
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("New Chat")
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("../pages/NewChatPage.qml"))
|
||||
|
@ -285,7 +289,6 @@ Page {
|
|||
width: visible ? ( parent.width - pageStatus.width ) : 0
|
||||
height: pageHeader.height
|
||||
placeholderText: qsTr("Filter your chats...")
|
||||
active: searchHeaderItem.visible
|
||||
canHide: text === ""
|
||||
|
||||
onTextChanged: {
|
||||
|
|
258
qml/pages/SearchChatsPage.qml
Normal file
258
qml/pages/SearchChatsPage.qml
Normal file
|
@ -0,0 +1,258 @@
|
|||
/*
|
||||
Copyright (C) 2020 Sebastian J. Wolf and other contributors
|
||||
|
||||
This file is part of Fernschreiber.
|
||||
|
||||
Fernschreiber is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Fernschreiber is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
import QtQuick 2.6
|
||||
import Sailfish.Silica 1.0
|
||||
import WerkWolf.Fernschreiber 1.0
|
||||
import "../components"
|
||||
import "../js/debug.js" as Debug
|
||||
import "../js/twemoji.js" as Emoji
|
||||
import "../js/functions.js" as Functions
|
||||
|
||||
Page {
|
||||
id: searchChatsPage
|
||||
allowedOrientations: Orientation.All
|
||||
|
||||
function resetFocus() {
|
||||
publicChatsSearchField.focus = false;
|
||||
searchChatsPage.focus = true;
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: searchPublicChatsTimer
|
||||
interval: 800
|
||||
running: false
|
||||
repeat: false
|
||||
onTriggered: {
|
||||
Debug.log("Searching for '" + publicChatsSearchField.text + "'");
|
||||
tdLibWrapper.searchPublicChats(publicChatsSearchField.text);
|
||||
searchChatsPage.isLoading = true;
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: tdLibWrapper
|
||||
onChatsReceived: {
|
||||
searchChatsPage.isLoading = false;
|
||||
Debug.log(JSON.stringify(chats));
|
||||
chatsFound = chats;
|
||||
}
|
||||
}
|
||||
|
||||
property bool isLoading: false;
|
||||
property var chatsFound;
|
||||
readonly property var ownUserId: tdLibWrapper.getUserInformation().id;
|
||||
|
||||
SilicaFlickable {
|
||||
id: searchChatsContainer
|
||||
contentHeight: searchChatsPage.height
|
||||
anchors.fill: parent
|
||||
|
||||
Column {
|
||||
id: searchChatsPageColumn
|
||||
width: searchChatsPage.width
|
||||
height: searchChatsPage.height
|
||||
|
||||
PageHeader {
|
||||
id: searchChatsPageHeader
|
||||
title: qsTr("Search Chats")
|
||||
}
|
||||
|
||||
Item {
|
||||
id: publicChatsItem
|
||||
|
||||
width: searchChatsPageColumn.width
|
||||
height: searchChatsPageColumn.height - searchChatsPageHeader.height
|
||||
|
||||
Column {
|
||||
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
SearchField {
|
||||
id: publicChatsSearchField
|
||||
width: parent.width
|
||||
placeholderText: qsTr("Search a chat...")
|
||||
focus: true
|
||||
|
||||
onTextChanged: {
|
||||
searchPublicChatsTimer.restart();
|
||||
}
|
||||
|
||||
EnterKey.iconSource: "image://theme/icon-m-enter-close"
|
||||
EnterKey.onClicked: {
|
||||
resetFocus();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SilicaListView {
|
||||
id: searchChatsListView
|
||||
clip: true
|
||||
width: parent.width
|
||||
height: parent.height - publicChatsSearchField.height
|
||||
visible: !searchChatsPage.isLoading
|
||||
opacity: visible ? 1 : 0
|
||||
Behavior on opacity { FadeAnimation {} }
|
||||
model: searchChatsPage.chatsFound.chat_ids
|
||||
|
||||
ViewPlaceholder {
|
||||
y: Theme.paddingLarge
|
||||
enabled: searchChatsListView.count === 0
|
||||
text: publicChatsSearchField.text.length < 5 ? qsTr("Enter your query to start searching (at least 5 characters needed)") : qsTr("No chats found.")
|
||||
}
|
||||
|
||||
delegate: Item {
|
||||
id: foundChatListDelegate
|
||||
width: parent.width
|
||||
height: foundChatListItem.height
|
||||
|
||||
property var foundChatInformation: tdLibWrapper.getChat(modelData);
|
||||
property var relatedInformation;
|
||||
property bool isPrivateChat: false;
|
||||
property bool isBasicGroup: false;
|
||||
property bool isSupergroup: false;
|
||||
|
||||
Component.onCompleted: {
|
||||
switch (foundChatInformation.type["@type"]) {
|
||||
case "chatTypePrivate":
|
||||
relatedInformation = tdLibWrapper.getUserInformation(foundChatInformation.type.user_id);
|
||||
foundChatListItem.prologSecondaryText.text = qsTr("Private Chat");
|
||||
foundChatListItem.secondaryText.text = "@" + ( relatedInformation.username !== "" ? relatedInformation.username : relatedInformation.user_id );
|
||||
tdLibWrapper.getUserFullInfo(foundChatInformation.type.user_id);
|
||||
isPrivateChat = true;
|
||||
break;
|
||||
case "chatTypeBasicGroup":
|
||||
relatedInformation = tdLibWrapper.getBasicGroup(foundChatInformation.type.basic_group_id);
|
||||
foundChatListItem.prologSecondaryText.text = qsTr("Group");
|
||||
tdLibWrapper.getGroupFullInfo(foundChatInformation.type.basic_group_id, false);
|
||||
isBasicGroup = true;
|
||||
break;
|
||||
case "chatTypeSupergroup":
|
||||
relatedInformation = tdLibWrapper.getSuperGroup(foundChatInformation.type.supergroup_id);
|
||||
if (relatedInformation.is_channel) {
|
||||
foundChatListItem.prologSecondaryText.text = qsTr("Channel");
|
||||
} else {
|
||||
foundChatListItem.prologSecondaryText.text = qsTr("Group");
|
||||
}
|
||||
tdLibWrapper.getGroupFullInfo(foundChatInformation.type.supergroup_id, true);
|
||||
isSupergroup = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: tdLibWrapper
|
||||
onUserFullInfoUpdated: {
|
||||
if (foundChatListDelegate.isPrivateChat && userId.toString() === foundChatListDelegate.foundChatInformation.type.user_id.toString()) {
|
||||
foundChatListItem.tertiaryText.text = Emoji.emojify(userFullInfo.bio, foundChatListItem.tertiaryText.font.pixelSize, "../js/emoji/");
|
||||
}
|
||||
}
|
||||
onUserFullInfoReceived: {
|
||||
if (foundChatListDelegate.isPrivateChat && userFullInfo["@extra"].toString() === foundChatListDelegate.foundChatInformation.type.user_id.toString()) {
|
||||
foundChatListItem.tertiaryText.text = Emoji.emojify(userFullInfo.bio, foundChatListItem.tertiaryText.font.pixelSize, "../js/emoji/");
|
||||
}
|
||||
}
|
||||
|
||||
onBasicGroupFullInfoUpdated: {
|
||||
if (foundChatListDelegate.isBasicGroup && groupId.toString() === foundChatListDelegate.foundChatInformation.type.basic_group_id.toString()) {
|
||||
foundChatListItem.secondaryText.text = qsTr("%1 members").arg(Number(groupFullInfo.members.length).toLocaleString(Qt.locale(), "f", 0));
|
||||
foundChatListItem.tertiaryText.text = Emoji.emojify(groupFullInfo.description, foundChatListItem.tertiaryText.font.pixelSize, "../js/emoji/");
|
||||
}
|
||||
}
|
||||
onBasicGroupFullInfoReceived: {
|
||||
if (foundChatListDelegate.isBasicGroup && groupId.toString() === foundChatListDelegate.foundChatInformation.type.basic_group_id.toString()) {
|
||||
foundChatListItem.secondaryText.text = qsTr("%1 members").arg(Number(groupFullInfo.members.length).toLocaleString(Qt.locale(), "f", 0));
|
||||
foundChatListItem.tertiaryText.text = Emoji.emojify(groupFullInfo.description, foundChatListItem.tertiaryText.font.pixelSize, "../js/emoji/");
|
||||
}
|
||||
}
|
||||
|
||||
onSupergroupFullInfoUpdated: {
|
||||
if (foundChatListDelegate.isSupergroup && groupId.toString() === foundChatListDelegate.foundChatInformation.type.supergroup_id.toString()) {
|
||||
if (foundChatListDelegate.relatedInformation.is_channel) {
|
||||
foundChatListItem.secondaryText.text = qsTr("%1 subscribers").arg(Number(groupFullInfo.member_count).toLocaleString(Qt.locale(), "f", 0));
|
||||
} else {
|
||||
foundChatListItem.secondaryText.text = qsTr("%1 members").arg(Number(groupFullInfo.member_count).toLocaleString(Qt.locale(), "f", 0));
|
||||
}
|
||||
foundChatListItem.tertiaryText.text = Emoji.emojify(groupFullInfo.description, foundChatListItem.tertiaryText.font.pixelSize, "../js/emoji/");
|
||||
}
|
||||
}
|
||||
onSupergroupFullInfoReceived: {
|
||||
if (foundChatListDelegate.isSupergroup && groupId.toString() === foundChatListDelegate.foundChatInformation.type.supergroup_id.toString()) {
|
||||
if (foundChatListDelegate.relatedInformation.is_channel) {
|
||||
foundChatListItem.secondaryText.text = qsTr("%1 subscribers").arg(Number(groupFullInfo.member_count).toLocaleString(Qt.locale(), "f", 0));
|
||||
} else {
|
||||
foundChatListItem.secondaryText.text = qsTr("%1 members").arg(Number(groupFullInfo.member_count).toLocaleString(Qt.locale(), "f", 0));
|
||||
}
|
||||
foundChatListItem.tertiaryText.text = Emoji.emojify(groupFullInfo.description, foundChatListItem.tertiaryText.font.pixelSize, "../js/emoji/");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PhotoTextsListItem {
|
||||
id: foundChatListItem
|
||||
|
||||
pictureThumbnail {
|
||||
photoData: typeof foundChatInformation.photo.small !== "undefined" ? foundChatInformation.photo.small : {}
|
||||
}
|
||||
width: parent.width
|
||||
|
||||
primaryText.text: Emoji.emojify(foundChatInformation.title, primaryText.font.pixelSize, "../js/emoji/")
|
||||
tertiaryText.maximumLineCount: 1
|
||||
|
||||
onClicked: {
|
||||
pageStack.push(Qt.resolvedUrl("../pages/ChatPage.qml"), { "chatInformation" : foundChatInformation });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VerticalScrollDecorator {}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Column {
|
||||
|
||||
opacity: visible ? 1 : 0
|
||||
Behavior on opacity { FadeAnimation {} }
|
||||
visible: searchChatsPage.isLoading
|
||||
width: parent.width
|
||||
height: loadingLabel.height + loadingBusyIndicator.height + Theme.paddingMedium
|
||||
|
||||
spacing: Theme.paddingMedium
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
InfoLabel {
|
||||
id: loadingLabel
|
||||
text: qsTr("Searching chats...")
|
||||
}
|
||||
|
||||
BusyIndicator {
|
||||
id: loadingBusyIndicator
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
running: searchChatsPage.isLoading
|
||||
size: BusyIndicatorSize.Large
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -951,6 +951,16 @@ void TDLibWrapper::searchChatMessages(const qlonglong &chatId, const QString &qu
|
|||
this->sendRequest(requestObject);
|
||||
}
|
||||
|
||||
void TDLibWrapper::searchPublicChats(const QString &query)
|
||||
{
|
||||
LOG("Searching public chats" << query);
|
||||
QVariantMap requestObject;
|
||||
requestObject.insert(_TYPE, "searchPublicChats");
|
||||
requestObject.insert("query", query);
|
||||
requestObject.insert(_EXTRA, "searchPublicChats");
|
||||
this->sendRequest(requestObject);
|
||||
}
|
||||
|
||||
void TDLibWrapper::searchEmoji(const QString &queryString)
|
||||
{
|
||||
LOG("Searching emoji" << queryString);
|
||||
|
|
|
@ -180,6 +180,7 @@ public:
|
|||
Q_INVOKABLE void closeSecretChat(qlonglong secretChatId);
|
||||
Q_INVOKABLE void importContacts(const QVariantList &contacts);
|
||||
Q_INVOKABLE void searchChatMessages(const qlonglong &chatId, const QString &query, const qlonglong fromMessageId = 0);
|
||||
Q_INVOKABLE void searchPublicChats(const QString &query);
|
||||
|
||||
// Others (candidates for extraction ;))
|
||||
Q_INVOKABLE void searchEmoji(const QString &queryString);
|
||||
|
|
|
@ -1038,6 +1038,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation>Ihre Chats filtern...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation>Chats suchen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1232,6 +1236,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation>Keine Chats gefunden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation>Suche Chats...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation>Privater Chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation>Gruppe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation>Kanal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 Mitglied</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 Abonnent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation>Chats suchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation>Einen Chat suchen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation>Geben Sie Ihre Anfrage ein, um die Suche zu starten (mindestens 5 Zeichen benötigt)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1038,6 +1038,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation>Filter your chats...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation>Search Chats</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1232,6 +1236,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation>No chats found.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation>Searching chats...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation>Private Chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation>Group</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation>Channel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 member</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 subscriber</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation>Search Chats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation>Search a chat...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation>Enter your query to start searching (at least 5 characters needed)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1027,6 +1027,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1213,6 +1217,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">Privado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 miembros</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 suscriptores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1039,6 +1039,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1233,6 +1237,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">Yksityinen keskustelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 jäsen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 tilaaja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1027,6 +1027,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1213,6 +1217,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 tag</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 feliratkozott</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1038,6 +1038,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1232,6 +1236,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">Chat privata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 membro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 abbonato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1049,6 +1049,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1251,6 +1255,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">Prywatny czat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 członek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 subskrybent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1049,6 +1049,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1251,6 +1255,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">Приватный Чат</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 участников</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 подписчиков</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1038,6 +1038,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1232,6 +1236,49 @@
|
|||
<translation>Valt av:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">Privat chatt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 medlem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 prenumerant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1027,6 +1027,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1213,6 +1217,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished">个人对话</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 位成员</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 位订阅者</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1038,6 +1038,10 @@
|
|||
<source>Filter your chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinnedMessageItem</name>
|
||||
|
@ -1232,6 +1236,49 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchChatsPage</name>
|
||||
<message>
|
||||
<source>No chats found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching chats...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private Chat</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 members</source>
|
||||
<translation type="unfinished">%1 member</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 subscribers</source>
|
||||
<translation type="unfinished">%1 subscriber</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Chats</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search a chat...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your query to start searching (at least 5 characters needed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
|
|
Loading…
Reference in a new issue