Merge pull request #323 from jgibbon/feature/messageContent_refactor
Message content refactor
This commit is contained in:
commit
55fefdd96d
30 changed files with 989 additions and 857 deletions
|
@ -62,7 +62,6 @@ DISTFILES += qml/harbour-fernschreiber.qml \
|
||||||
qml/components/StickerPicker.qml \
|
qml/components/StickerPicker.qml \
|
||||||
qml/components/PhotoTextsListItem.qml \
|
qml/components/PhotoTextsListItem.qml \
|
||||||
qml/components/VoiceNoteOverlay.qml \
|
qml/components/VoiceNoteOverlay.qml \
|
||||||
qml/components/WebPagePreview.qml \
|
|
||||||
qml/components/chatInformationPage/ChatInformationEditArea.qml \
|
qml/components/chatInformationPage/ChatInformationEditArea.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationPageContent.qml \
|
qml/components/chatInformationPage/ChatInformationPageContent.qml \
|
||||||
qml/components/chatInformationPage/ChatInformationProfilePicture.qml \
|
qml/components/chatInformationPage/ChatInformationProfilePicture.qml \
|
||||||
|
@ -89,6 +88,20 @@ DISTFILES += qml/harbour-fernschreiber.qml \
|
||||||
qml/components/inlineQueryResults/InlineQueryResultVenue.qml \
|
qml/components/inlineQueryResults/InlineQueryResultVenue.qml \
|
||||||
qml/components/inlineQueryResults/InlineQueryResultVideo.qml \
|
qml/components/inlineQueryResults/InlineQueryResultVideo.qml \
|
||||||
qml/components/inlineQueryResults/InlineQueryResultVoiceNote.qml \
|
qml/components/inlineQueryResults/InlineQueryResultVoiceNote.qml \
|
||||||
|
qml/components/messageContent/MessageAnimation.qml \
|
||||||
|
qml/components/messageContent/MessageAudio.qml \
|
||||||
|
qml/components/messageContent/MessageContentBase.qml \
|
||||||
|
qml/components/messageContent/MessageDocument.qml \
|
||||||
|
qml/components/messageContent/MessageGame.qml \
|
||||||
|
qml/components/messageContent/MessageLocation.qml \
|
||||||
|
qml/components/messageContent/MessagePhoto.qml \
|
||||||
|
qml/components/messageContent/MessagePoll.qml \
|
||||||
|
qml/components/messageContent/MessageSticker.qml \
|
||||||
|
qml/components/messageContent/MessageVenue.qml \
|
||||||
|
qml/components/messageContent/MessageVideoNote.qml \
|
||||||
|
qml/components/messageContent/MessageVideo.qml \
|
||||||
|
qml/components/messageContent/MessageVoiceNote.qml \
|
||||||
|
qml/components/messageContent/WebPagePreview.qml \
|
||||||
qml/js/debug.js \
|
qml/js/debug.js \
|
||||||
qml/js/functions.js \
|
qml/js/functions.js \
|
||||||
qml/pages/ChatInformationPage.qml \
|
qml/pages/ChatInformationPage.qml \
|
||||||
|
|
|
@ -1,125 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright (C) 2020 Sebastian J. Wolf and other contributors
|
|
||||||
|
|
||||||
This file is part of Fernschreiber.
|
|
||||||
|
|
||||||
Fernschreiber is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
Fernschreiber is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
import QtQuick 2.6
|
|
||||||
import Sailfish.Silica 1.0
|
|
||||||
import WerkWolf.Fernschreiber 1.0
|
|
||||||
import "../js/functions.js" as Functions
|
|
||||||
import "../js/twemoji.js" as Emoji
|
|
||||||
|
|
||||||
Column {
|
|
||||||
id: gamePreviewItem
|
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
|
||||||
property bool highlighted
|
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
|
|
||||||
Label {
|
|
||||||
width: parent.width
|
|
||||||
font.bold: true
|
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
|
||||||
text: Emoji.emojify(rawMessage.content.game.title || "", font.pixelSize)
|
|
||||||
truncationMode: TruncationMode.Fade
|
|
||||||
textFormat: Text.StyledText
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
}
|
|
||||||
Label {
|
|
||||||
width: parent.width
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
text: Emoji.emojify(rawMessage.content.game.description || "", font.pixelSize)
|
|
||||||
truncationMode: TruncationMode.Fade
|
|
||||||
textFormat: Text.StyledText
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
}
|
|
||||||
Label {
|
|
||||||
width: parent.width
|
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
|
||||||
text: Emoji.emojify(Functions.enhanceMessageText(rawMessage.content.game.text) || "", font.pixelSize)
|
|
||||||
truncationMode: TruncationMode.Fade
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
textFormat: Text.StyledText
|
|
||||||
onLinkActivated: {
|
|
||||||
var chatCommand = Functions.handleLink(link);
|
|
||||||
if(chatCommand) {
|
|
||||||
tdLibWrapper.sendTextMessage(chatInformation.id, chatCommand);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Item {
|
|
||||||
width: parent.width
|
|
||||||
height: Theme.paddingLarge
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: thumbnail
|
|
||||||
source: thumbnailFile.isDownloadingCompleted ? thumbnailFile.path : ""
|
|
||||||
fillMode: Image.PreserveAspectCrop
|
|
||||||
asynchronous: true
|
|
||||||
visible: opacity > 0
|
|
||||||
opacity: status === Image.Ready ? 1.0 : 0.0
|
|
||||||
|
|
||||||
Behavior on opacity { FadeAnimation {} }
|
|
||||||
layer.enabled: queryResultItem.pressed
|
|
||||||
layer.effect: PressEffect { source: thumbnail }
|
|
||||||
|
|
||||||
TDLibFile {
|
|
||||||
id: thumbnailFile
|
|
||||||
tdlib: tdLibWrapper
|
|
||||||
autoLoad: true
|
|
||||||
}
|
|
||||||
Rectangle {
|
|
||||||
width: Theme.iconSizeMedium
|
|
||||||
height: width
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
topMargin: Theme.paddingSmall
|
|
||||||
left: parent.left
|
|
||||||
leftMargin: Theme.paddingSmall
|
|
||||||
}
|
|
||||||
|
|
||||||
color: Theme.rgba(Theme.overlayBackgroundColor, 0.2)
|
|
||||||
radius: Theme.paddingSmall
|
|
||||||
Icon {
|
|
||||||
id: icon
|
|
||||||
source: "image://theme/icon-m-game-controller"
|
|
||||||
asynchronous: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
if (rawMessage.content.game.photo) {
|
|
||||||
// Check first which size fits best...
|
|
||||||
var photo
|
|
||||||
for (var i = 0; i < rawMessage.content.game.photo.sizes.length; i++) {
|
|
||||||
photo = rawMessage.content.game.photo.sizes[i].photo
|
|
||||||
if (rawMessage.content.game.photo.sizes[i].width >= gamePreviewItem.width) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (photo) {
|
|
||||||
thumbnailFile.fileInformation = photo
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
|
import "./messageContent"
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
import "../js/debug.js" as Debug
|
import "../js/debug.js" as Debug
|
||||||
|
@ -40,7 +41,7 @@ ListItem {
|
||||||
return existingMessage.id === messageId
|
return existingMessage.id === messageId
|
||||||
});
|
});
|
||||||
readonly property bool isOwnMessage: page.myUserId === myMessage.sender.user_id
|
readonly property bool isOwnMessage: page.myUserId === myMessage.sender.user_id
|
||||||
property string extraContentComponentName
|
property bool hasContentComponent
|
||||||
|
|
||||||
highlighted: (down || isSelected) && !menuOpen
|
highlighted: (down || isSelected) && !menuOpen
|
||||||
openMenuOnPressAndHold: !messageListItem.precalculatedValues.pageIsSelecting
|
openMenuOnPressAndHold: !messageListItem.precalculatedValues.pageIsSelecting
|
||||||
|
@ -199,17 +200,16 @@ ListItem {
|
||||||
repeat: false
|
repeat: false
|
||||||
running: false
|
running: false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
if (typeof myMessage.content !== "undefined") {
|
if (messageListItem.hasContentComponent) {
|
||||||
if (messageListItem.extraContentComponentName !== "") {
|
var type = myMessage.content["@type"];
|
||||||
extraContentLoader.setSource(
|
extraContentLoader.setSource(
|
||||||
"../components/" +messageListItem.extraContentComponentName +".qml",
|
"../components/messageContent/" + type.charAt(0).toUpperCase() + type.substring(1) + ".qml",
|
||||||
{
|
{
|
||||||
messageListItem: messageListItem
|
messageListItem: messageListItem
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
if (typeof myMessage.content.web_page !== "undefined") { // only in messageText
|
if (typeof myMessage.content.web_page !== "undefined") { // only in messageText
|
||||||
webPagePreviewLoader.active = true;
|
webPagePreviewLoader.active = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -435,7 +435,7 @@ ListItem {
|
||||||
id: extraContentLoader
|
id: extraContentLoader
|
||||||
width: parent.width
|
width: parent.width
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
height: item ? item.height : (messageListItem.extraContentComponentName !== "" ? chatView.getContentComponentHeight(messageListItem.extraContentComponentName, myMessage.content, width) : 0)
|
height: item ? item.height : (messageListItem.hasContentComponent ? chatView.getContentComponentHeight(model.content_type, myMessage.content, width) : 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
|
import "./messageContent"
|
||||||
import "../js/functions.js" as Functions
|
import "../js/functions.js" as Functions
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../js/twemoji.js" as Emoji
|
||||||
import "../js/debug.js" as Debug
|
import "../js/debug.js" as Debug
|
||||||
|
@ -34,8 +35,7 @@ Flickable {
|
||||||
readonly property var userInformation: tdLibWrapper.getUserInformation(overlayMessage.sender.user_id);
|
readonly property var userInformation: tdLibWrapper.getUserInformation(overlayMessage.sender.user_id);
|
||||||
readonly property bool isOwnMessage: tdLibWrapper.getUserInformation().id === overlayMessage.sender.user_id;
|
readonly property bool isOwnMessage: tdLibWrapper.getUserInformation().id === overlayMessage.sender.user_id;
|
||||||
readonly property bool isAnonymous: overlayMessage.sender["@type"] === "messageSenderChat"
|
readonly property bool isAnonymous: overlayMessage.sender["@type"] === "messageSenderChat"
|
||||||
readonly property string extraContentComponentName: (typeof overlayMessage.content !== "undefined" && typeof chatView.contentComponentNames[overlayMessage.content['@type']] !== "undefined" )
|
property bool hasContentComponent: overlayMessage.content && chatView.delegateMessagesContent.indexOf(overlayMessage.content['@type']) > -1
|
||||||
? chatView.contentComponentNames[overlayMessage.content['@type']] : ""
|
|
||||||
signal requestClose;
|
signal requestClose;
|
||||||
|
|
||||||
function getOriginalAuthor(forwardInformation, fontSize) {
|
function getOriginalAuthor(forwardInformation, fontSize) {
|
||||||
|
@ -61,18 +61,15 @@ Flickable {
|
||||||
repeat: false
|
repeat: false
|
||||||
running: false
|
running: false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
if (typeof overlayMessage.content !== "undefined") {
|
if (messageOverlayFlickable.hasContentComponent) {
|
||||||
if (messageOverlayFlickable.extraContentComponentName !== "") {
|
var type = overlayMessage.content["@type"];
|
||||||
overlayExtraContentLoader.setSource(
|
overlayExtraContentLoader.setSource(
|
||||||
"../components/" + messageOverlayFlickable.extraContentComponentName + ".qml",
|
"../components/messageContent/" + type.charAt(0).toUpperCase() + type.substring(1) + ".qml",
|
||||||
{
|
{
|
||||||
overlayFlickable: messageOverlayFlickable
|
overlayFlickable: messageOverlayFlickable
|
||||||
})
|
})
|
||||||
} else {
|
} else if(overlayMessage.content && overlayMessage.content.web_page) {
|
||||||
if (typeof overlayMessage.content.web_page !== "undefined") {
|
overlayWebPagePreviewLoader.active = true;
|
||||||
overlayWebPagePreviewLoader.active = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
21
qml/components/messageContent/MessageAnimation.qml
Normal file
21
qml/components/messageContent/MessageAnimation.qml
Normal file
|
@ -0,0 +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
|
||||||
|
|
||||||
|
MessageVideo {}
|
|
@ -19,27 +19,21 @@
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import QtMultimedia 5.6
|
import QtMultimedia 5.6
|
||||||
import "../js/functions.js" as Functions
|
import "../"
|
||||||
import "../js/debug.js" as Debug
|
import "../../js/functions.js" as Functions
|
||||||
|
import "../../js/debug.js" as Debug
|
||||||
|
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
id: audioMessageComponent
|
id: audioMessageComponent
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
|
||||||
|
|
||||||
property var audioData: ( rawMessage.content['@type'] === "messageVoiceNote" ) ? rawMessage.content.voice_note : ( ( rawMessage.content['@type'] === "messageAudio" ) ? rawMessage.content.audio : "");
|
property var audioData: ( rawMessage.content['@type'] === "messageVoiceNote" ) ? rawMessage.content.voice_note : ( ( rawMessage.content['@type'] === "messageAudio" ) ? rawMessage.content.audio : "");
|
||||||
property string audioUrl;
|
property string audioUrl;
|
||||||
property int previewFileId;
|
property int previewFileId;
|
||||||
property int audioFileId;
|
property int audioFileId;
|
||||||
property bool onScreen: messageListItem ? messageListItem.page.status === PageStatus.Active : true
|
property bool onScreen: messageListItem ? messageListItem.page.status === PageStatus.Active : true
|
||||||
property string audioType : "voiceNote";
|
property string audioType : "voiceNote";
|
||||||
property bool highlighted;
|
|
||||||
signal clicked();
|
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
height: width / 2
|
height: width / 2
|
||||||
|
|
||||||
function getTimeString(rawSeconds) {
|
function getTimeString(rawSeconds) {
|
32
qml/components/messageContent/MessageContentBase.qml
Normal file
32
qml/components/messageContent/MessageContentBase.qml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
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 QtMultimedia 5.6
|
||||||
|
import "../"
|
||||||
|
import "../../js/functions.js" as Functions
|
||||||
|
import "../../js/debug.js" as Debug
|
||||||
|
|
||||||
|
Item {
|
||||||
|
property ListItem messageListItem
|
||||||
|
property MessageOverlayFlickable overlayFlickable
|
||||||
|
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
||||||
|
property bool highlighted
|
||||||
|
signal clicked()
|
||||||
|
}
|
|
@ -19,19 +19,13 @@
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
|
|
||||||
id: documentPreviewItem
|
id: documentPreviewItem
|
||||||
width: parent.width
|
|
||||||
height: Theme.itemSizeLarge
|
height: Theme.itemSizeLarge
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
|
||||||
|
|
||||||
property var documentData: rawMessage.content.document
|
property var documentData: rawMessage.content.document
|
||||||
property bool openRequested: false;
|
property bool openRequested: false;
|
||||||
property bool highlighted;
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
updateDocument();
|
updateDocument();
|
||||||
|
@ -128,7 +122,4 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
128
qml/components/messageContent/MessageGame.qml
Normal file
128
qml/components/messageContent/MessageGame.qml
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2020 Sebastian J. Wolf and other contributors
|
||||||
|
|
||||||
|
This file is part of Fernschreiber.
|
||||||
|
|
||||||
|
Fernschreiber is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Fernschreiber is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Fernschreiber. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
import QtQuick 2.6
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
import WerkWolf.Fernschreiber 1.0
|
||||||
|
import "../"
|
||||||
|
import "../../js/functions.js" as Functions
|
||||||
|
import "../../js/twemoji.js" as Emoji
|
||||||
|
|
||||||
|
|
||||||
|
MessageContentBase {
|
||||||
|
id: messageContent
|
||||||
|
height: gamePreviewItem.height
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: gamePreviewItem
|
||||||
|
width: parent.width
|
||||||
|
height: childrenRect.height
|
||||||
|
|
||||||
|
|
||||||
|
Label {
|
||||||
|
width: parent.width
|
||||||
|
font.bold: true
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
text: Emoji.emojify(rawMessage.content.game.title || "", font.pixelSize)
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
textFormat: Text.StyledText
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
width: parent.width
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
text: Emoji.emojify(rawMessage.content.game.description || "", font.pixelSize)
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
textFormat: Text.StyledText
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
width: parent.width
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
text: Emoji.emojify(Functions.enhanceMessageText(rawMessage.content.game.text) || "", font.pixelSize)
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
textFormat: Text.StyledText
|
||||||
|
onLinkActivated: {
|
||||||
|
var chatCommand = Functions.handleLink(link);
|
||||||
|
if(chatCommand) {
|
||||||
|
tdLibWrapper.sendTextMessage(chatInformation.id, chatCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
width: parent.width
|
||||||
|
height: Theme.paddingLarge
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: thumbnail
|
||||||
|
source: thumbnailFile.isDownloadingCompleted ? thumbnailFile.path : ""
|
||||||
|
fillMode: Image.PreserveAspectCrop
|
||||||
|
asynchronous: true
|
||||||
|
visible: opacity > 0
|
||||||
|
opacity: status === Image.Ready ? 1.0 : 0.0
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Behavior on opacity { FadeAnimation {} }
|
||||||
|
layer.enabled: messageContent.highlighted
|
||||||
|
layer.effect: PressEffect { source: thumbnail }
|
||||||
|
|
||||||
|
TDLibFile {
|
||||||
|
id: thumbnailFile
|
||||||
|
tdlib: tdLibWrapper
|
||||||
|
autoLoad: true
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
width: Theme.iconSizeMedium
|
||||||
|
height: width
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
topMargin: Theme.paddingSmall
|
||||||
|
left: parent.left
|
||||||
|
leftMargin: Theme.paddingSmall
|
||||||
|
}
|
||||||
|
|
||||||
|
color: Theme.rgba(Theme.overlayBackgroundColor, 0.2)
|
||||||
|
radius: Theme.paddingSmall
|
||||||
|
Icon {
|
||||||
|
id: icon
|
||||||
|
source: "image://theme/icon-m-game-controller"
|
||||||
|
asynchronous: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
if (rawMessage.content.game.photo) {
|
||||||
|
// Check first which size fits best...
|
||||||
|
var photo
|
||||||
|
for (var i = 0; i < rawMessage.content.game.photo.sizes.length; i++) {
|
||||||
|
photo = rawMessage.content.game.photo.sizes[i].photo
|
||||||
|
if (rawMessage.content.game.photo.sizes[i].width >= gamePreviewItem.width) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (photo) {
|
||||||
|
thumbnailFile.fileInformation = photo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -19,28 +19,23 @@
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
|
import "../"
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
|
|
||||||
id: imagePreviewItem
|
id: imagePreviewItem
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
|
||||||
property bool highlighted
|
|
||||||
|
|
||||||
property var locationData : ( rawMessage.content['@type'] === "messageLocation" ) ? rawMessage.content.location : ( ( rawMessage.content['@type'] === "messageVenue" ) ? rawMessage.content.venue.location : "" )
|
property var locationData : ( rawMessage.content['@type'] === "messageLocation" ) ? rawMessage.content.location : ( ( rawMessage.content['@type'] === "messageVenue" ) ? rawMessage.content.venue.location : "" )
|
||||||
|
|
||||||
property string chatId: rawMessage.chat_id
|
property string chatId: rawMessage.chat_id
|
||||||
property var pictureFileInformation;
|
property var pictureFileInformation;
|
||||||
width: parent.width
|
|
||||||
height: width / 2
|
height: width / 2
|
||||||
property string fileExtra
|
property string fileExtra
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
updatePicture();
|
updatePicture();
|
||||||
}
|
}
|
||||||
function clicked(){
|
onClicked: {
|
||||||
if(!processLauncher.launchProgram('harbour-pure-maps', ["geo:"+locationData.latitude+","+locationData.longitude])) {
|
if(!processLauncher.launchProgram('harbour-pure-maps', ["geo:"+locationData.latitude+","+locationData.longitude])) {
|
||||||
imageNotification.show(qsTr("Install Pure Maps to inspect this location."));
|
imageNotification.show(qsTr("Install Pure Maps to inspect this location."));
|
||||||
}
|
}
|
||||||
|
@ -56,17 +51,16 @@ Item {
|
||||||
Connections {
|
Connections {
|
||||||
target: tdLibWrapper
|
target: tdLibWrapper
|
||||||
onFileUpdated: {
|
onFileUpdated: {
|
||||||
if(fileInformation["@extra"] !== imagePreviewItem.fileExtra) {
|
if(fileInformation["@extra"] !== imagePreviewItem.fileExtra && (!imagePreviewItem.pictureFileInformation || imagePreviewItem.pictureFileInformation.id !== fileInformation.id)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(fileInformation.local.is_downloading_completed) {
|
||||||
if(!imagePreviewItem.pictureFileInformation) {
|
|
||||||
imagePreviewItem.pictureFileInformation = fileInformation;
|
|
||||||
tdLibWrapper.downloadFile(imagePreviewItem.pictureFileInformation.id);
|
|
||||||
} else if(imagePreviewItem.pictureFileInformation && fileInformation.id === imagePreviewItem.pictureFileInformation.id) {
|
|
||||||
imagePreviewItem.pictureFileInformation = fileInformation;
|
|
||||||
singleImage.source = fileInformation.local.path;
|
singleImage.source = fileInformation.local.path;
|
||||||
|
} else if(fileInformation.local.can_be_downloaded && !fileInformation.local.is_downloading_active) {
|
||||||
|
tdLibWrapper.downloadFile(fileInformation.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
imagePreviewItem.pictureFileInformation = fileInformation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,21 +19,17 @@
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import WerkWolf.Fernschreiber 1.0
|
import WerkWolf.Fernschreiber 1.0
|
||||||
|
import "../"
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
id: imagePreviewItem
|
id: imagePreviewItem
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
|
||||||
readonly property int defaultHeight: Math.round(width * 2 / 3)
|
readonly property int defaultHeight: Math.round(width * 2 / 3)
|
||||||
property bool highlighted
|
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
height: singleImage.visible ? Math.min(defaultHeight, singleImage.bestHeight + Theme.paddingSmall) : defaultHeight
|
height: singleImage.visible ? Math.min(defaultHeight, singleImage.bestHeight + Theme.paddingSmall) : defaultHeight
|
||||||
|
|
||||||
function clicked() {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/ImagePage.qml"), {
|
pageStack.push(Qt.resolvedUrl("../../pages/ImagePage.qml"), {
|
||||||
"photoData" : imagePreviewItem.rawMessage.content.photo
|
"photoData" : imagePreviewItem.rawMessage.content.photo
|
||||||
})
|
})
|
||||||
}
|
}
|
|
@ -21,15 +21,13 @@ import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import WerkWolf.Fernschreiber 1.0
|
import WerkWolf.Fernschreiber 1.0
|
||||||
|
|
||||||
import "../js/functions.js" as Functions
|
import "../../js/functions.js" as Functions
|
||||||
import "../js/twemoji.js" as Emoji
|
import "../../js/twemoji.js" as Emoji
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
id: pollMessageComponent
|
id: pollMessageComponent
|
||||||
|
height: pollColumn.height
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
readonly property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
|
||||||
readonly property string chatId: rawMessage.chat_id
|
readonly property string chatId: rawMessage.chat_id
|
||||||
readonly property bool isOwnMessage: messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
|
readonly property bool isOwnMessage: messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
|
||||||
readonly property string messageId: rawMessage.id
|
readonly property string messageId: rawMessage.id
|
||||||
|
@ -44,9 +42,6 @@ Item {
|
||||||
}
|
}
|
||||||
readonly property bool canAnswer: !hasAnswered && !pollData.is_closed
|
readonly property bool canAnswer: !hasAnswered && !pollData.is_closed
|
||||||
readonly property bool isQuiz: pollData.type['@type'] === "pollTypeQuiz"
|
readonly property bool isQuiz: pollData.type['@type'] === "pollTypeQuiz"
|
||||||
property bool highlighted
|
|
||||||
width: parent.width
|
|
||||||
height: pollColumn.height
|
|
||||||
property list<NamedAction> extraContextMenuItems: [
|
property list<NamedAction> extraContextMenuItems: [
|
||||||
NamedAction {
|
NamedAction {
|
||||||
visible: !pollData.is_closed && pollMessageComponent.canEdit
|
visible: !pollData.is_closed && pollMessageComponent.canEdit
|
||||||
|
@ -264,7 +259,7 @@ Item {
|
||||||
visible: !pollMessageComponent.canAnswer && !pollData.is_anonymous && pollData.total_voter_count > 0
|
visible: !pollMessageComponent.canAnswer && !pollData.is_anonymous && pollData.total_voter_count > 0
|
||||||
icon.source: "image://theme/icon-m-media-artists"
|
icon.source: "image://theme/icon-m-media-artists"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/PollResultsPage.qml"), { chatId:chatId, message:pollMessageComponent.message});
|
pageStack.push(Qt.resolvedUrl("../../pages/PollResultsPage.qml"), { chatId:chatId, message:pollMessageComponent.message});
|
||||||
}
|
}
|
||||||
Icon {
|
Icon {
|
||||||
opacity: 0.8
|
opacity: 0.8
|
|
@ -19,18 +19,15 @@
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import WerkWolf.Fernschreiber 1.0
|
import WerkWolf.Fernschreiber 1.0
|
||||||
|
import "../"
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
|
|
||||||
readonly property var stickerData: messageListItem ? messageListItem.myMessage.content.sticker : overlayFlickable.overlayMessage.content.sticker;
|
readonly property var stickerData: messageListItem ? messageListItem.myMessage.content.sticker : overlayFlickable.overlayMessage.content.sticker;
|
||||||
readonly property bool animated: stickerData.is_animated && appSettings.animateStickers
|
readonly property bool animated: stickerData.is_animated && appSettings.animateStickers
|
||||||
readonly property bool stickerVisible: staticStickerLoader.item ? staticStickerLoader.item.visible :
|
readonly property bool stickerVisible: staticStickerLoader.item ? staticStickerLoader.item.visible :
|
||||||
animatedStickerLoader.item ? animatedStickerLoader.item.visible : false
|
animatedStickerLoader.item ? animatedStickerLoader.item.visible : false
|
||||||
readonly property bool isOwnSticker : messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
|
readonly property bool isOwnSticker : messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
|
||||||
property real aspectRatio: stickerData.width / stickerData.height
|
property real aspectRatio: stickerData.width / stickerData.height
|
||||||
property bool highlighted
|
|
||||||
|
|
||||||
implicitWidth: stickerData.width
|
implicitWidth: stickerData.width
|
||||||
implicitHeight: stickerData.height
|
implicitHeight: stickerData.height
|
21
qml/components/messageContent/MessageVenue.qml
Normal file
21
qml/components/messageContent/MessageVenue.qml
Normal file
|
@ -0,0 +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
|
||||||
|
|
||||||
|
MessageLocation {}
|
|
@ -19,16 +19,13 @@
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import QtMultimedia 5.6
|
import QtMultimedia 5.6
|
||||||
import "../js/functions.js" as Functions
|
import "../"
|
||||||
import "../js/debug.js" as Debug
|
import "../../js/functions.js" as Functions
|
||||||
|
import "../../js/debug.js" as Debug
|
||||||
|
|
||||||
Item {
|
MessageContentBase {
|
||||||
id: videoMessageComponent
|
id: videoMessageComponent
|
||||||
|
|
||||||
property ListItem messageListItem
|
|
||||||
property MessageOverlayFlickable overlayFlickable
|
|
||||||
property var rawMessage: messageListItem ? messageListItem.myMessage : ( overlayFlickable ? overlayFlickable.overlayMessage : undefined )
|
|
||||||
|
|
||||||
property var videoData: ( rawMessage.content['@type'] === "messageVideo" ) ? rawMessage.content.video : ( ( rawMessage.content['@type'] === "messageAnimation" ) ? rawMessage.content.animation : rawMessage.content.video_note )
|
property var videoData: ( rawMessage.content['@type'] === "messageVideo" ) ? rawMessage.content.video : ( ( rawMessage.content['@type'] === "messageAnimation" ) ? rawMessage.content.animation : rawMessage.content.video_note )
|
||||||
property string videoUrl;
|
property string videoUrl;
|
||||||
property int previewFileId;
|
property int previewFileId;
|
||||||
|
@ -38,10 +35,7 @@ Item {
|
||||||
property bool onScreen: messageListItem ? messageListItem.page.status === PageStatus.Active : true;
|
property bool onScreen: messageListItem ? messageListItem.page.status === PageStatus.Active : true;
|
||||||
property string videoType : "video";
|
property string videoType : "video";
|
||||||
property bool playRequested: false;
|
property bool playRequested: false;
|
||||||
property bool highlighted;
|
|
||||||
signal clicked();
|
|
||||||
|
|
||||||
width: parent.width
|
|
||||||
height: videoMessageComponent.isVideoNote ? width : Functions.getVideoHeight(width, videoData)
|
height: videoMessageComponent.isVideoNote ? width : Functions.getVideoHeight(width, videoData)
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
|
@ -215,7 +209,7 @@ Item {
|
||||||
height: Theme.iconSizeLarge
|
height: Theme.iconSizeLarge
|
||||||
icon {
|
icon {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
source: "../../images/icon-l-fullscreen.svg"
|
source: "../../../images/icon-l-fullscreen.svg"
|
||||||
sourceSize {
|
sourceSize {
|
||||||
width: Theme.iconSizeLarge
|
width: Theme.iconSizeLarge
|
||||||
height: Theme.iconSizeLarge
|
height: Theme.iconSizeLarge
|
||||||
|
@ -224,7 +218,7 @@ Item {
|
||||||
highlighted: videoMessageComponent.highlighted || down
|
highlighted: videoMessageComponent.highlighted || down
|
||||||
visible: ( placeholderImage.status === Image.Ready && !videoMessageComponent.fullscreen ) ? true : false
|
visible: ( placeholderImage.status === Image.Ready && !videoMessageComponent.fullscreen ) ? true : false
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/VideoPage.qml"), {"videoData": videoData});
|
pageStack.push(Qt.resolvedUrl("../../pages/VideoPage.qml"), {"videoData": videoData});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -462,7 +456,7 @@ Item {
|
||||||
highlighted: videoMessageComponent.highlighted || down
|
highlighted: videoMessageComponent.highlighted || down
|
||||||
icon {
|
icon {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
source: "../../images/icon-l-fullscreen.svg"
|
source: "../../../images/icon-l-fullscreen.svg"
|
||||||
sourceSize {
|
sourceSize {
|
||||||
width: Theme.iconSizeLarge
|
width: Theme.iconSizeLarge
|
||||||
height: Theme.iconSizeLarge
|
height: Theme.iconSizeLarge
|
||||||
|
@ -470,7 +464,7 @@ Item {
|
||||||
}
|
}
|
||||||
visible: ( videoComponentLoader.active && messageVideo.playbackState === MediaPlayer.PausedState ) ? true : false
|
visible: ( videoComponentLoader.active && messageVideo.playbackState === MediaPlayer.PausedState ) ? true : false
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/VideoPage.qml"), {"videoData": videoData});
|
pageStack.push(Qt.resolvedUrl("../../pages/VideoPage.qml"), {"videoData": videoData});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
21
qml/components/messageContent/MessageVideoNote.qml
Normal file
21
qml/components/messageContent/MessageVideoNote.qml
Normal file
|
@ -0,0 +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
|
||||||
|
|
||||||
|
MessageVideo {}
|
21
qml/components/messageContent/MessageVoiceNote.qml
Normal file
21
qml/components/messageContent/MessageVoiceNote.qml
Normal file
|
@ -0,0 +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
|
||||||
|
|
||||||
|
MessageAudio {}
|
|
@ -20,7 +20,8 @@ import QtQuick 2.6
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import WerkWolf.Fernschreiber 1.0
|
import WerkWolf.Fernschreiber 1.0
|
||||||
import "../js/functions.js" as Functions
|
import "../"
|
||||||
|
import "../../js/functions.js" as Functions
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id: webPagePreviewColumn
|
id: webPagePreviewColumn
|
||||||
|
@ -132,7 +133,7 @@ Column {
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: {
|
onClicked: {
|
||||||
pageStack.push(Qt.resolvedUrl("../pages/ImagePage.qml"), { "photoData" : webPageData.photo, "pictureFileInformation" : picture.fileInformation });
|
pageStack.push(Qt.resolvedUrl("../../pages/ImagePage.qml"), { "photoData" : webPageData.photo, "pictureFileInformation" : picture.fileInformation });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1056,39 +1056,53 @@ Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly property var contentComponentNames: ({
|
function getContentComponentHeight(contentType, content, parentWidth) {
|
||||||
messageSticker: "StickerPreview",
|
switch(contentType) {
|
||||||
messagePhoto: "ImagePreview",
|
case "messageAnimation":
|
||||||
messageVideo: "VideoPreview",
|
return Functions.getVideoHeight(parentWidth, content.video);
|
||||||
messageVideoNote: "VideoPreview",
|
case "messageAudio":
|
||||||
messageAnimation: "VideoPreview",
|
case "messageVoiceNote":
|
||||||
messageAudio: "AudioPreview",
|
return Theme.itemSizeLarge;
|
||||||
messageVoiceNote: "AudioPreview",
|
case "messageDocument":
|
||||||
messageDocument: "DocumentPreview",
|
|
||||||
messageLocation: "LocationPreview",
|
|
||||||
messageVenue: "LocationPreview",
|
|
||||||
messagePoll: "PollPreview",
|
|
||||||
messageGame: "GamePreview"
|
|
||||||
})
|
|
||||||
function getContentComponentHeight(componentName, content, parentWidth) {
|
|
||||||
switch(componentName) {
|
|
||||||
case "StickerPreview": return content.sticker.height;
|
|
||||||
case "ImagePreview":
|
|
||||||
case "LocationPreview":
|
|
||||||
return parentWidth * 0.66666666; // 2 / 3;
|
|
||||||
case "VideoPreview":
|
|
||||||
return ( content['@type'] === "messageVideoNote" ) ? parentWidth : ( Functions.getVideoHeight(parentWidth, ( content['@type'] === "messageVideo" ) ? content.video : content.animation) );
|
|
||||||
case "AudioPreview":
|
|
||||||
return parentWidth / 2;
|
|
||||||
case "DocumentPreview":
|
|
||||||
return Theme.itemSizeSmall;
|
return Theme.itemSizeSmall;
|
||||||
case "PollPreview":
|
case "messageGame":
|
||||||
return Theme.itemSizeSmall * (4 + content.poll.options);
|
|
||||||
case "GamePreview":
|
|
||||||
return parentWidth * 0.66666666 + Theme.itemSizeLarge; // 2 / 3;
|
return parentWidth * 0.66666666 + Theme.itemSizeLarge; // 2 / 3;
|
||||||
|
case "messageLocation":
|
||||||
|
case "messagePhoto":
|
||||||
|
case "messageVenue":
|
||||||
|
return parentWidth * 0.66666666; // 2 / 3;
|
||||||
|
case "messagePoll":
|
||||||
|
return Theme.itemSizeSmall * (4 + content.poll.options);
|
||||||
|
case "messageSticker":
|
||||||
|
return content.sticker.height;
|
||||||
|
case "messageVideo":
|
||||||
|
return Functions.getVideoHeight(parentWidth, content.video);
|
||||||
|
case "messageVideoNote":
|
||||||
|
return parentWidth
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
readonly property var delegateMessagesContent: [
|
||||||
|
"messageAnimation",
|
||||||
|
"messageAudio",
|
||||||
|
// "messageContact",
|
||||||
|
// "messageDice"
|
||||||
|
"messageDocument",
|
||||||
|
"messageGame",
|
||||||
|
// "messageInvoice",
|
||||||
|
"messageLocation",
|
||||||
|
// "messagePassportDataSent",
|
||||||
|
// "messagePaymentSuccessful",
|
||||||
|
"messagePhoto",
|
||||||
|
"messagePoll",
|
||||||
|
// "messageProximityAlertTriggered",
|
||||||
|
"messageSticker",
|
||||||
|
"messageVenue",
|
||||||
|
"messageVideo",
|
||||||
|
"messageVideoNote",
|
||||||
|
"messageVoiceNote"
|
||||||
|
]
|
||||||
|
|
||||||
readonly property var simpleDelegateMessages: ["messageBasicGroupChatCreate",
|
readonly property var simpleDelegateMessages: ["messageBasicGroupChatCreate",
|
||||||
"messageChatAddMembers",
|
"messageChatAddMembers",
|
||||||
"messageChatChangePhoto",
|
"messageChatChangePhoto",
|
||||||
|
@ -1098,6 +1112,7 @@ Page {
|
||||||
"messageChatJoinByLink",
|
"messageChatJoinByLink",
|
||||||
"messageChatSetTtl",
|
"messageChatSetTtl",
|
||||||
"messageChatUpgradeFrom",
|
"messageChatUpgradeFrom",
|
||||||
|
// "messageContactRegistered","messageExpiredPhoto", "messageExpiredVideo","messageWebsiteConnected"
|
||||||
"messageGameScore",
|
"messageGameScore",
|
||||||
"messageChatUpgradeTo",
|
"messageChatUpgradeTo",
|
||||||
"messageCustomServiceAction",
|
"messageCustomServiceAction",
|
||||||
|
@ -1115,7 +1130,7 @@ Page {
|
||||||
myMessage: model.display
|
myMessage: model.display
|
||||||
messageId: model.message_id
|
messageId: model.message_id
|
||||||
messageIndex: model.index
|
messageIndex: model.index
|
||||||
extraContentComponentName: chatView.contentComponentNames[model.content_type] || ""
|
hasContentComponent: !!myMessage.content && chatView.delegateMessagesContent.indexOf(model.content_type) > -1
|
||||||
canReplyToMessage: chatPage.canSendMessages
|
canReplyToMessage: chatPage.canSendMessages
|
||||||
onReplyToMessage: {
|
onReplyToMessage: {
|
||||||
newMessageInReplyToRow.inReplyToMessage = myMessage
|
newMessageInReplyToRow.inReplyToMessage = myMessage
|
||||||
|
|
|
@ -490,21 +490,6 @@
|
||||||
<translation>Chats</translation>
|
<translation>Chats</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Dokument herunterladen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Dokument öffnen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation>Dokument zu Downloads kopieren</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -946,10 +931,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Installieren Sie Pure Maps, um diesen Ort zu erkunden.</translation>
|
<translation>Dokument herunterladen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation>Dokument öffnen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation>Dokument zu Downloads kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1021,6 +1014,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation>Installieren Sie Pure Maps, um diesen Ort zu erkunden.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1032,6 +1032,41 @@
|
||||||
<translation>Diese Nachricht wurde weitergeleitet. Ursprünglicher Autor: %1</translation>
|
<translation>Diese Nachricht wurde weitergeleitet. Ursprünglicher Autor: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation>Umfrage beenden</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation>Antwort zurückziehen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation>Endergebnis:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation>Mehrfachauswahl ist erlaubt.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation>
|
||||||
|
<numerusform>%Ln Stimme insgesamt</numerusform>
|
||||||
|
<numerusform>%Ln Stimmen insgesamt</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1272,41 +1307,6 @@
|
||||||
<translation>Quizze haben eine korrekte Antwort. Teilnehmer können ihre Antwort nicht zurückziehen.</translation>
|
<translation>Quizze haben eine korrekte Antwort. Teilnehmer können ihre Antwort nicht zurückziehen.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Endergebnis:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Mehrfachauswahl ist erlaubt.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln Stimme insgesamt</numerusform>
|
|
||||||
<numerusform>%Ln Stimmen insgesamt</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Umfrage beenden</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Antwort zurückziehen</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1986,7 +1986,7 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>scored %Ln points</source>
|
<source>scored %Ln points</source>
|
||||||
<comment>myself</comment>
|
<comment>myself</comment>
|
||||||
<translation type="unfinished">
|
<translation>
|
||||||
<numerusform>haben %Ln Punkt erziehlt</numerusform>
|
<numerusform>haben %Ln Punkt erziehlt</numerusform>
|
||||||
<numerusform>haben %Ln Punkte erziehlt</numerusform>
|
<numerusform>haben %Ln Punkte erziehlt</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
|
|
|
@ -490,21 +490,6 @@
|
||||||
<translation>chats</translation>
|
<translation>chats</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Download Document</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Open Document</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation>Copy Document to Downloads</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -946,10 +931,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Install Pure Maps to inspect this location.</translation>
|
<translation>Download Document</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation>Open Document</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation>Copy Document to Downloads</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1021,6 +1014,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation>Install Pure Maps to inspect this location.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1032,6 +1032,41 @@
|
||||||
<translation>This message was forwarded. Original author: %1</translation>
|
<translation>This message was forwarded. Original author: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation>Close Poll</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation>Reset Answer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation>Final Result:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation>Multiple Answers are allowed.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation>
|
||||||
|
<numerusform>%Ln vote total</numerusform>
|
||||||
|
<numerusform>%Ln votes total</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1272,41 +1307,6 @@
|
||||||
<translation>Quizzes have one correct answer. Participants can't revoke their responses.</translation>
|
<translation>Quizzes have one correct answer. Participants can't revoke their responses.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Final Result:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Multiple Answers are allowed.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln vote total</numerusform>
|
|
||||||
<numerusform>%Ln votes total</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Close Poll</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Reset Answer</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1">
|
<TS version="2.1" language="es">
|
||||||
<context>
|
<context>
|
||||||
<name>AboutPage</name>
|
<name>AboutPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -107,14 +107,16 @@
|
||||||
<name>ChatInformationPageContent</name>
|
<name>ChatInformationPageContent</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 suscriptores</numerusform>
|
<numerusform>%1 suscriptores</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 miembros</numerusform>
|
<numerusform>%1 miembros</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -172,8 +174,9 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 online</source>
|
<source>%1 online</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 en línea</numerusform>
|
<numerusform>%1 en línea</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -302,14 +305,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 miembros</numerusform>
|
<numerusform>%1 miembros</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 suscriptores</numerusform>
|
<numerusform>%1 suscriptores</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -362,28 +367,32 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln Messages deleted</source>
|
<source>%Ln Messages deleted</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln Mensajes borrados</numerusform>
|
<numerusform>%Ln Mensajes borrados</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln messages have been copied</source>
|
<source>%Ln messages have been copied</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln se han copiado los mensajes</numerusform>
|
<numerusform>%Ln se han copiado los mensajes</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>Forward %Ln messages</source>
|
<source>Forward %Ln messages</source>
|
||||||
<comment>dialog header</comment>
|
<comment>dialog header</comment>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>Reenviar %Ln mensajes</numerusform>
|
<numerusform>Reenviar %Ln mensajes</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln messages selected</source>
|
<source>%Ln messages selected</source>
|
||||||
<comment>number of messages selected</comment>
|
<comment>number of messages selected</comment>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln mensajes seleccionados</numerusform>
|
<numerusform>%Ln mensajes seleccionados</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -393,8 +402,9 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 online</source>
|
<source>%1 online</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 en línea</numerusform>
|
<numerusform>%1 en línea</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -480,21 +490,6 @@
|
||||||
<translation>charlas</translation>
|
<translation>charlas</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Bajar Documento</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Abrir Documento</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation>Copiar documento a Downloads</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -826,12 +821,14 @@
|
||||||
<comment>myself</comment>
|
<comment>myself</comment>
|
||||||
<translation type="unfinished">
|
<translation type="unfinished">
|
||||||
<numerusform></numerusform>
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>scored %Ln points</source>
|
<source>scored %Ln points</source>
|
||||||
<translation type="unfinished">
|
<translation type="unfinished">
|
||||||
<numerusform></numerusform>
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -934,10 +931,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Instalar Pure Maps para inspeccionar esta ubicación.</translation>
|
<translation>Bajar Documento</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation>Abrir Documento</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation>Copiar documento a Downloads</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -998,15 +1003,24 @@
|
||||||
<comment>myself</comment>
|
<comment>myself</comment>
|
||||||
<translation type="unfinished">
|
<translation type="unfinished">
|
||||||
<numerusform></numerusform>
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>scored %Ln points in %2</source>
|
<source>scored %Ln points in %2</source>
|
||||||
<translation type="unfinished">
|
<translation type="unfinished">
|
||||||
<numerusform></numerusform>
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation>Instalar Pure Maps para inspeccionar esta ubicación.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1018,6 +1032,41 @@
|
||||||
<translation>Este mensaje fue reenviado. Autor original: %1</translation>
|
<translation>Este mensaje fue reenviado. Autor original: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation>Cerrar encuesta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation>Restablecer respuesta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation>Resultado final:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation>Se permiten múltiples respuestas.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1077,8 +1126,9 @@
|
||||||
<name>NotificationManager</name>
|
<name>NotificationManager</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln unread messages</source>
|
<source>%Ln unread messages</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln mensajes no leídos</numerusform>
|
<numerusform>%Ln mensajes no leídos</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -1210,8 +1260,9 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>Question (%Ln characters left)</source>
|
<source>Question (%Ln characters left)</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>Pregunta (quedan %Ln caracteres)</numerusform>
|
<numerusform>Pregunta (quedan %Ln caracteres)</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1225,8 +1276,9 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>Answer (%Ln characters left)</source>
|
<source>Answer (%Ln characters left)</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>Respuesta (quedan %Ln caracteres)</numerusform>
|
<numerusform>Respuesta (quedan %Ln caracteres)</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1255,39 +1307,6 @@
|
||||||
<translation>Los interrogatorios tienen una respuesta correcta. Los participantes no pueden revocar sus respuestas.</translation>
|
<translation>Los interrogatorios tienen una respuesta correcta. Los participantes no pueden revocar sus respuestas.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Resultado final:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Se permiten múltiples respuestas.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln votos totales</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Cerrar encuesta</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Restablecer respuesta</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1301,8 +1320,9 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln vote(s) total</source>
|
<source>%Ln vote(s) total</source>
|
||||||
<comment>number of total votes</comment>
|
<comment>number of total votes</comment>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln total de votos</numerusform>
|
<numerusform>%Ln total de votos</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1318,15 +1338,17 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln vote(s)</source>
|
<source>%Ln vote(s)</source>
|
||||||
<comment>number of votes for option</comment>
|
<comment>number of votes for option</comment>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln votos</numerusform>
|
<numerusform>%Ln votos</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln%</source>
|
<source>%Ln%</source>
|
||||||
<comment>% of votes for option</comment>
|
<comment>% of votes for option</comment>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln%</numerusform>
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1337,8 +1359,9 @@
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%Ln vote(s) including yours</source>
|
<source>%Ln vote(s) including yours</source>
|
||||||
<comment>number of votes for option</comment>
|
<comment>number of votes for option</comment>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%Ln votos incluyendo el suyo</numerusform>
|
<numerusform>%Ln votos incluyendo el suyo</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -1366,14 +1389,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 members</source>
|
<source>%1 members</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 miembros</numerusform>
|
<numerusform>%1 miembros</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<source>%1 subscribers</source>
|
<source>%1 subscribers</source>
|
||||||
<translation>
|
<translation type="unfinished">
|
||||||
<numerusform>%1 suscriptores</numerusform>
|
<numerusform>%1 suscriptores</numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1963,6 +1988,7 @@
|
||||||
<comment>myself</comment>
|
<comment>myself</comment>
|
||||||
<translation type="unfinished">
|
<translation type="unfinished">
|
||||||
<numerusform></numerusform>
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -491,21 +491,6 @@
|
||||||
<translation>keskustelussa</translation>
|
<translation>keskustelussa</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Lataa dokumentti</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Avaa dokumentti</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -947,10 +932,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Asenna Pure Maps tarkastellaksesi sijaintia.</translation>
|
<translation>Lataa dokumentti</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation>Avaa dokumentti</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1022,6 +1015,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation>Asenna Pure Maps tarkastellaksesi sijaintia.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1033,6 +1033,41 @@
|
||||||
<translation>Välitetty viesti. Alkuperäinen lähettäjä: %1</translation>
|
<translation>Välitetty viesti. Alkuperäinen lähettäjä: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation>Sulje kysely</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation>Tyhjennä vastaus</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation>Lopullinen tulos:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation>Useampi vastaus sallittu.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1273,41 +1308,6 @@
|
||||||
<translation>Visoilla on yksi oikea vastaus. Osallistujat eivät voi kumota vastaustaan.</translation>
|
<translation>Visoilla on yksi oikea vastaus. Osallistujat eivät voi kumota vastaustaan.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Lopullinen tulos:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Useampi vastaus sallittu.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>yhteensä %Ln ääni</numerusform>
|
|
||||||
<numerusform>yhteensä %Ln ääntä</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Sulje kysely</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Tyhjennä vastaus</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -480,21 +480,6 @@
|
||||||
<translation>csevegések</translation>
|
<translation>csevegések</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Dokumentum letöltése</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Dokumentum megyitása</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -934,9 +919,17 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
|
<translation type="unfinished">Dokumentum letöltése</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">Dokumentum megyitása</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -1007,6 +1000,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1018,6 +1018,39 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1255,39 +1288,6 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation type="unfinished">
|
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation type="unfinished">
|
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -490,21 +490,6 @@
|
||||||
<translation>Aggiorna contenuti...</translation>
|
<translation>Aggiorna contenuti...</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Scarica documento</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Apri documento</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -946,10 +931,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Installa Pure Maps per conoscere questo luogo.</translation>
|
<translation type="unfinished">Scarica documento</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">Apri documento</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1021,6 +1014,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished">Installa Pure Maps per conoscere questo luogo.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1032,6 +1032,41 @@
|
||||||
<translation>Questo è un messaggio inoltrato. Autore originale: %1</translation>
|
<translation>Questo è un messaggio inoltrato. Autore originale: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished">Termina sondaggio</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished">Annulla risposta</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished">Risultato:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished">Risposte multiple consentite.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln voto in totale</numerusform>
|
||||||
|
<numerusform>%Ln voti in totale</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1272,41 +1307,6 @@
|
||||||
<translation>I quiz hanno una sola risposta corretta. I partecipanti non possono revocare le risposte.</translation>
|
<translation>I quiz hanno una sola risposta corretta. I partecipanti non possono revocare le risposte.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Risultato:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Risposte multiple consentite.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln voto in totale</numerusform>
|
|
||||||
<numerusform>%Ln voti in totale</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Termina sondaggio</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Annulla risposta</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -500,21 +500,6 @@
|
||||||
<translation>czaty</translation>
|
<translation>czaty</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Pobierz dokument</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Otwórz dokument</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -958,10 +943,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Zainstaluj Pure Maps, aby sprawdzić tę lokalizację.</translation>
|
<translation type="unfinished">Pobierz dokument</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">Otwórz dokument</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1035,6 +1028,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished">Zainstaluj Pure Maps, aby sprawdzić tę lokalizację.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1046,6 +1046,43 @@
|
||||||
<translation>Ta wiadomość została przekazana. Oryginalny autor: %1</translation>
|
<translation>Ta wiadomość została przekazana. Oryginalny autor: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished">Zamknij ankietę</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished">Resetuj odpowiedź</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished">Ostateczny wynik:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished">Dozwolonych jest wiele odpowiedzi.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln odpowiedź</numerusform>
|
||||||
|
<numerusform>%Ln odpowiedzi</numerusform>
|
||||||
|
<numerusform>%Ln odpowiedzi</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1289,43 +1326,6 @@
|
||||||
<translation>Quizy mają jedną poprawną odpowiedź. Uczestnicy nie mogą odwołać swoich odpowiedzi.</translation>
|
<translation>Quizy mają jedną poprawną odpowiedź. Uczestnicy nie mogą odwołać swoich odpowiedzi.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Ostateczny wynik:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Dozwolonych jest wiele odpowiedzi.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln odpowiedź</numerusform>
|
|
||||||
<numerusform>%Ln odpowiedzi</numerusform>
|
|
||||||
<numerusform>%Ln odpowiedzi</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Zamknij ankietę</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Resetuj odpowiedź</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -500,21 +500,6 @@
|
||||||
<translation>чатах</translation>
|
<translation>чатах</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Скачать документ</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Открыть документ</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished">Сохранить в Загрузках</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -958,10 +943,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Для просмотра карты, установите Pure Maps.</translation>
|
<translation type="unfinished">Скачать документ</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">Открыть документ</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished">Сохранить в Загрузках</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1035,6 +1028,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished">Для просмотра карты, установите Pure Maps.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1046,6 +1046,43 @@
|
||||||
<translation>Это сообщение было переадресовано. Первоначальный автор: %1</translation>
|
<translation>Это сообщение было переадресовано. Первоначальный автор: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished">Прекратить Опрос</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished">Обнулить Ответ</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished">Окончательный Результат</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished">Разрешено несколько вариантов ответов.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1289,43 +1326,6 @@
|
||||||
<translation>Тесты имеют один правильный ответ. Участники не могут отозвать свои ответы.</translation>
|
<translation>Тесты имеют один правильный ответ. Участники не могут отозвать свои ответы.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation type="unfinished">
|
|
||||||
<numerusform></numerusform>
|
|
||||||
<numerusform></numerusform>
|
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Окончательный Результат</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Разрешено несколько вариантов ответов.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation type="unfinished">
|
|
||||||
<numerusform></numerusform>
|
|
||||||
<numerusform></numerusform>
|
|
||||||
<numerusform></numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Прекратить Опрос</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Обнулить Ответ</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -490,21 +490,6 @@
|
||||||
<translation>chattar</translation>
|
<translation>chattar</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Ladda ner dokument</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Öppna dokument</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -946,10 +931,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Installera Pure Maps för att inspektera den här platsen.</translation>
|
<translation type="unfinished">Ladda ner dokument</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">Öppna dokument</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1021,6 +1014,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished">Installera Pure Maps för att inspektera den här platsen.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1032,6 +1032,41 @@
|
||||||
<translation>Detta meddelande är vidarebefordrat. Ursprunglig avsändare: %1</translation>
|
<translation>Detta meddelande är vidarebefordrat. Ursprunglig avsändare: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished">Stäng omröstningen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished">Återställ svar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished">Slutresultat:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished">Flera svarsalternativ tillåtna.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln röst sammanlagt</numerusform>
|
||||||
|
<numerusform>%Ln röster sammanlagt</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1272,41 +1307,6 @@
|
||||||
<translation>Frågor har ett (1) korrekt svar. Deltagarna kan inte återkalla sina svar.</translation>
|
<translation>Frågor har ett (1) korrekt svar. Deltagarna kan inte återkalla sina svar.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Slutresultat:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Flera svarsalternativ tillåtna.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln röst sammanlagt</numerusform>
|
|
||||||
<numerusform>%Ln röster sammanlagt</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Stäng omröstningen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Återställ svar</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -480,21 +480,6 @@
|
||||||
<translation>对话</translation>
|
<translation>对话</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>下载文档</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>打开文档</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation>复制文档到下载</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -934,10 +919,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>请安装 Pure Maps 以插入位置</translation>
|
<translation type="unfinished">下载文档</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">打开文档</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished">复制文档到下载</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1007,6 +1000,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished">请安装 Pure Maps 以插入位置</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1018,6 +1018,39 @@
|
||||||
<translation>此消息为转发消息,原作者: %1</translation>
|
<translation>此消息为转发消息,原作者: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished">关闭投票</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished">重设回答</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished">最终结果:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished">允许多个回答。</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform></numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1255,39 +1288,6 @@
|
||||||
<translation>Quiz 拥有一个正确选项,参与者无法撤销回答。</translation>
|
<translation>Quiz 拥有一个正确选项,参与者无法撤销回答。</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>最终结果:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>允许多个回答。</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>总计 %Ln 次回答</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>关闭投票</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>重设回答</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -490,21 +490,6 @@
|
||||||
<translation>chats</translation>
|
<translation>chats</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>DocumentPreview</name>
|
|
||||||
<message>
|
|
||||||
<source>Download Document</source>
|
|
||||||
<translation>Download Document</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Open Document</source>
|
|
||||||
<translation>Open Document</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Copy Document to Downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>EditGroupChatPermissionsColumn</name>
|
<name>EditGroupChatPermissionsColumn</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -946,10 +931,18 @@
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LocationPreview</name>
|
<name>MessageDocument</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Pure Maps to inspect this location.</source>
|
<source>Download Document</source>
|
||||||
<translation>Install Pure Maps to inspect this location.</translation>
|
<translation type="unfinished">Download Document</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open Document</source>
|
||||||
|
<translation type="unfinished">Open Document</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy Document to Downloads</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1021,6 +1014,13 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessageLocation</name>
|
||||||
|
<message>
|
||||||
|
<source>Install Pure Maps to inspect this location.</source>
|
||||||
|
<translation type="unfinished">Install Pure Maps to inspect this location.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageOverlayFlickable</name>
|
<name>MessageOverlayFlickable</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1032,6 +1032,41 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MessagePoll</name>
|
||||||
|
<message>
|
||||||
|
<source>Close Poll</source>
|
||||||
|
<translation type="unfinished">Close Poll</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset Answer</source>
|
||||||
|
<translation type="unfinished">Reset Answer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Final Result:</source>
|
||||||
|
<translation type="unfinished">Final Result:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Multiple Answers are allowed.</source>
|
||||||
|
<translation type="unfinished">Multiple Answers are allowed.</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln%</source>
|
||||||
|
<comment>% of votes for option</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
<numerusform>%Ln%</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>%Ln vote(s) total</source>
|
||||||
|
<comment>number of total votes</comment>
|
||||||
|
<translation type="unfinished">
|
||||||
|
<numerusform>%Ln vote total</numerusform>
|
||||||
|
<numerusform>%Ln votes total</numerusform>
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MessageViaLabel</name>
|
<name>MessageViaLabel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1272,41 +1307,6 @@
|
||||||
<translation>Quizzes have one correct answer. Participants can't revoke their responses.</translation>
|
<translation>Quizzes have one correct answer. Participants can't revoke their responses.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>PollPreview</name>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln%</source>
|
|
||||||
<comment>% of votes for option</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
<numerusform>%Ln%</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Final Result:</source>
|
|
||||||
<translation>Final Result:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Multiple Answers are allowed.</source>
|
|
||||||
<translation>Multiple Answers are allowed.</translation>
|
|
||||||
</message>
|
|
||||||
<message numerus="yes">
|
|
||||||
<source>%Ln vote(s) total</source>
|
|
||||||
<comment>number of total votes</comment>
|
|
||||||
<translation>
|
|
||||||
<numerusform>%Ln vote total</numerusform>
|
|
||||||
<numerusform>%Ln votes total</numerusform>
|
|
||||||
</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Close Poll</source>
|
|
||||||
<translation>Close Poll</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Reset Answer</source>
|
|
||||||
<translation>Reset Answer</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>PollResultsPage</name>
|
<name>PollResultsPage</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
Loading…
Reference in a new issue