Merge branch 'master' into crash-fix

This commit is contained in:
Dusko Angirevic 2020-04-16 00:49:29 +02:00 committed by GitHub
commit ea792957bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 1708 additions and 1755 deletions

View file

@ -114,4 +114,4 @@ TRANSLATIONS += translations/harbour-tooter-pl.ts
TRANSLATIONS += translations/harbour-tooter-ru.ts
TRANSLATIONS += translations/harbour-tooter-sr.ts
TRANSLATIONS += translations/harbour-tooter-sv.ts
TRANSLATIONS += translations/harbour-tooter-zh.ts
TRANSLATIONS += translations/harbour-tooter-zh_CN.ts

View file

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<title>Artboard 1</title>
<g>
<rect width="64" height="64" fill="#fff" fill-opacity="0"/>
<path d="M32,56.55A24.55,24.55,0,1,1,56.55,32,24.58,24.58,0,0,1,32,56.55Zm0-47A22.45,22.45,0,1,0,54.45,32,22.48,22.48,0,0,0,32,9.55Z" fill="#fff" opacity="0.6" style="isolation: isolate"/>
</g>
<g opacity="0.39">
<g>
<path d="M45.42,29a1.49,1.49,0,0,1-1.49-1.49,3,3,0,1,0-6,0,1.49,1.49,0,0,1-3,0,6,6,0,1,1,11.92,0A1.49,1.49,0,0,1,45.42,29Z" fill="#fff"/>
<path d="M27.53,29A1.49,1.49,0,0,1,26,27.51a3,3,0,1,0-6,0,1.49,1.49,0,0,1-3,0,6,6,0,1,1,11.92,0A1.49,1.49,0,0,1,27.53,29Z" fill="#fff"/>
</g>
<path d="M47.85,37.16a1.48,1.48,0,0,0-1.27-.71H17.42a1.49,1.49,0,0,0-1.33,2.16,17.84,17.84,0,0,0,31.81,0A1.5,1.5,0,0,0,47.85,37.16Z" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 886 B

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="15 0 60 60" enable-background="new 15 0 60 60" xml:space="preserve">
<g>
<circle fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="45" cy="30" r="23.4"/>
<ellipse opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" enable-background="new " cx="45" cy="30" rx="12.4" ry="23.4"/>
<path opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" enable-background="new " d="
M61.5,13.4c-2.6,4.1-9.5,6.9-16.5,6.9s-13.9-2.8-16.5-6.9"/>
<path opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" enable-background="new " d="
M28.5,46.6c2.6-4.1,9.5-6.9,16.5-6.9s13.9,2.8,16.5,6.9"/>
<line opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" enable-background="new " x1="21.6" y1="30" x2="68.4" y2="30"/>
<line opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" enable-background="new " x1="45" y1="6.6" x2="45" y2="53.4"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
<path id="Home" fill="none" stroke="#FFFFFF" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="10" d="M28.8,8.2L9,24.2
c-0.3,0.3-0.5,0.7-0.5,1.1v30.2c0,0.8,0.7,1.5,1.5,1.5h13.2c0.8,0,1.5-0.7,1.5-1.5V36.4c0-0.8,0.7-1.5,1.5-1.5h11.8
c0.8,0,1.5,0.7,1.5,1.5v19.1c0,0.8,0.7,1.5,1.5,1.5h13.2c0.8,0,1.5-0.7,1.5-1.5V25.3c0-0.4-0.2-0.9-0.5-1.1l-19.7-16
C33.4,6.6,30.6,6.6,28.8,8.2z"/>
<g id="Local" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" cx="32" cy="27.8" r="7.4"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="M32,7.2
c11.4,0,20.6,9.2,20.6,20.6c0,3-0.6,5.8-1.8,8.4c-0.9,2.1-2.2,4-3.8,5.7l-15,15l-15-15c-1.6-1.7-2.9-3.6-3.8-5.7
c-1.1-2.6-1.8-5.4-1.8-8.4C11.4,16.4,20.6,7.2,32,7.2z"/>
</g>
<g id="Federation" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="32" cy="32" r="25"/>
<ellipse display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="32" cy="32" rx="13.2" ry="25"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M49.6,14.3
c-2.8,4.4-10.1,7.4-17.6,7.4s-14.8-3-17.6-7.4"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M14.4,49.7
c2.8-4.4,10.1-7.4,17.6-7.4s14.8,3,17.6,7.4"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="7" y1="32" x2="57" y2="32"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="32" y1="7" x2="32" y2="57"/>
</g>
<g id="Search" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" cx="29.1" cy="29.1" r="20.6"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" x1="55.5" y1="55.5" x2="43.8" y2="43.8"/>
</g>
<path id="Notification_1_" display="none" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="
M44,53.3c2,2.3,4.9,3.7,8.2,3.7c2.2,0,4.2-0.6,5.9-1.8c-3.4-1.9-5.8-5.3-6.5-9.3c2.7-4,4.2-8.8,4.2-13.9c0-13.8-11.2-25-25-25
s-25,11.2-25,25s11.2,25,25,25C35.7,57,40.2,55.6,44,53.3z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="15 0 60 60" enable-background="new 15 0 60 60" xml:space="preserve">
<path id="Home" display="none" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="
M57,7.7l-18.6,15c-0.3,0.3-0.5,0.7-0.5,1V52c0,0.8,0.7,1.4,1.4,1.4h12.4c0.8,0,1.4-0.7,1.4-1.4V34.1c0-0.7,0.7-1.4,1.4-1.4h11.1
c0.8,0,1.4,0.7,1.4,1.4V52c0,0.8,0.7,1.4,1.4,1.4h12.4c0.8,0,1.4-0.7,1.4-1.4V23.7c0-0.4-0.2-0.8-0.5-1l-18.5-15
C61.3,6.2,58.7,6.2,57,7.7z"/>
<g>
<circle opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" enable-background="new " cx="45" cy="26" r="6.9"/>
<path fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="M45,6.8
c10.7,0,19.3,8.6,19.3,19.3c0,2.8-0.6,5.4-1.7,7.9c-0.8,2-2.1,3.8-3.6,5.3l-14,14L31,39.3c-1.5-1.6-2.7-3.4-3.6-5.3
c-1-2.4-1.7-5.1-1.7-7.9C25.8,15.4,34.3,6.8,45,6.8z"/>
</g>
<g id="Federation" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="60" cy="30" r="23.4"/>
<ellipse display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="60" cy="30" rx="12.4" ry="23.4"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M76.5,13.4
c-2.6,4.1-9.5,6.9-16.5,6.9s-13.9-2.8-16.5-6.9"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M43.5,46.6
c2.6-4.1,9.5-6.9,16.5-6.9s13.9,2.8,16.5,6.9"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="36.6" y1="30" x2="83.4" y2="30"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="60" y1="6.6" x2="60" y2="53.4"/>
</g>
<g id="Search" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" cx="57.3" cy="27.3" r="19.3"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" x1="82" y1="52" x2="71.1" y2="41.1"/>
</g>
<path id="Notification_1_" display="none" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="
M71.3,50c1.9,2.2,4.6,3.5,7.7,3.5c2.1,0,3.9-0.6,5.5-1.7c-3.2-1.8-5.4-5-6.1-8.7c2.5-3.8,3.9-8.2,3.9-13c0-12.9-10.5-23.4-23.4-23.4
S35.4,17.1,35.4,30s10.5,23.4,23.4,23.4C63.5,53.4,67.7,52.1,71.3,50z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 36 36" enable-background="new 0 0 36 36" xml:space="preserve">
<g>
<g>
<path fill="#FFFFFF" d="M23.1,5.9C19.2,2,12.8,2,8.9,5.9C5,9.8,5,16.1,8.9,20.1c3.9,3.9,10.2,3.9,14.1,0C27,16.1,27,9.8,23.1,5.9z
M21.6,18.6c-3.1,3.1-8.2,3.1-11.3,0c-3.1-3.1-3.1-8.2,0-11.3c3.1-3.1,8.2-3.1,11.3,0C24.8,10.4,24.8,15.5,21.6,18.6z M19,32h-2
v-6h-2v6h-2c-0.6,0-1,0.4-1,1c0,0.6,0.4,1,1,1h6c0.6,0,1-0.4,1-1C20,32.4,19.6,32,19,32z"/>
</g>
</g>
<path fill="#FFFFFF" d="M15.9,28c-3.9,0-7.7-1.5-10.6-4.4c-0.4-0.4-0.4-1,0-1.4c0.4-0.4,1-0.4,1.4,0c5.1,5.1,13.5,5,18.5,0
c5-5,5-13.4,0-18.5c-0.4-0.4-0.4-1,0-1.4c0.4-0.4,1-0.4,1.4,0c5.9,5.9,5.9,15.4,0,21.3C23.7,26.5,19.8,28,15.9,28z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="18.9 0 60 60" enable-background="new 18.9 0 60 60" xml:space="preserve">
<path id="Home" display="none" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="
M42,7.7l-18.6,15c-0.3,0.3-0.5,0.7-0.5,1V52c0,0.8,0.7,1.4,1.4,1.4h12.4c0.8,0,1.4-0.7,1.4-1.4V34.1c0-0.7,0.7-1.4,1.4-1.4h11.1
c0.8,0,1.4,0.7,1.4,1.4V52c0,0.8,0.7,1.4,1.4,1.4h12.4c0.8,0,1.4-0.7,1.4-1.4V23.7c0-0.4-0.2-0.8-0.5-1l-18.5-15
C46.3,6.2,43.7,6.2,42,7.7z"/>
<g id="Local" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" cx="45" cy="26.1" r="6.9"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="M45,6.8
c10.7,0,19.3,8.6,19.3,19.3c0,2.8-0.6,5.4-1.7,7.9c-0.8,2-2.1,3.8-3.6,5.3L45,53.3L30.9,39.3c-1.5-1.6-2.7-3.4-3.6-5.3
c-1-2.4-1.7-5.1-1.7-7.9C25.7,15.4,34.3,6.8,45,6.8z"/>
</g>
<g id="Federation" display="none">
<circle display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="45" cy="30" r="23.4"/>
<ellipse display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="45" cy="30" rx="12.4" ry="23.4"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M61.5,13.4
c-2.6,4.1-9.5,6.9-16.5,6.9s-13.9-2.8-16.5-6.9"/>
<path display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M28.5,46.6
c2.6-4.1,9.5-6.9,16.5-6.9s13.9,2.8,16.5,6.9"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="21.6" y1="30" x2="68.4" y2="30"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="45" y1="6.6" x2="45" y2="53.4"/>
</g>
<g>
<circle opacity="0.6" fill="none" stroke="#FFFFFF" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="10" cx="46.2" cy="27.3" r="19.3"/>
<line fill="none" stroke="#FFFFFF" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="10" x1="70.9" y1="52" x2="60.9" y2="42"/>
</g>
<path id="Notification_1_" display="none" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linejoin="round" stroke-miterlimit="10" d="
M56.3,50c1.9,2.2,4.6,3.5,7.7,3.5c2.1,0,3.9-0.6,5.5-1.7c-3.2-1.8-5.4-5-6.1-8.7c2.5-3.8,3.9-8.2,3.9-13c0-12.9-10.5-23.4-23.4-23.4
S20.4,17.1,20.4,30s10.5,23.4,23.4,23.4C48.5,53.4,52.7,52.1,56.3,50z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -82,7 +82,7 @@ WorkerScript.onMessage = function(msg) {
console.log("descendants")
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)

