update context mnu / translations

This commit is contained in:
molan-git 2020-06-22 20:13:05 +02:00
parent d5cffbebcc
commit 479bfd8f3e
23 changed files with 219 additions and 238 deletions

View file

@ -2,8 +2,6 @@
<title>icon-s-bookmark</title>
<g>
<rect width="32" height="32" fill="#fff" fill-opacity="0"/>
<path d="M20.81,10H11.19a1,1,0,1,1,0-2h9.63a1,1,0,0,1,0,2Z" fill="#fff"/>
<path d="M20.81,14.62H11.19a1,1,0,0,1,0-2h9.63a1,1,0,0,1,0,2Z" fill="#fff"/>
<path d="M26.85,29.74a1,1,0,0,1-.66-.25L16,20.82,5.81,29.48a1,1,0,0,1-1,.2c-.7-.22-.7-.76-.7-1.58,0-.63,0-1.88,0-4.38V4.48A2.41,2.41,0,0,1,6.44,2H25.56a2.41,2.41,0,0,1,2.29,2.5V23.73c0,2.5,0,3.75,0,4.38,0,.82,0,1.36-.7,1.58A1,1,0,0,1,26.85,29.74Zm-10.16-11,9.16,7.79c0-.7,0-1.62,0-2.84V4.48c0-.3-.18-.5-.29-.5H6.44c-.12,0-.29.2-.29.5V23.73c0,1.22,0,2.14,0,2.84l9.16-7.79h0a1.11,1.11,0,0,1,1.39,0Z" fill="#fff" opacity="0.6"/>
<path d="M26.85,29.74a1,1,0,0,1-.66-.25L16,20.82,5.81,29.48a1,1,0,0,1-1,.2c-.7-.22-.7-.76-.7-1.58,0-.63,0-1.88,0-4.38V4.48A2.41,2.41,0,0,1,6.44,2H25.56a2.41,2.41,0,0,1,2.29,2.5V23.73c0,2.5,0,3.75,0,4.38,0,.82,0,1.36-.7,1.58A1,1,0,0,1,26.85,29.74ZM16,18.55a1.07,1.07,0,0,1,.69.24l9.16,7.79c0-.7,0-1.62,0-2.84V4.48c0-.3-.18-.5-.29-.5H6.44c-.12,0-.29.2-.29.5V23.73c0,1.22,0,2.14,0,2.84l9.16-7.79A1.07,1.07,0,0,1,16,18.55Z" fill="#fff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 623 B

View file

