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/PhotoTextsListItem.qml \
|
||||
qml/components/VoiceNoteOverlay.qml \
|
||||
qml/components/WebPagePreview.qml \
|
||||
qml/components/chatInformationPage/ChatInformationEditArea.qml \
|
||||
qml/components/chatInformationPage/ChatInformationPageContent.qml \
|
||||
qml/components/chatInformationPage/ChatInformationProfilePicture.qml \
|
||||
|
@ -89,6 +88,20 @@ DISTFILES += qml/harbour-fernschreiber.qml \
|
|||
qml/components/inlineQueryResults/InlineQueryResultVenue.qml \
|
||||
qml/components/inlineQueryResults/InlineQueryResultVideo.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/functions.js \
|
||||
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 Sailfish.Silica 1.0
|
||||
import "./messageContent"
|
||||
import "../js/twemoji.js" as Emoji
|
||||
import "../js/functions.js" as Functions
|
||||
import "../js/debug.js" as Debug
|
||||
|
@ -40,7 +41,7 @@ ListItem {
|
|||
return existingMessage.id === messageId
|
||||
});
|
||||
readonly property bool isOwnMessage: page.myUserId === myMessage.sender.user_id
|
||||
property string extraContentComponentName
|
||||
property bool hasContentComponent
|
||||
|
||||
highlighted: (down || isSelected) && !menuOpen
|
||||
openMenuOnPressAndHold: !messageListItem.precalculatedValues.pageIsSelecting
|
||||
|
@ -199,10 +200,10 @@ ListItem {
|
|||
repeat: false
|
||||
running: false
|
||||
onTriggered: {
|
||||
if (typeof myMessage.content !== "undefined") {
|
||||
if (messageListItem.extraContentComponentName !== "") {
|
||||
if (messageListItem.hasContentComponent) {
|
||||
var type = myMessage.content["@type"];
|
||||
extraContentLoader.setSource(
|
||||
"../components/" +messageListItem.extraContentComponentName +".qml",
|
||||
"../components/messageContent/" + type.charAt(0).toUpperCase() + type.substring(1) + ".qml",
|
||||
{
|
||||
messageListItem: messageListItem
|
||||
})
|
||||
|
@ -213,7 +214,6 @@ ListItem {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
id: messageTextRow
|
||||
|
@ -435,7 +435,7 @@ ListItem {
|
|||
id: extraContentLoader
|
||||
width: parent.width
|
||||
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 {
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
import QtQuick 2.6
|
||||
import Sailfish.Silica 1.0
|
||||
import "./messageContent"
|
||||
import "../js/functions.js" as Functions
|
||||
import "../js/twemoji.js" as Emoji
|
||||
import "../js/debug.js" as Debug
|
||||
|
@ -34,8 +35,7 @@ Flickable {
|
|||
readonly property var userInformation: tdLibWrapper.getUserInformation(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 string extraContentComponentName: (typeof overlayMessage.content !== "undefined" && typeof chatView.contentComponentNames[overlayMessage.content['@type']] !== "undefined" )
|
||||
? chatView.contentComponentNames[overlayMessage.content['@type']] : ""
|
||||
property bool hasContentComponent: overlayMessage.content && chatView.delegateMessagesContent.indexOf(overlayMessage.content['@type']) > -1
|
||||
signal requestClose;
|
||||
|
||||
function getOriginalAuthor(forwardInformation, fontSize) {
|
||||
|
@ -61,21 +61,18 @@ Flickable {
|
|||
repeat: false
|
||||
running: false
|
||||
onTriggered: {
|
||||
if (typeof overlayMessage.content !== "undefined") {
|
||||
if (messageOverlayFlickable.extraContentComponentName !== "") {
|
||||
if (messageOverlayFlickable.hasContentComponent) {
|
||||
var type = overlayMessage.content["@type"];
|
||||
overlayExtraContentLoader.setSource(
|
||||
"../components/" + messageOverlayFlickable.extraContentComponentName + ".qml",
|
||||
"../components/messageContent/" + type.charAt(0).toUpperCase() + type.substring(1) + ".qml",
|
||||
{
|
||||
overlayFlickable: messageOverlayFlickable
|
||||
})
|
||||
} else {
|
||||
if (typeof overlayMessage.content.web_page !== "undefined") {
|
||||
} else if(overlayMessage.content && overlayMessage.content.web_page) {
|
||||
overlayWebPagePreviewLoader.active = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: messageContentBackground
|
||||
|
|
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 Sailfish.Silica 1.0
|
||||
import QtMultimedia 5.6
|
||||
import "../js/functions.js" as Functions
|
||||
import "../js/debug.js" as Debug
|
||||
import "../"
|
||||
import "../../js/functions.js" as Functions
|
||||
import "../../js/debug.js" as Debug
|
||||
|
||||
|
||||
Item {
|
||||
MessageContentBase {
|
||||
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 string audioUrl;
|
||||
property int previewFileId;
|
||||
property int audioFileId;
|
||||
property bool onScreen: messageListItem ? messageListItem.page.status === PageStatus.Active : true
|
||||
property string audioType : "voiceNote";
|
||||
property bool highlighted;
|
||||
signal clicked();
|
||||
|
||||
width: parent.width
|
||||
height: width / 2
|
||||
|
||||
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 Sailfish.Silica 1.0
|
||||
|
||||
Item {
|
||||
MessageContentBase {
|
||||
|
||||
id: documentPreviewItem
|
||||
width: parent.width
|
||||
height: Theme.itemSizeLarge
|
||||
|
||||
property ListItem messageListItem
|
||||
property MessageOverlayFlickable overlayFlickable
|
||||
property var rawMessage: messageListItem ? messageListItem.myMessage : overlayFlickable.overlayMessage
|
||||
|
||||
property var documentData: rawMessage.content.document
|
||||
property bool openRequested: false;
|
||||
property bool highlighted;
|
||||
|
||||
Component.onCompleted: {
|
||||
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 QtGraphicalEffects 1.0
|
||||
import Sailfish.Silica 1.0
|
||||
import "../"
|
||||
|
||||
Item {
|
||||
MessageContentBase {
|
||||
|
||||
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 string chatId: rawMessage.chat_id
|
||||
property var pictureFileInformation;
|
||||
width: parent.width
|
||||
height: width / 2
|
||||
property string fileExtra
|
||||
|
||||
Component.onCompleted: {
|
||||
updatePicture();
|
||||
}
|
||||
function clicked(){
|
||||
onClicked: {
|
||||
if(!processLauncher.launchProgram('harbour-pure-maps', ["geo:"+locationData.latitude+","+locationData.longitude])) {
|
||||
imageNotification.show(qsTr("Install Pure Maps to inspect this location."));
|
||||
}
|
||||
|
@ -56,17 +51,16 @@ Item {
|
|||
Connections {
|
||||
target: tdLibWrapper
|
||||
onFileUpdated: {
|
||||
if(fileInformation["@extra"] !== imagePreviewItem.fileExtra) {
|
||||
if(fileInformation["@extra"] !== imagePreviewItem.fileExtra && (!imagePreviewItem.pictureFileInformation || imagePreviewItem.pictureFileInformation.id !== fileInformation.id)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!imagePreviewItem.pictureFileInformation) {
|
||||
imagePreviewItem.pictureFileInformation = fileInformation;
|
||||
tdLibWrapper.downloadFile(imagePreviewItem.pictureFileInformation.id);
|
||||
} else if(imagePreviewItem.pictureFileInformation && fileInformation.id === imagePreviewItem.pictureFileInformation.id) {
|
||||
imagePreviewItem.pictureFileInformation = fileInformation;
|
||||
if(fileInformation.local.is_downloading_completed) {
|
||||
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 Sailfish.Silica 1.0
|
||||
import WerkWolf.Fernschreiber 1.0
|
||||
import "../"
|
||||
|
||||
Item {
|
||||
MessageContentBase {
|
||||
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)
|
||||
property bool highlighted
|
||||
|
||||
width: parent.width
|
||||
height: singleImage.visible ? Math.min(defaultHeight, singleImage.bestHeight + Theme.paddingSmall) : defaultHeight
|
||||
|
||||
function clicked() {
|
||||
pageStack.push(Qt.resolvedUrl("../pages/ImagePage.qml"), {
|
||||
onClicked: {
|
||||
pageStack.push(Qt.resolvedUrl("../../pages/ImagePage.qml"), {
|
||||
"photoData" : imagePreviewItem.rawMessage.content.photo
|
||||
})
|
||||
}
|
|
@ -21,15 +21,13 @@ 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
|
||||
import "../../js/functions.js" as Functions
|
||||
import "../../js/twemoji.js" as Emoji
|
||||
|
||||
Item {
|
||||
MessageContentBase {
|
||||
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 bool isOwnMessage: messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
|
||||
readonly property string messageId: rawMessage.id
|
||||
|
@ -44,9 +42,6 @@ Item {
|
|||
}
|
||||
readonly property bool canAnswer: !hasAnswered && !pollData.is_closed
|
||||
readonly property bool isQuiz: pollData.type['@type'] === "pollTypeQuiz"
|
||||
property bool highlighted
|
||||
width: parent.width
|
||||
height: pollColumn.height
|
||||
property list<NamedAction> extraContextMenuItems: [
|
||||
NamedAction {
|
||||
visible: !pollData.is_closed && pollMessageComponent.canEdit
|
||||
|
@ -264,7 +259,7 @@ Item {
|
|||
visible: !pollMessageComponent.canAnswer && !pollData.is_anonymous && pollData.total_voter_count > 0
|
||||
icon.source: "image://theme/icon-m-media-artists"
|
||||
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 {
|
||||
opacity: 0.8
|
|
@ -19,18 +19,15 @@
|
|||
import QtQuick 2.6
|
||||
import Sailfish.Silica 1.0
|
||||
import WerkWolf.Fernschreiber 1.0
|
||||
import "../"
|
||||
|
||||
Item {
|
||||
property ListItem messageListItem
|
||||
property MessageOverlayFlickable overlayFlickable
|
||||
|
||||
MessageContentBase {
|
||||
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 stickerVisible: staticStickerLoader.item ? staticStickerLoader.item.visible :
|
||||
animatedStickerLoader.item ? animatedStickerLoader.item.visible : false
|
||||
readonly property bool isOwnSticker : messageListItem ? messageListItem.isOwnMessage : overlayFlickable.isOwnMessage
|
||||
property real aspectRatio: stickerData.width / stickerData.height
|
||||
property bool highlighted
|
||||
|
||||
implicitWidth: stickerData.width
|
||||
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 Sailfish.Silica 1.0
|
||||
import QtMultimedia 5.6
|
||||
import "../js/functions.js" as Functions
|
||||
import "../js/debug.js" as Debug
|
||||
import "../"
|
||||
import "../../js/functions.js" as Functions
|
||||
import "../../js/debug.js" as Debug
|
||||
|
||||
Item {
|
||||
MessageContentBase {
|
||||
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 string videoUrl;
|
||||
property int previewFileId;
|
||||
|
@ -38,10 +35,7 @@ Item {
|
|||
property bool onScreen: messageListItem ? messageListItem.page.status === PageStatus.Active : true;
|
||||
property string videoType : "video";
|
||||
property bool playRequested: false;
|
||||
property bool highlighted;
|
||||
signal clicked();
|
||||
|
||||
width: parent.width
|
||||
height: videoMessageComponent.isVideoNote ? width : Functions.getVideoHeight(width, videoData)
|
||||
|
||||
Timer {
|
||||
|
@ -215,7 +209,7 @@ Item {
|
|||
height: Theme.iconSizeLarge
|
||||
icon {
|
||||
asynchronous: true
|
||||
source: "../../images/icon-l-fullscreen.svg"
|
||||
source: "../../../images/icon-l-fullscreen.svg"
|
||||
sourceSize {
|
||||
width: Theme.iconSizeLarge
|
||||
height: Theme.iconSizeLarge
|
||||
|
@ -224,7 +218,7 @@ Item {
|
|||
highlighted: videoMessageComponent.highlighted || down
|
||||
visible: ( placeholderImage.status === Image.Ready && !videoMessageComponent.fullscreen ) ? true : false
|
||||
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
|
||||
icon {
|
||||
asynchronous: true
|
||||
source: "../../images/icon-l-fullscreen.svg"
|
||||
source: "../../../images/icon-l-fullscreen.svg"
|
||||
sourceSize {
|
||||
width: Theme.iconSizeLarge
|
||||
height: Theme.iconSizeLarge
|
||||
|
@ -470,7 +464,7 @@ Item {
|
|||
}
|
||||
visible: ( videoComponentLoader.active && messageVideo.playbackState === MediaPlayer.PausedState ) ? true : false
|
||||
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 Sailfish.Silica 1.0
|
||||
import WerkWolf.Fernschreiber 1.0
|
||||
import "../js/functions.js" as Functions
|
||||
import "../"
|
||||
import "../../js/functions.js" as Functions
|
||||
|
||||
Column {
|
||||
id: webPagePreviewColumn
|
||||
|
@ -132,7 +133,7 @@ Column {
|
|||
MouseArea {
|
||||
anchors.fill: parent
|
||||
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: ({
|
||||
messageSticker: "StickerPreview",
|
||||
messagePhoto: "ImagePreview",
|
||||
messageVideo: "VideoPreview",
|
||||
messageVideoNote: "VideoPreview",
|
||||
messageAnimation: "VideoPreview",
|
||||
messageAudio: "AudioPreview",
|
||||
messageVoiceNote: "AudioPreview",
|
||||
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":
|
||||
function getContentComponentHeight(contentType, content, parentWidth) {
|
||||
switch(contentType) {
|
||||
case "messageAnimation":
|
||||
return Functions.getVideoHeight(parentWidth, content.video);
|
||||
case "messageAudio":
|
||||
case "messageVoiceNote":
|
||||
return Theme.itemSizeLarge;
|
||||
case "messageDocument":
|
||||
return Theme.itemSizeSmall;
|
||||
case "PollPreview":
|
||||
return Theme.itemSizeSmall * (4 + content.poll.options);
|
||||
case "GamePreview":
|
||||
case "messageGame":
|
||||
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",
|
||||
"messageChatAddMembers",
|
||||
"messageChatChangePhoto",
|
||||
|
@ -1098,6 +1112,7 @@ Page {
|
|||
"messageChatJoinByLink",
|
||||
"messageChatSetTtl",
|
||||
"messageChatUpgradeFrom",
|
||||
// "messageContactRegistered","messageExpiredPhoto", "messageExpiredVideo","messageWebsiteConnected"
|
||||
"messageGameScore",
|
||||
"messageChatUpgradeTo",
|
||||
"messageCustomServiceAction",
|
||||
|
@ -1115,7 +1130,7 @@ Page {
|
|||
myMessage: model.display
|
||||
messageId: model.message_id
|
||||
messageIndex: model.index
|
||||
extraContentComponentName: chatView.contentComponentNames[model.content_type] || ""
|
||||
hasContentComponent: !!myMessage.content && chatView.delegateMessagesContent.indexOf(model.content_type) > -1
|
||||
canReplyToMessage: chatPage.canSendMessages
|
||||
onReplyToMessage: {
|
||||
newMessageInReplyToRow.inReplyToMessage = myMessage
|
||||
|
|
|
@ -490,21 +490,6 @@
|
|||
<translation>Chats</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -946,10 +931,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Installieren Sie Pure Maps, um diesen Ort zu erkunden.</translation>
|
||||
<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>
|
||||
|
@ -1021,6 +1014,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1032,6 +1032,41 @@
|
|||
<translation>Diese Nachricht wurde weitergeleitet. Ursprünglicher Autor: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1272,41 +1307,6 @@
|
|||
<translation>Quizze haben eine korrekte Antwort. Teilnehmer können ihre Antwort nicht zurückziehen.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
@ -1986,7 +1986,7 @@
|
|||
<message numerus="yes">
|
||||
<source>scored %Ln points</source>
|
||||
<comment>myself</comment>
|
||||
<translation type="unfinished">
|
||||
<translation>
|
||||
<numerusform>haben %Ln Punkt erziehlt</numerusform>
|
||||
<numerusform>haben %Ln Punkte erziehlt</numerusform>
|
||||
</translation>
|
||||
|
|
|
@ -490,21 +490,6 @@
|
|||
<translation>chats</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -946,10 +931,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Install Pure Maps to inspect this location.</translation>
|
||||
<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>
|
||||
|
@ -1021,6 +1014,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1032,6 +1032,41 @@
|
|||
<translation>This message was forwarded. Original author: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1272,41 +1307,6 @@
|
|||
<translation>Quizzes have one correct answer. Participants can't revoke their responses.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<TS version="2.1" language="es">
|
||||
<context>
|
||||
<name>AboutPage</name>
|
||||
<message>
|
||||
|
@ -107,14 +107,16 @@
|
|||
<name>ChatInformationPageContent</name>
|
||||
<message numerus="yes">
|
||||
<source>%1 subscribers</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 suscriptores</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 members</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 miembros</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -172,8 +174,9 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 online</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 en línea</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -302,14 +305,16 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 members</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 miembros</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 subscribers</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 suscriptores</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -362,28 +367,32 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%Ln Messages deleted</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln Mensajes borrados</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%Ln messages have been copied</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln se han copiado los mensajes</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Forward %Ln messages</source>
|
||||
<comment>dialog header</comment>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>Reenviar %Ln mensajes</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%Ln messages selected</source>
|
||||
<comment>number of messages selected</comment>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln mensajes seleccionados</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -393,8 +402,9 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 online</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 en línea</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -480,21 +490,6 @@
|
|||
<translation>charlas</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -826,12 +821,14 @@
|
|||
<comment>myself</comment>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>scored %Ln points</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -934,10 +931,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Instalar Pure Maps para inspeccionar esta ubicación.</translation>
|
||||
<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>
|
||||
|
@ -998,15 +1003,24 @@
|
|||
<comment>myself</comment>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>scored %Ln points in %2</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1018,6 +1032,41 @@
|
|||
<translation>Este mensaje fue reenviado. Autor original: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1077,8 +1126,9 @@
|
|||
<name>NotificationManager</name>
|
||||
<message numerus="yes">
|
||||
<source>%Ln unread messages</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln mensajes no leídos</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -1210,8 +1260,9 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Question (%Ln characters left)</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>Pregunta (quedan %Ln caracteres)</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1225,8 +1276,9 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Answer (%Ln characters left)</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>Respuesta (quedan %Ln caracteres)</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1255,39 +1307,6 @@
|
|||
<translation>Los interrogatorios tienen una respuesta correcta. Los participantes no pueden revocar sus respuestas.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
@ -1301,8 +1320,9 @@
|
|||
<message numerus="yes">
|
||||
<source>%Ln vote(s) total</source>
|
||||
<comment>number of total votes</comment>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln total de votos</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1318,15 +1338,17 @@
|
|||
<message numerus="yes">
|
||||
<source>%Ln vote(s)</source>
|
||||
<comment>number of votes for option</comment>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln votos</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%Ln%</source>
|
||||
<comment>% of votes for option</comment>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln%</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1337,8 +1359,9 @@
|
|||
<message numerus="yes">
|
||||
<source>%Ln vote(s) including yours</source>
|
||||
<comment>number of votes for option</comment>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%Ln votos incluyendo el suyo</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -1366,14 +1389,16 @@
|
|||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 members</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 miembros</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%1 subscribers</source>
|
||||
<translation>
|
||||
<translation type="unfinished">
|
||||
<numerusform>%1 suscriptores</numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1963,6 +1988,7 @@
|
|||
<comment>myself</comment>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
|
@ -491,21 +491,6 @@
|
|||
<translation>keskustelussa</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -947,10 +932,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Asenna Pure Maps tarkastellaksesi sijaintia.</translation>
|
||||
<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>
|
||||
|
@ -1022,6 +1015,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1033,6 +1033,41 @@
|
|||
<translation>Välitetty viesti. Alkuperäinen lähettäjä: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1273,41 +1308,6 @@
|
|||
<translation>Visoilla on yksi oikea vastaus. Osallistujat eivät voi kumota vastaustaan.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -480,21 +480,6 @@
|
|||
<translation>csevegések</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -934,9 +919,17 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<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>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -1007,6 +1000,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageLocation</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1018,6 +1018,39 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1255,39 +1288,6 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -490,21 +490,6 @@
|
|||
<translation>Aggiorna contenuti...</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -946,10 +931,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Installa Pure Maps per conoscere questo luogo.</translation>
|
||||
<source>Download Document</source>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1021,6 +1014,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1032,6 +1032,41 @@
|
|||
<translation>Questo è un messaggio inoltrato. Autore originale: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1272,41 +1307,6 @@
|
|||
<translation>I quiz hanno una sola risposta corretta. I partecipanti non possono revocare le risposte.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -500,21 +500,6 @@
|
|||
<translation>czaty</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -958,10 +943,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Zainstaluj Pure Maps, aby sprawdzić tę lokalizację.</translation>
|
||||
<source>Download Document</source>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1035,6 +1028,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1046,6 +1046,43 @@
|
|||
<translation>Ta wiadomość została przekazana. Oryginalny autor: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1289,43 +1326,6 @@
|
|||
<translation>Quizy mają jedną poprawną odpowiedź. Uczestnicy nie mogą odwołać swoich odpowiedzi.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -500,21 +500,6 @@
|
|||
<translation>чатах</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -958,10 +943,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Для просмотра карты, установите Pure Maps.</translation>
|
||||
<source>Download Document</source>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1035,6 +1028,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageLocation</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation type="unfinished">Для просмотра карты, установите Pure Maps.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1046,6 +1046,43 @@
|
|||
<translation>Это сообщение было переадресовано. Первоначальный автор: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1289,43 +1326,6 @@
|
|||
<translation>Тесты имеют один правильный ответ. Участники не могут отозвать свои ответы.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -490,21 +490,6 @@
|
|||
<translation>chattar</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -946,10 +931,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Installera Pure Maps för att inspektera den här platsen.</translation>
|
||||
<source>Download Document</source>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1021,6 +1014,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1032,6 +1032,41 @@
|
|||
<translation>Detta meddelande är vidarebefordrat. Ursprunglig avsändare: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1272,41 +1307,6 @@
|
|||
<translation>Frågor har ett (1) korrekt svar. Deltagarna kan inte återkalla sina svar.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -480,21 +480,6 @@
|
|||
<translation>对话</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -934,10 +919,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>请安装 Pure Maps 以插入位置</translation>
|
||||
<source>Download Document</source>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1007,6 +1000,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageLocation</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation type="unfinished">请安装 Pure Maps 以插入位置</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1018,6 +1018,39 @@
|
|||
<translation>此消息为转发消息,原作者: %1</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1255,39 +1288,6 @@
|
|||
<translation>Quiz 拥有一个正确选项,参与者无法撤销回答。</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
|
@ -490,21 +490,6 @@
|
|||
<translation>chats</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>EditGroupChatPermissionsColumn</name>
|
||||
<message>
|
||||
|
@ -946,10 +931,18 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LocationPreview</name>
|
||||
<name>MessageDocument</name>
|
||||
<message>
|
||||
<source>Install Pure Maps to inspect this location.</source>
|
||||
<translation>Install Pure Maps to inspect this location.</translation>
|
||||
<source>Download Document</source>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1021,6 +1014,13 @@
|
|||
</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageOverlayFlickable</name>
|
||||
<message>
|
||||
|
@ -1032,6 +1032,41 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>MessageViaLabel</name>
|
||||
<message>
|
||||
|
@ -1272,41 +1307,6 @@
|
|||
<translation>Quizzes have one correct answer. Participants can't revoke their responses.</translation>
|
||||
</message>
|
||||
</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>
|
||||
<name>PollResultsPage</name>
|
||||
<message>
|
||||
|
|
Loading…
Reference in a new issue