View file

@ -1,284 +0,0 @@
/****************************************************************************************
**
** Copyright (C) 2013 Jolla Ltd.
** Contact: Raine Makelainen <raine.makelainen@jollamobile.com>
** All rights reserved.
**
** This file is part of Sailfish Silica UI component package.
**
** You may use this file under the terms of BSD license as follows:
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the Jolla Ltd nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
****************************************************************************************/
import QtQuick 2.0
import QtWebKit 3.0
import Sailfish.Silica 1.0
Page {
id: browser
property string href;
property bool screenReaderMode: true
property bool loaded: false
property string articleContent: ""
property string articleTitle: ""
property string articleDate: ""
property string articleImage: ""
onLoadedChanged: {
pullDownMenu.busy = pullDownMenu2.busy = !loaded
}
onStatusChanged: {
if (status === PageStatus.Active) {
fetchData();
}
}
onScreenReaderModeChanged: {
loaded = false;
fetchData();
}
allowedOrientations: Orientation.All
function fetchData(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://mercury.postlight.com/parser?url="+href, true);
xhr.onreadystatechange = function() {
if ( xhr.readyState === xhr.DONE ) {
if ( xhr.status === 200 ) {
console.log(xhr.responseText)
var response = JSON.parse(xhr.responseText);
//if (response.date_published)
//articleDate = new Date(response.date_published.replace(/^(\w+) (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,"$1, $2 $3 $5 $4 GMT"));
if (response.title)
articleTitle = response.title;
if (response.lead_image_url)
articleImage = response.lead_image_url
if (response.content)
articleContent = response.content;
if (response.content && response.lead_image_url)
articleContent = articleContent.replace(articleImage, "")
} else {
}
loaded = true;
}
}
xhr.setRequestHeader("Content-Type", 'application/json');
xhr.setRequestHeader("x-api-key", 'uakC11NlSubREs1r5NjkOCS1NJEkwti6DnDutcYC');
if (screenReaderMode)
xhr.send();
else
webView.url = 'https://mercury.postlight.com/amp?url='+href
}
BusyIndicator {
id: loading
size: BusyIndicatorSize.Large
anchors.centerIn: parent
running: !loaded
}
SilicaWebView {
enabled: !screenReaderMode
visible: !screenReaderMode
id: webView
anchors {
fill: parent
}
PullDownMenu {
id: pullDownMenu
MenuItem {
text: qsTr("Open in Browser")
onClicked: {
Qt.openUrlExternally(href);
}
}
MenuItem {
text: screenReaderMode ? qsTr("Web mode") : qsTr("Reading mode")
onClicked: {
screenReaderMode = !screenReaderMode
}
}
}
opacity: 0
onLoadingChanged: {
switch (loadRequest.status)
{
case WebView.LoadSucceededStatus:
opacity = 1
loaded = true;
break
case WebView.LoadFailedStatus:
opacity = 0
loaded = true;
viewPlaceHolder.errorString = loadRequest.errorString
break
default:
opacity = 0
loaded = false;
break
}
}
FadeAnimation on opacity {}
}
ViewPlaceholder {
id: viewPlaceHolder
property string errorString
enabled: webView.opacity === 0 && loaded && !screenReaderMode
text: errorString
hintText: "Check network connectivity and pull down to reload"
}
SilicaFlickable {
visible: screenReaderMode
enabled: screenReaderMode
anchors {
fill: parent
}
contentHeight: article.height
VerticalScrollDecorator {}
PullDownMenu {
id: pullDownMenu2
MenuItem {
text: qsTr("Copy URL")
onClicked: Clipboard.text = href
}
MenuItem {
text: qsTr("Open in Browser")
onClicked: Qt.openUrlExternally(href);
}
MenuItem {
text: screenReaderMode ? qsTr("Web mode") : qsTr("Reading mode")
onClicked: {
screenReaderMode = !screenReaderMode
}
}
}
Column {
id: article
width: parent.width
Rectangle {
height: Theme.itemSizeExtraSmall/3
width: parent.width
opacity: 0
}
Label {
id: title
text: articleTitle
font.pixelSize: Theme.fontSizeLarge
color: Theme.highlightColor
textFormat: Text.StyledText
wrapMode: Text.WordWrap
font.bold: true
anchors {
left: parent.left
right: parent.right
leftMargin: Theme.paddingLarge
rightMargin: Theme.paddingLarge
}
}
Label {
id: date
visible: articleDate !== ""
text: articleDate
font.pixelSize: Theme.fontSizeExtraSmall
color: Theme.secondaryColor
anchors {
left: parent.left
right: parent.right
topMargin: Theme.paddingSmall
bottomMargin: Theme.paddingSmall
leftMargin: Theme.paddingLarge
rightMargin: Theme.paddingLarge
}
}
Rectangle {
height: image.visible ? Theme.itemSizeExtraSmall/3 : 0
width: parent.width
opacity: 0
}
Image {
id: image
visible: articleImage !== "" ? true : false
source: articleImage
width: parent.width
height: Theme.itemSizeExtraLarge
fillMode: Image.PreserveAspectCrop
anchors {
left: parent.left
right: parent.right
}
BusyIndicator {
size: BusyIndicatorSize.Small
anchors.centerIn: parent
running: parent.status != Image.Ready
}
onStatusChanged: if (image.status === Image.Ready) {
var ratio = image.sourceSize.width/image.sourceSize.height
height = width / ratio
}
}
Rectangle {
height: image.visible ? Theme.itemSizeExtraSmall/3 : 0
width: parent.width
opacity: 0
}
Label {
id: content
readonly property string _linkStyle: "<style>a:link { color: " + Theme.primaryColor + "; } h1, h2, h3, h4 { color: " + Theme.highlightColor + "; } img { margin: "+Theme.paddingLarge+" 0; width: 100\%}</style>"
textFormat: Text.RichText
text: _linkStyle + articleContent;
font.pixelSize: Theme.fontSizeSmall
color: Theme.secondaryColor
wrapMode: Text.WordWrap
anchors {
left: parent.left
right: parent.right
topMargin: image.visible ? Theme.paddingSmall : Theme.paddingLarge
leftMargin: Theme.paddingLarge
rightMargin: Theme.paddingLarge
bottomMargin: Theme.paddingLarge
}
}
Rectangle {
height: Theme.itemSizeExtraSmall/3
width: parent.width
opacity: 0
}
}
}
}

View file

