ChatInfoPage as attached page
fixes #150: Now basically everything is inside a loader; ChatInformationPage is added to ChatPage with pageStack.pushAttached fixes #166: Replaces the clunky VisualItemModel in tab view and doesn't initialize multiple times.
This commit is contained in:
parent
cb20bb686b
commit
182a2d1344
19 changed files with 1089 additions and 1033 deletions
|
@ -51,6 +51,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \
|
||||||
qml/components/PhotoTextsListItem.qml \
|
qml/components/PhotoTextsListItem.qml \
|
||||||
qml/components/WebPagePreview.qml \
|
qml/components/WebPagePreview.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationEditArea.qml \
|
qml/components/chatInformationPage/ChatInformationEditArea.qml \
|
||||||
|
qml/components/chatInformationPage/ChatInformationPageContent.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationProfilePicture.qml \
|
qml/components/chatInformationPage/ChatInformationProfilePicture.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationProfilePictureList.qml \
|
qml/components/chatInformationPage/ChatInformationProfilePictureList.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationTabItemBase.qml \
|
qml/components/chatInformationPage/ChatInformationTabItemBase.qml \
|
||||||
|
|
|
@ -0,0 +1,459 @@
|
||||||
|
/*
|
||||||
|
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 "./chatInformationPage"
|
||||||
|
import "../js/twemoji.js" as Emoji
|
||||||
|
import "../js/functions.js" as Functions
|
||||||
|
|
||||||
|
|
||||||
|
SilicaFlickable {
|
||||||
|
id: pageContent
|
||||||
|
property alias membersList: membersList
|
||||||
|
|
||||||
|
function initializePage() {
|
||||||
|
console.log("[ChatInformationPage] Initializing chat info page...");
|
||||||
|
membersList.clear();
|
||||||
|
var chatType = chatInformation.type["@type"];
|
||||||
|
switch(chatType) {
|
||||||
|
case "chatTypePrivate":
|
||||||
|
chatInformationPage.isPrivateChat = true;
|
||||||
|
chatInformationPage.chatPartnerGroupId = chatInformationPage.chatInformation.type.user_id.toString();
|
||||||
|
if(!chatInformationPage.privateChatUserInformation.id) {
|
||||||
|
chatInformationPage.privateChatUserInformation = tdLibWrapper.getUserInformation(chatInformationPage.chatPartnerGroupId);
|
||||||
|
}
|
||||||
|
tdLibWrapper.getUserFullInfo(chatInformationPage.chatPartnerGroupId);
|
||||||
|
tdLibWrapper.getUserProfilePhotos(chatInformationPage.chatPartnerGroupId, 100, 0);
|
||||||
|
break;
|
||||||
|
case "chatTypeBasicGroup":
|
||||||
|
chatInformationPage.isBasicGroup = true;
|
||||||
|
chatInformationPage.chatPartnerGroupId = chatInformation.type.basic_group_id.toString();
|
||||||
|
if(!chatInformationPage.groupInformation.id) {
|
||||||
|
chatInformationPage.groupInformation = tdLibWrapper.getBasicGroup(chatInformationPage.chatPartnerGroupId);
|
||||||
|
}
|
||||||
|
tdLibWrapper.getGroupFullInfo(chatInformationPage.chatPartnerGroupId, false);
|
||||||
|
break;
|
||||||
|
case "chatTypeSupergroup":
|
||||||
|
chatInformationPage.isSuperGroup = true;
|
||||||
|
chatInformationPage.chatPartnerGroupId = chatInformation.type.supergroup_id.toString();
|
||||||
|
if(!chatInformationPage.groupInformation.id) {
|
||||||
|
chatInformationPage.groupInformation = tdLibWrapper.getSuperGroup(chatInformationPage.chatPartnerGroupId);
|
||||||
|
}
|
||||||
|
|
||||||
|
tdLibWrapper.getGroupFullInfo(chatInformationPage.chatPartnerGroupId, true);
|
||||||
|
chatInformationPage.isChannel = chatInformationPage.groupInformation.is_channel;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
console.log("is set up", chatInformationPage.isPrivateChat, chatInformationPage.isBasicGroup, chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId)
|
||||||
|
if(!chatInformationPage.isPrivateChat) {
|
||||||
|
updateGroupStatusText();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tabViewLoader.active = true;
|
||||||
|
}
|
||||||
|
function scrollUp(force) {
|
||||||
|
if(force) {
|
||||||
|
// animation does not always work while quick scrolling
|
||||||
|
scrollUpTimer.start()
|
||||||
|
} else {
|
||||||
|
scrollUpAnimation.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function scrollDown(force) {
|
||||||
|
if(force) {
|
||||||
|
scrollDownTimer.start()
|
||||||
|
} else {
|
||||||
|
scrollDownAnimation.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleBasicGroupFullInfo(groupFullInfo) {
|
||||||
|
chatInformationPage.groupFullInformation = groupFullInfo;
|
||||||
|
membersList.clear();
|
||||||
|
if(groupFullInfo.members && groupFullInfo.members.length > 0) {
|
||||||
|
for(var memberIndex in groupFullInfo.members) {
|
||||||
|
var memberData = groupFullInfo.members[memberIndex];
|
||||||
|
var userInfo = tdLibWrapper.getUserInformation(memberData.user_id) || {user:{}, bot_info:{}};
|
||||||
|
memberData.user = userInfo;
|
||||||
|
memberData.bot_info = memberData.bot_info || {};
|
||||||
|
membersList.append(memberData);
|
||||||
|
}
|
||||||
|
chatInformationPage.groupInformation.member_count = groupFullInfo.members.length
|
||||||
|
updateGroupStatusText();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function updateGroupStatusText() {
|
||||||
|
if (chatOnlineMemberCount > 0) {
|
||||||
|
headerItem.description = qsTr("%1 members, %2 online").arg(Functions.getShortenedCount(chatInformationPage.groupInformation.member_count)).arg(Functions.getShortenedCount(chatInformationPage.chatOnlineMemberCount));
|
||||||
|
} else {
|
||||||
|
if (isChannel) {
|
||||||
|
headerItem.description = qsTr("%1 subscribers").arg(Functions.getShortenedCount(chatInformationPage.groupInformation.member_count));
|
||||||
|
} else {
|
||||||
|
headerItem.description = qsTr("%1 members").arg(Functions.getShortenedCount(chatInformationPage.groupInformation.member_count));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: tdLibWrapper
|
||||||
|
|
||||||
|
onChatOnlineMemberCountUpdated: {
|
||||||
|
if ((chatInformationPage.isSuperGroup || chatInformationPage.isBasicGroup) && chatInformationPage.chatInformation.id.toString() === chatId) {
|
||||||
|
chatInformationPage.chatOnlineMemberCount = chatInformationPage.onlineMemberCount;
|
||||||
|
updateGroupStatusText();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onSupergroupFullInfoReceived: {
|
||||||
|
console.log("onSupergroupFullInfoReceived", chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId, groupId)
|
||||||
|
if(chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
||||||
|
chatInformationPage.groupFullInformation = groupFullInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onSupergroupFullInfoUpdated: {
|
||||||
|
console.log("onSupergroupFullInfoUpdated", chatInformationPage.isSuperGroup, chatInformationPage.chatPartnerGroupId, groupId)
|
||||||
|
if(chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
||||||
|
chatInformationPage.groupFullInformation = groupFullInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onBasicGroupFullInfoReceived: {
|
||||||
|
if(chatInformationPage.isBasicGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
||||||
|
handleBasicGroupFullInfo(groupFullInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onBasicGroupFullInfoUpdated: {
|
||||||
|
if(chatInformationPage.isBasicGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
||||||
|
handleBasicGroupFullInfo(groupFullInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onUserFullInfoReceived: {
|
||||||
|
if(chatInformationPage.isPrivateChat && userFullInfo["@extra"] === chatInformationPage.chatPartnerGroupId) {
|
||||||
|
chatInformationPage.chatPartnerFullInformation = userFullInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onUserFullInfoUpdated: {
|
||||||
|
if(chatInformationPage.isPrivateChat && userId === chatInformationPage.chatPartnerGroupId) {
|
||||||
|
chatInformationPage.chatPartnerFullInformation = userFullInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onUserProfilePhotosReceived: {
|
||||||
|
if(chatInformationPage.isPrivateChat && extra === chatInformationPage.chatPartnerGroupId) {
|
||||||
|
chatInformationPage.chatPartnerProfilePhotos = photos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onChatPermissionsUpdated: {
|
||||||
|
if (chatInformationPage.chatInformation.id.toString() === chatId) {
|
||||||
|
// set whole object to trigger change
|
||||||
|
var newInformation = chatInformation;
|
||||||
|
newInformation.permissions = permissions
|
||||||
|
chatInformationPage.chatInformation = newInformation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onChatTitleUpdated: {
|
||||||
|
if (chatInformationPage.chatInformation.id.toString() === chatId) {
|
||||||
|
// set whole object to trigger change
|
||||||
|
var newInformation = chatInformation;
|
||||||
|
newInformation.title = title
|
||||||
|
chatInformationPage.chatInformation = newInformation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
console.log("completed chatinformationpage");
|
||||||
|
initializePage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ListModel {
|
||||||
|
id: membersList
|
||||||
|
}
|
||||||
|
|
||||||
|
AppNotification {
|
||||||
|
id: infoNotification
|
||||||
|
}
|
||||||
|
PullDownMenu {
|
||||||
|
MenuItem {
|
||||||
|
visible: (chatPage.isSuperGroup || chatPage.isBasicGroup) && groupInformation && groupInformation.status["@type"] !== "chatMemberStatusBanned"
|
||||||
|
text: chatInformationPage.userIsMember ? qsTr("Leave Chat") : qsTr("Join Chat")
|
||||||
|
onClicked: {
|
||||||
|
// ensure it's done even if the page is closed:
|
||||||
|
if (chatInformationPage.userIsMember) {
|
||||||
|
var remorse = Remorse.popupAction(appWindow, qsTr("Leaving chat"), (function(chatid) {
|
||||||
|
return function() {
|
||||||
|
tdLibWrapper.leaveChat(chatid);
|
||||||
|
// this does not care about the response (ideally type "ok" without further reference) for now
|
||||||
|
pageStack.pop(pageStack.find( function(page){ return(page._depth === 0)} ));
|
||||||
|
};
|
||||||
|
}(chatInformationPage.chatInformation.id)))
|
||||||
|
} else {
|
||||||
|
tdLibWrapper.joinChat(chatInformationPage.chatInformation.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MenuItem {
|
||||||
|
visible: chatInformationPage.userIsMember
|
||||||
|
onClicked: {
|
||||||
|
var newNotificationSettings = chatInformationPage.chatInformation.notification_settings;
|
||||||
|
if (newNotificationSettings.mute_for > 0) {
|
||||||
|
newNotificationSettings.mute_for = 0;
|
||||||
|
} else {
|
||||||
|
newNotificationSettings.mute_for = 6666666;
|
||||||
|
}
|
||||||
|
newNotificationSettings.use_default_mute_for = false;
|
||||||
|
tdLibWrapper.setChatNotificationSettings(chatInformationPage.chatInformation.id, newNotificationSettings);
|
||||||
|
}
|
||||||
|
text: chatInformation.notification_settings.mute_for > 0 ? qsTr("Unmute Chat") : qsTr("Mute Chat")
|
||||||
|
}
|
||||||
|
// MenuItem { //TODO Implement
|
||||||
|
// visible: !userIsMember
|
||||||
|
// onClicked: {
|
||||||
|
// tdLibWrapper.joinChat(chatInformationPage.chatInformation.id);
|
||||||
|
// }
|
||||||
|
// text: qsTr("Join Chat")
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
// header
|
||||||
|
PageHeader {
|
||||||
|
id: headerItem
|
||||||
|
z: 5
|
||||||
|
Item {
|
||||||
|
id: imageContainer
|
||||||
|
property bool hasImage: typeof chatInformationPage.chatInformation.photo !== "undefined"
|
||||||
|
property int minDimension: chatInformationPage.isLandscape ? Theme.itemSizeSmall : Theme.itemSizeMedium
|
||||||
|
property int maxDimension: Screen.width / 2
|
||||||
|
property int minX: Theme.horizontalPageMargin
|
||||||
|
property int maxX: (chatInformationPage.width - maxDimension)/2
|
||||||
|
property int minY: (parent.height - minDimension)/2
|
||||||
|
property int maxY: parent.height
|
||||||
|
property double tweenFactor: {
|
||||||
|
if(!hasImage) {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return 1 - Math.max(0, Math.min(1, contentFlickable.contentY / maxDimension))
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEased(min,max,factor) {
|
||||||
|
return min + (max-min)*factor
|
||||||
|
}
|
||||||
|
width: getEased(minDimension,maxDimension, tweenFactor)
|
||||||
|
height: width
|
||||||
|
x: getEased(minX,maxX, tweenFactor)
|
||||||
|
y: getEased(minY,maxY, tweenFactor)
|
||||||
|
|
||||||
|
ProfileThumbnail {
|
||||||
|
id: chatPictureThumbnail
|
||||||
|
photoData: imageContainer.hasImage ? chatInformationPage.chatInformation.photo.small : ""
|
||||||
|
replacementStringHint: headerItem.title
|
||||||
|
width: parent.width
|
||||||
|
height: width
|
||||||
|
radius: imageContainer.minDimension / 2
|
||||||
|
opacity: profilePictureLoader.status !== Loader.Ready || profilePictureLoader.item.opacity < 1 ? 1.0 : 0.0
|
||||||
|
optimizeImageSize: false
|
||||||
|
}
|
||||||
|
Loader {
|
||||||
|
id: profilePictureLoader
|
||||||
|
active: imageContainer.hasImage
|
||||||
|
asynchronous: true
|
||||||
|
anchors.fill: chatPictureThumbnail
|
||||||
|
source: chatInformationPage.isPrivateChat
|
||||||
|
? "../components/chatInformationPage/ChatInformationProfilePictureList.qml"
|
||||||
|
: "../components/chatInformationPage/ChatInformationProfilePicture.qml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// PageHeader changes the html base path:
|
||||||
|
property url emojiBase: "../js/emoji/"
|
||||||
|
leftMargin: imageContainer.minDimension + Theme.horizontalPageMargin + Theme.paddingMedium
|
||||||
|
title: chatInformationPage.chatInformation.title !== "" ? Emoji.emojify(chatInformationPage.chatInformation.title, Theme.fontSizeLarge, emojiBase) : qsTr("Unknown")
|
||||||
|
description: chatInformationPage.isPrivateChat ? ("@"+(chatInformationPage.privateChatUserInformation.username || chatInformationPage.chatPartnerGroupId)) : ""
|
||||||
|
}
|
||||||
|
|
||||||
|
SilicaFlickable {
|
||||||
|
id: contentFlickable
|
||||||
|
contentHeight: groupInfoItem.height + tabViewLoader.height
|
||||||
|
clip: true
|
||||||
|
interactive: true//groupInfoItem.height > pageContent.height * 0.5
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: headerItem.bottom
|
||||||
|
bottom: parent.bottom
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
NumberAnimation {
|
||||||
|
id: scrollDownAnimation
|
||||||
|
target: contentFlickable
|
||||||
|
to: groupInfoItem.height
|
||||||
|
property: "contentY"
|
||||||
|
duration: 500
|
||||||
|
easing.type: Easing.InOutCubic
|
||||||
|
}
|
||||||
|
NumberAnimation {
|
||||||
|
id: scrollUpAnimation
|
||||||
|
target: contentFlickable
|
||||||
|
to: 0
|
||||||
|
property: "contentY"
|
||||||
|
duration: 500
|
||||||
|
easing.type: Easing.InOutCubic
|
||||||
|
property Timer scrollUpTimer: Timer {
|
||||||
|
id: scrollUpTimer
|
||||||
|
interval: 50
|
||||||
|
onTriggered: {
|
||||||
|
contentFlickable.scrollToTop()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
property Timer scrollDownTimer: Timer {
|
||||||
|
id: scrollDownTimer
|
||||||
|
interval: 50
|
||||||
|
onTriggered: {
|
||||||
|
contentFlickable.scrollToBottom()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: groupInfoItem
|
||||||
|
bottomPadding: Theme.paddingLarge
|
||||||
|
topPadding: Theme.paddingLarge
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
leftMargin: Theme.horizontalPageMargin
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: Theme.horizontalPageMargin
|
||||||
|
}
|
||||||
|
|
||||||
|
Item { //large image placeholder
|
||||||
|
width: parent.width
|
||||||
|
height: imageContainer.hasImage ? imageContainer.maxDimension : 0
|
||||||
|
}
|
||||||
|
|
||||||
|
ChatInformationEditArea {
|
||||||
|
visible: canEdit
|
||||||
|
canEdit: !chatInformationPage.isPrivateChat && chatInformationPage.groupInformation.status && (chatInformationPage.groupInformation.status.can_change_info || chatInformationPage.groupInformation.status["@type"] === "chatMemberStatusCreator")
|
||||||
|
headerText: qsTr("Chat Title", "group title header")
|
||||||
|
text: chatInformationPage.chatInformation.title
|
||||||
|
|
||||||
|
onSaveButtonClicked: {
|
||||||
|
if(!editItem.errorHighlight) {
|
||||||
|
tdLibWrapper.setChatTitle(chatInformationPage.chatInformation.id, textValue);
|
||||||
|
} else {
|
||||||
|
isEditing = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onTextEdited: {
|
||||||
|
if(textValue.length > 0 && textValue.length < 129) {
|
||||||
|
editItem.errorHighlight = false
|
||||||
|
editItem.label = ""
|
||||||
|
editItem.placeholderText = ""
|
||||||
|
} else {
|
||||||
|
editItem.label = qsTr("Enter 1-128 characters")
|
||||||
|
editItem.placeholderText = editItem.label
|
||||||
|
editItem.errorHighlight = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ChatInformationEditArea {
|
||||||
|
canEdit: (chatInformationPage.isPrivateChat && chatInformationPage.privateChatUserInformation.id === chatInformationPage.myUserId) || ((chatInformationPage.isBasicGroup || chatInformationPage.isSuperGroup) && chatInformationPage.groupInformation && (chatInformationPage.groupInformation.status.can_change_info || chatInformationPage.groupInformation.status["@type"] === "chatMemberStatusCreator"))
|
||||||
|
emptyPlaceholderText: qsTr("There is no information text available, yet.")
|
||||||
|
headerText: qsTr("Info", "group or user infotext header")
|
||||||
|
multiLine: true
|
||||||
|
text: (chatInformationPage.isPrivateChat ? chatInformationPage.chatPartnerFullInformation.bio : chatInformationPage.groupFullInformation.description) || ""
|
||||||
|
onSaveButtonClicked: {
|
||||||
|
if(chatInformationPage.isPrivateChat) { // own bio
|
||||||
|
tdLibWrapper.setBio(textValue);
|
||||||
|
} else { // group info
|
||||||
|
tdLibWrapper.setChatDescription(chatInformationPage.chatInformation.id, textValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ChatInformationTextItem {
|
||||||
|
headerText: qsTr("Phone Number", "user phone number header")
|
||||||
|
text: (chatInformationPage.isPrivateChat && chatInformationPage.privateChatUserInformation.phone_number ? "+"+chatInformationPage.privateChatUserInformation.phone_number : "") || ""
|
||||||
|
isLinkedLabel: true
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionHeader {
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
visible: !!inviteLinkItem.text
|
||||||
|
height: visible ? Theme.itemSizeExtraSmall : 0
|
||||||
|
text: qsTr("Invite Link", "header")
|
||||||
|
x: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
width: parent.width
|
||||||
|
visible: !!inviteLinkItem.text
|
||||||
|
ChatInformationTextItem {
|
||||||
|
id: inviteLinkItem
|
||||||
|
text: !isPrivateChat ? chatInformationPage.groupFullInformation.invite_link : ""
|
||||||
|
width: parent.width - inviteLinkButton.width
|
||||||
|
}
|
||||||
|
IconButton {
|
||||||
|
id: inviteLinkButton
|
||||||
|
icon.source: "image://theme/icon-m-clipboard"
|
||||||
|
anchors.verticalCenter: inviteLinkItem.verticalCenter
|
||||||
|
onClicked: {
|
||||||
|
Clipboard.text = chatInformationPage.groupFullInformation.invite_link
|
||||||
|
infoNotification.show(qsTr("The Invite Link has been copied to the clipboard."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
width: parent.width
|
||||||
|
height: Theme.paddingLarge
|
||||||
|
}
|
||||||
|
|
||||||
|
Separator {
|
||||||
|
width: parent.width
|
||||||
|
color: Theme.primaryColor
|
||||||
|
horizontalAlignment: Qt.AlignHCenter
|
||||||
|
opacity: (tabViewLoader.status === Loader.Ready && tabViewLoader.item.count > 0) ? 1.0 : 0.0
|
||||||
|
|
||||||
|
Behavior on opacity { PropertyAnimation {duration: 500}}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loader {
|
||||||
|
id: tabViewLoader
|
||||||
|
asynchronous: true
|
||||||
|
active: false
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
top: groupInfoItem.bottom
|
||||||
|
}
|
||||||
|
sourceComponent: Component {
|
||||||
|
ChatInformationTabView {
|
||||||
|
id: tabView
|
||||||
|
height: tabView.count > 0 ? chatInformationPage.height - headerItem.height : 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,15 +30,12 @@ Item {
|
||||||
property alias loadingVisible: loadingColumn.loadingVisible
|
property alias loadingVisible: loadingColumn.loadingVisible
|
||||||
property string loadingText
|
property string loadingText
|
||||||
|
|
||||||
property int tabIndex: tabItem.VisualItemModel.index
|
property int tabIndex: index
|
||||||
property bool active: tabItem.ListView.isCurrentItem
|
property bool active: index === tabView.currentIndex
|
||||||
|
|
||||||
default property alias _data: contentItem.data
|
default property alias _data: contentItem.data
|
||||||
|
|
||||||
|
opacity: active ? 1.0 : 0.2
|
||||||
width: parent.width
|
|
||||||
height: tabView.maxHeight//Math.max(contentItem.height, loadingColumn.height)
|
|
||||||
opacity: active ? 1.0 : 0.0
|
|
||||||
Behavior on opacity { PropertyAnimation {duration: 300}}
|
Behavior on opacity { PropertyAnimation {duration: 300}}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
|
|
|
@ -27,8 +27,6 @@ import "../../js/functions.js" as Functions
|
||||||
|
|
||||||
ChatInformationTabItemBase {
|
ChatInformationTabItemBase {
|
||||||
id: tabBase
|
id: tabBase
|
||||||
title: chatInformationPage.isPrivateChat ? qsTr("Groups", "Button: groups in common (short)") : qsTr("Members", "Button: Group Members")
|
|
||||||
image: "image://theme/icon-m-people"
|
|
||||||
loadingText: isPrivateChat ? qsTr("Loading common chats…", "chats you have in common with a user") : qsTr("Loading group members…")
|
loadingText: isPrivateChat ? qsTr("Loading common chats…", "chats you have in common with a user") : qsTr("Loading group members…")
|
||||||
loading: ( chatInformationPage.isSuperGroup || chatInformationPage.isPrivateChat) && !chatInformationPage.isChannel
|
loading: ( chatInformationPage.isSuperGroup || chatInformationPage.isPrivateChat) && !chatInformationPage.isChannel
|
||||||
loadingVisible: loading && membersView.count === 0
|
loadingVisible: loading && membersView.count === 0
|
||||||
|
@ -37,7 +35,7 @@ ChatInformationTabItemBase {
|
||||||
|
|
||||||
SilicaListView {
|
SilicaListView {
|
||||||
id: membersView
|
id: membersView
|
||||||
model: isPrivateChat ? (chatPartnerCommonGroupsIds.length > 0 ? delegateModel : null) : chatInformationPage.membersList
|
model: chatInformationPage.isPrivateChat ? (chatPartnerCommonGroupsIds.length > 0 ? delegateModel : null) : pageContent.membersList
|
||||||
clip: true
|
clip: true
|
||||||
height: tabBase.height
|
height: tabBase.height
|
||||||
width: tabBase.width
|
width: tabBase.width
|
||||||
|
@ -46,9 +44,9 @@ ChatInformationTabItemBase {
|
||||||
function handleScrollIntoView(force){
|
function handleScrollIntoView(force){
|
||||||
if(!tabBase.loading && !dragging && !quickScrollAnimating ) {
|
if(!tabBase.loading && !dragging && !quickScrollAnimating ) {
|
||||||
if(!atYBeginning) {
|
if(!atYBeginning) {
|
||||||
chatInformationPage.scrollDown()
|
pageContent.scrollDown()
|
||||||
} else {
|
} else {
|
||||||
chatInformationPage.scrollUp(force);
|
pageContent.scrollUp(force);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,8 +57,9 @@ ChatInformationTabItemBase {
|
||||||
handleScrollIntoView()
|
handleScrollIntoView()
|
||||||
}
|
}
|
||||||
onAtYEndChanged: {
|
onAtYEndChanged: {
|
||||||
if(tabBase.active && !tabBase.loading && chatInformationPage.isSuperGroup && (groupInformation.member_count > membersView.count) && membersView.atYEnd) {
|
if(tabBase.active && !tabBase.loading && chatInformationPage.isSuperGroup && (chatInformationPage.groupInformation.member_count > membersView.count) && membersView.atYEnd) {
|
||||||
tabBase.loading = true;
|
tabBase.loading = true;
|
||||||
|
console.log("LOAD MEMBERS BECAUSE ATYEND")
|
||||||
fetchMoreMembersTimer.start()
|
fetchMoreMembersTimer.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +77,7 @@ ChatInformationTabItemBase {
|
||||||
}
|
}
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
// chat title isPrivateChat ? () :
|
// chat title
|
||||||
primaryText.text: Emoji.emojify(Functions.getUserName(user), primaryText.font.pixelSize, "../js/emoji/")
|
primaryText.text: Emoji.emojify(Functions.getUserName(user), primaryText.font.pixelSize, "../js/emoji/")
|
||||||
// last user
|
// last user
|
||||||
prologSecondaryText.text: "@"+(user.username !== "" ? user.username : user_id) + (user_id === chatInformationPage.myUserId ? " " + qsTr("You") : "")
|
prologSecondaryText.text: "@"+(user.username !== "" ? user.username : user_id) + (user_id === chatInformationPage.myUserId ? " " + qsTr("You") : "")
|
||||||
|
@ -100,7 +99,7 @@ ChatInformationTabItemBase {
|
||||||
}
|
}
|
||||||
footer: Component {
|
footer: Component {
|
||||||
Item {
|
Item {
|
||||||
property bool active: tabBase.active && chatInformationPage.isSuperGroup && (groupInformation.member_count > membersView.count)
|
property bool active: tabBase.active && chatInformationPage.isSuperGroup && (chatInformationPage.groupInformation.member_count > membersView.count)
|
||||||
width: tabBase.width
|
width: tabBase.width
|
||||||
height: active ? Theme.itemSizeLarge : Theme.paddingMedium
|
height: active ? Theme.itemSizeLarge : Theme.paddingMedium
|
||||||
|
|
||||||
|
@ -174,9 +173,9 @@ ChatInformationTabItemBase {
|
||||||
interval: 600
|
interval: 600
|
||||||
property int fetchLimit: 50
|
property int fetchLimit: 50
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
if(isSuperGroup && !isChannel) {
|
if(chatInformationPage.isSuperGroup && !chatInformationPage.isChannel && (chatInformationPage.groupInformation.member_count > membersView.count)) { //
|
||||||
tabBase.loading = true
|
tabBase.loading = true
|
||||||
tdLibWrapper.getSupergroupMembers(chatInformationPage.chatPartnerGroupId, fetchLimit, membersList.count);
|
tdLibWrapper.getSupergroupMembers(chatInformationPage.chatPartnerGroupId, fetchLimit, pageContent.membersList.count);
|
||||||
fetchLimit = 200
|
fetchLimit = 200
|
||||||
interval = 400
|
interval = 400
|
||||||
}
|
}
|
||||||
|
@ -187,20 +186,20 @@ ChatInformationTabItemBase {
|
||||||
target: tdLibWrapper
|
target: tdLibWrapper
|
||||||
|
|
||||||
onChatMembersReceived: {
|
onChatMembersReceived: {
|
||||||
if (isSuperGroup && chatInformationPage.chatPartnerGroupId === extra) {
|
if (chatInformationPage.isSuperGroup && chatInformationPage.chatPartnerGroupId === extra) {
|
||||||
if(members && members.length > 0) {
|
if(members && members.length > 0 && chatInformationPage.groupInformation.member_count > membersView.count) {
|
||||||
for(var memberIndex in members) {
|
for(var memberIndex in members) {
|
||||||
var memberData = members[memberIndex];
|
var memberData = members[memberIndex];
|
||||||
var userInfo = tdLibWrapper.getUserInformation(memberData.user_id) || {user:{}, bot_info:{}};
|
var userInfo = tdLibWrapper.getUserInformation(memberData.user_id) || {user:{}, bot_info:{}};
|
||||||
memberData.user = userInfo;
|
memberData.user = userInfo;
|
||||||
memberData.bot_info = memberData.bot_info || {};
|
memberData.bot_info = memberData.bot_info || {};
|
||||||
membersList.append(memberData);
|
pageContent.membersList.append(memberData);
|
||||||
}
|
}
|
||||||
groupInformation.member_count = totalMembers
|
chatInformationPage.groupInformation.member_count = totalMembers
|
||||||
updateGroupStatusText();
|
updateGroupStatusText();
|
||||||
if(membersList.count < totalMembers) {
|
// if(pageContent.membersList.count < totalMembers) {
|
||||||
// fetchMoreMembersTimer.start()
|
// fetchMoreMembersTimer.start()
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
// if we set it directly, the views start scrolling
|
// if we set it directly, the views start scrolling
|
||||||
loadedTimer.start();
|
loadedTimer.start();
|
||||||
|
@ -224,9 +223,9 @@ ChatInformationTabItemBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if(isPrivateChat) {
|
if(chatInformationPage.isPrivateChat) {
|
||||||
tdLibWrapper.getGroupsInCommon(chatInformationPage.chatPartnerGroupId, 200, 0); // we only use the first 200
|
tdLibWrapper.getGroupsInCommon(chatInformationPage.chatPartnerGroupId, 200, 0); // we only use the first 200
|
||||||
} else if(isSuperGroup) {
|
} else if(chatInformationPage.isSuperGroup) {
|
||||||
fetchMoreMembersTimer.start();
|
fetchMoreMembersTimer.start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,8 +27,8 @@ import "../../js/functions.js" as Functions
|
||||||
|
|
||||||
ChatInformationTabItemBase {
|
ChatInformationTabItemBase {
|
||||||
id: tabBase
|
id: tabBase
|
||||||
title: qsTr("Settings", "Button: Chat Settings")
|
// title: qsTr("Settings", "Button: Chat Settings")
|
||||||
image: "image://theme/icon-m-developer-mode"
|
// image: "image://theme/icon-m-developer-mode"
|
||||||
|
|
||||||
SilicaFlickable {
|
SilicaFlickable {
|
||||||
height: tabBase.height
|
height: tabBase.height
|
||||||
|
|
|
@ -54,22 +54,21 @@ Item {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
columns: tabView.count
|
columns: tabView.count
|
||||||
Repeater {
|
Repeater {
|
||||||
model: tabView.count
|
model: tabModel
|
||||||
delegate: BackgroundItem {
|
delegate: BackgroundItem {
|
||||||
id: headerItem
|
id: headerItem
|
||||||
property bool loaded: tabItem.image !== "" && tabItem.title !== ""
|
property bool loaded: image !== "" && title !== ""
|
||||||
width: loaded ? (headerGrid.width / tabView.count) : 0
|
width: loaded ? (headerGrid.width / tabView.count) : 0
|
||||||
opacity: loaded ? 1.0 : 0.0
|
opacity: loaded ? 1.0 : 0.0
|
||||||
|
|
||||||
Behavior on width { PropertyAnimation {duration: 300}}
|
Behavior on width { PropertyAnimation {duration: 300}}
|
||||||
Behavior on opacity { PropertyAnimation {duration: 300}}
|
Behavior on opacity { PropertyAnimation {duration: 300}}
|
||||||
height: Theme.itemSizeLarge
|
height: Theme.itemSizeLarge
|
||||||
property ChatInformationTabItemBase tabItem: tabView.model.get(index)
|
|
||||||
property int itemIndex: index
|
property int itemIndex: index
|
||||||
property bool itemIsActive: tabItem.active
|
property bool itemIsActive: tabView.currentIndex === itemIndex
|
||||||
Icon {
|
Icon {
|
||||||
id: headerIcon
|
id: headerIcon
|
||||||
source: headerItem.tabItem.image
|
source: image
|
||||||
highlighted: headerItem.pressed || headerItem.itemIsActive
|
highlighted: headerItem.pressed || headerItem.itemIsActive
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
|
@ -77,7 +76,7 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
text: headerItem.tabItem.title
|
text: title
|
||||||
width: parent.width
|
width: parent.width
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
anchors.top: headerIcon.bottom
|
anchors.top: headerIcon.bottom
|
||||||
|
@ -85,7 +84,7 @@ Item {
|
||||||
font.pixelSize: Theme.fontSizeTiny
|
font.pixelSize: Theme.fontSizeTiny
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
chatInformationPage.scrollDown()
|
pageContent.scrollDown()
|
||||||
tabView.openTab(itemIndex)
|
tabView.openTab(itemIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +104,6 @@ Item {
|
||||||
highlightMoveDuration: 500
|
highlightMoveDuration: 500
|
||||||
property int maxHeight: tabViewItem.height - tabViewHeader.height
|
property int maxHeight: tabViewItem.height - tabViewHeader.height
|
||||||
|
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: tabViewHeader.bottom
|
top: tabViewHeader.bottom
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -116,51 +114,33 @@ Item {
|
||||||
function openTab(index) {
|
function openTab(index) {
|
||||||
currentIndex = index;
|
currentIndex = index;
|
||||||
}
|
}
|
||||||
model: VisualItemModel {
|
model: ListModel {
|
||||||
id: tabModel
|
id: tabModel
|
||||||
}
|
}
|
||||||
}
|
delegate: Loader {
|
||||||
Component {
|
|
||||||
id: membersGroupComponent
|
|
||||||
ChatInformationTabItemMembersGroups{
|
|
||||||
width: tabView.width
|
width: tabView.width
|
||||||
|
height: tabView.maxHeight
|
||||||
|
asynchronous: true
|
||||||
|
source: Qt.resolvedUrl(tab+".qml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Component {
|
Component.onCompleted: {
|
||||||
id: settingsComponent
|
|
||||||
ChatInformationTabItemSettings {
|
|
||||||
width: tabView.width
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Component {
|
|
||||||
id: debugComponent
|
|
||||||
ChatInformationTabItemDebug {
|
|
||||||
width: tabView.width
|
|
||||||
}
|
|
||||||
}
|
|
||||||
property var tabItems: {
|
|
||||||
var items = [];
|
|
||||||
if(!(isPrivateChat && chatPartnerGroupId === myUserId.toString())) {
|
if(!(isPrivateChat && chatPartnerGroupId === myUserId.toString())) {
|
||||||
items.push(membersGroupComponent);
|
tabModel.append({
|
||||||
|
tab:"ChatInformationTabItemMembersGroups",
|
||||||
|
title: chatInformationPage.isPrivateChat ? qsTr("Groups", "Button: groups in common (short)") : qsTr("Members", "Button: Group Members"),
|
||||||
|
image: "image://theme/icon-m-people"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if(!isPrivateChat && (groupInformation.status.can_restrict_members || groupInformation.status["@type"] === "chatMemberStatusCreator")) {
|
if(!isPrivateChat && (groupInformation.status.can_restrict_members || groupInformation.status["@type"] === "chatMemberStatusCreator")) {
|
||||||
items.push(settingsComponent);
|
tabModel.append({
|
||||||
|
tab:"ChatInformationTabItemSettings",
|
||||||
|
title: qsTr("Settings", "Button: Chat Settings"),
|
||||||
|
image: "image://theme/icon-m-developer-mode"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
// items.push(debugComponent);
|
// tabModel.append({tab:"ChatInformationTabItemDebug"});
|
||||||
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
onTabItemsChanged: fillTabItems()
|
|
||||||
|
|
||||||
function fillTabItems() {
|
|
||||||
tabModel.clear()
|
|
||||||
for(var i in tabItems) {
|
|
||||||
tabModel.append(tabItems[i].createObject(tabModel));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
fillTabItems()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,21 @@
|
||||||
|
/*
|
||||||
|
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 QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import "../components"
|
import "../components"
|
||||||
|
@ -36,427 +54,27 @@ Page {
|
||||||
property var groupInformation: ({});
|
property var groupInformation: ({});
|
||||||
property var groupFullInformation: ({});
|
property var groupFullInformation: ({});
|
||||||
|
|
||||||
property alias membersList: membersList
|
// property alias membersList: membersList
|
||||||
|
|
||||||
function initializePage() {
|
onStatusChanged: {
|
||||||
console.log("[ChatInformationPage] Initializing chat info page...");
|
switch(status) {
|
||||||
membersList.clear();
|
case PageStatus.Activating:
|
||||||
var chatType = chatInformation.type["@type"];
|
console.log("activating Loader")
|
||||||
switch(chatType) {
|
mainContentLoader.active = true
|
||||||
case "chatTypePrivate":
|
|
||||||
isPrivateChat = true;
|
|
||||||
chatInformationPage.chatPartnerGroupId = chatInformation.type.user_id.toString();
|
|
||||||
if(!privateChatUserInformation.id) {
|
|
||||||
privateChatUserInformation = tdLibWrapper.getUserInformation(chatInformationPage.chatPartnerGroupId);
|
|
||||||
}
|
|
||||||
tdLibWrapper.getUserFullInfo(chatInformationPage.chatPartnerGroupId);
|
|
||||||
tdLibWrapper.getUserProfilePhotos(chatInformationPage.chatPartnerGroupId, 100, 0);
|
|
||||||
break;
|
break;
|
||||||
case "chatTypeBasicGroup":
|
case PageStatus.Active:
|
||||||
isBasicGroup = true;
|
|
||||||
chatInformationPage.chatPartnerGroupId = chatInformation.type.basic_group_id.toString();
|
|
||||||
if(!groupInformation.id) {
|
|
||||||
groupInformation = tdLibWrapper.getBasicGroup(chatInformationPage.chatPartnerGroupId);
|
|
||||||
}
|
|
||||||
tdLibWrapper.getGroupFullInfo(chatInformationPage.chatPartnerGroupId, false);
|
|
||||||
break;
|
|
||||||
case "chatTypeSupergroup":
|
|
||||||
isSuperGroup = true;
|
|
||||||
chatInformationPage.chatPartnerGroupId = chatInformation.type.supergroup_id.toString();
|
|
||||||
if(!groupInformation.id) {
|
|
||||||
groupInformation = tdLibWrapper.getSuperGroup(chatInformationPage.chatPartnerGroupId);
|
|
||||||
}
|
|
||||||
|
|
||||||
tdLibWrapper.getGroupFullInfo(chatInformationPage.chatPartnerGroupId, true);
|
|
||||||
isChannel = groupInformation.is_channel;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(!isPrivateChat) {
|
|
||||||
updateGroupStatusText();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function scrollUp(force) {
|
|
||||||
if(force) {
|
|
||||||
// animation does not always work while quick scrolling
|
|
||||||
scrollUpTimer.start()
|
|
||||||
} else {
|
|
||||||
scrollUpAnimation.start()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function scrollDown(force) {
|
|
||||||
if(force) {
|
|
||||||
scrollDownTimer.start()
|
|
||||||
} else {
|
|
||||||
scrollDownAnimation.start()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function handleBasicGroupFullInfo(groupFullInfo) {
|
|
||||||
groupFullInformation = groupFullInfo;
|
|
||||||
membersList.clear();
|
|
||||||
if(groupFullInfo.members && groupFullInfo.members.length > 0) {
|
|
||||||
for(var memberIndex in groupFullInfo.members) {
|
|
||||||
var memberData = groupFullInfo.members[memberIndex];
|
|
||||||
var userInfo = tdLibWrapper.getUserInformation(memberData.user_id) || {user:{}, bot_info:{}};
|
|
||||||
memberData.user = userInfo;
|
|
||||||
memberData.bot_info = memberData.bot_info || {};
|
|
||||||
membersList.append(memberData);
|
|
||||||
}
|
|
||||||
groupInformation.member_count = groupFullInfo.members.length
|
|
||||||
updateGroupStatusText();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: tdLibWrapper
|
|
||||||
|
|
||||||
onChatOnlineMemberCountUpdated: {
|
|
||||||
if ((isSuperGroup || isBasicGroup) && chatInformation.id.toString() === chatId) {
|
|
||||||
chatOnlineMemberCount = onlineMemberCount;
|
|
||||||
updateGroupStatusText();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onSupergroupFullInfoReceived: {
|
|
||||||
if(isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
|
||||||
groupFullInformation = groupFullInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onSupergroupFullInfoUpdated: {
|
|
||||||
if(isSuperGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
|
||||||
groupFullInformation = groupFullInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onBasicGroupFullInfoReceived: {
|
|
||||||
if(isBasicGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
|
||||||
handleBasicGroupFullInfo(groupFullInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onBasicGroupFullInfoUpdated: {
|
Loader {
|
||||||
if(isBasicGroup && chatInformationPage.chatPartnerGroupId === groupId) {
|
id: mainContentLoader
|
||||||
handleBasicGroupFullInfo(groupFullInfo)
|
active: false
|
||||||
}
|
asynchronous: true
|
||||||
}
|
|
||||||
onUserFullInfoReceived: {
|
|
||||||
if(isPrivateChat && userFullInfo["@extra"] === chatInformationPage.chatPartnerGroupId) {
|
|
||||||
chatPartnerFullInformation = userFullInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onUserFullInfoUpdated: {
|
|
||||||
if(isPrivateChat && userId === chatInformationPage.chatPartnerGroupId) {
|
|
||||||
chatPartnerFullInformation = userFullInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onUserProfilePhotosReceived: {
|
|
||||||
if(isPrivateChat && extra === chatInformationPage.chatPartnerGroupId) {
|
|
||||||
chatPartnerProfilePhotos = photos;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onChatPermissionsUpdated: {
|
|
||||||
if (chatInformation.id.toString() === chatId) {
|
|
||||||
// set whole object to trigger change
|
|
||||||
var newInformation = chatInformation;
|
|
||||||
newInformation.permissions = permissions
|
|
||||||
chatInformation = newInformation
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onChatTitleUpdated: {
|
|
||||||
if (chatInformation.id.toString() === chatId) {
|
|
||||||
// set whole object to trigger change
|
|
||||||
var newInformation = chatInformation;
|
|
||||||
newInformation.title = title
|
|
||||||
chatInformation = newInformation
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Component.onCompleted: initializePage();
|
|
||||||
|
|
||||||
ListModel {
|
|
||||||
id: membersList
|
|
||||||
}
|
|
||||||
|
|
||||||
AppNotification {
|
|
||||||
id: infoNotification
|
|
||||||
}
|
|
||||||
SilicaFlickable {
|
|
||||||
id: pageFlickable
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
source: Qt.resolvedUrl("../components/chatInformationPage/ChatInformationPageContent.qml");
|
||||||
PullDownMenu {
|
|
||||||
MenuItem {
|
|
||||||
visible: (chatPage.isSuperGroup || chatPage.isBasicGroup) && groupInformation && groupInformation.status["@type"] !== "chatMemberStatusBanned"
|
|
||||||
text: userIsMember ? qsTr("Leave Chat") : qsTr("Join Chat")
|
|
||||||
onClicked: {
|
|
||||||
// ensure it's done even if the page is closed:
|
|
||||||
if (userIsMember) {
|
|
||||||
var remorse = Remorse.popupAction(appWindow, qsTr("Leaving chat"), (function(chatid) {
|
|
||||||
return function() {
|
|
||||||
tdLibWrapper.leaveChat(chatid);
|
|
||||||
// this does not care about the response (ideally type "ok" without further reference) for now
|
|
||||||
pageStack.pop(pageStack.find( function(page){ return(page._depth === 0)} ));
|
|
||||||
};
|
|
||||||
}(chatInformation.id)))
|
|
||||||
} else {
|
|
||||||
tdLibWrapper.joinChat(chatInformation.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
MenuItem {
|
|
||||||
visible: userIsMember
|
|
||||||
onClicked: {
|
|
||||||
var newNotificationSettings = chatInformation.notification_settings;
|
|
||||||
if (newNotificationSettings.mute_for > 0) {
|
|
||||||
newNotificationSettings.mute_for = 0;
|
|
||||||
} else {
|
|
||||||
newNotificationSettings.mute_for = 6666666;
|
|
||||||
}
|
|
||||||
newNotificationSettings.use_default_mute_for = false;
|
|
||||||
tdLibWrapper.setChatNotificationSettings(chat_id, newNotificationSettings);
|
|
||||||
}
|
|
||||||
text: chatInformation.notification_settings.mute_for > 0 ? qsTr("Unmute Chat") : qsTr("Mute Chat")
|
|
||||||
}
|
|
||||||
// MenuItem { //TODO Implement
|
|
||||||
// visible: !userIsMember
|
|
||||||
// onClicked: {
|
|
||||||
// tdLibWrapper.joinChat(chat_id);
|
|
||||||
// }
|
|
||||||
// text: qsTr("Join Chat")
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
// header
|
|
||||||
PageHeader {
|
|
||||||
id: headerItem
|
|
||||||
z: 5
|
|
||||||
Item {
|
|
||||||
id: imageContainer
|
|
||||||
property bool hasImage: typeof chatInformation.photo !== "undefined"
|
|
||||||
property int minDimension: chatInformationPage.isLandscape ? Theme.itemSizeSmall : Theme.itemSizeMedium
|
|
||||||
property int maxDimension: Screen.width / 2
|
|
||||||
property int minX: Theme.horizontalPageMargin
|
|
||||||
property int maxX: (chatInformationPage.width - maxDimension)/2
|
|
||||||
property int minY: (parent.height - minDimension)/2
|
|
||||||
property int maxY: parent.height
|
|
||||||
property double tweenFactor: {
|
|
||||||
if(!hasImage) {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
return 1 - Math.max(0, Math.min(1, contentFlickable.contentY / maxDimension))
|
|
||||||
}
|
|
||||||
|
|
||||||
function getEased(min,max,factor) {
|
|
||||||
return min + (max-min)*factor
|
|
||||||
}
|
|
||||||
width: getEased(minDimension,maxDimension, tweenFactor)
|
|
||||||
height: width
|
|
||||||
x: getEased(minX,maxX, tweenFactor)
|
|
||||||
y: getEased(minY,maxY, tweenFactor)
|
|
||||||
|
|
||||||
ProfileThumbnail {
|
|
||||||
id: chatPictureThumbnail
|
|
||||||
photoData: imageContainer.hasImage ? chatInformation.photo.small : ""
|
|
||||||
replacementStringHint: headerItem.title
|
|
||||||
width: parent.width
|
|
||||||
height: width
|
|
||||||
radius: imageContainer.minDimension / 2
|
|
||||||
opacity: profilePictureLoader.status !== Loader.Ready || profilePictureLoader.item.opacity < 1 ? 1.0 : 0.0
|
|
||||||
optimizeImageSize: false
|
|
||||||
}
|
|
||||||
Loader {
|
|
||||||
id: profilePictureLoader
|
|
||||||
active: imageContainer.hasImage
|
|
||||||
asynchronous: true
|
|
||||||
anchors.fill: chatPictureThumbnail
|
|
||||||
source: chatInformationPage.isPrivateChat
|
|
||||||
? "../components/chatInformationPage/ChatInformationProfilePictureList.qml"
|
|
||||||
: "../components/chatInformationPage/ChatInformationProfilePicture.qml"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// PageHeader changes the html base path:
|
|
||||||
property url emojiBase: "../js/emoji/"
|
|
||||||
leftMargin: imageContainer.minDimension + Theme.horizontalPageMargin + Theme.paddingMedium
|
|
||||||
title: chatInformation.title !== "" ? Emoji.emojify(chatInformation.title, Theme.fontSizeLarge, emojiBase) : qsTr("Unknown")
|
|
||||||
description: chatInformationPage.isPrivateChat ? ("@"+(chatInformationPage.privateChatUserInformation.username || chatInformationPage.chatPartnerGroupId)) : ""
|
|
||||||
}
|
|
||||||
|
|
||||||
SilicaFlickable {
|
|
||||||
id: contentFlickable
|
|
||||||
contentHeight: groupInfoItem.height + tabViewLoader.height
|
|
||||||
clip: true
|
|
||||||
interactive: true//groupInfoItem.height > pageFlickable.height * 0.5
|
|
||||||
|
|
||||||
anchors {
|
|
||||||
top: headerItem.bottom
|
|
||||||
bottom: parent.bottom
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
NumberAnimation {
|
|
||||||
id: scrollDownAnimation
|
|
||||||
target: contentFlickable
|
|
||||||
to: groupInfoItem.height
|
|
||||||
property: "contentY"
|
|
||||||
duration: 500
|
|
||||||
easing.type: Easing.InOutCubic
|
|
||||||
}
|
|
||||||
NumberAnimation {
|
|
||||||
id: scrollUpAnimation
|
|
||||||
target: contentFlickable
|
|
||||||
to: 0
|
|
||||||
property: "contentY"
|
|
||||||
duration: 500
|
|
||||||
easing.type: Easing.InOutCubic
|
|
||||||
property Timer scrollUpTimer: Timer {
|
|
||||||
id: scrollUpTimer
|
|
||||||
interval: 50
|
|
||||||
onTriggered: {
|
|
||||||
contentFlickable.scrollToTop()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
property Timer scrollDownTimer: Timer {
|
|
||||||
id: scrollDownTimer
|
|
||||||
interval: 50
|
|
||||||
onTriggered: {
|
|
||||||
contentFlickable.scrollToBottom()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Column {
|
|
||||||
id: groupInfoItem
|
|
||||||
bottomPadding: Theme.paddingLarge
|
|
||||||
topPadding: Theme.paddingLarge
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
left: parent.left
|
|
||||||
leftMargin: Theme.horizontalPageMargin
|
|
||||||
right: parent.right
|
|
||||||
rightMargin: Theme.horizontalPageMargin
|
|
||||||
}
|
|
||||||
|
|
||||||
Item { //large image placeholder
|
|
||||||
width: parent.width
|
|
||||||
height: imageContainer.hasImage ? imageContainer.maxDimension : 0
|
|
||||||
}
|
|
||||||
|
|
||||||
ChatInformationEditArea {
|
|
||||||
visible: canEdit
|
|
||||||
canEdit: !chatInformationPage.isPrivateChat && chatInformationPage.groupInformation.status && (chatInformationPage.groupInformation.status.can_change_info || chatInformationPage.groupInformation.status["@type"] === "chatMemberStatusCreator")
|
|
||||||
headerText: qsTr("Chat Title", "group title header")
|
|
||||||
text: chatInformation.title
|
|
||||||
|
|
||||||
onSaveButtonClicked: {
|
|
||||||
if(!editItem.errorHighlight) {
|
|
||||||
tdLibWrapper.setChatTitle(chatInformationPage.chatInformation.id, textValue);
|
|
||||||
} else {
|
|
||||||
isEditing = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onTextEdited: {
|
|
||||||
if(textValue.length > 0 && textValue.length < 129) {
|
|
||||||
editItem.errorHighlight = false
|
|
||||||
editItem.label = ""
|
|
||||||
editItem.placeholderText = ""
|
|
||||||
} else {
|
|
||||||
editItem.label = qsTr("Enter 1-128 characters")
|
|
||||||
editItem.placeholderText = editItem.label
|
|
||||||
editItem.errorHighlight = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ChatInformationEditArea {
|
|
||||||
canEdit: (chatInformationPage.isPrivateChat && chatInformationPage.privateChatUserInformation.id === chatInformationPage.myUserId) || ((chatInformationPage.isBasicGroup || chatInformationPage.isSuperGroup) && chatInformationPage.groupInformation && (chatInformationPage.groupInformation.status.can_change_info || chatInformationPage.groupInformation.status["@type"] === "chatMemberStatusCreator"))
|
|
||||||
emptyPlaceholderText: qsTr("There is no information text available, yet.")
|
|
||||||
headerText: qsTr("Info", "group or user infotext header")
|
|
||||||
multiLine: true
|
|
||||||
text: (chatInformationPage.isPrivateChat ? chatInformationPage.chatPartnerFullInformation.bio : chatInformationPage.groupFullInformation.description) || ""
|
|
||||||
onSaveButtonClicked: {
|
|
||||||
if(chatInformationPage.isPrivateChat) { // own bio
|
|
||||||
tdLibWrapper.setBio(textValue);
|
|
||||||
} else { // group info
|
|
||||||
tdLibWrapper.setChatDescription(chatInformationPage.chatInformation.id, textValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ChatInformationTextItem {
|
|
||||||
headerText: qsTr("Phone Number", "user phone number header")
|
|
||||||
text: (chatInformationPage.isPrivateChat && chatInformationPage.privateChatUserInformation.phone_number ? "+"+chatInformationPage.privateChatUserInformation.phone_number : "") || ""
|
|
||||||
isLinkedLabel: true
|
|
||||||
}
|
|
||||||
|
|
||||||
SectionHeader {
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
visible: !!inviteLinkItem.text
|
|
||||||
height: visible ? Theme.itemSizeExtraSmall : 0
|
|
||||||
text: qsTr("Invite Link", "header")
|
|
||||||
x: 0
|
|
||||||
}
|
|
||||||
|
|
||||||
Row {
|
|
||||||
width: parent.width
|
|
||||||
visible: !!inviteLinkItem.text
|
|
||||||
ChatInformationTextItem {
|
|
||||||
id: inviteLinkItem
|
|
||||||
text: !isPrivateChat ? groupFullInformation.invite_link : ""
|
|
||||||
width: parent.width - inviteLinkButton.width
|
|
||||||
}
|
|
||||||
IconButton {
|
|
||||||
id: inviteLinkButton
|
|
||||||
icon.source: "image://theme/icon-m-clipboard"
|
|
||||||
anchors.verticalCenter: inviteLinkItem.verticalCenter
|
|
||||||
onClicked: {
|
|
||||||
Clipboard.text = groupFullInformation.invite_link
|
|
||||||
infoNotification.show(qsTr("The Invite Link has been copied to the clipboard."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
width: parent.width
|
|
||||||
height: Theme.paddingLarge
|
|
||||||
}
|
|
||||||
|
|
||||||
Separator {
|
|
||||||
width: parent.width
|
|
||||||
color: Theme.primaryColor
|
|
||||||
horizontalAlignment: Qt.AlignHCenter
|
|
||||||
opacity: (tabViewLoader.status === Loader.Ready && tabViewLoader.item.count > 0) ? 1.0 : 0.0
|
|
||||||
|
|
||||||
Behavior on opacity { PropertyAnimation {duration: 500}}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Loader {
|
|
||||||
id: tabViewLoader
|
|
||||||
asynchronous: true
|
|
||||||
active: true
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
top: groupInfoItem.bottom
|
|
||||||
}
|
|
||||||
sourceComponent: Component {
|
|
||||||
ChatInformationTabView {
|
|
||||||
id: tabView
|
|
||||||
height: tabView.count > 0 ? chatInformationPage.height - headerItem.height : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function updateGroupStatusText() {
|
|
||||||
if (chatOnlineMemberCount > 0) {
|
|
||||||
headerItem.description = qsTr("%1 members, %2 online").arg(Functions.getShortenedCount(groupInformation.member_count)).arg(Functions.getShortenedCount(chatOnlineMemberCount));
|
|
||||||
} else {
|
|
||||||
if (isChannel) {
|
|
||||||
headerItem.description = qsTr("%1 subscribers").arg(Functions.getShortenedCount(groupInformation.member_count));
|
|
||||||
} else {
|
|
||||||
headerItem.description = qsTr("%1 members").arg(Functions.getShortenedCount(groupInformation.member_count));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -298,6 +298,8 @@ Page {
|
||||||
case PageStatus.Active:
|
case PageStatus.Active:
|
||||||
if (!chatPage.isInitialized) {
|
if (!chatPage.isInitialized) {
|
||||||
chatModel.initialize(chatInformation);
|
chatModel.initialize(chatInformation);
|
||||||
|
|
||||||
|
pageStack.pushAttached(Qt.resolvedUrl("../pages/ChatInformationPage.qml"), { "chatInformation" : chatInformation, "privateChatUserInformation": chatPartnerInformation, "groupInformation": chatGroupInformation, "chatOnlineMemberCount": chatOnlineMemberCount});
|
||||||
chatPage.isInitialized = true;
|
chatPage.isInitialized = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -516,7 +518,7 @@ Page {
|
||||||
if(chatPage.state === "selectMessages") {
|
if(chatPage.state === "selectMessages") {
|
||||||
chatPage.selectedMessages = [];
|
chatPage.selectedMessages = [];
|
||||||
} else {
|
} else {
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/ChatInformationPage.qml"), { "chatInformation" : chatInformation, "privateChatUserInformation": chatPartnerInformation, "groupInformation": chatGroupInformation, "chatOnlineMemberCount": chatOnlineMemberCount});
|
pageStack.navigateForward();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,74 +96,74 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>Stummschaltung des Chats aufheben</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>Chat stummschalten</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>Unbekannt</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>Der Einladungslink wurde in die Zwischenablage kopiert.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 Mitglieder, %2 online</translation>
|
<translation type="unfinished">%1 Mitglieder, %2 online</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 Abonnenten</translation>
|
<translation type="unfinished">%1 Abonnenten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 Mitglieder</translation>
|
<translation type="unfinished">%1 Mitglieder</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">Chat verlassen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">Chat beitreten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation>Verlasse Gruppe</translation>
|
<translation type="unfinished">Verlasse Chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">Stummschaltung des Chats aufheben</translation>
|
||||||
<translation>Info</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">Chat stummschalten</translation>
|
||||||
<translation>Telefonnummer</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished">Unbekannt</translation>
|
||||||
<translation>Einladungslink</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>Es gibt noch keinen Informationstext.</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Chattitel</translation>
|
<translation type="unfinished">Chattitel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Geben Sie 1-128 Zeichen ein</translation>
|
<translation type="unfinished">Geben Sie 1-128 Zeichen ein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Chat verlassen</translation>
|
<translation type="unfinished">Es gibt noch keinen Informationstext.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Chat beitreten</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Info</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Telefonnummer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Einladungslink</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">Der Einladungslink wurde in die Zwischenablage kopiert.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -181,16 +181,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Unbekannt</translation>
|
<translation>Unbekannt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Gruppen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Mitglieder</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>Lade Gruppenmitglieder…</translation>
|
<translation>Lade Gruppenmitglieder…</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Gruppen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Mitglieder</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Einstellungen</translation>
|
<translation type="unfinished">Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,74 +96,74 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>Unmute Chat</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>Mute Chat</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>Unknown</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>The Invite Link has been copied to the clipboard.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 members, %2 online</translation>
|
<translation type="unfinished">%1 members, %2 online</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 subscribers</translation>
|
<translation type="unfinished">%1 subscribers</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 members</translation>
|
<translation type="unfinished">%1 members</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">Leave Chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">Join Chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation>Leaving chat</translation>
|
<translation type="unfinished">Leaving chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">Unmute Chat</translation>
|
||||||
<translation>Info</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">Mute Chat</translation>
|
||||||
<translation>Phone Number</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished">Unknown</translation>
|
||||||
<translation>Invite Link</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>There is no information text available, yet.</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Chat Title</translation>
|
<translation type="unfinished">Chat Title</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Enter 1-128 characters</translation>
|
<translation type="unfinished">Enter 1-128 characters</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Leave Chat</translation>
|
<translation type="unfinished">There is no information text available, yet.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Join Chat</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Info</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Phone Number</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Invite Link</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">The Invite Link has been copied to the clipboard.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Unknown</translation>
|
<translation>Unknown</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Groups</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Members</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>Loading group members…</translation>
|
<translation>Loading group members…</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Groups</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Members</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Settings</translation>
|
<translation type="unfinished">Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,74 +96,74 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>habilitar notificación</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>deshabilitar notificación</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>Desconocido</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>El enlace de invitación se ha copiado en el portapapeles.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 miembros, %2 en línea</translation>
|
<translation type="unfinished">%1 miembros, %2 en línea</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 suscriptores</translation>
|
<translation type="unfinished">%1 suscriptores</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 miembros</translation>
|
<translation type="unfinished">%1 miembros</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">Salir del grupo</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">Unirse al grupo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation>Saliendo del grupo</translation>
|
<translation type="unfinished">Saliendo del grupo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">habilitar notificación</translation>
|
||||||
<translation>Información</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">deshabilitar notificación</translation>
|
||||||
<translation>Número de teléfono</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished"></translation>
|
||||||
<translation>Enlace de invitación</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>Aún no hay texto de información disponible.</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Título del grupo</translation>
|
<translation type="unfinished">Título del grupo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Marcar los caracteres 1-128</translation>
|
<translation type="unfinished">Marcar los caracteres 1-128</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Salir del grupo</translation>
|
<translation type="unfinished">Aún no hay texto de información disponible.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Unirse al grupo</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Información</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Número de teléfono</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Enlace de invitación</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">El enlace de invitación se ha copiado en el portapapeles.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Desconocido</translation>
|
<translation>Desconocido</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Grupos</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Miembros</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>Cargando miembros del grupo…</translation>
|
<translation>Cargando miembros del grupo…</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Grupos</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Miembros</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Ajustes</translation>
|
<translation type="unfinished">Ajustes</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,74 +96,74 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>Poista keskustelun vaimennus</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>Vaimenna keskustelu</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>Tuntematon</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>Kutsulinkki on kopioitu leikepöydälle.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 jäsentä, %2 paikalla</translation>
|
<translation type="unfinished">%1 jäsentä, %2 paikalla</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 tilaajaa</translation>
|
<translation type="unfinished">%1 tilaajaa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 jäsentä</translation>
|
<translation type="unfinished">%1 jäsentä</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">Poistu keskustelusta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">Liity keskusteluun</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation>Poistutaan keskustelusta</translation>
|
<translation type="unfinished">Poistutaan keskustelusta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">Poista keskustelun vaimennus</translation>
|
||||||
<translation>Tietoa</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">Vaimenna keskustelu</translation>
|
||||||
<translation>Puhelinnumero</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished">Tuntematon</translation>
|
||||||
<translation>Kutsulinkki</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>Tietoa ei ole vielä saatavilla.</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Keskustelun otsikko</translation>
|
<translation type="unfinished">Keskustelun otsikko</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Syötä 1-128 merkkiä</translation>
|
<translation type="unfinished">Syötä 1-128 merkkiä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Poistu keskustelusta</translation>
|
<translation type="unfinished">Tietoa ei ole vielä saatavilla.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Liity keskusteluun</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Tietoa</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Puhelinnumero</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Kutsulinkki</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">Kutsulinkki on kopioitu leikepöydälle.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Tuntematon</translation>
|
<translation>Tuntematon</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Ryhmät</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Jäsenet</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>Ladataan ryhmän jäseniä...</translation>
|
<translation>Ladataan ryhmän jäseniä...</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Ryhmät</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Jäsenet</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Asetukset</translation>
|
<translation type="unfinished">Asetukset</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,23 +96,7 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation type="unfinished">Csevegés némítás feloldása</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation type="unfinished">Csevegés némítása</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation type="unfinished">Ismeretlen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation type="unfinished">%1 tag, %2 online</translation>
|
<translation type="unfinished">%1 tag, %2 online</translation>
|
||||||
|
@ -125,10 +109,43 @@
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">%1 tag</translation>
|
<translation type="unfinished">%1 tag</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unmute Chat</source>
|
||||||
|
<translation type="unfinished">Csevegés némítás feloldása</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mute Chat</source>
|
||||||
|
<translation type="unfinished">Csevegés némítása</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unknown</source>
|
||||||
|
<translation type="unfinished">Ismeretlen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Chat Title</source>
|
||||||
|
<comment>group title header</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enter 1-128 characters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>There is no information text available, yet.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<comment>group or user infotext header</comment>
|
<comment>group or user infotext header</comment>
|
||||||
|
@ -145,24 +162,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is no information text available, yet.</source>
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Chat Title</source>
|
|
||||||
<comment>group title header</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Enter 1-128 characters</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Leave Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Join Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation type="unfinished">Ismeretlen</translation>
|
<translation type="unfinished">Ismeretlen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -209,7 +199,17 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
|
|
|
@ -96,88 +96,78 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Leaving chat</source>
|
|
||||||
<translation>Lascia chat</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>Riattiva suoni chat</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>Silenzia chat</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>Sconosciuto</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>Il link d'invito è stato copiato nella clipboard.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 membri, %2 online</translation>
|
<translation type="unfinished">%1 membri, %2 online</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 abbonati</translation>
|
<translation type="unfinished">%1 abbonati</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 membri</translation>
|
<translation type="unfinished">%1 membri</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Leave Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">Lascia chat</translation>
|
||||||
<translation>Info</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Join Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">Entra nella chat</translation>
|
||||||
<translation>Telefono</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Leaving chat</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished">Lascia chat</translation>
|
||||||
<translation>Link d'invito</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is no information text available, yet.</source>
|
<source>Unmute Chat</source>
|
||||||
<translation>Attualmente non è disponibile nessuna informazione.</translation>
|
<translation type="unfinished">Riattiva suoni chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mute Chat</source>
|
||||||
|
<translation type="unfinished">Silenzia chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unknown</source>
|
||||||
|
<translation type="unfinished">Sconosciuto</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Titolo chat</translation>
|
<translation type="unfinished">Titolo chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Inserisci da 1 a 128 caratteri</translation>
|
<translation type="unfinished">Inserisci da 1 a 128 caratteri</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Lascia chat</translation>
|
<translation type="unfinished">Attualmente non è disponibile nessuna informazione.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Entra nella chat</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Info</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Telefono</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Link d'invito</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">Il link d'invito è stato copiato nella clipboard.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemMembersGroups</name>
|
<name>ChatInformationTabItemMembersGroups</name>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Gruppi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Membri</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>You</source>
|
<source>You</source>
|
||||||
<translation>Tu</translation>
|
<translation>Tu</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Gruppi</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Membri</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Impostazioni</translation>
|
<translation type="unfinished">Impostazioni</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,23 +96,7 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation type="unfinished">Wyłącz wyciszenie czatu</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation type="unfinished">Wycisz czat</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation type="unfinished">Nieznany</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation type="unfinished">$1 członków, %2 online </translation>
|
<translation type="unfinished">$1 członków, %2 online </translation>
|
||||||
|
@ -125,10 +109,43 @@
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">%1 czlonków</translation>
|
<translation type="unfinished">%1 czlonków</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unmute Chat</source>
|
||||||
|
<translation type="unfinished">Wyłącz wyciszenie czatu</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mute Chat</source>
|
||||||
|
<translation type="unfinished">Wycisz czat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unknown</source>
|
||||||
|
<translation type="unfinished">Nieznany</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Chat Title</source>
|
||||||
|
<comment>group title header</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enter 1-128 characters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>There is no information text available, yet.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<comment>group or user infotext header</comment>
|
<comment>group or user infotext header</comment>
|
||||||
|
@ -145,24 +162,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is no information text available, yet.</source>
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Chat Title</source>
|
|
||||||
<comment>group title header</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Enter 1-128 characters</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Leave Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Join Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation type="unfinished">Nieznany</translation>
|
<translation type="unfinished">Nieznany</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -209,7 +199,17 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
|
|
|
@ -96,23 +96,7 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>Включить уведомления</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>Выключить уведомления</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>Ссылка для приглашения скопирована в буффер обмена</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation type="unfinished">%1 участников, %2 онлайн</translation>
|
<translation type="unfinished">%1 участников, %2 онлайн</translation>
|
||||||
|
@ -125,45 +109,61 @@
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished">%1 участников</translation>
|
<translation type="unfinished">%1 участников</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">Выйти из чата</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">Зайти в чат</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation type="unfinished">Выход из чата</translation>
|
<translation type="unfinished">Выход из чата</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">Включить уведомления</translation>
|
||||||
<translation>Информация</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">Выключить уведомления</translation>
|
||||||
<translation>Номер телефона</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished"></translation>
|
||||||
<translation>Ссылка для приглашения</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>Информация отсутствует</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Заголовок чата</translation>
|
<translation type="unfinished">Заголовок чата</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Введите 1-128 символов</translation>
|
<translation type="unfinished">Введите 1-128 символов</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Выйти из чата</translation>
|
<translation type="unfinished">Информация отсутствует</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Зайти в чат</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Информация</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Номер телефона</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Ссылка для приглашения</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">Ссылка для приглашения скопирована в буффер обмена</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>нет информации</translation>
|
<translation>нет информации</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Группы</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Участники группы</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>Загрузка списка участников…</translation>
|
<translation>Загрузка списка участников…</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Группы</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Участники группы</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Настройки</translation>
|
<translation type="unfinished">Настройки</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,74 +96,74 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>Slå på chatten</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>Stäng av chatten</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>Okänd</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>Inbjudningslänken har kopierats till urklipp.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 medlemmar, %2 inloggade</translation>
|
<translation type="unfinished">%1 medlem(mar), %2 inloggad(e)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 prenumeranter</translation>
|
<translation type="unfinished">%1 prenumerant(er)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 medlemmar</translation>
|
<translation type="unfinished">%1 medlem(mar)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">Lämna chatten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">Anslut till chatten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation>Lämnar chatten</translation>
|
<translation type="unfinished">Lämnar chatten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">Slå på chatten</translation>
|
||||||
<translation>Info</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished">Stäng av chatten</translation>
|
||||||
<translation>Telefonnummer</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished">Okänd</translation>
|
||||||
<translation>Inbjudningslänk</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>Det finns ingen informationstext än.</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>Chattnamn</translation>
|
<translation type="unfinished">Chattnamn</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>Ange 1-128 tecken</translation>
|
<translation type="unfinished">Ange 1-128 tecken</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>Lämna chatten</translation>
|
<translation type="unfinished">Det finns ingen informationstext än.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>Anslut till chatten</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">Info</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">Telefonnummer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">Inbjudningslänk</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">Inbjudningslänken har kopierats till urklipp.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Okänd</translation>
|
<translation>Okänd</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>Grupper</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>Medlemmar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>Läser in gruppmedlemmar...</translation>
|
<translation>Läser in gruppmedlemmar...</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">Grupper</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">Medlemmar</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>Inställningar</translation>
|
<translation type="unfinished">Inställningar</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,74 +96,74 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation>取消对话静音</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation>静音对话</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation>未知</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation>邀请链接已复制到剪切板</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation>%1 位成员, %2 位在线</translation>
|
<translation type="unfinished">%1 位成员, %2 位在线</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>%1 位订阅者</translation>
|
<translation type="unfinished">%1 位订阅者</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>%1 位成员</translation>
|
<translation type="unfinished">%1 位成员</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished">离开对话</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished">加入对话</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation>正在离开对话</translation>
|
<translation type="unfinished">正在离开对话</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Unmute Chat</source>
|
||||||
<comment>group or user infotext header</comment>
|
<translation type="unfinished">取消对话静音</translation>
|
||||||
<translation>信息</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Phone Number</source>
|
<source>Mute Chat</source>
|
||||||
<comment>user phone number header</comment>
|
<translation type="unfinished"></translation>
|
||||||
<translation>电话号码</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invite Link</source>
|
<source>Unknown</source>
|
||||||
<comment>header</comment>
|
<translation type="unfinished">未知</translation>
|
||||||
<translation>邀请链接</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>There is no information text available, yet.</source>
|
|
||||||
<translation>暂无信息</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Chat Title</source>
|
<source>Chat Title</source>
|
||||||
<comment>group title header</comment>
|
<comment>group title header</comment>
|
||||||
<translation>对话标题</translation>
|
<translation type="unfinished">对话标题</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter 1-128 characters</source>
|
<source>Enter 1-128 characters</source>
|
||||||
<translation>输入 1-128 个字符</translation>
|
<translation type="unfinished">输入 1-128 个字符</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leave Chat</source>
|
<source>There is no information text available, yet.</source>
|
||||||
<translation>离开对话</translation>
|
<translation type="unfinished">暂无信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join Chat</source>
|
<source>Info</source>
|
||||||
<translation>加入对话</translation>
|
<comment>group or user infotext header</comment>
|
||||||
|
<translation type="unfinished">信息</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Phone Number</source>
|
||||||
|
<comment>user phone number header</comment>
|
||||||
|
<translation type="unfinished">电话号码</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Invite Link</source>
|
||||||
|
<comment>header</comment>
|
||||||
|
<translation type="unfinished">邀请链接</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
|
<translation type="unfinished">邀请链接已复制到剪切板</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>未知</translation>
|
<translation>未知</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation>群组</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation>成员</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation>正在加载群组成员…</translation>
|
<translation>正在加载群组成员…</translation>
|
||||||
|
@ -209,11 +199,21 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished">群组</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished">成员</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
<translation>设置</translation>
|
<translation type="unfinished">设置</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -96,23 +96,7 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationPage</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message>
|
|
||||||
<source>Unmute Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Mute Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Unknown</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The Invite Link has been copied to the clipboard.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>%1 members, %2 online</source>
|
<source>%1 members, %2 online</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -125,10 +109,43 @@
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Leave Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Join Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Leaving chat</source>
|
<source>Leaving chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unmute Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mute Chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unknown</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Chat Title</source>
|
||||||
|
<comment>group title header</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enter 1-128 characters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>There is no information text available, yet.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<comment>group or user infotext header</comment>
|
<comment>group or user infotext header</comment>
|
||||||
|
@ -145,24 +162,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is no information text available, yet.</source>
|
<source>The Invite Link has been copied to the clipboard.</source>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Chat Title</source>
|
|
||||||
<comment>group title header</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Enter 1-128 characters</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Leave Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Join Chat</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -177,16 +177,6 @@
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Groups</source>
|
|
||||||
<comment>Button: groups in common (short)</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Members</source>
|
|
||||||
<comment>Button: Group Members</comment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Loading group members…</source>
|
<source>Loading group members…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -209,7 +199,17 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatInformationTabItemSettings</name>
|
<name>ChatInformationTabView</name>
|
||||||
|
<message>
|
||||||
|
<source>Groups</source>
|
||||||
|
<comment>Button: groups in common (short)</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Members</source>
|
||||||
|
<comment>Button: Group Members</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<comment>Button: Chat Settings</comment>
|
<comment>Button: Chat Settings</comment>
|
||||||
|
|
Loading…
Reference in a new issue