diff --git a/harbour-tooter.pro b/harbour-tooter.pro index 8b1cb5f..6a1b13c 100644 --- a/harbour-tooter.pro +++ b/harbour-tooter.pro @@ -73,16 +73,14 @@ DISTFILES += qml/harbour-tooter.qml \ qml/pages/Settings.qml \ qml/lib/API.js \ qml/images/notification.svg \ - qml/images/home.svg \ - qml/images/mesagess.svg \ - qml/images/search.svg \ qml/images/verified.svg \ - qml/images/local.svg \ - qml/images/federated.svg \ + qml/images/boosted.svg \ qml/images/tooter.svg \ + qml/images/emojiselect.svg \ + qml/images/icon-m-profile.svg \ + qml/images/icon-l-profile.svg \ qml/lib/Mastodon.js \ qml/lib/Worker.js \ - qml/images/boosted.svg \ config/icon-lock-harbour-tooter.png \ config/x-harbour.tooter.activity.conf \ rpm/harbour-tooter.changes \ @@ -115,3 +113,4 @@ TRANSLATIONS += translations/harbour-tooter-ru.ts TRANSLATIONS += translations/harbour-tooter-sr.ts TRANSLATIONS += translations/harbour-tooter-sv.ts TRANSLATIONS += translations/harbour-tooter-zh_CN.ts +TRANSLATIONS += translations/harbour-tooter-it.ts diff --git a/qml/images/icon-l-profile.svg b/qml/images/icon-l-profile.svg new file mode 100644 index 0000000..f4445c4 --- /dev/null +++ b/qml/images/icon-l-profile.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/qml/images/icon-m-profile.svg b/qml/images/icon-m-profile.svg new file mode 100644 index 0000000..896129e --- /dev/null +++ b/qml/images/icon-m-profile.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/qml/pages/Conversation.qml b/qml/pages/Conversation.qml index fce4817..3fed799 100644 --- a/qml/pages/Conversation.qml +++ b/qml/pages/Conversation.qml @@ -157,7 +157,6 @@ Page { Rectangle { id: progressBar width: toot.text.length ? panel.width * (toot.text.length / tootMaxChar) : 0 - height: Theme.itemSizeSmall * 0.05 color: Theme.highlightBackgroundColor opacity: 0.7 @@ -179,6 +178,7 @@ Page { } autoScrollEnabled: true labelVisible: false + font.pixelSize: Theme.fontSizeSmall placeholderText: qsTr("Write your warning here") placeholderColor: palette.highlightColor color: palette.highlightColor @@ -198,8 +198,8 @@ Page { top: warningContent.bottom topMargin: Theme.paddingMedium left: parent.left - right: parent.right - rightMargin: Theme.paddingMedium + right: parent.right + rightMargin: Theme.paddingLarge * 2 } autoScrollEnabled: true labelVisible: false @@ -209,8 +209,9 @@ Page { 0) == '#') ? description + ' ' : '' height: Math.max(270, Math.min(900, implicitHeight)) //height: implicitHeight - horizontalAlignment: Text.AlignLeft + horizontalAlignment: Text.AlignLeft placeholderText: qsTr("What's on your mind?") + font.pixelSize: Theme.fontSizeSmall EnterKey.onClicked: { //tweet() } @@ -242,6 +243,7 @@ Page { right: parent.right rightMargin: Theme.paddingSmall } + opacity: 0.8 icon.source: "../../qml/images/emojiselect.svg" + (pressed ? Theme.highlightColor : (warningContent.visible ? Theme.secondaryHighlightColor : Theme.primaryColor)) onClicked: pageStack.push(firstWizardPage) } @@ -305,7 +307,8 @@ Page { id: btnContentWarning anchors { - verticalCenter: privacy.verticalCenter + top: toot.bottom + topMargin: -Theme.paddingSmall * 1.5 left: parent.left leftMargin: Theme.paddingMedium } @@ -317,7 +320,8 @@ Page { id: btnAddImage enabled: mediaModel.count < 4 anchors { - verticalCenter: privacy.verticalCenter + top: toot.bottom + topMargin: -Theme.paddingSmall * 1.5 left: btnContentWarning.right leftMargin: Theme.paddingSmall } @@ -363,7 +367,7 @@ Page { id: privacy anchors { top: toot.bottom - topMargin: -Theme.paddingSmall * 2 + topMargin: -Theme.paddingSmall * 1.5 left: btnAddImage.right right: btnSend.left } @@ -389,6 +393,7 @@ Page { + (pressed ? Theme.highlightColor : Theme.primaryColor) anchors { top: toot.bottom + topMargin: -Theme.paddingSmall * 1.5 right: parent.right rightMargin: Theme.paddingSmall } diff --git a/qml/pages/LoginPage.qml b/qml/pages/LoginPage.qml index 19f0948..c3874fb 100644 --- a/qml/pages/LoginPage.qml +++ b/qml/pages/LoginPage.qml @@ -62,13 +62,14 @@ Page { TextField { id: instance focus: true - label: qsTr("Enter an Mastodon instance URL") + label: qsTr("Enter a valid Mastodon instance URL") text: "https://" placeholderText: "https://mastodon.social" width: parent.width validator: RegExpValidator { regExp: /^(ftp|http|https):\/\/[^ "]+$/ } EnterKey.enabled: instance.acceptableInput; - EnterKey.iconSource: "image://theme/icon-m-enter-next" + EnterKey.highlighted: instance.acceptableInput; + EnterKey.iconSource: "image://theme/icon-m-accept" EnterKey.onClicked: { Logic.api = new Logic.MastodonAPI({ instance: instance.text, api_user_token: "" }); Logic.api.registerApplication("Tooter", @@ -110,13 +111,14 @@ Page { anchors { left: parent.left right: parent.right - leftMargin: Theme.paddingLarge - rightMargin: Theme.paddingLarge + topMargin: Theme.paddingMedium + leftMargin: Theme.horizontalPageMargin + rightMargin: Theme.horizontalPageMargin } width: parent.width wrapMode: Text.WordWrap - color: Theme.secondaryHighlightColor + color: Theme.highlightColor font.pixelSize: Theme.fontSizeExtraSmall text: qsTr("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.") } diff --git a/qml/pages/Profile.qml b/qml/pages/Profile.qml index c26c7ed..6d56f44 100644 --- a/qml/pages/Profile.qml +++ b/qml/pages/Profile.qml @@ -72,7 +72,7 @@ Page { // line below was commented out, reason unknown // username = messageObject.data break; - case 'locked':m + case 'locked': locked = messageObject.data break; case 'created_at': @@ -141,7 +141,7 @@ Page { header: ProfileHeader { id: header title: display_name - description: '@'+username + description: username image: profileImage } diff --git a/qml/pages/Settings.qml b/qml/pages/Settings.qml index 637cf94..00d6874 100644 --- a/qml/pages/Settings.qml +++ b/qml/pages/Settings.qml @@ -25,8 +25,8 @@ Page { IconTextSwitch { id: removeAccount text: Logic.conf['login'] ? qsTr("Remove Account") : qsTr("Add Account") - description: Logic.conf['login'] ? qsTr("Deauthorize this app and remove your account") : qsTr("Authorize this app to use your Mastodon account in your behalf") - icon.source: Logic.conf['login'] ? "image://theme/icon-m-people" : "image://theme/icon-m-add" + description: Logic.conf['login'] ? qsTr("Deauthorize this app and remove your account") : qsTr("Authorize this app to access your Mastodon account") + icon.source: Logic.conf['login'] ? "image://theme/icon-m-contact" : "image://theme/icon-m-add" onCheckedChanged: { @@ -59,7 +59,7 @@ Page { checked: typeof Logic.conf['loadImages'] !== "undefined" && Logic.conf['loadImages'] text: qsTr("Load images in toots") description: qsTr("Disable this option if you want to preserve your data connection") - icon.source: "image://theme/icon-m-mobile-network" + icon.source: "image://theme/icon-m-image" onClicked: { Logic.conf['loadImages'] = checked } @@ -67,7 +67,7 @@ Page { IconTextSwitch { text: qsTr("Translate") description: qsTr("Use Transifex to help with app translation to your language") - icon.source: "image://theme/icon-m-presence" + icon.source: "image://theme/icon-m-font-size" onCheckedChanged: { busy = true; checked = false; @@ -107,8 +107,8 @@ Page { mail: "micotakis@gmail.com" } ListElement { - name: "molan" - desc: qsTr("Development and maintenence") + name: "Molan" + desc: qsTr("Development and translations") mastodon: "" mail: "mol_an@sunrise.ch" } @@ -118,6 +118,12 @@ Page { mastodon: "Quenti@framapiaf.org" mail: "" } + ListElement { + name: "Luchy Kon / dashinfantry" + desc: qsTr("Chinese translation") + mastodon: "" + mail: "dashinfantry@gmail.com" + } ListElement { name: "André Koot" desc: qsTr("Dutch translation") @@ -130,7 +136,6 @@ Page { mastodon: "" mail: "" } - ListElement { name: "Mohamed-Touhami MAHDI" desc: qsTr("Added README file") @@ -148,7 +153,7 @@ Page { verticalCenter: parent.verticalCenter right: parent.right } - icon.source: "image://theme/" + (model.mastodon !== "" ? "icon-m-person" : "icon-m-mail") + "?" + (pressed + icon.source: "image://theme/" + (model.mastodon !== "" ? "icon-m-contact" : "icon-m-mail") + "?" + (pressed ? Theme.highlightColor : Theme.primaryColor) onClicked: { diff --git a/qml/pages/components/ImageFullScreen.qml b/qml/pages/components/ImageFullScreen.qml index 37b9eaa..dba23a8 100644 --- a/qml/pages/components/ImageFullScreen.qml +++ b/qml/pages/components/ImageFullScreen.qml @@ -57,10 +57,10 @@ Page { console.log(playbackState) switch (playbackState){ case MediaPlayer.PlayingState: - playerIcon.icon.source = "image://theme/icon-m-play" + playerIcon.icon.source = "image://theme/icon-m-pause" return; case MediaPlayer.PausedState: - playerIcon.icon.source = "image://theme/icon-m-pause" + playerIcon.icon.source = "image://theme/icon-m-play" return; case MediaPlayer.StoppedState: playerIcon.icon.source = "image://theme/icon-m-stop" diff --git a/qml/pages/components/MiniHeader.qml b/qml/pages/components/MiniHeader.qml index 34140a9..6a9f6f9 100644 --- a/qml/pages/components/MiniHeader.qml +++ b/qml/pages/components/MiniHeader.qml @@ -12,7 +12,11 @@ Item { left: parent.left leftMargin: Theme.paddingMedium } - text: account_display_name + text: + if (account_display_name === "") { + account_username.split('@')[0] + } + else account_display_name width: contentWidth > parent.width /2 ? parent.width /2 : contentWidth truncationMode: TruncationMode.Fade font.weight: Font.Bold diff --git a/qml/pages/components/ProfileHeader.qml b/qml/pages/components/ProfileHeader.qml index 8dd369c..c1b53ae 100644 --- a/qml/pages/components/ProfileHeader.qml +++ b/qml/pages/components/ProfileHeader.qml @@ -37,7 +37,12 @@ Item { asynchronous: true width: description === "" ? Theme.iconSizeMedium : Theme.iconSizeLarge height: width - source: image + source: + if (icon.status === Image.Error) + source = "../../images/icon-l-profile.svg?" + (pressed + ? Theme.highlightColor + : Theme.primaryColor) + else image } Column { anchors { @@ -49,9 +54,13 @@ Item { } Label { id: ttl - text: title + text: + if (title === "") { + description.split('@')[0] + } + else title height: contentHeight - color: Theme.primaryColor + color: Theme.highlightColor font.pixelSize: Theme.fontSizeLarge font.family: Theme.fontFamilyHeading horizontalAlignment: Text.AlignRight @@ -60,8 +69,8 @@ Item { } Label { height: description === "" ? 0 : contentHeight - text: description - color: Theme.primaryColor + text: "@"+description + color: Theme.secondaryHighlightColor font.pixelSize: Theme.fontSizeSmall font.family: Theme.fontFamilyHeading horizontalAlignment: Text.AlignRight diff --git a/qml/pages/components/Toot.qml b/qml/pages/components/Toot.qml index 7809e7a..5999e40 100644 --- a/qml/pages/components/Toot.qml +++ b/qml/pages/components/Toot.qml @@ -170,7 +170,7 @@ BackgroundItem { } text: content - textFormat: Text.StyledText + textFormat: Text.RichText linkColor : Theme.highlightColor wrapMode: Text.Wrap maximumLineCount: 6 diff --git a/qml/pages/components/VisualContainer.qml b/qml/pages/components/VisualContainer.qml index 2d42d6c..072f816 100644 --- a/qml/pages/components/VisualContainer.qml +++ b/qml/pages/components/VisualContainer.qml @@ -46,7 +46,7 @@ BackgroundItem { visible: true onStatusChanged: { if (avatar.status === Image.Error) - source = "image://theme/icon-m-person?" + (pressed + source = "../../images/icon-m-profile.svg?" + (pressed ? Theme.highlightColor : Theme.primaryColor) } @@ -145,7 +145,7 @@ BackgroundItem { text: content.replace(new RegExp("API favourited - favorisiert + hat favorisiert followed you - sind dir gefolgt + folgt dir boosted - verstärkt + hat geteilt said @@ -40,27 +40,27 @@ Write your warning here - - - - What's on your mind? - + Inhaltswarnung Public - + Öffentlich Unlisted - + Nicht gelistet Followers-only - + Nur für Folgende Direct - + Direktnachricht + + + What's on your mind? + Was gibt's Neues? @@ -85,19 +85,19 @@ Instance - + Instanz - Enter an Mastodon instance URL - Gib eine Mastadon Instance URL ein + Enter a valid Mastodon instance URL + Eine gültige Mastodon-Instanz URL eingeben 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. - 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. + Mastodon ist ein freies, quelloffenes soziales Netzwerk. Im Gegensatz zu kommerziellen Plattformen, ist Mastodon als dezentrales Netzwerk konzipiert. Somit wird das Risiko vermieden, dass ein einziges Unternehmen die volle Kontrolle über die Kommunikation der Benutzer hat. Benutzer können einer beliebigen Instanz beitreten oder selbst eine eigene betreiben. Reload - + Neu laden @@ -120,7 +120,7 @@ @user or #term - @User oder #Ausdruck + @Benutzer oder #Ausdruck Local @@ -128,22 +128,22 @@ Federated - Vereinigt + Föderation MiniStatus boosted - verstärkt + hat geteilt favourited - favorisiert + hat favorisiert followed you - sind dir gefolgt + folgt dir @@ -158,7 +158,7 @@ Loading - Lädt... + Wird geladen please wait... @@ -169,7 +169,7 @@ Profile Unfollow - Nicht mehr folgen + Entfolgen Follow request sent! @@ -177,15 +177,15 @@ Following - Folgend + Folgt Mute - Stumm + Stummschalten Unmute - Nicht stumm + Nicht stummschalten Unblock @@ -197,7 +197,7 @@ Statuses - Status + Beiträge Favourites @@ -205,7 +205,7 @@ Follow - Folge + Folgen Summary @@ -213,15 +213,15 @@ Followers - Anhänger + Folgende Bio - + Bio Open Profile in Browser - + Profil im Browser öffnen @@ -232,78 +232,82 @@ Remove Account - Account löschen + Konto entfernen Add Account - Account hinzufügen + Konto hinzufügen Deauthorize this app and remove your account - Der App Autorisierung entziehen und Account entfernen + Konto entfernen und für diese Anwendung deaktivieren - Authorize this app to use your Mastodon account in your behalf - Autorisiere diese App deinen Mastodon Account in deinem Namen zu nutzen - - - Load images in toots - Lade Bilder in den Toots + Authorize this app to access your Mastodon account + Zugriff durch diese Anwendung auf eigenes Mastodon-Konto erlauben Disable this option if you want to preserve your data connection - Deaktiviere diese Option um deinen Datenverbindung zu schonen - - - Translate - Übersetzen - - - Use Transifex to help with app translation to your language - Nutze Transifex um bei der Übersetzung in deine Sprache zu helfen + Diese Option deaktivieren um Datenvolumen zu sparen Credits - Credits + Über UI/UX design and development - UI/UX Design und Implementierung + UI/UX-Gestaltung und Entwicklung Visual identity - + Visuelle Identität Occitan & French translation - + Französische Übersetzung Dutch translation - + Niederländische Übersetzung Spanish translation - + Spanische Übersetzung Added README file - + Erstellung README-Datei - Development and maintenence - + Chinese translation + Chinesische Übersetzung + + + Load images in toots + Bilder in Toots laden + + + Translate + Übersetzungen + + + Use Transifex to help with app translation to your language + Transifex benutzen um bei den Übersetzungen mitzuhelfen + + + Development and translations + Entwicklung und Übersetzungen Toot boosted - verstärkt + hat geteilt favourited - favorisiert + hat favorisiert followed you @@ -314,19 +318,19 @@ VisualContainer Unboost - Schwäche + Nicht mehr teilen Boost - Verstärke + Teilen Unfavorite - Aus Favoriten entfernen + Nicht favorisieren Favorite - Zu Favoriten + Favorisieren diff --git a/translations/harbour-tooter-el.ts b/translations/harbour-tooter-el.ts index c3f464a..6f47211 100644 --- a/translations/harbour-tooter-el.ts +++ b/translations/harbour-tooter-el.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -85,10 +85,10 @@ Instance - + Παράδειγμα - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL @@ -243,25 +243,13 @@ Άρση της αδειοδότησης της εφαρμογής και αφαίρεση του λογαριασμού σας - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Να επιτρέπεται στην εφαρμογή να χρησιμοποιεί τον λογαριασμό σας στο Mastodon εκ μέρους σας - - Load images in toots - Φόρτωση των εικόνων στα toot - Disable this option if you want to preserve your data connection Απενεργοποιήστε αυτήν την επιλογή αν θέλετε να διατηρήσετε την σύνδεση των δεδομένων σας - - Translate - Μετάφραση - - - Use Transifex to help with app translation to your language - Χρησιμοποιήστε το Transifex για να βοηθήσετε την μετάφραση της εφαρμογής στην γλώσσα σας - Credits Ευχαριστίες @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + + + + Translate + Μετάφραση + + + Use Transifex to help with app translation to your language + Χρησιμοποιήστε το Transifex για να βοηθήσετε την μετάφραση της εφαρμογής στην γλώσσα σας + + + Development and translations diff --git a/translations/harbour-tooter-es.ts b/translations/harbour-tooter-es.ts index 7f6acfd..fe77cd8 100644 --- a/translations/harbour-tooter-es.ts +++ b/translations/harbour-tooter-es.ts @@ -40,27 +40,27 @@ Write your warning here - - - - What's on your mind? - + Escribe aquí tu advertencia Public - + Público Unlisted - + Sin federar Followers-only - + Sólo seguidores Direct - + Directo + + + What's on your mind? + ¿En qué estás pensando? @@ -88,12 +88,12 @@ Instancia - Enter an Mastodon instance URL - Introduce URL de una instancia de Mastodon + Enter a valid Mastodon instance URL + Introduce una URL de instancia de Mastodon válida 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. - 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. + Mastodon es una red social libre 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. Reload @@ -217,11 +217,11 @@ Bio - + Bio Open Profile in Browser - + Abrir perfil en el navegador @@ -243,25 +243,13 @@ Retira la autorización a esta aplicación y elimina tu cuenta - Authorize this app to use your Mastodon account in your behalf - Autoriza a esta aplicación a usar tu cuenta de Mastodon en tu nombre - - - Load images in toots - Cargar imágenes en toots + Authorize this app to access your Mastodon account + Autoriza a esta aplicación para usar tu cuenta de Mastodon en tu nombre Disable this option if you want to preserve your data connection Deshabilita esta opción si quieres ahorrar en tu conexión de datos - - Translate - Traducir - - - Use Transifex to help with app translation to your language - Usa Transifex para ayudar en la traducción a tu idioma de esta aplicación - Credits Créditos @@ -272,27 +260,43 @@ Visual identity - + Identidad visual Occitan & French translation - + Traducción al occitano y francés Dutch translation - + Traducción al holandés Spanish translation - + Traducción al español Added README file - + Añadido archivo README - Development and maintenence - + Chinese translation + Traducción al chino + + + Load images in toots + Cargar imágenes en messages + + + Translate + Traducir + + + Use Transifex to help with app translation to your language + Usar Transifex para ayudar con traducciones + + + Development and translations + Desarrollo y traducciones diff --git a/translations/harbour-tooter-fi.ts b/translations/harbour-tooter-fi.ts index daf06a7..f1444ea 100644 --- a/translations/harbour-tooter-fi.ts +++ b/translations/harbour-tooter-fi.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -88,7 +88,7 @@ - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL @@ -243,25 +243,13 @@ - Authorize this app to use your Mastodon account in your behalf - - - - Load images in toots + Authorize this app to access your Mastodon account Disable this option if you want to preserve your data connection - - Translate - - - - Use Transifex to help with app translation to your language - - Credits @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + + + + Translate + + + + Use Transifex to help with app translation to your language + + + + Development and translations diff --git a/translations/harbour-tooter-fr.ts b/translations/harbour-tooter-fr.ts index d41d682..341f2a4 100644 --- a/translations/harbour-tooter-fr.ts +++ b/translations/harbour-tooter-fr.ts @@ -40,27 +40,27 @@ Write your warning here - - - - What's on your mind? - + Rédigez votre alerte ici Public - + Public Unlisted - + Non listé Followers-only - + Abonné(e)s uniquement Direct - + Direct + + + What's on your mind? + Qu'avez-vous en tête? @@ -81,19 +81,19 @@ LoginPage Login - Login + Connexion Instance Instance - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL Saisissez l’URL d’une instance Mastodon 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. - Mastodon est un réseau libre et open source. Il s’agit d'une alternative aux plateformes commerciales, pour éviter qu'une seule entreprise monopolise vos communications. Choisissez un serveur dans lequel vous avez confiance - quelque que soit votre choix vous pourrez interagir avec d’autres personnes. Tout le monde peut monter sa propre instance Mastodon et participer rendre le réseau plus robuste. + Mastodon est un réseau libre et open source : une alternative décentralisée aux plateformes commerciales, afin d’éviter le contrôle monopolistique de vos communications par une entreprise. Choisissez un serveur dans lequel vous avez confiance - quelque que soit votre choix vous pourrez interagir avec tous les utilisateurs du réseau Mastodon. Tout le monde peut monter sa propre instance Mastodon et ainsi contribuer à la croissance du réseau. Reload @@ -116,7 +116,7 @@ Search - Recherche + Rechercher @user or #term @@ -124,11 +124,11 @@ Local - Local + Fil public local Federated - Fédéré + Fil public global @@ -143,7 +143,7 @@ followed you - vous a suivi + vous suit @@ -173,7 +173,7 @@ Follow request sent! - Demande de suivi envoyée ! + Demande d’abonnement envoyée ! Following @@ -197,7 +197,7 @@ Statuses - Status + Pouets Favourites @@ -213,46 +213,78 @@ Followers - Abonnés + Abonné(e)s Bio - + Bio Open Profile in Browser - + Ouvrir dans le navigateur Settings Settings - Préférences + Paramètres Remove Account - Supprimer le compte + Déconnecter votre compte Add Account - Ajouter un compte + Ajouter compte Deauthorize this app and remove your account - Supprimer votre compte de l'application + Désautoriser cette application et enlever votre compte - Authorize this app to use your Mastodon account in your behalf - Autoriser cette application à utiliser votre compte Mastodon en votre nom - - - Load images in toots - Charger les images des pouets + Authorize this app to access your Mastodon account + Autoriser l’accès à votre compte pour cette application Disable this option if you want to preserve your data connection - Désactivez cette option si vous souhaitez économiser votre consommation de données + Désactiver cette option pour économiser des données mobiles + + + Credits + Développement + + + UI/UX design and development + Design UI/UX et développement + + + Visual identity + Identité visuelle + + + Occitan & French translation + Traduction français + + + Dutch translation + Traduction néerlandaise + + + Spanish translation + Traduction espagnole + + + Chinese translation + Traduction chinoise + + + Added README file + Fichier README ajouté + + + Load images in toots + Charger images dans les pouets Translate @@ -260,46 +292,18 @@ Use Transifex to help with app translation to your language - Utilisez Transifex pour aider à la traduction de l'application dans votre langue + Utiliser Transifex pour aider à traduire cette application - Credits - Crédits - - - UI/UX design and development - design et développement de l'interface - - - Visual identity - - - - Occitan & French translation - - - - Dutch translation - - - - Spanish translation - - - - Added README file - - - - Development and maintenence - + Development and translations + Développement et traductions Toot boosted - boosté + a partagé favourited @@ -314,19 +318,19 @@ VisualContainer Unboost - ne plus partager + Annuler le partage Boost - partager + Partager Unfavorite - supprimer de ses favoris + Retirer des favoris Favorite - ajouter aux favoris + Ajouter aux favoris diff --git a/translations/harbour-tooter-it.ts b/translations/harbour-tooter-it.ts new file mode 100644 index 0000000..6689a88 --- /dev/null +++ b/translations/harbour-tooter-it.ts @@ -0,0 +1,411 @@ + + + + + API + + + favourited + ha apprezzato + + + + followed you + ha iniziato a seguirti + + + + boosted + ha condiviso + + + + + said + ha detto + + + + Conversation + + + Conversation + Conversazione + + + + Write your warning here + Contenuto avviso + + + + What's on your mind? + A cosa stai pensando? + + + + Delete + Elimina + + + + Public + Pubblico + + + + Unlisted + Non elencato + + + + Followers-only + Solo ai seguaci + + + + Direct + Diretto + + + + Emojis + Emojis + + + + Tap to insert + Tap per inserire + + + + ImageFullScreen + + + Error loading + Errore caricamento + + + + ImageUploader + + + The file %1 does not exists + Il file %1 non esiste + + + + LoginPage + + + Login + Accesso + + + + Instance + Istanza + + + + Enter a valid Mastodon instance URL + Inserire URL di una istanza Mastodon valida + + + + 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. + Mastodon è un servizio di rete sociale in software libero, costituito in una federazione d'istanze. Mastodon fa parte del più ampio Fediverso, permettendo ai suoi utenti di interagire anche con utenti su diverse piattaforme aperte che supportano lo stesso protocollo. + + + + Reload + Ricarica + + + + MainPage + + + Home + Home + + + + Notifications + Notifiche + + + + Local + Locale + + + + Federated + Federazione + + + + Search + Cerca + + + + @user or #term + @utente o #termine + + + + New Toot + Nuovo toot + + + + MiniStatus + + + boosted + ha condiviso + + + + favourited + ha apprezzato + + + + followed you + ha iniziato a seguirti + + + + MyList + + + Loading + Caricamento + + + + please wait... + Attendere un momento... + + + + Settings + Impostazioni + + + + Load more + Caricare altri + + + + Profile + + + Summary + Sintesi + + + + Followers + Seguaci + + + + Following + Segue + + + + Statuses + Toots + + + + Favourites + Apprezzati + + + + Unfollow + Smetti di seguire + + + + Follow request sent! + Richiesta di seguito inviata! + + + + Follow + Segui + + + + Unmute + Non silenziare + + + + Mute + Silenzia + + + + Unblock + Sblocca + + + + Block + Blocca + + + + Bio + Biografia + + + + Open Profile in Browser + Aprire profile nel browser + + + + Settings + + + Settings + Impostazione + + + + Remove Account + Rimozione del account + + + + Add Account + Aggiungi account + + + + Deauthorize this app and remove your account + Annullare l'autorizzazione dell'app e rimuovere l'account + + + + Authorize this app to access your Mastodon account + Autorizzare l'app all'utilizzo del conto Mastodon + + + + Load images in toots + Caricare immagini nei toots + + + + Disable this option if you want to preserve your data connection + Disabilitare questa opzione per conservare connessione dati + + + + Translate + Tradurre + + + + Use Transifex to help with app translation to your language + Utilizzare Transifex per aiutare nella traduzione dell'app + + + + Credits + Sviluppo + + + + UI/UX design and development + Design UI/UX e sviluppo + + + + Visual identity + Identità visiva + + + + Development and translations + Sviluppo e traduzioni + + + + Occitan & French translation + Traduzione francese e occitanica + + + + Chinese translation + Traduzione cinese + + + + Dutch translation + Traduzione olandese + + + + Spanish translation + Traduzione spagnola + + + + Added README file + Aggiunto file README + + + + Toot + + + boosted + ha condiviso + + + + favourited + ha apprezzato + + + + followed you + ha iniziato a seguirti + + + + VisualContainer + + + Unboost + Annulla condivisione + + + + Boost + Condividi + + + + Unfavorite + Annulla apprezzamento + + + + Favorite + Apprezzato + + + diff --git a/translations/harbour-tooter-nl.ts b/translations/harbour-tooter-nl.ts index ef0f5d3..6ff67ed 100644 --- a/translations/harbour-tooter-nl.ts +++ b/translations/harbour-tooter-nl.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -88,8 +88,8 @@ Instantie - Enter an Mastodon instance URL - Voer de URL van een Mastodon-instantie in + Enter a valid Mastodon instance URL + 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. @@ -243,25 +243,13 @@ Trek autorisaties van deze app in en verwijder je account - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Autoriseer deze app om je Mastodon namens jou te gebruiken - - Load images in toots - Laden afbeeldingen in toots - Disable this option if you want to preserve your data connection Schakel deze optie uit als je je dataverbinding wilt behouden - - Translate - Vertalen - - - Use Transifex to help with app translation to your language - Gebruik Transifex om deze app te helpen vertalen in jouw taal - Credits Credits @@ -291,9 +279,25 @@ - Development and maintenence + Chinese translation + + Load images in toots + Laden afbeeldingen in toots + + + Translate + Vertalen + + + Use Transifex to help with app translation to your language + Gebruik Transifex om deze app te helpen vertalen in jouw taal + + + Development and translations + Ontwikkeling en vertalingen + Toot diff --git a/translations/harbour-tooter-nl_BE.ts b/translations/harbour-tooter-nl_BE.ts index 878cbfc..cf8d937 100644 --- a/translations/harbour-tooter-nl_BE.ts +++ b/translations/harbour-tooter-nl_BE.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -88,7 +88,7 @@ Instantie - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL Voert den URL van een Mastodon-instantie in @@ -243,25 +243,13 @@ Trekt autorisaties van dezen app in en verwijdert uwen account - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Autoriseert dezen app voor uwe Mastodon-account namens u te gebruiken - - Load images in toots - Afbeeldingen in toots laden - Disable this option if you want to preserve your data connection Schakelt dees optie uit als ge uw verbinding wilt behouden - - Translate - Vertalen - - - Use Transifex to help with app translation to your language - Gebruikt Transifex voor te helpen met dezen app in uw taal te vertalen - Credits Credits @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + Afbeeldingen in toots laden + + + Translate + Vertalen + + + Use Transifex to help with app translation to your language + Gebruikt Transifex voor te helpen met dezen app in uw taal te vertalen + + + Development and translations diff --git a/translations/harbour-tooter-oc.ts b/translations/harbour-tooter-oc.ts index 2b226a0..2bb86d9 100644 --- a/translations/harbour-tooter-oc.ts +++ b/translations/harbour-tooter-oc.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -88,7 +88,7 @@ - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL Picatz l’URL d’una instància Mastodon @@ -228,7 +228,7 @@ Settings Settings - Paramètres + Parmètres Remove Account @@ -243,25 +243,13 @@ Revocar l’aplicacion e levar vòstre compte - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Autorizar aquesta aplicacion a utilizar vòstre compte Mastodon per vos - - Load images in toots - Cargar los imatges dels tuts - Disable this option if you want to preserve your data connection Desactivar aquesta opcion per estalviar vòstra connexion de donadas - - Translate - Traduire - - - Use Transifex to help with app translation to your language - Utilizar Transifex per ajudar a traduire l’aplicacion dins vòstra lenga - Credits Crèdits @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + Cargar los imatges dels tuts + + + Translate + Traduire + + + Use Transifex to help with app translation to your language + Utilizar Transifex per ajudar a traduire l’aplicacion dins vòstra lenga + + + Development and translations diff --git a/translations/harbour-tooter-pl.ts b/translations/harbour-tooter-pl.ts index 6efba16..952b1b2 100644 --- a/translations/harbour-tooter-pl.ts +++ b/translations/harbour-tooter-pl.ts @@ -1,51 +1,47 @@ - + API favourited - + dodał(a) do ulubionych followed you - + zaczął(-ęła) Cię śledzić boosted - + podbił(a) said - + napisał(a) Conversation Conversation - + Konwersacja Delete - + Usuń Emojis - + Emoji Tap to insert - + Dotknij aby wstawić Write your warning here - - What's on your mind? - - Public @@ -62,19 +58,23 @@ Direct + + What's on your mind? + + ImageFullScreen Error loading - + Błąd ładowania ImageUploader The file %1 does not exists - + Plik %1 nie istnieje @@ -88,7 +88,7 @@ - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL @@ -104,116 +104,116 @@ MainPage Home - + Strona główna Notifications - + Powiadomienia New Toot - + Nowy wpis Search - + Szukaj @user or #term - + @użytkownik lub #tag Local - + Lokalne Federated - + Globalne MiniStatus boosted - + podbił(a) favourited - + dodał(a) do ulubionych followed you - + zaczął(-ęła) Cię śledzić MyList Load more - + Załaduj więcej Settings - + Ustawienia Loading - + Ładowanie please wait... - + proszę czekać… Profile Unfollow - + Przestań śledzić Follow request sent! - + Wysłano prośbę o możliwość śledzenia! Following - + Śledzisz Mute - + Wycisz Unmute - + Unmute Unblock - + Unblock Block - + Block Statuses - + Statuses Favourites - + Favourites Follow - + Follow Summary - + Summary Followers - + Followers Bio @@ -228,7 +228,7 @@ Settings Settings - + Ustawienia Remove Account @@ -243,25 +243,13 @@ - Authorize this app to use your Mastodon account in your behalf - - - - Load images in toots + Authorize this app to access your Mastodon account Disable this option if you want to preserve your data connection - - Translate - - - - Use Transifex to help with app translation to your language - - Credits @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + + + + Translate + + + + Use Transifex to help with app translation to your language + + + + Development and translations @@ -299,15 +303,15 @@ Toot boosted - + podbił(a) favourited - + dodał(a) do ulubionych followed you - + zaczął(-ęła Cię śledzić) diff --git a/translations/harbour-tooter-ru.ts b/translations/harbour-tooter-ru.ts index 21152ef..277a582 100644 --- a/translations/harbour-tooter-ru.ts +++ b/translations/harbour-tooter-ru.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -81,14 +81,14 @@ LoginPage Login - Авторизоваться + Instance - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL Введите URL-адрес экземпляра Mastodon @@ -243,25 +243,13 @@ удалить учетную запись с устройства - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Уполномочить это приложение использовать свою учетную запись Mastodon от вашего имени - - Load images in toots - Загружать изображения - Disable this option if you want to preserve your data connection Отключите эту опцию, если вы хотите сохранить подключение к данным - - Translate - Переведите - - - Use Transifex to help with app translation to your language - Используйте Transifex, чтобы помочь с переводом приложения на ваш язык - Credits Зачет @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + Загружать изображения + + + Translate + Переведите + + + Use Transifex to help with app translation to your language + Используйте Transifex, чтобы помочь с переводом приложения на ваш язык + + + Development and translations diff --git a/translations/harbour-tooter-sr.ts b/translations/harbour-tooter-sr.ts index f4006bb..3091e3e 100644 --- a/translations/harbour-tooter-sr.ts +++ b/translations/harbour-tooter-sr.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -81,23 +81,23 @@ LoginPage Login - Пријава + Instance - Инстанца + - Enter an Mastodon instance URL - Унесите URL ваше Мастодон инстанце + Enter a valid Mastodon instance URL + 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. - Mastodon је бесплатна, open-source друштвена мрежа. Децентрализована алтернатива комерцијалним платформама која избегава ризике једне компаније која монополизује вашу комуникацију. Одаберите сервер у који имате поверења и без обзира на ваш избор - комуницирајте с осталим корисницима других мрежа. Свако може водити сопствену инстанцу Mastodon мреже и учестовати у комуникацији с другим инстанцама. + Reload - освежи + @@ -243,25 +243,13 @@ Укините дозволе за кориштење и уклоните налог с телефона - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Дозволите овој апликацији да користи ваш Mastodon налог - - Load images in toots - Прикажи слике у објавама - Disable this option if you want to preserve your data connection Искључите ову опцију уколико желите да уштедите на преносу података - - Translate - Преведи - - - Use Transifex to help with app translation to your language - Користите Transifex и помозите у преводу апликације на други језик - Credits Спомен плоча @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + Прикажи слике у објавама + + + Translate + Преведи + + + Use Transifex to help with app translation to your language + Користите Transifex и помозите у преводу апликације на други језик + + + Development and translations @@ -326,7 +330,7 @@ Favorite - Омиљено + diff --git a/translations/harbour-tooter-sv.ts b/translations/harbour-tooter-sv.ts index e91a9cf..43b1866 100644 --- a/translations/harbour-tooter-sv.ts +++ b/translations/harbour-tooter-sv.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -88,7 +88,7 @@ - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL Fyll i URL till Mastodoninstans @@ -243,24 +243,12 @@ Avauktorisera denna app och radera ditt konto - Authorize this app to use your Mastodon account in your behalf + Authorize this app to access your Mastodon account Godkänn denna app att använda ditt Mastodon-konto på dina vägnar - - Load images in toots - Ladda bilder i toots - Disable this option if you want to preserve your data connection - Inaktivera det här alternativet om du vill behålla din dataanslutning - - - Translate - Översätt - - - Use Transifex to help with app translation to your language - Använd Transifex för att hjälpa med app-översättningar till ditt språk + Inaktivera det här alternativet om du vill behålla din dataanslutning Credits @@ -291,9 +279,25 @@ - Development and maintenence + Chinese translation + + Load images in toots + Ladda bilder i toots + + + Translate + Översätt + + + Use Transifex to help with app translation to your language + + + + Development and translations + Använd Transifex för att hjälpa med app-översättningar till ditt språk + Toot diff --git a/translations/harbour-tooter-zh_CN.ts b/translations/harbour-tooter-zh_CN.ts index 417161c..d25e9f9 100644 --- a/translations/harbour-tooter-zh_CN.ts +++ b/translations/harbour-tooter-zh_CN.ts @@ -17,26 +17,7 @@ said - 说的 - - - - Browser - - Open in Browser - 在浏览器打开 - - - Web mode - 网页模式 - - - Reading mode - 阅读模式 - - - Copy URL - 复制链接 + 说过 @@ -45,26 +26,6 @@ Conversation 对话 - - Content warning! - 内容警告! - - - public - 公共区域 - - - unlisted - 未列的 - - - followers only - 仅关注者 - - - direct - 直接 - Delete 删除 @@ -75,7 +36,31 @@ Tap to insert - 点击插入 + 点击以插入 + + + Write your warning here + 在此编写你的警告信息 + + + Public + 公共区域 + + + Unlisted + 不公开 + + + Followers-only + 仅关注者 + + + Direct + 私信 + + + What's on your mind? + 有何想法? @@ -103,22 +88,17 @@ 实例 - Enter an Mastodon instance URL - 输入一个 Mastodon 实例链接 + Enter a valid Mastodon instance URL + 输入一个有效的 Mastodon 实例 URL 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. - ​Mastodon 是一个自由且开源的社交网络。一个去中心的商业平台的替代品。它能够避免某个公司垄断你的通讯方式的风险。选择一个你所信任的服务器——无论你选择什么,你都可以和其他人进行互动。任何人都能运行他们自己的 Mastodon 实例,然后无缝加入社交网站。 - + Mastodon 是一个自由且开源的社交网络。一个去中心化的商业平台的替代品。它能够避免某个公司垄断你的通讯方式的风险。选择一个你所信任的服务器——无论你选择什么,你都可以和其他人进行互动。任何人都能运行他们自己的 Mastodon 实例,然后无缝加入社交网站。 Reload 重新加载 - - Enter an Mastodon instance URL - - MainPage @@ -148,7 +128,7 @@ Federated - 联合的 + 联合 @@ -182,19 +162,18 @@ please wait... - 请等候...... + 稍等片刻...... Profile Unfollow - - 未关注 + 取消关注 Follow request sent! - 关注请求已寄出! + 已寄出关注请求! Following @@ -253,35 +232,23 @@ Remove Account - 移除账户 + 移除账号 Add Account - 添加账户 + 添加账号 Deauthorize this app and remove your account - 取消对此软件的授权并移除你的账户 + 取消授权此软件并移除你的账号 - Authorize this app to use your Mastodon account in your behalf - 授权此软件使用你的 Mastodon 账户 - - - Load images in toots - 在嘟嘟加载图片 + Authorize this app to access your Mastodon account + 授权此软件使用你的 Mastodon 账号 Disable this option if you want to preserve your data connection - 如果你想保护你的数据连接 请禁用此操作 - - - Translate - 翻译 - - - Use Transifex to help with app translation to your language - 使用 Transifex 帮助翻译此软件到你所使用的语言。 + 如果你想保护你的数据连接,请禁用此选项 Credits @@ -289,14 +256,54 @@ UI/UX design and development - UI/UX 设计及开发 + UI/UX设计及开发 + + + Visual identity + 视觉识别 + + + Occitan & French translation + 奥克西坦语及法语翻译 + + + Dutch translation + 尼德兰语翻译 + + + Spanish translation + 西班牙语翻译 + + + Added README file + 添加 README 文件 + + + Chinese translation + 汉语翻译 + + + Load images in toots + + + + Translate + + + + Use Transifex to help with app translation to your language + 使用 Transifex 以帮助翻译软件为你的语言 + + + Development and translations + 开发及翻译 Toot boosted - 推起的 + 推起 favourited @@ -304,7 +311,7 @@ followed you - 关注你的 + 关注你 @@ -319,12 +326,11 @@ Unfavorite - - 取消收藏 + 取消关注 Favorite - 收藏 + 关注 diff --git a/translations/harbour-tooter.ts b/translations/harbour-tooter.ts index 03bddc9..b119e7e 100644 --- a/translations/harbour-tooter.ts +++ b/translations/harbour-tooter.ts @@ -42,10 +42,6 @@ Write your warning here - - What's on your mind? - - Public @@ -62,6 +58,10 @@ Direct + + What's on your mind? + + ImageFullScreen @@ -88,7 +88,7 @@ - Enter an Mastodon instance URL + Enter a valid Mastodon instance URL @@ -243,25 +243,13 @@ - Authorize this app to use your Mastodon account in your behalf - - - - Load images in toots + Authorize this app to access your Mastodon account Disable this option if you want to preserve your data connection - - Translate - - - - Use Transifex to help with app translation to your language - - Credits @@ -291,7 +279,23 @@ - Development and maintenence + Chinese translation + + + + Load images in toots + + + + Translate + + + + Use Transifex to help with app translation to your language + + + + Development and translations @@ -314,19 +318,19 @@ VisualContainer Unboost - Unboost + Boost - Boost + Unfavorite - Unfavorite + Favorite - Favorite +