@ -6,32 +6,37 @@ import "./components/"
Page {
id: conversationPage
property string type;
property string type
property alias title: header.title
property alias description: header.description
property alias avatar: header.image
property string suggestedUser: ""
property ListModel suggestedModel;
property ListModel suggestedModel
property string toot_id: ""
property int tootMaxChar: 500;
property ListModel mdl;
property ListModel mdl
allowedOrientations: Orientation.All
onSuggestedUserChanged: {
console.log(suggestedUser)
suggestedModel = Qt.createQmlObject('import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject');
predictionList.visible = false;
suggestedModel = Qt.createQmlObject(
'import QtQuick 2.0; ListModel { }',
Qt.application, 'InternalQmlObject'
)
predictionList.visible = false
if (suggestedUser.length > 0) {
var msg = {
'action' : 'accounts/search',
'method' : 'GET',
'model' : suggestedModel,
'mode' : "append",
'params' : [ {name: "q", data: suggestedUser} ],
'conf' : Logic.conf
};
worker.sendMessage(msg);
predictionList.visible = true;
"action": 'accounts/search',
"method": 'GET',
"model": suggestedModel,
"mode": "append",
"params": [{
"name": "q",
"data": suggestedUser
}],
"conf": Logic.conf
}
worker.sendMessage(msg)
predictionList.visible = true
}
}
@ -59,7 +64,7 @@ Page {
header: PageHeader {
title: qsTr("Conversation")
}
clip: true;
clip: true
anchors {
top: parent.top
bottom: panel.top
@ -74,21 +79,21 @@ Page {
text: Format.formatDate(section, Formatter.DateMedium)
}
}
delegate: VisualContainer {}
delegate: VisualContainer {
}
onCountChanged: {
if (mdl)
for (var i = 0; i < mdl.count; i++){
for (var i = 0; i < mdl.count; i++) {
if (mdl.get(i).status_id === toot_id) {
console.log(mdl.get(i).status_id)
positionViewAtIndex(i, ListView.Center )
positionViewAtIndex(i, ListView.Center)
}
}
}
}
Rectangle {
id: predictionList
visible: false;
visible: false
anchors.bottom: panel.top
anchors.left: parent.left
anchors.right: panel.right
@ -102,20 +107,24 @@ Page {
delegate: ItemUser {
onClicked: {
var start = toot.cursorPosition;
while(toot.text[start] !== "@" && start > 0){
start--;
var start = toot.cursorPosition
while (toot.text[start] !== "@" && start > 0) {
start--
}
textOperations.text = toot.text
textOperations.cursorPosition = toot.cursorPosition
textOperations.moveCursorSelection(start-1,TextInput.SelectWords)
toot.text = textOperations.text.substring(0, textOperations.selectionStart) + ' @'+model.account_acct + ' ' + textOperations.text.substring(textOperations.selectionEnd).trim()
textOperations.moveCursorSelection(start - 1, TextInput.SelectWords)
toot.text = textOperations.text.substring(0, textOperations.selectionStart)
+ ' @'
+ model.account_acct
+ ' '
+ textOperations.text.substring(textOperations.selectionEnd).trim()
toot.cursorPosition = toot.text.indexOf('@'+model.account_acct)
toot.cursorPosition = toot.text.indexOf('@' + model.account_acct)
}
}
onCountChanged: {
positionViewAtIndex(suggestedModel.count-1, ListView.End )
positionViewAtIndex(suggestedModel.count - 1, ListView.End)
}
}
}
@ -130,7 +139,9 @@ Page {
}
width: parent.width
height: progressBar.height + toot.height + (mediaModel.count ? uploadedImages.height : 0) + btnContentWarning.height + Theme.paddingMedium + (warningContent.visible ? warningContent.height : 0)
height: progressBar.height + toot.height + (mediaModel.count ? uploadedImages.height : 0)
+ btnContentWarning.height + Theme.paddingMedium
+ (warningContent.visible ? warningContent.height : 0)
dock: Dock.Bottom
Rectangle {
width: parent.width
@ -145,7 +156,7 @@ Page {
}
Rectangle {
id: progressBar
width: toot.text.length ? panel.width*(toot.text.length/tootMaxChar) : 0;
width: toot.text.length ? panel.width * (toot.text.length / tootMaxChar) : 0
height: Theme.itemSizeSmall * 0.05
color: Theme.highlightBackgroundColor
@ -159,7 +170,7 @@ Page {
TextField {
id: warningContent
visible: false
height: visible ? implicitHeight : 0;
height: visible ? implicitHeight : 0
anchors {
top: parent.top
topMargin: Theme.paddingMedium
@ -168,7 +179,9 @@ Page {
}
autoScrollEnabled: true
labelVisible: false
placeholderText: qsTr("Content warning!")
placeholderText: qsTr("Write your warning here")
placeholderColor: palette.highlightColor
color: palette.highlightColor
horizontalAlignment: Text.AlignLeft
EnterKey.onClicked: {
//tweet()
@ -191,9 +204,13 @@ Page {
autoScrollEnabled: true
labelVisible: false
//focus: true
text: description !== "" && (description.charAt(0) == '@' || description.charAt(0) == '#') ? description+' ' : ''
height: implicitHeight
text: description !== "" && (description.charAt(0) == '@'
|| description.charAt(
0) == '#') ? description + ' ' : ''
height: Math.max(270, Math.min(900, implicitHeight))
//height: implicitHeight
horizontalAlignment: Text.AlignLeft
placeholderText: qsTr("What's on your mind?")
EnterKey.onClicked: {
//tweet()
}
@ -201,12 +218,14 @@ Page {
textOperations.text = toot.text
textOperations.cursorPosition = toot.cursorPosition
textOperations.selectWord()
textOperations.select(textOperations.selectionStart ? textOperations.selectionStart-1 : 0, textOperations.selectionEnd)
textOperations.select(
textOperations.selectionStart ? textOperations.selectionStart - 1 : 0,
textOperations.selectionEnd)
//console.log(textOperations.text.substr(textOperations.selectionStart, textOperations.selectionEnd))
console.log(toot.text.length)
suggestedUser = ""
if (textOperations.selectedText.charAt(0) === "@") {
suggestedUser = textOperations.selectedText.trim().substring(1);
suggestedUser = textOperations.selectedText.trim().substring(1)
}
}
}
@ -218,18 +237,18 @@ Page {
}
anchors {
top: warningContent.bottom
bottom: bottom.top
right: parent.right
rightMargin: Theme.paddingSmall
}
icon.source: "image://theme/icon-s-mms?" + (pressed
? Theme.highlightColor
: (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
icon.source: "../../qml/images/emojiselect.svg" + (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
onClicked: pageStack.push(firstWizardPage)
}
SilicaGridView {
id: uploadedImages
width: parent.width
anchors.top: bottom.toot
anchors.bottom: parent.bottom
height: mediaModel.count ? Theme.itemSizeSmall : 0
model: mediaModel
@ -239,7 +258,9 @@ Page {
id: myDelegate
width: uploadedImages.cellWidth
height: uploadedImages.cellHeight
RemorseItem { id: remorse }
RemorseItem {
id: remorse
}
Image {
anchors.fill: parent
fillMode: Image.PreserveAspectCrop
@ -250,18 +271,34 @@ Page {
var idx = index
console.log(idx)
//mediaModel.remove(idx)
remorse.execute(myDelegate, qsTr("Delete"), function() { mediaModel.remove(idx) } )
remorse.execute(myDelegate, qsTr("Delete"), function () {
mediaModel.remove(idx)
})
}
}
add: Transition {
NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 800 }
NumberAnimation {
property: "opacity"
from: 0
to: 1.0
duration: 800
}
}
remove: Transition {
NumberAnimation { property: "opacity"; from: 1.0; to: 0; duration: 800 }
NumberAnimation {
property: "opacity"
from: 1.0
to: 0
duration: 800
}
}
displaced: Transition {
NumberAnimation { properties: "x,y"; duration: 800; easing.type: Easing.InOutBack }
NumberAnimation {
properties: "x,y"
duration: 800
easing.type: Easing.InOutBack
}
}
}
IconButton {
@ -272,9 +309,8 @@ Page {
left: parent.left
leftMargin: Theme.paddingMedium
}
icon.source: "image://theme/icon-s-high-importance?" + (pressed
? Theme.highlightColor
: (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
icon.source: "image://theme/icon-s-warning?"
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
onClicked: warningContent.visible = !warningContent.visible
}
IconButton {
@ -285,112 +321,114 @@ Page {
left: btnContentWarning.right
leftMargin: Theme.paddingSmall
}
icon.source: "image://theme/icon-s-attach?" + (pressed
? Theme.highlightColor
: (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
icon.source: "image://theme/icon-s-attach?"
+ (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor))
onClicked: {
btnAddImage.enabled = false;
var once = true;
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", { "allowedOrientations" : Orientation.All });
btnAddImage.enabled = false
var once = true
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", {"allowedOrientations": Orientation.All})
imagePicker.selectedContentChanged.connect(function () {
var imagePath = imagePicker.selectedContent;
var imagePath = imagePicker.selectedContent
console.log(imagePath)
imageUploader.setUploadUrl(Logic.conf.instance + "/api/v1/media")
imageUploader.setFile(imagePath);
imageUploader.setAuthorizationHeader(Logic.conf.api_user_token);
imageUploader.upload();
});
imageUploader.setFile(imagePath)
imageUploader.setAuthorizationHeader(Logic.conf.api_user_token)
imageUploader.upload()
})
}
}
ImageUploader {
id: imageUploader
onProgressChanged: {
console.log("progress "+progress)
uploadProgress.width = parent.width*progress
console.log("progress " + progress)
uploadProgress.width = parent.width * progress
}
onSuccess: {
uploadProgress.width =0
console.log(replyData);
uploadProgress.width = 0
console.log(replyData)
mediaModel.append(JSON.parse(replyData))
}
onFailure: {
uploadProgress.width =0
btnAddImage.enabled = true;
uploadProgress.width = 0
btnAddImage.enabled = true
console.log(status)
console.log(statusText)
}
}
ComboBox {
id: privacy
anchors {
top: toot.bottom
topMargin: -Theme.paddingSmall*2
topMargin: -Theme.paddingSmall * 2
left: btnAddImage.right
right: btnSend.left
}
menu: ContextMenu {
MenuItem { text: qsTr("public") }
MenuItem { text: qsTr("unlisted") }
MenuItem { text: qsTr("followers only") }
MenuItem { text: qsTr("direct") }
MenuItem {
text: qsTr("Public")
}
MenuItem {
text: qsTr("Unlisted")
}
MenuItem {
text: qsTr("Followers-only")
}
MenuItem {
text: qsTr("Direct")
}
}
}
IconButton {
id: btnSend
icon.source: "image://theme/icon-m-enter?" + (pressed
? Theme.highlightColor
: Theme.primaryColor)
icon.source: "image://theme/icon-m-send?"
+ (pressed ? Theme.highlightColor : Theme.primaryColor)
anchors {
top: toot.bottom
right: parent.right
rightMargin: Theme.paddingLarge
rightMargin: Theme.paddingSmall
}
enabled: toot.text !== "" && toot.text.length < tootMaxChar
enabled: toot.text !== "" && toot.text.length < tootMaxChar && uploadProgress.width == 0
onClicked: {
var visibility = [ "public", "unlisted", "private", "direct"];
var media_ids = [];
for(var k = 0; k < mediaModel.count; k++){
var visibility = ["public", "unlisted", "private", "direct"]
var media_ids = []
for (var k = 0; k < mediaModel.count; k++) {
console.log(mediaModel.get(k).id)
media_ids.push(mediaModel.get(k).id)
}
var msg = {
'action' : 'statuses',
'method' : 'POST',
'model' : mdl,
'mode' : "append",
'params' : {
"action": 'statuses',
"method": 'POST',
"model": mdl,
"mode": "append",
"params": {
"status": toot.text,
"visibility": visibility[privacy.currentIndex],
"media_ids": media_ids
},
'conf' : Logic.conf
};
"conf": Logic.conf
}
if (toot_id)
msg.params['in_reply_to_id'] = (toot_id)+""
msg.params['in_reply_to_id'] = (toot_id) + ""
if (warningContent.visible && warningContent.text.length > 0){
if (warningContent.visible && warningContent.text.length > 0) {
msg.params['sensitive'] = 1
msg.params['spoiler_text'] = warningContent.text
}
worker.sendMessage(msg);
worker.sendMessage(msg)
warningContent.text = ""
toot.text = ""
mediaModel.clear()
pageStack.pop()
}
}
Rectangle {
id: uploadProgress
color: Theme.highlightBackgroundColor
@ -402,45 +440,46 @@ Page {
Component.onCompleted: {
toot.cursorPosition = toot.text.length
if (mdl.count > 0) {
var setIndex = 0;
switch (mdl.get(0).status_visibility){
var setIndex = 0
switch (mdl.get(0).status_visibility) {
case "unlisted":
setIndex = 1;
break;
setIndex = 1
break
case "private":
setIndex = 2;
break;
setIndex = 2
break
case "direct":
privacy.enabled = false;
setIndex = 3;
break;
privacy.enabled = false
setIndex = 3
break
default:
privacy.enabled = true;
setIndex = 0;
privacy.enabled = true
setIndex = 0
}
privacy.currentIndex = setIndex;
privacy.currentIndex = setIndex
}
console.log(JSON.stringify())
worker.sendMessage({
'action' : 'statuses/'+mdl.get(0).status_id+'/context',
'method' : 'GET',
'model' : mdl,
'params' : { },
'conf' : Logic.conf
});
"action": 'statuses/' + mdl.get(0).status_id + '/context',
"method": 'GET',
"model": mdl,
"params": { },
"conf": Logic.conf
})
}
Component {
id: firstWizardPage
Dialog {
id: emoticonsDialog
canAccept: false; //selector.currentIndex >= 0
//acceptDestination: conversationPage
canAccept: false //selector.currentIndex >= 0
//acceptDestination: conversationPage
onAcceptPendingChanged: {
if (acceptPending) {
// Tell the destination page what the selected category is
// acceptDestinationInstance.category = selector.value
}
@ -515,7 +554,6 @@ Page {
ListElement { section: "smileys"; glyph: "🙎" }
ListElement { section: "smileys"; glyph: "🙏" }
ListElement { section: "Transport and map"; glyph: "🚀" }
ListElement { section: "Transport and map"; glyph: "🚃" }
ListElement { section: "Transport and map"; glyph: "🚀" }
@ -561,11 +599,6 @@ Page {
ListElement { section: "Horoscope Signs"; glyph: "♑" }
ListElement { section: "Horoscope Signs"; glyph: "♒" }
ListElement { section: "Horoscope Signs"; glyph: "♓" }
}
delegate: BackgroundItem {
width: gridView.cellWidth
@ -578,11 +611,12 @@ Page {
}
onClicked: {
var cursorPosition = toot.cursorPosition
toot.text = toot.text.substring(0, cursorPosition) + model.glyph + toot.text.substring(cursorPosition)
toot.cursorPosition = cursorPosition+model.glyph.length
emoticonsDialog.canAccept = true;
toot.text = toot.text.substring(
0, cursorPosition) + model.glyph + toot.text.substring(
cursorPosition)
toot.cursorPosition = cursorPosition + model.glyph.length
emoticonsDialog.canAccept = true
emoticonsDialog.accept()
}
}
}

View file

@ -69,10 +69,11 @@ Page {
onOpenDrawer: infoPanel.open = setDrawer
}
MyList{
id: tlPublic;
title: qsTr("Federated")
type: "timelines/public"
mdl: Logic.modelTLpublic
id: tlNotifications;
title: qsTr("Notifications")
type: "notifications"
notifier: true
mdl: Logic.modelTLnotifications
width: parent.itemWidth
height: parent.itemHeight
onOpenDrawer: infoPanel.open = setDrawer
@ -88,11 +89,10 @@ Page {
onOpenDrawer: infoPanel.open = setDrawer
}
MyList{
id: tlNotifications;
title: qsTr("Notifications")
type: "notifications"
notifier: true
mdl: Logic.modelTLnotifications
id: tlPublic;
title: qsTr("Federated")
type: "timelines/public"
mdl: Logic.modelTLpublic
width: parent.itemWidth
height: parent.itemHeight
onOpenDrawer: infoPanel.open = setDrawer
@ -185,7 +185,7 @@ Page {
delegate: ItemUser {
onClicked: {
pageStack.push(Qt.resolvedUrl("Profile.qml"), {
"displayname": model.account_username,
"display_name": model.account_display_name,
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar
@ -260,8 +260,13 @@ Page {
slideshow.positionViewAtIndex(4, ListView.SnapToItem)
navigation.navigateTo('search')
} else if (test.length === 4 && test[3][0] === "@" ) {
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
slideshow.positionViewAtIndex(4, ListView.SnapToItem)
navigation.navigateTo('search')
} else {
pageStack.push(Qt.resolvedUrl("Browser.qml"), {"href" : href})
Qt.openUrlExternally(href);
}
}
Component.onCompleted: {

View file

@ -6,7 +6,7 @@ import QtGraphicalEffects 1.0
Page {
property ListModel tweets;
property string displayname : "";
property string display_name : "";
property string username : "";
property string profileImage : "";
property int user_id;
@ -16,8 +16,9 @@ Page {
property int favourites_count;
property int reblogs_count;
property int count_moments;
property string profile_background : "";
property string profile_background: "";
property string note: "";
property string url: "";
property bool locked : false;
property date created_at;
@ -39,7 +40,7 @@ Page {
followers_count = messageObject.data.followers_count
following_count = messageObject.data.following_count
username = messageObject.data.acct
displayname = messageObject.data.display_name
display_name = messageObject.data.display_name
profileImage = messageObject.data.avatar_static
var msg = {
@ -68,9 +69,10 @@ Page {
following_count = messageObject.data
break;
case 'acct':
//username = messageObject.data
// line below was commented out, reason unknown
// username = messageObject.data
break;
case 'locked':
case 'locked':m
locked = messageObject.data
break;
case 'created_at':
@ -82,6 +84,9 @@ Page {
case 'note':
note = messageObject.data
break;
case 'url':
url = messageObject.data
break;
case 'following':
following = messageObject.data
followers_count = followers_count + (following ? 1 : - 1)
@ -135,7 +140,7 @@ Page {
id: list
header: ProfileHeader {
id: header
title: displayname
title: display_name
description: '@'+username
image: profileImage
}
@ -238,10 +243,65 @@ Page {
}
}
/*ExpandingSection {
title: "Tweets"
ExpandingSection {
title: qsTr("Bio")
content.sourceComponent: Column {
spacing: Theme.paddingMedium
anchors.bottomMargin: Theme.paddingLarge
Text {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
id: txtnote
text: note
font.pixelSize: Theme.fontSizeExtraSmall
color: Theme.secondaryColor
linkColor: Theme.secondaryHighlightColor
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
onLinkActivated: {
var test = link.split("/")
console.log(link)
console.log(JSON.stringify(test))
console.log(JSON.stringify(test.length))
}*/
if (test.length === 5 && (test[3] === "tags" || test[3] === "tag") ) {
pageStack.pop(pageStack.find(function(page) {
var check = page.isFirstPage === true;
if (check)
page.onLinkActivated(link)
return check;
}));
send(link)
} else if (test.length === 4 && test[3][0] === "@" ) {
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
slideshow.positionViewAtIndex(4, ListView.SnapToItem)
navigation.navigateTo('search')
} else {
Qt.openUrlExternally(link);
}
}
}
Column {
spacing: Theme.paddingMedium
anchors.horizontalCenter: parent.horizontalCenter
Button {
id: btnUrl
text: qsTr("Open Profile in Browser")
onClicked: {
Qt.openUrlExternally(url);
}
}
}
Label {
text: " "
}
}
}
}

View file

@ -102,32 +102,38 @@ Page {
}
ListElement {
name: "Miodrag Nikolić"
desc: "visual identity"
desc: qsTr("Visual identity")
mastodon: ""
mail: "micotakis@gmail.com"
}
ListElement {
name: "molan"
desc: qsTr("Development and maintenence")
mastodon: ""
mail: "mol_an@sunrise.ch"
}
ListElement {
name: "Quentin PAGÈS / Quenti ♏"
desc: "Occitan & French translation"
desc: qsTr("Occitan & French translation")
mastodon: "Quenti@framapiaf.org"
mail: ""
}
ListElement {
name: "André Koot"
desc: "Dutch translation"
desc: qsTr("Dutch translation")
mastodon: "meneer@mastodon.social"
mail: "https://twitter.com/meneer"
}
ListElement {
name: "Carlos Gonzalez / Caballlero"
desc: "Español translation"
name: "CarmenFdez"
desc: qsTr("Spanish translation")
mastodon: ""
mail: "carlosgonz@protonmail.com"
mail: ""
}
ListElement {
name: "Mohamed-Touhami MAHDI"
desc: "Added README file"
desc: qsTr("Added README file")
mastodon: "dragnucs@touha.me"
mail: "touhami@touha.me"
}

View file

@ -33,7 +33,7 @@ BackgroundItem {
MouseArea {
anchors.fill: parent
onClicked: pageStack.push(Qt.resolvedUrl("./../Profile.qml"), {
"displayname": model.account_username,
"display_name": model.account_display_name,
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar
@ -60,7 +60,7 @@ BackgroundItem {
}
}
onClicked: openUser({
"displayname": model.account_username,
"display_name": model.account_display_name,
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar

View file

@ -15,38 +15,33 @@ SilicaGridView {
id: listModel
ListElement {
icon: "image://theme/icon-m-home"
//icon: "../../images/home.svg"
slug: "home"
name: "Home"
active: true
unread: false
}
ListElement {
//icon: "image://theme/icon-m-region"
icon: "../../images/federated.svg"
slug: "federated"
name: "Federated"
icon: "image://theme/icon-m-alarm"
slug: "notifications"
name: "Notifications"
active: false
unread: false
}
ListElement {
//icon: "image://theme/icon-m-sailfish"
icon: "../../images/local.svg"
icon: "image://theme/icon-m-whereami"
slug: "local"
name: "Local"
active: false
unread: false
}
ListElement {
icon: "image://theme/icon-m-alarm"
//icon: "../../images/notification.svg"
slug: "notifications"
name: "Notifications"
icon: "image://theme/icon-m-website"
slug: "federated"
name: "Federated"
active: false
unread: false
}
ListElement {
icon: "image://theme/icon-m-search"
//icon: "../../images/search.svg"
slug: "search"
name: "Search"
active: false

View file

@ -19,7 +19,7 @@ Item {
}*/
Rectangle {
anchors.fill: parent
opacity: 0.1
opacity: 0.2
gradient: Gradient {
GradientStop { position: 0.0; color: Theme.highlightBackgroundColor }
GradientStop { position: 1.0; color: Theme.highlightBackgroundColor }
@ -51,7 +51,7 @@ Item {
id: ttl
text: title
height: contentHeight
color: Theme.highlightColor
color: Theme.primaryColor
font.pixelSize: Theme.fontSizeLarge
font.family: Theme.fontFamilyHeading
horizontalAlignment: Text.AlignRight
@ -61,7 +61,7 @@ Item {
Label {
height: description === "" ? 0 : contentHeight
text: description
color: Theme.secondaryHighlightColor
color: Theme.primaryColor
font.pixelSize: Theme.fontSizeSmall
font.family: Theme.fontFamilyHeading
horizontalAlignment: Text.AlignRight

View file

@ -63,7 +63,7 @@ BackgroundItem {
anchors.fill: parent
onClicked: {
pageStack.push(Qt.resolvedUrl("../Profile.qml"), {
"displayname": account_display_name,
"display_name": account_display_name,
"username": account_username,
"profileImage": account_avatar
})
@ -164,7 +164,7 @@ BackgroundItem {
send(link)
} else {
pageStack.push(Qt.resolvedUrl("../Browser.qml"), {"href" : link})
Qt.openUrlExternally(link);
}

View file

@ -55,7 +55,7 @@ BackgroundItem {
anchors.fill: parent
onClicked: {
pageStack.push(Qt.resolvedUrl("../Profile.qml"), {
"displayname": model.account_username,
"display_name": model.account_display_name,
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar
@ -134,13 +134,12 @@ BackgroundItem {
}));
send(link)
} else if (test.length === 4 && test[3][0] === "@" ) {
pageStack.push(Qt.resolvedUrl("../Profile.qml"), {
"name": "",
"username": test[3].substring(1)+"@"+test[2],
"profileImage": ""
})
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
slideshow.positionViewAtIndex(4, ListView.SnapToItem)
navigation.navigateTo('search')
} else {
pageStack.push(Qt.resolvedUrl("../Browser.qml"), {"href" : link})
Qt.openUrlExternally(link);
}
}
text: content.replace(new RegExp("<a ", 'g'), '<a style="text-decoration: none; color:'+(pressed ? Theme.secondaryColor : Theme.highlightColor)+'" ')

View file

@ -1,3 +1,40 @@
* Thu Apr 16 2020 Dusko Angirevic <dysko@me.com> 1.0.4-1
- Merge with molan code
* Tue Feb 04 2020 molan <mol_an@sunrise.ch> 1.0.3-8
- Fix for broken translations
- Updated Spanish translation
* Mon Feb 03 2020 molan <mol_an@sunrise.ch> 1.0.3-7
- Updated translations for new language strings
* Thu Jan 30 2020 molan <mol_an@sunrise.ch> 1.0.3-6
- Workaround for opening user profiles in toots
- Show profile descriptions (Bio) with option to open them in Browser
- Updated and improved UI for Conversation page
- Indication for sending toot (move back to previous page)
- New arrangement of main pages (like used in Mastodon websites and other apps)
- Small UI and text/label changes
* Thu Jan 16 2020 molan <mol_an@sunrise.ch> 1.0.3-5 [fork of Tooter 1.0.3]
- Fix for broken profile pages when clicking on usernames in toots
- Fixed navigation icons for inverted ambiences
- Updated Chinese translation (thanks to dashinfantry)
* Wed Jan 15 2020 molan <mol_an@sunrise.ch> 1.0.3-4 [fork of Tooter 1.0.3]
- Website links in toots now open directly in browser since the web scraper service which was used before is discontinued
- Profile page now shows full display name in title instead of user name
- Changed send, content warning and add emoji icon in Conversation page for clarification
- Small update to Chinese translation (thanks to dashinfantry)
- Completed German and French translations
* Mon Jan 06 2020 molan <mol_an@sunrise.ch> 1.0.3-3 [fork of Tooter 1.0.3]
- Update and rename harbour-tooter-zh.ts to harbour-tooter-zh_CN.ts (thanks to dashinfantry)
* Sat Dec 28 2019 molan <mol_an@sunrise.ch> 1.0.3-1 [fork of Tooter 1.0.3]
- Fixed broken Mastodon login (app built with Sailfish SDK 2.4)
- Fixed crash on certain notifications
* Sun Jan 27 2019 Dusko Angirevic <dysko@me.com> 1.0.3-0
- Remorse popup added for account removal
- Updated translations

View file

@ -13,8 +13,8 @@ Name: harbour-tooter
%{!?qtc_make:%define qtc_make make}
%{?qtc_builddir:%define _builddir %qtc_builddir}
Summary: Tooter
Version: 1.0.3
Release: 0
Version: 1.0.4
Release: 1
Group: Qt/Qt
License: LICENSE
URL: http://example.org/

View file

@ -1,7 +1,7 @@
Name: harbour-tooter
Summary: Tooter
Version: 1.0.3
Release: 0
Version: 1.0.4
Release: 1
# The contents of the Group field should be one of the groups listed here:
# https://github.com/mer-tools/spectacle/blob/master/data/GROUPS
Group: Qt/Qt

View file

@ -20,51 +20,12 @@
<translation>hat gesagt</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Öffne in Browser</translation>
</message>
<message>
<source>Web mode</source>
<translation>Web-Modus</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Lese-Modus</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Kopiere URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konversation</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Inhaltswarnung!</translation>
</message>
<message>
<source>public</source>
<translation>öffentlich</translation>
</message>
<message>
<source>unlisted</source>
<translation>nicht aufgeführt</translation>
</message>
<message>
<source>followers only</source>
<translation>nur Follower</translation>
</message>
<message>
<source>direct</source>
<translation>direkt</translation>
</message>
<message>
<source>Delete</source>
<translation>Löschen</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Tippen um einzufügen</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,7 +81,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Login</translation>
</message>
<message>
<source>Instance</source>
@ -104,11 +89,11 @@
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Gib eine Mastadon Instance URL ein</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon ist ein freies, auf OpenSource begründetes Soziales Netzwerk. Es bietet eine dezentralisierte Alternative zu den kommerziellen Plattformen, vermeidet aber das Risiko, dass ein einzelnes Unternehmen das Monopol auf deine gesamte Kommunikation erhält. Wähle selbst einen Server (Instanz) der du vertraust - egal welche du wählst, du kannst mit allen kommunizieren. Oder du betreibst deine eigene Mastodon Instanz und verbindest dich nahtlos mit dem Mastodon Netzwerk.</translation>
</message>
<message>
<source>Reload</source>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Anhänger</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Einstellungen</translation>
<translation>Einstellungen</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Account löschen</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Account hinzufügen</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Der App Autorisierung entziehen und Account entfernen</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Autorisiere diese App deinen Mastodon Account in deinem Namen zu nutzen</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Lade Bilder in den Toots</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Deaktiviere diese Option um deinen Datenverbindung zu schonen</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Übersetzen</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Nutze Transifex um bei der Übersetzung in deine Sprache zu helfen</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Credits</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>UI/UX Design und Implementierung</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>είπε</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Άνοιγμα στον φυλλομετρητή</translation>
</message>
<message>
<source>Web mode</source>
<translation>Λειτουργία ιστού</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Λειτουργία ανάγνωσης</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Αντιγραφή διεύθυνσης URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Συνομιλία</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Προειδοποίηση περιεχομένου!</translation>
</message>
<message>
<source>public</source>
<translation>δημόσιο</translation>
</message>
<message>
<source>unlisted</source>
<translation>μη καταχωρημένο</translation>
</message>
<message>
<source>followers only</source>
<translation>μόνο αυτοί που σας ακολουθούν</translation>
</message>
<message>
<source>direct</source>
<translation>απευθείας</translation>
</message>
<message>
<source>Delete</source>
<translation>Διαγραφή</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Κτυπήστε για εισαγωγή</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,7 +81,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Σύνδεση</translation>
</message>
<message>
<source>Instance</source>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Σας ακολουθούν</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Ρυθμίσεις</translation>
<translation>Ρυθμίσεις</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Αφαίρεση λογαριασμού</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Προσθήκη λογαριασμού</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Άρση της αδειοδότησης της εφαρμογής και αφαίρεση του λογαριασμού σας</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Να επιτρέπεται στην εφαρμογή να χρησιμοποιεί τον λογαριασμό σας στο Mastodon εκ μέρους σας</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Φόρτωση των εικόνων στα toot</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Απενεργοποιήστε αυτήν την επιλογή αν θέλετε να διατηρήσετε την σύνδεση των δεδομένων σας</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Μετάφραση</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Χρησιμοποιήστε το Transifex για να βοηθήσετε την μετάφραση της εφαρμογής στην γλώσσα σας</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Ευχαριστίες</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>UI/UX σχεδιασμός και ανάπτυξη</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>dijo</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Abrir en navegador</translation>
</message>
<message>
<source>Web mode</source>
<translation>Modo Web</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Modo lectura</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Copiar URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversación</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Advertencia de contenido</translation>
</message>
<message>
<source>public</source>
<translation>público</translation>
</message>
<message>
<source>unlisted</source>
<translation>sin federar</translation>
</message>
<message>
<source>followers only</source>
<translation>sólo seguidores</translation>
</message>
<message>
<source>direct</source>
<translation>directo</translation>
</message>
<message>
<source>Delete</source>
<translation>Borrar</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Toca para insertar</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,23 +81,23 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Acceso</translation>
</message>
<message>
<source>Instance</source>
<translation type="unfinished"></translation>
<translation>Instancia</translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Introduce URL de una instancia de Mastodon</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon es una red social gratuita y de código abierto. Una alternativa descentralizada a las plataformas comerciales, evita los riesgos de una única compañía que monopolice tu comunicación. Elije un servidor en el que confíes cualquiera que elijas, puede interactuar con todos los demás. Cualquiera puede ejecutar su propia instancia de Mastodon y participar en la red social sin problemas.</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation>Volver a cargar</translation>
</message>
</context>
<context>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Seguidores</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Ajustes</translation>
<translation>Ajustes</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Eliminar cuenta</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Añadir cuenta</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Retira la autorización a esta aplicación y elimina tu cuenta</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Autoriza a esta aplicación a usar tu cuenta de Mastodon en tu nombre</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Cargar imágenes en toots</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Deshabilita esta opción si quieres ahorrar en tu conexión de datos</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Traducir</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Usa Transifex para ayudar en la traducción a tu idioma de esta aplicación</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Créditos</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>Diseño UI/UX y desarrollo</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Web mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reading mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Content warning!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>followers only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>direct</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -230,6 +215,14 @@
<source>Followers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
@ -277,6 +270,30 @@
<source>UI/UX design and development</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Toot</name>

View file

@ -20,51 +20,12 @@
<translation>a dit</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Ouvrir dans le navigateur</translation>
</message>
<message>
<source>Web mode</source>
<translation>Vue internet</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Mode lecture</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Copier l&apos;URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversation</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Contenu sensible !</translation>
</message>
<message>
<source>public</source>
<translation>public</translation>
</message>
<message>
<source>unlisted</source>
<translation>non listé</translation>
</message>
<message>
<source>followers only</source>
<translation>abonnés seulement</translation>
</message>
<message>
<source>direct</source>
<translation>direct</translation>
</message>
<message>
<source>Delete</source>
<translation>Supprimer</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Appuyez pour insérer</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,23 +81,23 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Login</translation>
</message>
<message>
<source>Instance</source>
<translation type="unfinished"></translation>
<translation>Instance</translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Saisissez lURL dune instance Mastodon</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon est un réseau libre et open source. Il sagit d&apos;une alternative aux plateformes commerciales, pour éviter qu&apos;une seule entreprise monopolise vos communications. Choisissez un serveur dans lequel vous avez confiance - quelque que soit votre choix vous pourrez interagir avec dautres personnes. Tout le monde peut monter sa propre instance Mastodon et participer rendre le réseau plus robuste.</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation>Recharger</translation>
</message>
</context>
<context>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Abonnés</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Paramètres</translation>
<translation>Préférences</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Supprimer le compte</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Ajouter un compte</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Supprimer votre compte de l&apos;application</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Autoriser cette application à utiliser votre compte Mastodon en votre nom</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Charger les images des pouets</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Désactivez cette option si vous souhaitez économiser votre consommation de données</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Traduire</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Utilisez Transifex pour aider à la traduction de l&apos;application dans votre langue</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Crédits</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>design et développement de l&apos;interface</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>zei</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Openen in browser</translation>
</message>
<message>
<source>Web mode</source>
<translation>Webmodus</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Leesmodus</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Kopieer URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Gesprek</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Gevoelige inhoud!</translation>
</message>
<message>
<source>public</source>
<translation>openbaar</translation>
</message>
<message>
<source>unlisted</source>
<translation>niet op lijst</translation>
</message>
<message>
<source>followers only</source>
<translation>alleen volgers</translation>
</message>
<message>
<source>direct</source>
<translation>direct</translation>
</message>
<message>
<source>Delete</source>
<translation>Verwijderen</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Tikken om in te voegen</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,23 +81,23 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Inloggen</translation>
</message>
<message>
<source>Instance</source>
<translation type="unfinished"></translation>
<translation>Instantie</translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Voer de URL van een Mastodon-instantie in</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon is een vrij sociaal netwerk. Als gedecentraliseerd alternatief voor commerciële platformen, vermijdt het de risicos van een enkel bedrijf dat je communicatie monopoliseert. Kies een server die je vertrouwt welke je ook kiest, je kunt met iedereen communiceren. Iedereen kan zelf een Mastodon-instantie hebben en naadloos deelnemen aan het sociale netwerk.</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation>Herladen</translation>
</message>
</context>
<context>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Volgers</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Instellingen</translation>
<translation>Instellingen</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Verwijderen account</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Toevoegen account</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Trek autorisaties van deze app in en verwijder je account</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Autoriseer deze app om je Mastodon namens jou te gebruiken</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Laden afbeeldingen in toots</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Schakel deze optie uit als je je dataverbinding wilt behouden</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Vertalen</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Gebruik Transifex om deze app te helpen vertalen in jouw taal</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Credits</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>UI/UX ontwerp en ontwikkeling</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>zei</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Openen in browser</translation>
</message>
<message>
<source>Web mode</source>
<translation>Webmodus</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Leesmodus</translation>
</message>
<message>
<source>Copy URL</source>
<translation>URL kopiëren</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Gesprek</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Gevoeligen inhoud!</translation>
</message>
<message>
<source>public</source>
<translation>openbaar</translation>
</message>
<message>
<source>unlisted</source>
<translation>niet op lijst</translation>
</message>
<message>
<source>followers only</source>
<translation>alleen volgers</translation>
</message>
<message>
<source>direct</source>
<translation>direct</translation>
</message>
<message>
<source>Delete</source>
<translation>Verwijderen</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Tikt voor in te voegen</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,23 +81,23 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Inloggen</translation>
</message>
<message>
<source>Instance</source>
<translation type="unfinished"></translation>
<translation>Instantie</translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Voert den URL van een Mastodon-instantie in</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon is e vrij sociaal netwerk. Als gedecentraliseerd alternatief voor commerciële platformen, vermijdt het de risicos van één enkel bedrijf dat uw communicatie monopoliseert. Kiest ne server die ge vertrouwt dewelken dat ge ook kiest, ge kunt met iedereen communiceren. Iedereen kan zelf een Mastodon-instantie hebben en naadloos deelnemen aan het sociaal netwerk.</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation>Herladen</translation>
</message>
</context>
<context>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Volgers</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Instellingen</translation>
<translation>Instellingen</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Account verwijderen</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Account toevoegen</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Trekt autorisaties van dezen app in en verwijdert uwen account</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Autoriseert dezen app voor uwe Mastodon-account namens u te gebruiken</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Afbeeldingen in toots laden</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Schakelt dees optie uit als ge uw verbinding wilt behouden</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Vertalen</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Gebruikt Transifex voor te helpen met dezen app in uw taal te vertalen</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Credits</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>UI/UX-ontwerp en -ontwikkeling</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>a dich</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Dobrir dins lo navigator</translation>
</message>
<message>
<source>Web mode</source>
<translation>Mòde Web</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Mòde lectura</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Copiar l&apos;URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Discutida</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Contengut sensible !</translation>
</message>
<message>
<source>public</source>
<translation>public</translation>
</message>
<message>
<source>unlisted</source>
<translation>pas listat</translation>
</message>
<message>
<source>followers only</source>
<translation>seguidors solament</translation>
</message>
<message>
<source>direct</source>
<translation>dirècte</translation>
</message>
<message>
<source>Delete</source>
<translation>Escafar</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Tustejar per inserir</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,7 +81,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Connexion</translation>
</message>
<message>
<source>Instance</source>
@ -104,11 +89,11 @@
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Picatz lURL duna instància Mastodon</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon es un malhum liure e open source. Es una alternativa descentralizada a las plataformas comercialas, per empachar qu&apos;una sola entrepresa monopolize vòstras comunicacions. Causissètz un servidor que vos fisatz - qualque siá vòstre causida poiretz interagir amb los autres. Tot lo monde pòt montar sa pròpria instància Mastodon e atal participar a construire un malhum mai solid.</translation>
</message>
<message>
<source>Reload</source>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Seguidors</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Parmètres</translation>
<translation>Paramètres</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Levar un compte</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Ajustar un compte</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Revocar laplicacion e levar vòstre compte</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Autorizar aquesta aplicacion a utilizar vòstre compte Mastodon per vos</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Cargar los imatges dels tuts</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Desactivar aquesta opcion per estalviar vòstra connexion de donadas</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Traduire</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Utilizar Transifex per ajudar a traduire laplicacion dins vòstra lenga</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Crèdits</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>UI/UX design e desvlopament</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -1,95 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<TS version="2.1" language="pl_PL">
<context>
<name>API</name>
<message>
<source>favourited</source>
<translation type="unfinished">dodał(a) do ulubionych</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>followed you</source>
<translation>zaczął(-ęła) Cię śledzić</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>boosted</source>
<translation>podbił(a)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>said</source>
<translation>napisał(a)</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Otwórz w przeglądarce</translation>
</message>
<message>
<source>Web mode</source>
<translation>Tryb sieci</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Tryb czytania</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Kopiuj URL</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konwersacja</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Ostrzeżenie o zawartości!</translation>
</message>
<message>
<source>public</source>
<translation>publiczny</translation>
</message>
<message>
<source>unlisted</source>
<translation>niewidoczny</translation>
</message>
<message>
<source>followers only</source>
<translation>tylko dla śledzących</translation>
</message>
<message>
<source>direct</source>
<translation>bezpośredni</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Usuń</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Emojis</source>
<translation>Emoji</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tap to insert</source>
<translation>Dotknij aby wstawić</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
<message>
<source>Error loading</source>
<translation>Błąd ładowania</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageUploader</name>
<message>
<source>The file %1 does not exists</source>
<translation>Plik %1 nie istnieje</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -119,123 +104,131 @@
<name>MainPage</name>
<message>
<source>Home</source>
<translation>Strona główna</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Notifications</source>
<translation>Powiadomienia</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Toot</source>
<translation>Nowy wpis</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search</source>
<translation>Szukaj</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>@user or #term</source>
<translation>@użytkownik lub #tag</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Local</source>
<translation>Lokalne</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Federated</source>
<translation>Globalne</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MiniStatus</name>
<message>
<source>boosted</source>
<translation>podbił(a)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>favourited</source>
<translation>dodał(a) do ulubionych</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>followed you</source>
<translation>zaczął(-ęła) Cię śledzić</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MyList</name>
<message>
<source>Load more</source>
<translation>Załaduj więcej</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Settings</source>
<translation>Ustawienia</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading</source>
<translation>Ładowanie</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>please wait...</source>
<translation>proszę czekać</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Profile</name>
<message>
<source>Unfollow</source>
<translation>Przestań śledzić</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Follow request sent!</source>
<translation>Wysłano prośbę o możliwość śledzenia!</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Following</source>
<translation>Śledzisz</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mute</source>
<translation>Wycisz</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unmute</source>
<translation>Unmute</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unblock</source>
<translation>Unblock</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Block</source>
<translation>Block</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Statuses</source>
<translation>Statuses</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favourites</source>
<translation>Favourites</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Follow</source>
<translation>Follow</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Summary</source>
<translation>Summary</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers</source>
<translation>Followers</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Ustawienia</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove Account</source>
@ -277,39 +270,63 @@
<source>UI/UX design and development</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Toot</name>
<message>
<source>boosted</source>
<translation>podbił(a)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>favourited</source>
<translation>dodał(a) do ulubionych</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>followed you</source>
<translation>zaczął(-ęła Cię śledzić)</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualContainer</name>
<message>
<source>Unboost</source>
<translation>Cofnij podbicie</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Boost</source>
<translation>Podbij</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unfavorite</source>
<translation>Usuń z ulubionych</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favorite</source>
<translation>Dodaj do ulubionych</translation>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -20,51 +20,12 @@
<translation>сказал</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Открыть в браузере</translation>
</message>
<message>
<source>Web mode</source>
<translation>Веб-режим</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Режим чтения</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Копировать URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Беседа</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Предупреждение о содержании!</translation>
</message>
<message>
<source>public</source>
<translation>публика</translation>
</message>
<message>
<source>unlisted</source>
<translation>не указан</translation>
</message>
<message>
<source>followers only</source>
<translation>только последователи</translation>
</message>
<message>
<source>direct</source>
<translation>непосредственный</translation>
</message>
<message>
<source>Delete</source>
<translation>Удалить</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Нажмите, чтобы вставить</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,7 +81,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Авторизоваться</translation>
</message>
<message>
<source>Instance</source>
@ -104,11 +89,11 @@
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Введите URL-адрес экземпляра Mastodon</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon - бесплатная социальная сеть с открытым исходным кодом. Децентрализованная альтернатива коммерческим платформам позволяет избежать рисков, связанных с тем, что одна компания монополизирует ваше общение. Выберите сервер, которому вы доверяете - в зависимости от того, что вы выберете, вы можете взаимодействовать со всеми остальными. Любой может запустить свой собственный экземпляр Mastodon и беспрепятственно участвовать в социальной сети.</translation>
</message>
<message>
<source>Reload</source>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Читают</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Настройки</translation>
<translation>Настройки</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Удалить учетную запись</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Добавить аккаунт</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>удалить учетную запись с устройства</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Уполномочить это приложение использовать свою учетную запись Mastodon от вашего имени</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Загружать изображения</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Отключите эту опцию, если вы хотите сохранить подключение к данным</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Переведите</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Используйте Transifex, чтобы помочь с переводом приложения на ваш язык</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Зачет</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>Дизайн и разработка UI / UX</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>каже</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Отвори у прегледнику веба</translation>
</message>
<message>
<source>Web mode</source>
<translation>Прегледник веба</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Мод за читање</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Kopiraj link</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Разговор</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Упозорење на садржај</translation>
</message>
<message>
<source>public</source>
<translation>јавно</translation>
</message>
<message>
<source>unlisted</source>
<translation>не приказано</translation>
</message>
<message>
<source>followers only</source>
<translation>само за пратиоце</translation>
</message>
<message>
<source>direct</source>
<translation>директна порука</translation>
</message>
<message>
<source>Delete</source>
<translation>Обриши</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Тапни за убацивање</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,23 +81,23 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Пријава</translation>
</message>
<message>
<source>Instance</source>
<translation type="unfinished"></translation>
<translation>Инстанца</translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Унесите URL ваше Мастодон инстанце</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon је бесплатна, open-source друштвена мрежа. Децентрализована алтернатива комерцијалним платформама која избегава ризике једне компаније која монополизује вашу комуникацију. Одаберите сервер у који имате поверења и без обзира на ваш избор - комуницирајте с осталим корисницима других мрежа. Свако може водити сопствену инстанцу Mastodon мреже и учестовати у комуникацији с другим инстанцама.</translation>
</message>
<message>
<source>Reload</source>
<translation type="unfinished"></translation>
<translation>освежи</translation>
</message>
</context>
<context>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Пратиоци</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Подешавања</translation>
<translation>Подешавања</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Уклони налог</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Додај налог</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Укините дозволе за кориштење и уклоните налог с телефона</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Дозволите овој апликацији да користи ваш Mastodon налог</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Прикажи слике у објавама</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Искључите ову опцију уколико желите да уштедите на преносу података</translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Преведи</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Користите Transifex и помозите у преводу апликације на други језик</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Спомен плоча</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>интерфејс дизајн и развој</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -20,51 +20,12 @@
<translation>sade</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Öppna i webbläsare</translation>
</message>
<message>
<source>Web mode</source>
<translation>Webbläge</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Läsläge</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Kopiera URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Konversation</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Innehållsvarning!</translation>
</message>
<message>
<source>public</source>
<translation>publik</translation>
</message>
<message>
<source>unlisted</source>
<translation>olistad</translation>
</message>
<message>
<source>followers only</source>
<translation>endast följare</translation>
</message>
<message>
<source>direct</source>
<translation>direkt</translation>
</message>
<message>
<source>Delete</source>
<translation>Radera</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Tryck för att infoga</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -96,7 +81,7 @@
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation>Logga in</translation>
</message>
<message>
<source>Instance</source>
@ -104,11 +89,11 @@
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation>Fyll i URL till Mastodoninstans</translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon är ett fritt och öppet socialt nätverk byggt öppen källkod. Ett decentraliserat alternativ till kommersiella plattformar, vilket undviker att ett ensamt företag monopoliserar din kommunikation. Välj en server du litar --- beroende vilken du väljer, kan du interagera med alla andra. Vem som helst kan köra deras egen Mastodoninstans och delta i nätverket. Även du!</translation>
</message>
<message>
<source>Reload</source>
@ -230,51 +215,83 @@
<source>Followers</source>
<translation>Följare</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished">Inställningar</translation>
<translation>Inställningar</translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation>Radera konto</translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation>Lägg till konto</translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation>Avauktorisera denna app och radera ditt konto</translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>Godkänn denna app att använda ditt Mastodon-konto dina vägnar</translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation>Ladda bilder i toots</translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation>Inaktivera det här alternativet om du vill behålla din dataanslutning </translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation>Översätt</translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>Använd Transifex för att hjälpa med app-översättningar till ditt språk</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation>Erkännanden</translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation>UI/UX design och utveckling</translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh">
<TS version="2.1" language="zh_CN">
<context>
<name>API</name>
<message>
@ -13,7 +13,7 @@
</message>
<message>
<source>boosted</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>said</source>
@ -47,7 +47,7 @@
</message>
<message>
<source>Content warning!</source>
<translation></translation>
<translation>!</translation>
</message>
<message>
<source>public</source>
@ -89,29 +89,34 @@
<name>ImageUploader</name>
<message>
<source>The file %1 does not exists</source>
<translation>%1 </translation>
<translation> %1 </translation>
</message>
</context>
<context>
<name>LoginPage</name>
<message>
<source>Login</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Instance</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
<translation> Mastodon </translation>
</message>
<message>
<source>Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly.</source>
<translation type="unfinished"></translation>
<translation>Mastodon Mastodon </translation>
</message>
<message>
<source>Reload</source>
<translation></translation>
</message>
<message>
<source>Enter an Mastodon instance URL</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -150,7 +155,7 @@
<name>MiniStatus</name>
<message>
<source>boosted</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>favourited</source>
@ -184,11 +189,12 @@
<name>Profile</name>
<message>
<source>Unfollow</source>
<translation></translation>
</message>
<message>
<source>Follow request sent!</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Following</source>
@ -230,59 +236,67 @@
<source>Followers</source>
<translation></translation>
</message>
<message>
<source>Bio</source>
<translation></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<source>Settings</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Remove Account</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Add Account</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Deauthorize this app and remove your account</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Authorize this app to use your Mastodon account in your behalf</source>
<translation type="unfinished"></translation>
<translation>使 Mastodon </translation>
</message>
<message>
<source>Load images in toots</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Disable this option if you want to preserve your data connection</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Translate</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Use Transifex to help with app translation to your language</source>
<translation type="unfinished"></translation>
<translation>使 Transifex 使</translation>
</message>
<message>
<source>Credits</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>UI/UX design and development</source>
<translation type="unfinished"></translation>
<translation>UI/UX </translation>
</message>
</context>
<context>
<name>Toot</name>
<message>
<source>boosted</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>favourited</source>
@ -297,14 +311,15 @@
<name>VisualContainer</name>
<message>
<source>Unboost</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Boost</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Unfavorite</source>
<translation></translation>
</message>
<message>

View file

@ -20,51 +20,12 @@
<translation>said</translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
<source>Open in Browser</source>
<translation>Open in Browser</translation>
</message>
<message>
<source>Web mode</source>
<translation>Web mode</translation>
</message>
<message>
<source>Reading mode</source>
<translation>Reading mode</translation>
</message>
<message>
<source>Copy URL</source>
<translation>Copy URL</translation>
</message>
</context>
<context>
<name>Conversation</name>
<message>
<source>Conversation</source>
<translation>Conversation</translation>
</message>
<message>
<source>Content warning!</source>
<translation>Content warning!</translation>
</message>
<message>
<source>public</source>
<translation>public</translation>
</message>
<message>
<source>unlisted</source>
<translation>unlisted</translation>
</message>
<message>
<source>followers only</source>
<translation>followers only</translation>
</message>
<message>
<source>direct</source>
<translation>direct</translation>
</message>
<message>
<source>Delete</source>
<translation>Delete</translation>
@ -77,6 +38,30 @@
<source>Tap to insert</source>
<translation>Tap to insert</translation>
</message>
<message>
<source>Write your warning here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>What&apos;s on your mind?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Public</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unlisted</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Followers-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Direct</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageFullScreen</name>
@ -230,6 +215,14 @@
<source>Followers</source>
<translation>Followers</translation>
</message>
<message>
<source>Bio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open Profile in Browser</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
@ -277,6 +270,30 @@
<source>UI/UX design and development</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visual identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Occitan &amp; French translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Dutch translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Spanish translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added README file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Development and maintenence</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Toot</name>