@ -9,6 +9,7 @@ var mediator = (function(){
mediator.channels[channel].push({ context : this, callback : fn });
return this;
};
var publish = function(channel){
if(!mediator.channels[channel]) return false;
var args = Array.prototype.slice.call(arguments, 1);
@ -18,6 +19,7 @@ var mediator = (function(){
};
return this;
};
return {
channels : {},
publish : publish,
@ -28,6 +30,7 @@ var mediator = (function(){
}
};
}());
var init = function(){
console.log("db.version: "+db.version);
if(db.version === '') {
@ -103,6 +106,7 @@ var tootParser = function(data){
console.log(ret)
}
var test = 1;
Qt.include("Mastodon.js")
@ -161,6 +165,7 @@ var notifier = function(item){
key: item.id
}
break;
case "follow":
msg = {
urgency: "critical",
@ -182,6 +187,7 @@ var notifier = function(item){
key: item.id
}
break;
case "mention":
msg = {
urgency: "critical",
@ -193,6 +199,7 @@ var notifier = function(item){
key: item.id
}
break;
default:
//console.log(JSON.stringify(messageObject.data))
return;

View file

@ -10,10 +10,12 @@ var mastodonAPI = function(config) {
// modify initial config afterwards
config[key] = value;
},
getConfig: function(key) {
//get config key
return config[key];
},
get: function (endpoint) {
// for GET API calls
// can be called with two or three parameters
@ -67,6 +69,7 @@ var mastodonAPI = function(config) {
}
http.send();
},
post: function (endpoint) {
// for POST API calls
var postData, callback;
@ -113,6 +116,7 @@ var mastodonAPI = function(config) {
}
});*/
},
delete: function (endpoint, callback) {
// for DELETE API calls.
$.ajax({
@ -125,6 +129,7 @@ var mastodonAPI = function(config) {
}
});
},
stream: function (streamType, onData) {
// Event Stream Support
// websocket streaming is undocumented. i had to reverse engineer the fucking web client.
@ -132,7 +137,7 @@ var mastodonAPI = function(config) {
// user for your local home TL and notifications
// public for your federated TL
// public:local for your home TL
// hashtag&tag=fuckdonaldtrump for the stream of #fuckdonaldtrump
// hashtag&tag=mastodonrocks for the stream of #mastodonrocks
// callback gets called whenever new data ist recieved
// callback { event: (eventtype), payload: {mastodon object as described in the api docs} }
// eventtype could be notification (=notification) or update (= new toot in TL)
@ -147,12 +152,10 @@ var mastodonAPI = function(config) {
onData(event);
};
es.onmessage = listener;
},
registerApplication: function (client_name, redirect_uri, scopes, website, callback) {
//register a new application
// OAuth Auth flow:
// First register the application
// 2) get a access code from a user (using the link, generation function below!)
@ -191,10 +194,12 @@ var mastodonAPI = function(config) {
}
http.send(params);
},
generateAuthLink: function (client_id, redirect_uri, responseType, scopes) {
return config.instance + "/oauth/authorize?client_id=" + client_id + "&redirect_uri=" + redirect_uri +
"&response_type=" + responseType + "&scope=" + scopes.join("+");
},
getAccessTokenFromAuthCode: function (client_id, client_secret, redirect_uri, code, callback) {
/*$.ajax({
url: config.instance + "/oauth/token",

View file

@ -10,7 +10,7 @@ WorkerScript.onMessage = function(msg) {
console.log("Conf > " + JSON.stringify(msg.conf))
console.log("Params > " + JSON.stringify(msg.params))
// order notifications in ASC order
/** order notifications in ASC order */
function orderNotifications(items){
for (var i = items.length-1; i > 0; i--) {
if (items[i].id > 0 ) //msg.conf.notificationLastID)
@ -18,14 +18,17 @@ WorkerScript.onMessage = function(msg) {
}
}
/** Logged-in status */
if (!msg.conf || !msg.conf.login) {
console.log("Not loggedin")
return;
}
/** Load images */
if (typeof msg.conf['loadImages'] !== "undefined")
loadImages = msg.conf['loadImages']
/** POST statuses */
var API = mastodonAPI({ instance: msg.conf.instance, api_user_token: msg.conf.api_user_token});
if (msg.method === "POST"){
API.post(msg.action, msg.params, function(data) {
@ -63,7 +66,7 @@ WorkerScript.onMessage = function(msg) {
} else if(msg.action === "notifications") {
// notification
// console.log("Is notification... parsing...")
console.log("Get notification list")
console.log(JSON.stringify(data[i]))
item = parseNotification(data[i]);
items.push(item)
@ -73,7 +76,9 @@ WorkerScript.onMessage = function(msg) {
console.log("ancestors")
for (var j = 0; j < data[i].length; j ++) {
item = parseToot(data[i][j]);
item['id'] = item['status_id']
item['id'] = item['status_id'];
if (typeof item['attachments'] === "undefined")
item['attachments'] = [];
items.push(item)
console.log(JSON.stringify(data[i][j]))
}
@ -82,7 +87,7 @@ WorkerScript.onMessage = function(msg) {
//console.log(JSON.stringify(i))
} else if(msg.action.indexOf("statuses") >-1 && msg.action.indexOf("context") >-1 && i === "descendants") {
// status ancestors toots - conversation
// status descendants toots - conversation
console.log("descendants")
for (var j = 0; j < data[i].length; j ++) {
item = parseToot(data[i][j]);
@ -94,16 +99,19 @@ WorkerScript.onMessage = function(msg) {
}
addDataToModel (msg.model, "append", items);
items = [];
} else if (data[i].hasOwnProperty("content")){
// console.log("Is toot... parsing...")
//console.log("Get Toot")
item = parseToot(data[i]);
item['id'] = item['status_id']
items.push(item)
} else {
WorkerScript.sendMessage({ 'action': msg.action, 'success': true, key: i, "data": data[i] })
}
}
}
if(msg.model && items.length)
addDataToModel(msg.model, msg.mode, items)
/*if(msg.action === "notifications")
@ -123,11 +131,10 @@ function addDataToModel (model, mode, items) {
model.insert(0,items[i])
}
}
model.sync()
}
// Get Account Data: Represents a user of Mastodon and their associated profile.
/** Function: Get Account Data */
function parseAccounts(collection, prefix, data) {
var res = collection;
@ -159,7 +166,7 @@ function parseAccounts(collection, prefix, data) {
return (res);
}
// Get Notification Data
/** Function: Get Notification Data */
function parseNotification(data){
//console.log(JSON.stringify(data))
var item = {
@ -168,12 +175,12 @@ function parseNotification(data){
attachments: []
};
switch (item['type']){
case "mention":
if (!data.status) {
break;
}
item = parseToot(data.status)
item['typeIcon'] = "image://theme/icon-s-retweet"
item['typeIcon'] = "image://theme/icon-s-alarm"
item['type'] = "mention"
break;
@ -197,19 +204,18 @@ function parseNotification(data){
item = parseToot(data.status)
item = parseAccounts(item, "reblog_", data["account"])
item = parseAccounts(item, "", data["status"]["account"])
item['status_reblog'] = true;
item['status_reblog'] = true
item['type'] = "favourite"
item['typeIcon'] = "image://theme/icon-s-favorite"
item['type'] = "favourite";
//item['retweetScreenName'] = item['reblog_account_username'];
break;
case "follow":
item['type'] = "follow";
item = parseAccounts(item, "", data["account"])
item = parseAccounts(item, "reblog_", data["account"])
item['content'] = data['account']['note']
//item['content'] = data['account']['note']
item['typeIcon'] = "../../images/icon-s-follow.svg"
item['attachments'] = []
//item['attachments'] = []
break;
default:
@ -222,6 +228,7 @@ function parseNotification(data){
return item;
}
/** Function: ?? */
function collect() {
var ret = {};
var len = arguments.length;
@ -235,12 +242,13 @@ function collect() {
return ret;
}
/** Function: Get Status date */
function getDate(dateStr) {
var ts = new Date(dateStr);
return new Date(ts.getFullYear(), ts.getMonth(), ts.getDate(), 0, 0, 0)
}
// Get Status / Toot Data
/** Function: Get Status data */
function parseToot (data) {
var i = 0;
var item = {};
@ -264,12 +272,14 @@ function parseToot (data) {
item['status_bookmarked'] = data["bookmarked"]
item['status_content'] = data["content"]
item['attachments'] = data['media_attachments']
item['status_in_reply_to_id'] = data["in_reply_to_id"]
item['status_in_reply_to_account_id'] = data["in_reply_to_account_id"]
item['status_reblog'] = data["reblog"] ? true : false
item['section'] = getDate(data["created_at"])
// If Toot is a Reblog
/** If Toot is a Reblog */
if(item['status_reblog']) {
item['type'] = "reblog";
item['typeIcon'] = "image://theme/icon-s-retweet"
@ -281,14 +291,16 @@ function parseToot (data) {
} else {
item = parseAccounts(item, "", data["account"])
}
/** Replace HTML content */
item['content'] = data['content']
.replaceAll('</span><span class="invisible">', '')
.replaceAll('<span class="invisible">', '')
.replaceAll('</span><span class="ellipsis">', '')
.replaceAll('class=""', '');
item['attachments'] = [];
// Media attachements in Toots
/** Media attachements in Toots */
item['attachments'] = [];
for(i = 0; i < data['media_attachments'].length ; i++) {
var attachments = data['media_attachments'][i];
item['content'] = item['content'].replaceAll(attachments['text_url'], '')
@ -301,7 +313,7 @@ function parseToot (data) {
item['attachments'].push(tmp)
}
// Media attachements in Reblogs
/** Media attachements in Reblogs */
if(item['status_reblog']) {
for(i = 0; i < data['reblog']['media_attachments'].length ; i++) {
var attachments = data['reblog']['media_attachments'][i];
@ -319,7 +331,7 @@ function parseToot (data) {
return addEmojis(item, data);
}
// Display function for custom Emojis in Toots
/** Function: Display custom Emojis in Toots */
function addEmojis(item, data) {
var emoji, i;
for (i = 0; i < data["emojis"].length; i++) {

View file

@ -9,13 +9,13 @@ Page {
id: conversationPage
property string type
property string description: ""
property string username: ""
property string headerTitle: ""
property string suggestedUser: ""
property ListModel suggestedModel
property string toot_id: ""
property string toot_url: ""
property string toot_uri: ""
property string status_id: ""
property string status_url: ""
property string status_uri: ""
property int tootMaxChar: 500;
property bool bot: false //otherwise ReferenceError ProfileHeader.qml
property bool followed_by: false //otherwise ReferenceError ProfileHeader.qml
@ -63,11 +63,6 @@ Page {
}
}
ProfileHeader {
id: header
visible: false
}
SilicaListView {
id: myList
header: PageHeader {
@ -95,7 +90,7 @@ Page {
onCountChanged: {
if (mdl)
for (var i = 0; i < mdl.count; i++) {
if (mdl.get(i).status_id === toot_id) {
if (mdl.get(i).status_id === status_id) {
console.log(mdl.get(i).status_id)
positionViewAtIndex(i, ListView.Center)
}
@ -109,17 +104,17 @@ Page {
MenuItem {
//: Use the translation of "Copy Link" for a shorter PullDownMenu label
text: qsTr("Copy Link to Clipboard")
onClicked: if (toot_url === "") {
var test = toot_uri.split("/")
console.log(toot_uri)
onClicked: if (status_url === "") {
var test = status_uri.split("/")
console.log(status_uri)
console.log(JSON.stringify(test))
console.log(JSON.stringify(test.length))
if (test.length === 8 && (test[7] === "activity")) {
var urialt = toot_uri.replace("activity", "")
var urialt = status_uri.replace("activity", "")
Clipboard.text = urialt
}
else Clipboard.text = toot_uri
} else Clipboard.text = toot_url
else Clipboard.text = status_uri
} else Clipboard.text = status_url
}
MenuItem {
@ -247,9 +242,9 @@ Page {
id: toot
autoScrollEnabled: true
labelVisible: false
text: description !== "" && (description.charAt(0) === '@'
|| description.charAt(
0) === '#') ? description + ' ' : ''
text: username !== "" && (username.charAt(0) === '@'
|| username.charAt(
0) === '#') ? username + ' ' : ''
height: if (type !== "reply") {
Math.max(conversationPage.height / 3, Math.min(conversationPage.height * 0.65, implicitHeight))
}
@ -320,6 +315,9 @@ Page {
height: uploadedImages.cellHeight
RemorseItem {
id: remorse
cancelText: ""
}
Image {
@ -331,7 +329,7 @@ Page {
var idx = index
console.log(idx)
//mediaModel.remove(idx)
remorse.execute(myDelegate, qsTr("Delete"), function () {
remorse.execute(myDelegate, "", function () {
mediaModel.remove(idx)
})
}
@ -377,14 +375,14 @@ Page {
IconButton {
id: btnAddImage
enabled: mediaModel.count < 4
icon.source: "image://theme/icon-s-attach?"
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
anchors {
top: toot.bottom
topMargin: -Theme.paddingSmall * 1.5
left: btnContentWarning.right
leftMargin: Theme.paddingSmall
}
icon.source: "image://theme/icon-s-attach?"
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
onClicked: {
btnAddImage.enabled = false
var once = true
@ -447,13 +445,13 @@ Page {
id: btnSend
icon.source: "image://theme/icon-m-send?"
+ (pressed ? Theme.highlightColor : Theme.primaryColor)
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
anchors {
top: toot.bottom
topMargin: -Theme.paddingSmall * 1.5
right: parent.right
rightMargin: Theme.paddingSmall
}
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
onClicked: {
var visibility = ["public", "unlisted", "private", "direct"]
var media_ids = []
@ -473,8 +471,8 @@ Page {
},
"conf": Logic.conf
}
if (toot_id)
msg.params['in_reply_to_id'] = (toot_id) + ""
if (status_id)
msg.params['in_reply_to_id'] = (status_id) + ""
if (warningContent.visible && warningContent.text.length > 0) {
msg.params['sensitive'] = 1
@ -492,9 +490,9 @@ Page {
Rectangle {
id: uploadProgress
color: Theme.highlightBackgroundColor
height: Theme.itemSizeSmall * 0.05
anchors.bottom: parent.bottom
anchors.left: parent.left
height: Theme.itemSizeSmall * 0.05
}
}

View file

@ -10,9 +10,8 @@ BackgroundItem {
width: parent.width
height: Theme.itemSizeMedium
Rectangle {
Item {
id: avatar
color: "transparent"
width: Theme.itemSizeExtraSmall
height: width
anchors.verticalCenter: parent.verticalCenter
@ -50,7 +49,8 @@ BackgroundItem {
"following_count": model.account_following_count,
"statuses_count": model.account_statuses_count,
"locked": model.account_locked,
"bot": model.account_bot
"bot": model.account_bot,
"group": model.account_group
})
}
}

View file

@ -11,12 +11,14 @@ Item {
property string mediaURL: ""
Rectangle {
opacity: 0.2
opacity: 0.4
color: Theme.highlightDimmerColor
anchors.fill: parent
}
Image {
opacity: status !== Image.Ready ? 1.0 : 0.0
Behavior on opacity { FadeAnimator {} }
source: "image://theme/icon-m-image"
anchors.centerIn: parent
}
@ -75,7 +77,7 @@ Item {
Rectangle {
id: mediaWarning
color: Theme.highlightDimmerColor
visible: typeof status_sensitive != 'undefined' && status_sensitive ? true : false
visible: typeof status_sensitive != "undefined" && status_sensitive ? true : false
anchors.fill: parent
Image {

View file

@ -29,7 +29,6 @@ SilicaListView {
onNotify: {
console.log(what + " - " + num)
}
signal openDrawer (bool setDrawer)
onOpenDrawer: {
//console.log("Open drawer: " + setDrawer)
@ -39,7 +38,6 @@ SilicaListView {
console.log("LIST send signal emitted with notice: " + notice)
}
header: PageHeader {
title: myList.title
description: myList.description
@ -77,7 +75,7 @@ SilicaListView {
}
MenuItem {
text: qsTr("Load more")
text: qsTr("Reload")
onClicked: {
loadData("prepend")
}
@ -101,7 +99,7 @@ SilicaListView {
console.log("CountChanged!")*/
}
footer: Item{
footer: Item {
visible: autoLoadMore
width: parent.width
height: Theme.itemSizeLarge
@ -181,6 +179,7 @@ SilicaListView {
'mode' : mode,
'conf' : Logic.conf
};
console.log(JSON.stringify(msg))
if (type !== "")
worker.sendMessage(msg)

View file

@ -43,7 +43,6 @@ BackgroundItem {
// Account avatar
Image {
id: avatar
visible: true
opacity: status === Image.Ready ? 1.0 : 0.0
Behavior on opacity { FadeAnimator {} }
asynchronous: true
@ -254,7 +253,6 @@ BackgroundItem {
anchors.fill: parent
onClicked: parent.visible = false
}
}
}
@ -300,7 +298,7 @@ BackgroundItem {
Icon {
id: icRT
source: "image://theme/icon-s-retweet?" + (!model.status_reblogged ? Theme.highlightColor : Theme.primaryColor)
width: Theme.iconSizeExtraSmall
width: Theme.iconSizeSmall
height: width
anchors {
leftMargin: Theme.horizontalPageMargin
@ -310,8 +308,8 @@ BackgroundItem {
}
Label {
text: status_reblogs_count // from API.js
font.pixelSize: Theme.fontSizeExtraSmall
text: status_reblogs_count
font.pixelSize: Theme.fontSizeSmall
color: !model.status_reblogged ? Theme.highlightColor : Theme.primaryColor
anchors {
left: icRT.right
@ -341,7 +339,7 @@ BackgroundItem {
Icon {
id: icFA
source: "image://theme/icon-s-favorite?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
width: Theme.iconSizeExtraSmall
width: Theme.iconSizeSmall
height: width
anchors {
leftMargin: Theme.horizontalPageMargin
@ -352,7 +350,7 @@ BackgroundItem {
Label {
text: status_favourites_count
font.pixelSize: Theme.fontSizeExtraSmall
font.pixelSize: Theme.fontSizeSmall
color: !model.status_favourited ? Theme.highlightColor : Theme.primaryColor
anchors {
left: icFA.right
@ -382,7 +380,7 @@ BackgroundItem {
id: icBM
source: "../../images/icon-s-bookmark.svg?"
color: !model.status_bookmarked ? Theme.highlightColor : Theme.primaryColor
width: Theme.iconSizeExtraSmall
width: Theme.iconSizeSmall
height: width
anchors {
left: parent.left
@ -408,7 +406,7 @@ BackgroundItem {
Icon {
id: icMT
source: "image://theme/icon-s-chat?" + (!model.status_favourited ? Theme.highlightColor : Theme.primaryColor)
width: Theme.iconSizeExtraSmall
width: Theme.iconSizeSmall
height: width
anchors {
left: parent.left
@ -419,21 +417,39 @@ BackgroundItem {
}
}
// Open ConversationPage and show other Toots in thread (if available)
// Open ConversationPage and show other Toots in thread (if available) or ProfilePage if new Follower
onClicked: {
var m = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
if (typeof mdl !== "undefined")
m.append(mdl.get(index))
if (model.type !== "follow") {
pageStack.push(Qt.resolvedUrl("../ConversationPage.qml"), {
headerTitle: qsTr("Conversation"),
"toot_id": status_id,
"toot_url": status_url,
"toot_uri": status_uri,
"description": '@'+account_acct,
"status_id": status_id,
"status_url": status_url,
"status_uri": status_uri,
"username": '@'+account_acct,
mdl: m,
type: "reply"
})
} else pageStack.push(Qt.resolvedUrl("../ProfilePage.qml"), {
"display_name": model.account_display_name,
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar,
"profileBackground": model.account_header,
"note": model.account_note,
"url": model.account_url,
"followers_count": model.account_followers_count,
"following_count": model.account_following_count,
"statuses_count": model.account_statuses_count,
"locked": model.account_locked,
"bot": model.account_bot,
"group": model.account_group
} )
}
onPressAndHold: {
console.log(JSON.stringify(mdl.get(index)))
mnu.open(delegate)

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>Was gibt&apos;s Neues?</translation>
</message>
<message>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<source>Public</source>
<translation>Öffentlich</translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Lade mehr</translation>
</message>
<message>
<source>Settings</source>
<translation>Einstellungen</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Neuer Toot</translation>
</message>
<message>
<source>Reload</source>
<translation>Neu laden</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Διαγραφή</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
@ -114,7 +110,7 @@
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Επαναφόρτωση</translation>
</message>
</context>
<context>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Φόρτωση περισσοτέρων</translation>
</message>
<message>
<source>Settings</source>
<translation>Ρυθμίσεις</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Νέος</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished">Επαναφόρτωση</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>¿En qué estás pensando?</translation>
</message>
<message>
<source>Delete</source>
<translation>Borrar</translation>
</message>
<message>
<source>Public</source>
<translation>Público</translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Cargar más</translation>
</message>
<message>
<source>Settings</source>
<translation>Ajustes</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nuevo toot</translation>
</message>
<message>
<source>Reload</source>
<translation>Volver a cargar</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>Qu&apos;avez-vous en tête?</translation>
</message>
<message>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<source>Public</source>
<translation>Public</translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Charger plus</translation>
</message>
<message>
<source>Settings</source>
<translation>Paramètres</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nouveau pouet</translation>
</message>
<message>
<source>Reload</source>
<translation>Recharger</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>A cosa stai pensando?</translation>
</message>
<message>
<source>Delete</source>
<translation>Elimina</translation>
</message>
<message>
<source>Public</source>
<translation>Pubblico</translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Caricare altri</translation>
</message>
<message>
<source>Settings</source>
<translation>Impostazioni</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nuovo Toot</translation>
</message>
<message>
<source>Reload</source>
<translation>Ricarica</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>Wat wil je kwijt?</translation>
</message>
<message>
<source>Delete</source>
<translation>Verwijderen</translation>
</message>
<message>
<source>Public</source>
<translation>Openbaar</translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Meer laden</translation>
</message>
<message>
<source>Settings</source>
<translation>Instellingen</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nieuwe Toot</translation>
</message>
<message>
<source>Reload</source>
<translation>Herladen</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Verwijderen</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Meer laden</translation>
</message>
<message>
<source>Settings</source>
<translation>Instellingen</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nieuwen toot</translation>
</message>
<message>
<source>Reload</source>
<translation>Herladen</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Escafar</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Cargar mai</translation>
</message>
<message>
<source>Settings</source>
<translation>Parmètres</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nòu Tut</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Usuń</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
@ -114,7 +110,7 @@
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Załaduj ponownie</translation>
</message>
</context>
<context>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Załaduj więcej</translation>
</message>
<message>
<source>Settings</source>
<translation>Ustawienia</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Nowy wpis</translation>
</message>
<message>
<source>Reload</source>
<translation>Załaduj ponownie</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -25,48 +25,44 @@
<message>
<source>Copy Link to Clipboard</source>
<extracomment>Use the translation of &quot;Copy Link&quot; for a shorter PullDownMenu label</extracomment>
<translation type="unfinished"></translation>
<translation>Копировать ссылку</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
<translation>Текст предупреждения</translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Удалить</translation>
<translation>О чём думаете?</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
<translation>Публичный</translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
<translation>Скрытый</translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
<translation>Приватный</translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
<translation>Адресованный</translation>
</message>
<message>
<source>Toot sent!</source>
<translation type="unfinished"></translation>
<translation>Поста отправлено!</translation>
</message>
<message>
<source>Reply</source>
<extracomment>&quot;Reply&quot; will show the Toot text entry Panel. &quot;Hide Reply&quot; closes it. Alternative: Use &quot;Close Reply&quot;</extracomment>
<translation type="unfinished"></translation>
<translation>Ответ</translation>
</message>
<message>
<source>Hide Reply</source>
<translation type="unfinished"></translation>
<translation>Скрыть ответ</translation>
</message>
</context>
<context>
@ -98,7 +94,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Авторизоваться</translation>
</message>
<message>
<source>Instance</source>
@ -114,7 +110,7 @@
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation>Перезарядка</translation>
</message>
</context>
<context>
@ -152,7 +148,7 @@
<name>MediaFullScreen</name>
<message>
<source>Error loading</source>
<translation type="unfinished"></translation>
<translation>Ошибка загрузки</translation>
</message>
</context>
<context>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Загрузи больше</translation>
</message>
<message>
<source>Settings</source>
<translation>Настройки</translation>
@ -192,20 +184,24 @@
<source>New Toot</source>
<translation>Новый</translation>
</message>
<message>
<source>Reload</source>
<translation>Перезагрузить</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>
<message>
<source>Bot</source>
<translation type="unfinished"></translation>
<translation>бот</translation>
</message>
<message>
<source>Follows you</source>
<translation type="unfinished"></translation>
<translation>Подписан(а) на вас</translation>
</message>
<message>
<source>Group</source>
<translation type="unfinished"></translation>
<translation>Группа</translation>
</message>
</context>
<context>
@ -213,7 +209,7 @@
<message>
<source>About</source>
<extracomment>If there&apos;s no good translation for &quot;About&quot;, use &quot;Details&quot; (in details about profile).</extracomment>
<translation type="unfinished"></translation>
<translation>О профиль</translation>
</message>
<message>
<source>Followers</source>
@ -238,7 +234,7 @@
<message>
<source>Requested</source>
<extracomment>Is a button. Keep it as short as possible.</extracomment>
<translation type="unfinished"></translation>
<translation>Запрошенный</translation>
</message>
<message>
<source>Follow</source>
@ -267,11 +263,11 @@
</message>
<message>
<source>Open in Browser</source>
<translation type="unfinished"></translation>
<translation>Открыть в браузере</translation>
</message>
<message>
<source>Mention</source>
<translation type="unfinished"></translation>
<translation>Упоминание</translation>
</message>
</context>
<context>
@ -282,7 +278,7 @@
</message>
<message>
<source>Options</source>
<translation type="unfinished"></translation>
<translation>Параметры</translation>
</message>
<message>
<source>Load Images in Toots</source>
@ -379,19 +375,19 @@
</message>
<message>
<source>Mention</source>
<translation type="unfinished"></translation>
<translation>Упоминание</translation>
</message>
<message>
<source>Conversation</source>
<translation type="unfinished"></translation>
<translation>беседа</translation>
</message>
<message>
<source>Remove Bookmark</source>
<translation type="unfinished"></translation>
<translation>Убрать из закладок</translation>
</message>
<message>
<source>Bookmark</source>
<translation type="unfinished"></translation>
<translation>Добавить в закладки</translation>
</message>
</context>
</TS>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Обриши</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
@ -114,7 +110,7 @@
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation type="unfinished">учитај још</translation>
</message>
</context>
<context>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>учитај још</translation>
</message>
<message>
<source>Settings</source>
<translation>Подешавања</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Novi toot</translation>
</message>
<message>
<source>Reload</source>
<translation>учитај још</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Radera</translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
@ -114,7 +110,7 @@
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Ladda mer</translation>
</message>
</context>
<context>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Ladda mer</translation>
</message>
<message>
<source>Settings</source>
<translation>Inställningar</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>Ny toot</translation>
</message>
<message>
<source>Reload</source>
<translation>Ladda mer</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>?</translation>
</message>
<message>
<source>Delete</source>
<translation></translation>
</message>
<message>
<source>Public</source>
<translation></translation>
@ -62,11 +58,11 @@
<message>
<source>Reply</source>
<extracomment>&quot;Reply&quot; will show the Toot text entry Panel. &quot;Hide Reply&quot; closes it. Alternative: Use &quot;Close Reply&quot;</extracomment>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Hide Reply</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation></translation>
</message>
<message>
<source>Settings</source>
<translation></translation>
@ -192,20 +184,24 @@
<source>New Toot</source>
<translation></translation>
</message>
<message>
<source>Reload</source>
<translation></translation>
</message>
</context>
<context>
<name>ProfileHeader</name>
<message>
<source>Bot</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Follows you</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Group</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -213,7 +209,7 @@
<message>
<source>About</source>
<extracomment>If there&apos;s no good translation for &quot;About&quot;, use &quot;Details&quot; (in details about profile).</extracomment>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Followers</source>
@ -238,7 +234,7 @@
<message>
<source>Requested</source>
<extracomment>Is a button. Keep it as short as possible.</extracomment>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Follow</source>
@ -271,7 +267,7 @@
</message>
<message>
<source>Mention</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -282,7 +278,7 @@
</message>
<message>
<source>Options</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Load Images in Toots</source>
@ -314,7 +310,7 @@
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Credits</source>
@ -352,11 +348,11 @@
<message>
<source>Use</source>
<extracomment>Full sentence for translation: &quot;Use Transifex to help with app translation to your language.&quot; - The word Transifex is a link and doesn&apos;t need translation.</extracomment>
<translation type="unfinished"></translation>
<translation>使</translation>
</message>
<message>
<source>to help with app translation to your language.</source>
<translation type="unfinished"></translation>
<translation>使.</translation>
</message>
</context>
<context>
@ -379,19 +375,19 @@
</message>
<message>
<source>Mention</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Conversation</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Remove Bookmark</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Bookmark</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
</TS>

View file

@ -35,10 +35,6 @@
<source>What&apos;s on your mind?</source>
<translation>What&apos;s on your mind?</translation>
</message>
<message>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<source>Public</source>
<translation>Public</translation>
@ -172,10 +168,6 @@
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Load more</translation>
</message>
<message>
<source>Settings</source>
<translation>Settings</translation>
@ -192,6 +184,10 @@
<source>New Toot</source>
<translation>New Toot</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished">Reload</translation>
</message>
</context>
<context>
<name>ProfileHeader</name>