diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..bdac5453 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,213 @@ +name: SailfishOS Build + +# This creates a GitHub release on every tag push. +# It can also publish the RPMs to a repo in the same user/org called 'repo', +# but only if the 'PUBLISH_REPO_TOKEN' repository secret has been set to a +# fine-grained Personal Access Token that you've created which allows +# read/write access to that repo. If either of those things are missing, +# publishing will be skipped. + +on: + push: + branches: [ "*" ] + tags: [ "*" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + runs-on: ubuntu-latest + environment: quickddit-api-key + env: + REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID }} + REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_CLIENT_SECRET }} + REDDIT_REDIRECT_URL: ${{ secrets.REDDIT_REDIRECT_URL }} + RELEASE: 3.4.0.24 + ARCHITECTURES: | + armv7hl + aarch64 + i486 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Validate Reddit OAuth secrets + run: | + missing=false + for var in REDDIT_CLIENT_ID REDDIT_CLIENT_SECRET REDDIT_REDIRECT_URL; do + if [ -z "${!var}" ]; then + echo "::error::Environment variable $var is required but was not provided." + missing=true + fi + done + if [ "$missing" = true ]; then + exit 1 + fi + + - name: Prepare + run: | + docker pull coderus/sailfishos-platform-sdk:${RELEASE} + + - name: Build Sailfish OS packages + run: | + set -euo pipefail + mkdir .RPMs + docker run --rm --privileged \ + -e REDDIT_CLIENT_ID \ + -e REDDIT_CLIENT_SECRET \ + -e REDDIT_REDIRECT_URL \ + -e RELEASE \ + -e ARCHITECTURES \ + -v "$PWD":/share \ + coderus/sailfishos-platform-sdk:${RELEASE} \ + bash -c ' + set -euo pipefail + while read -r arch; do + [ -n "$arch" ] || continue + target="SailfishOS-${RELEASE}-${arch}" + echo "::group::Building for $target ($arch)" + rm -rf build + mkdir -p build + cp -r /share/* /share/.git* build + cd build/sailfish + mb2 -t "$target" -s rpm/harbour-quickddit.spec build \ + --define "quickddit_reddit_client_id $REDDIT_CLIENT_ID" \ + --define "quickddit_reddit_client_secret $REDDIT_CLIENT_SECRET" \ + --define "quickddit_reddit_redirect_url $REDDIT_REDIRECT_URL" + sudo cp -v RPMS/*.rpm /share/.RPMs/ + ls -la /share/.RPMs + echo "::endgroup::" + done <<< "$ARCHITECTURES" + ' + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: harbour-quickddit + path: .RPMs/* + include-hidden-files: true + + release: + runs-on: ubuntu-latest + needs: build + if: startsWith(github.ref, 'refs/tags/') + + env: + # Target repo to host the RPM repository; auto-uses whoever owns this workflow + PACKAGE_REPO: ${{ github.repository_owner }}/repo + + steps: + - name: Download RPMs + uses: actions/download-artifact@v4 + with: + name: harbour-quickddit + path: . + + - name: Create releases + uses: softprops/action-gh-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref_name }} + name: ${{ github.ref_name }} + files: '*.rpm' + + - name: Check publish configuration + id: publish_check + env: + TOKEN: ${{ secrets.PUBLISH_REPO_TOKEN }} + run: | + set -euo pipefail + + if [ -z "${TOKEN:-}" ]; then + echo "::warning ::PUBLISH_REPO_TOKEN is not set; skipping RPM repo publish." + echo "enabled=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + + OWNER_REPO="${{ github.repository_owner }}/repo" + STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ + -H "Authorization: Bearer ${TOKEN}" \ + https://api.github.com/repos/${OWNER_REPO}) + + if [ "$STATUS" -ne 200 ]; then + echo "::warning ::Target repo '${OWNER_REPO}' does not exist or is inaccessible; skipping RPM repo publish." + echo "enabled=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + + echo "Publish configuration OK for ${OWNER_REPO}" + echo "enabled=true" >> "$GITHUB_OUTPUT" + + - name: Checkout or create repo + if: steps.publish_check.outputs.enabled == 'true' + env: + PUBLISH_TOKEN: ${{ secrets.PUBLISH_REPO_TOKEN }} + run: | + set -euo pipefail + REPO_URL="https://x-access-token:${PUBLISH_TOKEN}@github.com/${PACKAGE_REPO}.git" + + git config --global init.defaultBranch master + git config --global user.name "GitHub Actions" + git config --global user.email "actions@users.noreply.github.com" + + if git ls-remote "$REPO_URL" HEAD >/dev/null 2>&1; then + echo "Cloning existing repo" + git clone "$REPO_URL" publish-repo + cd publish-repo + if git rev-parse --verify master >/dev/null 2>&1; then + git checkout master + else + echo "Creating master branch" + git checkout -b master + fi + else + echo "Creating new repo" + mkdir publish-repo + cd publish-repo + git init -b master + git remote add origin "$REPO_URL" + fi + + - name: Add new RPMs to repo and push + if: steps.publish_check.outputs.enabled == 'true' + working-directory: publish-repo + run: | + set -euo pipefail + mkdir -p aarch64 armv7hl i486 + + # Move new RPMs into repo + for f in ../*.rpm; do + [ -e "$f" ] || continue + case "$f" in + *aarch64.rpm) dest="aarch64" ;; + *armv7hl.rpm) dest="armv7hl" ;; + *i486.rpm) dest="i486" ;; + *) echo "Skipping unknown arch in $f"; continue ;; + esac + echo "Moving $f -> $dest/" + mv "$f" "$dest/" + done + + # Regenerate repo metadata for each arch + sudo apt-get update + sudo apt-get install -y createrepo-c + for archdir in aarch64 armv7hl i486; do + echo "Running createrepo_c in $archdir" + createrepo_c --update "$archdir" + done + + echo "Resulting tree:" + ls -R + + # Commit and push + git add aarch64 armv7hl i486 + if git diff --cached --quiet; then + echo "No changes to commit." + else + echo "Committing new RPMs and pushing" + git commit -m "Release ${{ github.event.repository.name }} ${{ github.ref_name }}" + git push origin master + fi diff --git a/README.md b/README.md index 533cf4b9..b9c67345 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ Features | search posts | Y | | Y | | search subreddits | Y | Y | Y | | inbox notifications | Y | | Y | +| share posts | Y | | Y | | watch clipboard for reddit links | Y | | Y | | TOR | Y | | Y | | Post flair | partial | partial | | @@ -48,20 +49,19 @@ id and secret](https://github.com/reddit/reddit/wiki/OAuth2) and fill it up in Optionally you can also define `IMGUR_CLIENT_ID` with your own Imgur API client id. -TODO ------ - -- (Local) browse history -- bookmark users, locally or using reddit 'friend' feature. -- Add more filtering options, e.g. by flair -- Reddit Live and/or a method of 'live' following a post - Download -------- - MeeGo Harmattan (Nokia N9/N950): [OpenRepos](https://openrepos.net/content/accumulator/quickddit) -- SailfishOS (Jolla): [OpenRepos](https://openrepos.net/content/accumulator/quickddit-0) +- SailfishOS (Jolla): [OpenRepos](https://openrepos.net/content/abranson/quickddit) - Ubuntu-touch: [OpenStore](https://open-store.io/app/quickddit) or build with `clickable -c ubuntu-touch/clickable.json` +Translations +------------ + +You can help translation Quickddit into different languages here: + +https://hosted.weblate.org/projects/Quickddit/ + License ------- All files in this project are licensed under the GNU GPLv3+, unless otherwise stated. @@ -69,6 +69,7 @@ All files in this project are licensed under the GNU GPLv3+, unless otherwise st Quickddit - Reddit client for mobile phones Copyright (C) 2013-2014 Dickson Leong Copyright (C) 2015-2020 Sander van Grieken + Copyright (C) 2025 Andrew Branson This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sailfish/rpm/harbour-quickddit.changes b/rpm/harbour-quickddit.changes similarity index 88% rename from sailfish/rpm/harbour-quickddit.changes rename to rpm/harbour-quickddit.changes index 18c295ee..fed4ac2b 100644 --- a/sailfish/rpm/harbour-quickddit.changes +++ b/rpm/harbour-quickddit.changes @@ -1,9 +1,61 @@ # Add new changelog entries following the format below. # Add newest entries to the top of the list. -# Separate entries from eachother with a blank line. +# Separate entries from each other with a blank line. # * date Author's Name version-release # - Summary of changes +* Sat Dec 20 2025 Andrew Branson 1.14.6-1 +- fix: Revert back to youtube-dl because yt-dlp really doesn't work with Python < 3.10 + +* Fri Dec 19 2025 Andrew Branson 1.14.5-1 +- new: Use avatars in user and account pages. +- chg: Improve inline image handling and scaling. Open in viewer. +- fix: Caching posted gifs caused OOM crashes + +* Mon Dec 15 2025 Andrew Branson 1.14.4-1 +- new: Support adaptive video streams. Must be enabled in settings. More likely to have sound, but a bit unstable right now. +- new: Elapsed video time on the left, Video metadata at the top. +- new: Cancel button on Comment Reply +- chg: Reorganize main menu. Add saved things. +- chg: Switch from youtube-dl to yt-dlp +- fix: Avoid Share URL resolution server blocking + +* Sun Nov 30 2025 Andrew Branson 1.14.3-1 +- new: Menu label showing last refresh time +- new: Show upvotes on user comment list +- chg: Better fit cover text for post names +- chg: Generate png icons during build +- fix: Various harbour compat tweaks +- fix: Build for SFOS 3.4.0 for Jolla 1 +- chg: Organize and sync all translations. +- new: Russian translation. + +* Mon Nov 24 2025 Andrew Branson 1.14.2-1 +- new: Add login details to Subreddit page. Tap opens Accounts to login or switch. +- fix: Fix 'Continue this thread' button +- fix: Notification opens all messages instead of last view + +* Wed Nov 19 2025 Andrew Branson 1.14-1 +- new: Tweak Subreddit page, use it as the root page and stack pages more. +- new: Support shared reddit comment links +- chg: Drop all other globalUtil variables +- fix: Drop singleton WebViewer to avoid closing hangs and crashes +- fix: Refresh properly after switching accounts or signing in +- fix: Improve inline images +- new: Github action build. +- chg: Update translations + +* Thu Oct 30 2025 Andrew Branson 1.13-1 +- fix: access token URL +- fix: opening notifications +- fix: some thumbnail URLs were escaped +- fix: improve video stream detection +- new: Comments cover page now shows post title +- new: Inline images in comments +- new: Filter subreddit list when typing subreddit name +- chg: update youtube-dl +- chg: ownership URLs to me as was abandoned +- chg: translations & translation host * Mon Mar 06 2023 Sander van Grieken 1.11.1-1 - fix: remember settings (thanks DeathByDenim) diff --git a/sailfish/rpm/harbour-quickddit.spec b/rpm/harbour-quickddit.spec similarity index 65% rename from sailfish/rpm/harbour-quickddit.spec rename to rpm/harbour-quickddit.spec index cc97e2e6..a7514911 100644 --- a/sailfish/rpm/harbour-quickddit.spec +++ b/rpm/harbour-quickddit.spec @@ -6,11 +6,11 @@ Name: harbour-quickddit Summary: Reddit client for mobile phones -Version: 1.11.1 +Version: 1.14.6 Release: 1 Group: Qt/Qt License: GPLv3+ -URL: https://github.com/accumulator/Quickddit +URL: https://github.com/abranson/Quickddit Source0: %{name}-%{version}.tar.bz2 Requires: sailfishsilica-qt5 Requires: mapplauncherd-booster-silica-qt5 @@ -23,15 +23,15 @@ BuildRequires: pkgconfig(Qt5Network) BuildRequires: pkgconfig(sailfishapp) BuildRequires: pkgconfig(nemonotifications-qt5) BuildRequires: pkgconfig(keepalive) -BuildRequires: pkgconfig(qt5embedwidget) BuildRequires: qt5-qttools-linguist +BuildRequires: librsvg-tools %description Quickddit is a free and open source Reddit client for mobile phones. %prep -%setup -q -n %{name}-%{version} +%setup -q -n %{name}-%{version}/sailfish %build @@ -46,7 +46,21 @@ Quickddit is a free and open source Reddit client for mobile phones. %install %qmake5_install +for size in 86 108 128 172; do + icon_dir="%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps"; + mkdir -p "${icon_dir}"; + rsvg-convert -w ${size} -h ${size} -o "${icon_dir}/%{name}.png" %{name}.svg; +done + %files %defattr(-,root,root,-) %{_bindir}/%{name} -%{_datadir}/* +# Make sure python files aren't executable or they'll fail harbour validation +%defattr(0644,root,root,-) +%{_datadir}/applications/%{name}.desktop +%{_datadir}/%{name} +%{_datadir}/icons/hicolor/86x86/apps/%{name}.png +%{_datadir}/icons/hicolor/108x108/apps/%{name}.png +%{_datadir}/icons/hicolor/128x128/apps/%{name}.png +%{_datadir}/icons/hicolor/172x172/apps/%{name}.png + diff --git a/sailfish/.gitignore b/sailfish/.gitignore index 3da4ba66..8a3347f1 100644 --- a/sailfish/.gitignore +++ b/sailfish/.gitignore @@ -7,3 +7,6 @@ app_interface* # application binary harbour-quickddit + +# Packages +RPMS diff --git a/sailfish/dbusapp.cpp b/sailfish/dbusapp.cpp index 01646c5a..7f7f445e 100644 --- a/sailfish/dbusapp.cpp +++ b/sailfish/dbusapp.cpp @@ -29,9 +29,9 @@ DbusApp::DbusApp(QObject *parent) : new ViewAdaptor(this); QDBusConnection c = QDBusConnection::sessionBus(); - bool ret = c.registerService("org.quickddit"); + bool ret = c.registerService("nl.outrightsolutions.Quickddit"); Q_ASSERT(ret); - ret = c.registerObject("/", this); + ret = c.registerObject("/nl/outrightsolutions/Quickddit", this); Q_ASSERT(ret); Q_UNUSED(ret); } diff --git a/sailfish/harbour-quickddit.desktop b/sailfish/harbour-quickddit.desktop index 59d17179..15e59ea0 100644 --- a/sailfish/harbour-quickddit.desktop +++ b/sailfish/harbour-quickddit.desktop @@ -2,10 +2,16 @@ Type=Application X-Nemo-Application-Type=silica-qt5 Name=Quickddit +X-DBusActivatable=true Icon=harbour-quickddit -Exec=harbour-quickddit +Exec=harbour-quickddit %U +MimeType=x-url-handler/reddit.com;x-url-handler/www.reddit.com;x-url-handler/old.reddit.com +X-Maemo-Service=nl.outrightsolutions.Quickddit +X-Maemo-Object-Path=/nl/outrightsolutions/Quickddit +X-Maemo-Method=org.quickddit.view.openURL [X-Sailjail] Permissions=Internet;Audio;Pictures;WebView OrganizationName=nl.outrightsolutions ApplicationName=Quickddit +ExecDBus=harbour-quickddit --prestart \ No newline at end of file diff --git a/sailfish/harbour-quickddit.pro b/sailfish/harbour-quickddit.pro index 495c3e8d..8c570bbd 100644 --- a/sailfish/harbour-quickddit.pro +++ b/sailfish/harbour-quickddit.pro @@ -14,17 +14,8 @@ DEFINES += APP_VERSION=\\\"$$VERSION\\\" Q_OS_SAILFISH QT *= network dbus -# sailfishapp.prf auto-installs icons, desktop file, qml/* -# (but IDE don't show these when not in OTHER_FILES, so we still need to list them :( ) CONFIG += sailfishapp link_pkgconfig -SAILFISHAPP_ICONS = 86x86 108x108 128x128 256x256 - -# Harbour is quite strict about what it allows. Quickddit has features that would not allow it to pass -# through QA. Add CONFIG+=harbour to the .pro file (uncomment below) or add it to the qmake command -# to force harbour compatibility. -#CONFIG += harbour - PKGCONFIG += sailfishapp nemonotifications-qt5 keepalive INCLUDEPATH += .. @@ -48,7 +39,7 @@ OTHER_FILES += \ rpm/$${TARGET}.spec \ rpm/$${TARGET}.changes \ $${TARGET}.desktop \ - $${TARGET}.png \ + $${TARGET}.svg \ iface/org.quickddit.xml \ qml/ytdl_wrapper.py \ qml/cover/CoverPage.qml \ @@ -104,8 +95,7 @@ OTHER_FILES += \ qml/WebViewer.qml \ qml/SectionSelectionDialog.qml \ qml/ModeratorListPage.qml \ - qml/AccountsPage.qml \ - qml/DonatePage.qml + qml/AccountsPage.qml # Translations CONFIG += sailfishapp_i18n @@ -120,24 +110,6 @@ include(translations/translations.pri) system(qdbusxml2cpp iface/org.quickddit.xml -a app_adaptor -p app_interface) } -harbour { - message("build: HARBOUR Compliant") - message("* Notification specification is excluded") - DEFINES += HARBOUR_COMPLIANCE - DEFINES += BUILD_VARIANT=\\\"Harbour\\\" -} else { - message("build: Unrestricted") - DEFINES += BUILD_VARIANT=\\\"Standard\\\" - - notification.files = notifications/harbour-quickddit.inbox.conf - notification.path = /usr/share/lipstick/notificationcategories - - INSTALLS += notification -} - -# kludge needed as qmake cannot control INSTALL permissions -system(chmod 0644 ../youtube-dl/youtube_dl/__main__.py ../youtube-dl/youtube_dl/YoutubeDL.py) - youtube-dl.files = ../youtube-dl/youtube_dl youtube-dl.path = /usr/share/$${TARGET} diff --git a/sailfish/icons/108x108/harbour-quickddit.png b/sailfish/icons/108x108/harbour-quickddit.png deleted file mode 100644 index 0ce572f8..00000000 Binary files a/sailfish/icons/108x108/harbour-quickddit.png and /dev/null differ diff --git a/sailfish/icons/128x128/harbour-quickddit.png b/sailfish/icons/128x128/harbour-quickddit.png deleted file mode 100644 index 26a97a53..00000000 Binary files a/sailfish/icons/128x128/harbour-quickddit.png and /dev/null differ diff --git a/sailfish/icons/256x256/harbour-quickddit.png b/sailfish/icons/256x256/harbour-quickddit.png deleted file mode 100644 index e8c82714..00000000 Binary files a/sailfish/icons/256x256/harbour-quickddit.png and /dev/null differ diff --git a/sailfish/icons/86x86/harbour-quickddit.png b/sailfish/icons/86x86/harbour-quickddit.png deleted file mode 100644 index 8e56e5c4..00000000 Binary files a/sailfish/icons/86x86/harbour-quickddit.png and /dev/null differ diff --git a/sailfish/main.cpp b/sailfish/main.cpp index 347f6aac..d845455b 100644 --- a/sailfish/main.cpp +++ b/sailfish/main.cpp @@ -87,7 +87,6 @@ int main(int argc, char *argv[]) QScopedPointer view(SailfishApp::createView()); view->rootContext()->setContextProperty("APP_VERSION", APP_VERSION); - view->rootContext()->setContextProperty("BUILD_VARIANT", BUILD_VARIANT); QMLUtils qmlUtils; view->rootContext()->setContextProperty("QMLUtils", &qmlUtils); @@ -98,6 +97,10 @@ int main(int argc, char *argv[]) view->setSource(SailfishApp::pathTo("qml/main.qml")); view->show(); + if (argc == 2) { + dbusApp.requestOpenURL(argv[1]); + } + return app->exec(); } diff --git a/sailfish/notifications/harbour-quickddit.inbox.conf b/sailfish/notifications/harbour-quickddit.inbox.conf deleted file mode 100644 index d7bbbb1b..00000000 --- a/sailfish/notifications/harbour-quickddit.inbox.conf +++ /dev/null @@ -1,6 +0,0 @@ -x-nemo-icon=harbour-quickddit -x-nemo-preview-icon=harbour-quickddit -x-nemo-user-removable=true -x-nemo-feedback=social -x-nemo-priority=100 -x-nemo-led-disabled-without-body-and-summary=false diff --git a/sailfish/qml/AboutMultiredditPage.qml b/sailfish/qml/AboutMultiredditPage.qml index 4c95b467..4d90a652 100644 --- a/sailfish/qml/AboutMultiredditPage.qml +++ b/sailfish/qml/AboutMultiredditPage.qml @@ -27,6 +27,7 @@ AbstractPage { busy: multiredditManager.busy property alias multireddit: multiredditManager.name + property MultiredditModel multiredditModel: null SilicaFlickable { id: flickable @@ -120,11 +121,7 @@ AbstractPage { MenuItem { text: qsTr("Go to %1").arg("/r/" + subredditMenu.subreddit) - onClicked: { - var mainPage = globalUtils.getMainPage(); - mainPage.refresh(subredditMenu.subreddit); - pageStack.pop(mainPage); - } + onClicked: pageStack.push(Qt.resolvedUrl("MainPage.qml"), {subreddit: subredditMenu.subreddit} ) } MenuItem { @@ -172,7 +169,7 @@ AbstractPage { AboutMultiredditManager { id: multiredditManager manager: quickdditManager - model: globalUtils.getMultiredditModel() + model: multiredditModel onSuccess: infoBanner.alert(message); onError: infoBanner.warning(errorString); } diff --git a/sailfish/qml/AboutPage.qml b/sailfish/qml/AboutPage.qml index 987c83c1..d0e8e737 100644 --- a/sailfish/qml/AboutPage.qml +++ b/sailfish/qml/AboutPage.qml @@ -99,7 +99,7 @@ AbstractPage { color: Theme.highlightColor wrapMode: Text.Wrap text: qsTr("Quickddit - A free and open source Reddit client for mobile phones") + - "\nv" + APP_VERSION + "(" + BUILD_VARIANT + ")" + "\nv" + APP_VERSION } Text { @@ -108,7 +108,8 @@ AbstractPage { font.pixelSize: constant.fontSizeSmall color: constant.colorLight wrapMode: Text.Wrap - text: "Copyright (c) 2015-2020 Sander van Grieken\n" + + text: "Copyright (c) 2025 Andrew Branson\n" + + "Copyright (c) 2015-2020 Sander van Grieken\n" + "Copyright (c) 2013-2014 Dickson Leong\n\n" + qsTr("App icon by Andrew Zhilin") + "\n\n" + //: _translator is used as a placeholder for the name of the translator (you :) @@ -139,11 +140,6 @@ AbstractPage { text: qsTr("Translations") onClicked: globalUtils.createOpenLinkDialog(QMLUtils.TRANSLATIONS_URL); } - - Button { - text: qsTr("Donate!") - onClicked: pageStack.push(Qt.resolvedUrl("DonatePage.qml")); - } } } } diff --git a/sailfish/qml/AbstractPage.qml b/sailfish/qml/AbstractPage.qml index b88502b0..7c8b5d97 100644 --- a/sailfish/qml/AbstractPage.qml +++ b/sailfish/qml/AbstractPage.qml @@ -26,4 +26,5 @@ Page { property bool busy: false property string title: "" + property string summary: "" } diff --git a/sailfish/qml/AccountsPage.qml b/sailfish/qml/AccountsPage.qml index 9726ea4f..df85ea5b 100644 --- a/sailfish/qml/AccountsPage.qml +++ b/sailfish/qml/AccountsPage.qml @@ -17,6 +17,7 @@ */ import QtQuick 2.6 +import QtGraphicalEffects 1.0 import Sailfish.Silica 1.0 import harbour.quickddit.Core 1.0 @@ -30,7 +31,6 @@ AbstractPage { property bool _completed: false - PullDownMenu { MenuItem { text: quickdditManager.isSignedIn ? qsTr("Sign out") : qsTr("Sign in to Reddit") @@ -67,12 +67,41 @@ AbstractPage { Row { anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left anchors.leftMargin: constant.paddingMedium + spacing: constant.paddingMedium - IconButton { - icon.source: "image://theme/icon-m-person" - highlighted: listItem.highlighted || settings.redditUsername === modelData + Item { + id: avatarContainer + width: Theme.itemSizeSmall + height: width anchors.verticalCenter: parent.verticalCenter + layer.enabled: true + layer.effect: OpacityMask { + maskSource: Rectangle { + width: avatarContainer.width + height: avatarContainer.height + radius: width/2 + } + } + + Image { + id: avatarImage + anchors.fill: parent + source: settings.accountIcon(modelData) + asynchronous: true + fillMode: Image.PreserveAspectCrop + smooth: true + visible: status === Image.Ready + } + + Image { + anchors.fill: parent + source: "image://theme/icon-m-person" + fillMode: Image.PreserveAspectFit + visible: avatarImage.status !== Image.Ready + opacity: listItem.highlighted || settings.redditUsername === modelData ? 1.0 : 0.8 + } } Text { @@ -96,7 +125,7 @@ AbstractPage { }); dialog.activateAccount.connect(function() { quickdditManager.selectAccount(modelData); - pageStack.pop() + pageStack.pop(pageStack.find(function(page) { return page.objectName === "subredditsPage"; })); }); } diff --git a/sailfish/qml/CommentDelegate.qml b/sailfish/qml/CommentDelegate.qml index 998349b7..878e40c4 100644 --- a/sailfish/qml/CommentDelegate.qml +++ b/sailfish/qml/CommentDelegate.qml @@ -364,7 +364,7 @@ Item { commentPage.loadMoreChildren(model.index, model.moreChildren); } else { var clink = QMLUtils.toAbsoluteUrl("/r/" + link.subreddit + "/comments/" + link.fullname.substring(3) + - "//" + model.fullname.substring(3) + "?context=0") + "?comment=" + model.fullname.substring(3) + "&context=0"); globalUtils.openLink(clink); } } @@ -435,7 +435,7 @@ Item { textMargin: model.view === "reply" ? constant.paddingMedium : 0 height: Math.max(implicitHeight, Theme.itemSizeLarge * 2) - placeholderText: model.view === "reply" ? qsTr("Enter your reply here...") : qsTr("Enter your new comment here...") + placeholderText: model.view === "reply" ? qsTr("Enter your reply here") : qsTr("Enter your new comment here") focus: true Rectangle { @@ -445,13 +445,14 @@ Item { } } - Row { - anchors.horizontalCenter: parent.horizontalCenter + Item { + anchors { left: parent.left; right: parent.right } + height: acceptButton.height scale: editColumn.buttonScale; transformOrigin: Item.Top Button { id: acceptButton - anchors.leftMargin: constant.paddingLarge + anchors.horizontalCenter: parent.horizontalCenter text: model.view === "edit" ? qsTr("Save") : qsTr("Add") enabled: !commentManager.busy @@ -466,6 +467,28 @@ Item { } } } + IconButton { + id: cancelButton + anchors { + right: parent.right + rightMargin: constant.paddingSmall + verticalCenter: acceptButton.verticalCenter + } + + icon.source: "image://theme/icon-m-close" + icon.width: Theme.iconSizeMedium + icon.height: Theme.iconSizeMedium + enabled: !commentManager.busy + + onClicked: { + if (model.view === "new") { + commentModel.removeNewComment() + } else { + commentModel.setLocalData(model.fullname, undefined) + commentModel.setView(model.fullname, "") + } + } + } } Connections { diff --git a/sailfish/qml/CommentMenu.qml b/sailfish/qml/CommentMenu.qml index 0ba0d5b6..3a6b388b 100644 --- a/sailfish/qml/CommentMenu.qml +++ b/sailfish/qml/CommentMenu.qml @@ -117,7 +117,7 @@ FancyContextMenu { visible: !comment.isValid && (comment.rawBody === "[removed]" || comment.rawBody === "[deleted]") text: "Uncensor" onClicked: { - var link = "https://www.removeddit.com" + post.permalink + comment.fullname.substring(3); + var link = "https://www.reveddit.com" + post.permalink + comment.fullname.substring(3); globalUtils.createOpenLinkDialog(link); } } diff --git a/sailfish/qml/CommentPage.qml b/sailfish/qml/CommentPage.qml index e16ccbb8..9600512e 100644 --- a/sailfish/qml/CommentPage.qml +++ b/sailfish/qml/CommentPage.qml @@ -20,10 +20,12 @@ import QtQuick 2.0 import Sailfish.Silica 1.0 import harbour.quickddit.Core 1.0 +import Sailfish.Share 1.0 AbstractPage { id: commentPage title: qsTr("Comments") + summary: link.title busy: (commentModel.busy && commentListView.count > 0) || commentVoteManager.busy || commentManager.busy || linkVoteManager.busy property alias link: commentModel.link @@ -50,6 +52,11 @@ AbstractPage { anchors.fill: parent model: undefined + ShareAction { + id: sharer + mimeType: "text/x-url" + } + PullDownMenu { MenuItem { visible: link.author === settings.redditUsername @@ -88,6 +95,15 @@ AbstractPage { } } + MenuItem { + text: qsTr("Share") + onClicked: { + sharer.title = link.title + sharer.resources = [{ "type": "text/x-url", "linkTitle": link.title, "status": link.url.toString() }] + sharer.trigger() + } + } + MenuItem { enabled: !commentModel.busy text: qsTr("Refresh") diff --git a/sailfish/qml/DonatePage.qml b/sailfish/qml/DonatePage.qml deleted file mode 100644 index 0d1efc4b..00000000 --- a/sailfish/qml/DonatePage.qml +++ /dev/null @@ -1,107 +0,0 @@ -/* - Quickddit - Reddit client for mobile phones - Copyright (C) 2019 Sander van Grieken - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see [http://www.gnu.org/licenses/]. -*/ - -import QtQuick 2.0 -import Sailfish.Silica 1.0 - -AbstractPage { - id: donatePage - title: qsTr("Donate") - - property string _paypalLink: "https://paypal.me/sanderdonate" - property string _bitcoinAddr: "3NhheF8z8sTxpbsCVUpW6HWH8DpADoH46m" - - Flickable { - anchors.fill: parent - contentHeight: contentColumn.height - flickableDirection: Flickable.VerticalFlick - - Column { - id: contentColumn - width: parent.width - spacing: constant.paddingLarge - - QuickdditPageHeader { title: donatePage.title } - - Image { - anchors.horizontalCenter: parent.horizontalCenter - source: "img/paypal.png" - width: 64 * QMLUtils.pScale - height: width * (sourceSize.height/sourceSize.width) - } - - Label { - anchors.horizontalCenter: parent.horizontalCenter - text: qsTr("Donate via PayPal:") - } - - Text { - anchors.horizontalCenter: parent.horizontalCenter - font.pixelSize: constant.fontSizeMedium - wrapMode: Text.Wrap - textFormat: Text.RichText - onLinkActivated: globalUtils.openLink(_paypalLink); - text: constant.richtextStyle + "" + _paypalLink + "" - } - - Rectangle { - height: constant.paddingLarge - width: 1 - opacity: 0 - } - - Image { - anchors.horizontalCenter: parent.horizontalCenter - source: "img/bitcoin.png" - width: 64 * QMLUtils.pScale - height: width * (sourceSize.height/sourceSize.width) - } - - Label { - anchors.horizontalCenter: parent.horizontalCenter - text: qsTr("Donate via Bitcoin:") - } - - Image { - anchors.horizontalCenter: parent.horizontalCenter - source: "img/btc-qr.png" - width: 256 * QMLUtils.pScale - height: width * (sourceSize.height/sourceSize.width) - } - - Text { - anchors.horizontalCenter: parent.horizontalCenter - font.pixelSize: constant.fontSizeXSmall - font.family: "monospace" - wrapMode: Text.Wrap - textFormat: Text.RichText - onLinkActivated: { - QMLUtils.copyToClipboard(_bitcoinAddr); - infoBanner.alert(qsTr("Address copied to clipboard")); - } - text: constant.richtextStyle + "" + _bitcoinAddr + "" - } - - Rectangle { - height: constant.paddingLarge - width: 1 - opacity: 0 - } - } - } -} diff --git a/sailfish/qml/ImageViewPage.qml b/sailfish/qml/ImageViewPage.qml index 3aff1d11..3148b662 100644 --- a/sailfish/qml/ImageViewPage.qml +++ b/sailfish/qml/ImageViewPage.qml @@ -20,6 +20,7 @@ import QtQuick 2.0 import Sailfish.Silica 1.0 import harbour.quickddit.Core 1.0 +import Sailfish.Share 1.0 AbstractPage { id: imageViewPage @@ -48,12 +49,29 @@ AbstractPage { resizeTimer.start() } + ShareAction { + id: sharer + mimeType: "text/x-url" + } + PullDownMenu { MenuItem { text: qsTr("Save Image") enabled: imageUrl.toString() !== "" onClicked: QMLUtils.saveImage(imageUrl.toString()); } + MenuItem { + text: qsTr("Share Image") + enabled: viewer.status == Image.Ready + onClicked: { + var url; + if (imgurUrl.toString() !== "") { url = imgurUrl.toString(); console.log("Imgur "+url); } + else if (galleryUrl.toString() !== "") { url = galleryUrl.toString(); console.log("Gallery "+url); } + else if (imageUrl.toString() !== "") { url = imageUrl.toString(); console.log("Image "+url); } + sharer.resources = [{ "type": "text/x-url", "linkTitle": "Image from Reddit", "status": url.toString() }] + sharer.trigger() + } + } MenuItem { text: qsTr("URL") onClicked: globalUtils.createOpenLinkDialog(imgurUrl || galleryUrl || imageUrl.toString()); diff --git a/sailfish/qml/ImageViewer.qml b/sailfish/qml/ImageViewer.qml index e0151442..14a03511 100644 --- a/sailfish/qml/ImageViewer.qml +++ b/sailfish/qml/ImageViewer.qml @@ -79,7 +79,7 @@ Item { anchors.centerIn: parent asynchronous: true smooth: !flickable.moving - cache: true + cache: false fillMode: Image.PreserveAspectFit onScaleChanged: { diff --git a/sailfish/qml/LinkMenu.qml b/sailfish/qml/LinkMenu.qml index 6e637ca0..3dcdb31c 100644 --- a/sailfish/qml/LinkMenu.qml +++ b/sailfish/qml/LinkMenu.qml @@ -60,7 +60,7 @@ FancyContextMenu { } else if (globalUtils.redditLink(link.url)) { globalUtils.openRedditLink(link.url); } else { - pageStack.push(globalUtils.getWebViewPage(), {url: link.url}); + pageStack.push(Qt.resolvedUrl("WebViewer.qml"), {url: link.url}); } } } diff --git a/sailfish/qml/LoadingFooter.qml b/sailfish/qml/LoadingFooter.qml index a9ec5018..270d406e 100644 --- a/sailfish/qml/LoadingFooter.qml +++ b/sailfish/qml/LoadingFooter.qml @@ -58,7 +58,7 @@ Item { Label { visible: listViewItem.count > 0 - text: qsTr("Load More...") + text: qsTr("Load More…") color: constant.colorMid } diff --git a/sailfish/qml/MainPage.qml b/sailfish/qml/MainPage.qml index 8939ac92..55fe8a97 100644 --- a/sailfish/qml/MainPage.qml +++ b/sailfish/qml/MainPage.qml @@ -34,6 +34,9 @@ AbstractPage { property bool _isComplete: false + property string multireddit + property MultiredditModel multiredditModel: null + function refresh(sr, keepsection) { if (sr !== undefined) { // getting messy here :( @@ -84,19 +87,6 @@ AbstractPage { } - property bool __pushedAttached: false - - onStatusChanged: { - if (mainPage.status === PageStatus.Active && !__pushedAttached) { - // get subredditspage and push - pageStack.pushAttached(globalUtils.getNavPage()); - __pushedAttached = true; - } - if (mainPage.status === PageStatus.Inactive && __pushedAttached) { - __pushedAttached = false - } - } - SilicaListView { id: linkListView anchors.fill: parent @@ -111,7 +101,7 @@ AbstractPage { if (linkModel.location == LinkModel.Subreddit) { pageStack.push(Qt.resolvedUrl("AboutSubredditPage.qml"), {subreddit: linkModel.subreddit}); } else { - pageStack.push(Qt.resolvedUrl("AboutMultiredditPage.qml"), {multireddit: linkModel.multireddit}); + pageStack.push(Qt.resolvedUrl("AboutMultiredditPage.qml"), {multireddit: linkModel.multireddit, multiredditModel: multiredditModel}); } } } @@ -141,6 +131,10 @@ AbstractPage { text: qsTr("Refresh") onClicked: linkModel.refresh(false); } + MenuLabel { + visible: linkModel.lastRefreshedValid + text: qsTr("Last refreshed")+": "+Qt.formatDateTime(linkModel.lastRefreshedTime, Qt.SystemLocaleShortDate) + } } header: QuickdditPageHeader { title: mainPage.title } @@ -185,7 +179,7 @@ AbstractPage { linkModel.refresh(true); } - ViewPlaceholder { enabled: linkListView.count == 0 && !linkModel.busy && _isComplete; text: qsTr("Nothing here :(") } + ViewPlaceholder { enabled: linkListView.count == 0 && !linkModel.busy && _isComplete; text: qsTr("Nothing here") + ":(" } VerticalScrollDecorator {} } @@ -233,11 +227,13 @@ AbstractPage { linkModel.sectionTimeRange = ri } } + if (duplicatesOf && duplicatesOf !== "") { refreshDuplicates() - return + } else if (multireddit && multireddit !== "") { + refreshMR(multireddit) + } else { + refresh(subreddit, true); } - - refresh(subreddit, true); } } diff --git a/sailfish/qml/MultiredditsPage.qml b/sailfish/qml/MultiredditsPage.qml index 3aba1b0e..7bf899e1 100644 --- a/sailfish/qml/MultiredditsPage.qml +++ b/sailfish/qml/MultiredditsPage.qml @@ -39,9 +39,7 @@ AbstractPage { signal accepted onAccepted: { - var mainPage = globalUtils.getMainPage(); - mainPage.refreshMR(multiredditName); - pageStack.pop(mainPage); + pageStack.push(Qt.resolvedUrl("MainPage.qml"), { multireddit: multiredditName, multiredditModel: _model }) } SilicaListView { @@ -68,7 +66,7 @@ AbstractPage { MenuItem { text: qsTr("About") onClicked: { - pageStack.push(Qt.resolvedUrl("AboutMultiredditPage.qml"), {multireddit: model.name} ); + pageStack.push(Qt.resolvedUrl("AboutMultiredditPage.qml"), {multireddit: model.name, multiredditModel: _model} ); } } } diff --git a/sailfish/qml/OpenLinkDialog.qml b/sailfish/qml/OpenLinkDialog.qml index 7761fca9..efd2ae82 100644 --- a/sailfish/qml/OpenLinkDialog.qml +++ b/sailfish/qml/OpenLinkDialog.qml @@ -28,10 +28,10 @@ AbstractDialog { property string url property string source - acceptDestination: globalUtils.getWebViewPage() + acceptDestination: Qt.resolvedUrl("WebViewer.qml") onAccepted: { - pageStack.replace(globalUtils.getWebViewPage(), {url: url}); + pageStack.replace(Qt.resolvedUrl("WebViewer.qml"), {url: url}); } DialogHeader { @@ -71,11 +71,11 @@ AbstractDialog { spacing: constant.paddingMedium Button { - text: qsTr("Open in browser") + text: qsTr("Open in…") visible: url != "" onClicked: { Qt.openUrlExternally(url); - infoBanner.alert(qsTr("Launching web browser...")); + infoBanner.alert(qsTr("Launching…")); openLinkDialog.reject(); } } @@ -150,11 +150,11 @@ AbstractDialog { spacing: constant.paddingMedium Button { - text: qsTr("Open in browser") + text: qsTr("Open in…") visible: source != "" onClicked: { Qt.openUrlExternally(source); - infoBanner.alert(qsTr("Launching web browser...")); + infoBanner.alert(qsTr("Launching…")); openLinkDialog.reject(); } } diff --git a/sailfish/qml/PostButtonRow.qml b/sailfish/qml/PostButtonRow.qml index 68b9fe44..7b0e2ca1 100644 --- a/sailfish/qml/PostButtonRow.qml +++ b/sailfish/qml/PostButtonRow.qml @@ -77,7 +77,7 @@ Row { } else if (globalUtils.redditLink(link.url)) { globalUtils.openRedditLink(link.url); } else { - pageStack.push(globalUtils.getWebViewPage(), {url: link.url}); + pageStack.push(Qt.resolvedUrl("WebViewer.qml"), {url: link.url}); } } } diff --git a/sailfish/qml/SettingsPage.qml b/sailfish/qml/SettingsPage.qml index 1cd120cf..7c3ce9ef 100644 --- a/sailfish/qml/SettingsPage.qml +++ b/sailfish/qml/SettingsPage.qml @@ -167,6 +167,13 @@ AbstractPage { } } + TextSwitch { + text: qsTr("Prefer adaptive video streams") + description: qsTr("More likely to have sound, but may be less stable.") + checked: settings.preferAdaptive + onCheckedChanged: settings.preferAdaptive = checked + } + TextSwitch { text: qsTr("Loop Videos") checked: settings.loopVideos; diff --git a/sailfish/qml/SignInPage.qml b/sailfish/qml/SignInPage.qml index 4c9d4d55..4fe8d88e 100644 --- a/sailfish/qml/SignInPage.qml +++ b/sailfish/qml/SignInPage.qml @@ -75,10 +75,7 @@ Dialog { onAccessTokenSuccess: { infoBanner.alert(qsTr("Sign in successful! Welcome! :)")); inboxManager.resetTimer(); - var mainPage = globalUtils.getMainPage(); - mainPage.refresh(""); - backNavigation = true; - pageStack.pop(mainPage); + pageStack.pop(pageStack.find(function(page) { return page.objectName === "subredditsPage"; })); } } } diff --git a/sailfish/qml/SubredditDelegate.qml b/sailfish/qml/SubredditDelegate.qml index 674e10b8..12169e22 100644 --- a/sailfish/qml/SubredditDelegate.qml +++ b/sailfish/qml/SubredditDelegate.qml @@ -22,7 +22,8 @@ import Sailfish.Silica 1.0 ListItem { id: subredditDelegate - contentHeight: mainColumn.height + constant.paddingSmall + contentHeight: visible ? mainColumn.height + constant.paddingSmall : 0 + opacity: visible ? 1 : 0 Column { id: mainColumn diff --git a/sailfish/qml/SubredditsPage.qml b/sailfish/qml/SubredditsPage.qml index 1f469b99..4476cc82 100644 --- a/sailfish/qml/SubredditsPage.qml +++ b/sailfish/qml/SubredditsPage.qml @@ -25,30 +25,43 @@ AbstractPage { id: subredditsPage objectName: "subredditsPage" - readonly property string title: qsTr("Subreddits") + readonly property string title: qsTr("Quickddit") + + property string filterText: "" + onFilterTextChanged: loadSubredditsTimer.restart() property string _unsubsub - function showSubreddit(subreddit) { - var mainPage = globalUtils.getMainPage(); - mainPage.refresh(subreddit); - pageStack.navigateBack(); + Timer { + id: loadSubredditsTimer + interval: 0 + repeat: false + onTriggered:{ + checkNeedsMoreSubreddits(); + } } - function replacePage(newpage, parms) { - var mainPage = globalUtils.getMainPage(); - mainPage.__pushedAttached = false; - pageStack.replaceAbove(mainPage, newpage, parms); + Connections { + target: subredditModel + onBusyChanged: if (!subredditModel.busy) checkNeedsMoreSubreddits(); } - function getMultiredditModel() { - return multiredditModel + function checkNeedsMoreSubreddits() { + if ( (subredditListView.contentHeight <= subredditListView.height || subredditListView.atYEnd) + && quickdditManager.isSignedIn && !!subredditModel && !subredditModel.busy && subredditModel.canLoadMore ) + subredditModel.refresh(true); + } + + function showSubreddit(viewSub) { + pageStack.push(Qt.resolvedUrl("MainPage.qml"), { subreddit: viewSub } ); } onStatusChanged: { if (status === PageStatus.Activating) { - if (subredditModel.rowCount() === 0 && quickdditManager.isSignedIn) - subredditModel.refresh(false) + if (quickdditManager.isSignedIn) { + if (subredditModel.rowCount() === 0) subredditModel.refresh(false) + if (multiredditModel.rowCount() === 0) multiredditModel.refresh(false) + } } else if (status === PageStatus.Inactive) { subredditListView.headerItem.resetTextField(); subredditListView.positionViewAtBeginning(); @@ -63,24 +76,24 @@ AbstractPage { PullDownMenu { MenuItem { text: qsTr("About Quickddit") - onClicked: replacePage(Qt.resolvedUrl("AboutPage.qml")) + onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml")) } MenuItem { text: qsTr("Settings") - onClicked: replacePage(Qt.resolvedUrl("SettingsPage.qml")) + onClicked: pageStack.push(Qt.resolvedUrl("SettingsPage.qml")) } MenuItem { enabled: quickdditManager.isSignedIn text: qsTr("My Profile") - onClicked: replacePage(Qt.resolvedUrl("UserPage.qml"), {username: settings.redditUsername}); + onClicked: pageStack.push(Qt.resolvedUrl("UserPage.qml"), {username: settings.redditUsername}); } MenuItem { enabled: quickdditManager.isSignedIn text: qsTr("Messages") - onClicked: replacePage(Qt.resolvedUrl("MessagePage.qml")); + onClicked: pageStack.push(Qt.resolvedUrl("MessagePage.qml")); } } @@ -94,41 +107,58 @@ AbstractPage { QuickdditPageHeader { title: subredditsPage.title } - TextField { - id: subredditTextField - anchors { left: parent.left; right: parent.right } - placeholderText: qsTr("Go to a specific subreddit") - labelVisible: false - errorHighlight: activeFocus && !acceptableInput - inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText - // RegExp based on - validator: RegExpValidator { regExp: /^([A-Za-z0-9][A-Za-z0-9_]{2,20}|[a-z]{2})$/ } - EnterKey.enabled: acceptableInput - EnterKey.iconSource: "image://theme/icon-m-enter-accept" - EnterKey.onClicked: showSubreddit(text); + SectionHeader { + id: signedin + text: quickdditManager.isSignedIn ? qsTr("Signed in as %1").arg(settings.redditUsername) : qsTr("Not signed in") + + MouseArea { + anchors.fill: signedin + onClicked: pageStack.push(Qt.resolvedUrl("AccountsPage.qml")); + } } Repeater { id: mainOptionRepeater anchors { left: parent.left; right: parent.right } - model: [qsTr("Front Page"), qsTr("Popular"), qsTr("All"), qsTr("Browse for Subreddits..."), qsTr("Multireddits")] + model: [qsTr("Front Page"), qsTr("Popular"), qsTr("All"), qsTr("My Saved Things"), qsTr("Multireddits"), qsTr("Browse all Subreddits")] SimpleListItem { width: mainOptionRepeater.width - enabled: index == 4 ? quickdditManager.isSignedIn : true + enabled: index <= 2 || index === 5 || quickdditManager.isSignedIn text: modelData onClicked: { switch (index) { case 0: subredditsPage.showSubreddit(""); break; case 1: subredditsPage.showSubreddit("popular"); break; case 2: subredditsPage.showSubreddit("all"); break; - case 3: replacePage(Qt.resolvedUrl("SubredditsBrowsePage.qml")); break; - case 4: replacePage(Qt.resolvedUrl("MultiredditsPage.qml"), { _model: multiredditModel }); break; + case 3: pageStack.push(Qt.resolvedUrl("UserPage.qml"), { username: settings.redditUsername, section: UserThingModel.SavedSection }); break; + case 4: pageStack.push(Qt.resolvedUrl("MultiredditsPage.qml"), { _model: multiredditModel }); break; + case 5: pageStack.push(Qt.resolvedUrl("SubredditsBrowsePage.qml")); break; } } } } + Item { + width: 1 + height: Theme.paddingMedium + } + + TextField { + id: subredditTextField + onTextChanged: filterText = (text || "").toLowerCase() + anchors { left: parent.left; right: parent.right } + placeholderText: qsTr("Go to a specific subreddit") + labelVisible: false + errorHighlight: activeFocus && !acceptableInput + inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText + // RegExp based on + validator: RegExpValidator { regExp: /^([A-Za-z0-9][A-Za-z0-9_]{2,20}|[a-z]{2})$/ } + EnterKey.enabled: acceptableInput + EnterKey.iconSource: "image://theme/icon-m-enter-accept" + EnterKey.onClicked: showSubreddit(text); + } + SectionHeader { id: sectionheader visible: quickdditManager.isSignedIn @@ -147,6 +177,9 @@ AbstractPage { onClicked: subredditsPage.showSubreddit(model.displayName); showMenuOnPressAndHold: true + readonly property string normalizedName: (model.displayName || "").toLowerCase() + readonly property bool matches: filterText.length === 0 || normalizedName.indexOf(filterText) === 0 + visible: matches menu: Component { ContextMenu { @@ -173,8 +206,7 @@ AbstractPage { } onAtYEndChanged: { - if (atYEnd && count > 0 && quickdditManager.isSignedIn && !!subredditModel && !subredditModel.busy && subredditModel.canLoadMore) - subredditModel.refresh(true); + checkNeedsMoreSubreddits() } add: Transition { @@ -206,9 +238,8 @@ AbstractPage { target: quickdditManager onSignedInChanged: { if (quickdditManager.isSignedIn) { - // only load the list if there is an existing list (otherwise wait for page to activate, see above) - if (subredditModel.rowCount() === 0) - return; + // only load the list if the page is active + if (status === PageStatus.Inactive) return; subredditModel.refresh(false) multiredditModel.refresh(false) } else { diff --git a/sailfish/qml/UserPage.qml b/sailfish/qml/UserPage.qml index ea9d7cc0..d483d249 100644 --- a/sailfish/qml/UserPage.qml +++ b/sailfish/qml/UserPage.qml @@ -17,6 +17,7 @@ */ import QtQuick 2.0 +import QtGraphicalEffects 1.0 import Sailfish.Silica 1.0 import harbour.quickddit.Core 1.0 @@ -25,6 +26,7 @@ AbstractPage { title: qsTr("User %1").arg("/u/" + username) property string username; + property alias section: userThingModel.section property bool myself: settings.redditUsername === username && username !== "" @@ -75,10 +77,38 @@ AbstractPage { visible: userThingModel.section === UserThingModel.OverviewSection anchors.left: parent.left anchors.margins: constant.paddingMedium + spacing: constant.paddingMedium - Image { - source: "image://theme/icon-m-person" + Item { + id: avatarContainer + width: Theme.itemSizeExtraLarge + height: width anchors.verticalCenter: parent.verticalCenter + layer.enabled: true + layer.effect: OpacityMask { + maskSource: Rectangle { + width: avatarContainer.width + height: avatarContainer.height + radius: width/2 + } + } + + Image { + id: avatarImage + anchors.fill: parent + source: userManager.user.iconImg + asynchronous: true + fillMode: Image.PreserveAspectCrop + smooth: true + visible: status === Image.Ready + } + + Image { + anchors.fill: parent + source: "image://theme/icon-m-person" + fillMode: Image.PreserveAspectFit + visible: avatarImage.status !== Image.Ready + } } Text { @@ -264,7 +294,7 @@ AbstractPage { UserThingModel { id: userThingModel manager: quickdditManager - section: myself ? UserThingModel.SavedSection : UserThingModel.OverviewSection + section: UserThingModel.OverviewSection onError: infoBanner.warning(errorString); } diff --git a/sailfish/qml/UserPageCommentDelegate.qml b/sailfish/qml/UserPageCommentDelegate.qml index e7a0a4e8..93c2c289 100644 --- a/sailfish/qml/UserPageCommentDelegate.qml +++ b/sailfish/qml/UserPageCommentDelegate.qml @@ -84,13 +84,6 @@ Item { font.bold: true text: qsTr("Comment in %1").arg("/r/" + model.subreddit) } - Text { - font.pixelSize: constant.fontSizeDefault - color: mainItem.enabled ? (mainItem.highlighted ? Theme.secondaryHighlightColor : constant.colorMid) - : constant.colorDisabled - elide: Text.ElideRight - text: " · " + model.created - } } Text { @@ -139,7 +132,21 @@ Item { color: Theme.secondaryHighlightColor } } - + Row { + Text { + font.pixelSize: constant.fontSizeSmall + color: mainItem.enabled ? (mainItem.highlighted ? Theme.secondaryHighlightColor : constant.colorMid) + : constant.colorDisabled + text: model.isScoreHidden ? qsTr("[score hidden]") + : (model.score < 0 ? "-" : "") + qsTr("%n pts", "", Math.abs(model.score)) + } + Text { + font.pixelSize: constant.fontSizeSmall + color: mainItem.enabled ? (mainItem.highlighted ? Theme.secondaryHighlightColor : constant.colorMid) + : constant.colorDisabled + text: " · " + model.created + } + } } Image { diff --git a/sailfish/qml/VideoViewPage.qml b/sailfish/qml/VideoViewPage.qml index 9e72e061..3d56bf01 100644 --- a/sailfish/qml/VideoViewPage.qml +++ b/sailfish/qml/VideoViewPage.qml @@ -116,6 +116,26 @@ AbstractPage { } } + Text { + anchors { + top: parent.top + left: parent.left + right: parent.right + leftMargin: constant.paddingLarge + rightMargin: constant.paddingLarge + topMargin: constant.paddingLarge + } + text: ( mediaPlayer.metaData.videoCodec !== undefined ? mediaPlayer.metaData.videoCodec + " | " : "" ) + + ( mediaPlayer.metaData.audioCodec !== undefined ? mediaPlayer.metaData.audioCodec + " | " : "" ) + + ( mediaPlayer.metaData.resolution !== undefined ? mediaPlayer.metaData.resolution.width + " x " + mediaPlayer.metaData.resolution.height : "") + visible: mediaPlayer.metaData !== undefined + font.pixelSize: constant.fontSizeSmall + color: constant.colorHi + wrapMode: Text.Wrap + horizontalAlignment: Text.AlignHCenter + opacity: playPauseButton.opacity + } + Slider { id: progressBar enabled: mediaPlayer.seekable && opacity > 0 @@ -135,6 +155,19 @@ AbstractPage { } } + Text { + anchors { + left: progressBar.left + bottom: progressBar.top + leftMargin: progressBar.leftMargin + bottomMargin: -progressBar._extraPadding + } + text: globalUtils.formatDuration(Math.floor(mediaPlayer.position/1000)) + font.pixelSize: constant.fontSizeLarge + color: constant.colorLight + opacity: playPauseButton.opacity + } + Text { anchors { right: progressBar.right @@ -197,46 +230,71 @@ AbstractPage { Connections { target: python onVideoInfo: { - var urls = {} - var format var i + var preferLoDef = settings.preferredVideoSize === Settings.VS360 + var currUrl + var currHeight = 0 + var adaptiveUrl + var adaptiveCurrHeight = 0 var formats = python.info["_type"] === "playlist" ? python.info["entries"][0]["formats"] : python.info["formats"] - if (formats === undefined) - fail(qsTr("Problem finding stream URL")) - for (i = 0; i < formats.length; i++) { - format = formats[i] - if (~["mp4"].indexOf(format["ext"]) && ~[360,480].indexOf(format["height"])) { - console.log("format selected by ext " + format["ext"] + " and height " + format["height"]) - urls["360"] = format["url"] + + function checkUrl(url, height, adaptive, msg) { + if (height === undefined) return + var desiredHeight = preferLoDef?360:720 + if (Math.abs(desiredHeight - height) >= + Math.abs(desiredHeight - (adaptive ? adaptiveCurrHeight : currHeight))) return; + // better match + if (adaptive) { + adaptiveCurrHeight = height + adaptiveUrl = url; + } else { + currHeight = height + currUrl = url; } + console.log(msg); } - for (i = 0; i < formats.length; i++) { - format = formats[i] - if (~["mp4"].indexOf(format["ext"]) && ~[720].indexOf(format["height"])) { - console.log("format selected by ext " + format["ext"] + " and height " + format["height"]) - urls["720"] = format["url"] - } + + function isHlsManifest(f) { + var manifest = f["manifest_url"] || "" + var url = f["url"] || "" + var protocol = f["protocol"] || "" + var isDash = manifest.indexOf(".mpd") > -1 || url.indexOf(".mpd") > -1 || protocol.indexOf("dash") > -1 + var isHls = manifest.indexOf(".m3u8") > -1 || url.indexOf(".m3u8") > -1 || protocol.indexOf("m3u8") === 0 || protocol.indexOf("hls") === 0 + return isHls && !isDash } + + if (formats === undefined) + formats = [ python.info ] + for (i = 0; i < formats.length; i++) { - format = formats[i] + var format = formats[i] + + if (isHlsManifest(format)) { + var manifestUrl = format["manifest_url"] || format["url"] + var height = format["height"] + checkUrl(manifestUrl, height, true, "Adaptive stream selected: " + format["format_id"] + ". Height:"+height) + } + // selection by format_id for youtube, vimeo, streamable // mp4-mobile: 360p (streamable.com) // 18: 360p,mp4,acodec mp4a.40.2,vcodec avc1.42001E (youtube) // 22: 720p,mp4,acodec mp4a.40.2,vcodec avc1.64001F (youtube) // http-360p: 360p (vimeo) // http-720p, 720p (vimeo) - if (~["mp4-mobile","18","http-360p"].indexOf(format["format_id"])) { - console.log("format selected by id " + format["format_id"]) - urls["360"] = format["url"] - } - if (~["22","http-720p"].indexOf(format["format_id"])) { - console.log("format selected by id " + format["format_id"]) - urls["720"] = format["url"] + if (~["mp4-mobile","18","http-360p","22","http-720p"].indexOf(format["format_id"])) { + if (format["format_id"] !== undefined && format["format_id"].indexOf("av01") > -1) continue; // poorly supported + var idHeight = ~["22","http-720p"].indexOf(format["format_id"]) ? 720 : 360 + checkUrl(format["url"], idHeight, false, "format selected by id " + format["format_id"]) + } else if (~["mp4","webm"].indexOf(format["ext"]) && ~[360,480,720].indexOf(format["height"])) { + if (format["format_id"] !== undefined && format["format_id"].indexOf("av01") > -1) continue; // poorly supported + checkUrl(format["url"], format["height"], false, "format selected by ext " + format["ext"] + " and height " + format["height"]) } } - if (python.info["extractor"].indexOf("Reddit") === 0) + + // Special Reddit video hack + if (python.info["extractor"].indexOf("Reddit") === 0) { for (i = 0; i < formats.length; i++) { - format = formats[i] + var format = formats[i] // selection by height if format_id is like hls-*, for v.redd.it (with 'deref' HLS stream by string replace, so only works for v.redd.it) if (format["format_id"].indexOf("hls-") !== 0) continue @@ -244,38 +302,37 @@ AbstractPage { continue // acodec none,vcodec one of avc1.4d001f,avc1.4d001e,avc1.42001e if (format["height"] <= 480) { - console.log("format selected by id " + format["format_id"] + " and height <= 480") - urls["360"] = format["url"].replace("_v4.m3u8",".ts") // 'deref' by string replace + checkUrl(format["url"].replace("_v4.m3u8",".ts"), format["height"], + false, "Reddit video format selected by id " + format["format_id"] + " and height <= 480") // 'deref' by string replace } else { - console.log("format selected by id " + format["format_id"] + " and height > 480") - urls["720"] = format["url"].replace("_v4.m3u8",".ts") // 'deref' by string replace - } - } - if (urls["360"] === undefined && urls["720"] === undefined) { - console.log("fallback, checking on ext=mp4") - for (i = 0; i < formats.length; i++) { - format = formats[i] - if (~["mp4"].indexOf(format["ext"])) { - console.log("format selected: " + format["format_id"]) - urls["other"] = format["url"] + console.log() + checkUrl(format["url"].replace("_v4.m3u8",".ts"), format["height"], + false, "Reddit video format selected by id " + format["format_id"] + " and height > 480") // 'deref' by string replace } } - if (urls["other"] === undefined) - urls["other"] = formats[0]["url"] } - if (settings.preferredVideoSize === Settings.VS360) { - if (urls["360"] === undefined) - console.log("360p selected but fallback to 720p") - mediaPlayer.source = urls["360"] !== undefined ? urls["360"] : urls["720"] !== undefined ? urls["720"] : urls["other"] - } else { - if (urls["720"] === undefined) - console.log("720p selected but fallback to 360p") - mediaPlayer.source = urls["720"] !== undefined ? urls["720"] : urls["360"] !== undefined ? urls["360"] : urls["other"] + // Return most preferred URL + if (settings.preferAdaptive && adaptiveUrl !== undefined) { + mediaPlayer.source = adaptiveUrl + return + } + if (currUrl !== undefined) { + mediaPlayer.source = currUrl + return } - if (mediaPlayer.source === undefined) - fail(qsTr("Problem finding stream URL")) + // Else find any mp4 or webm URL and try that + for (i = 0; i < formats.length; i++) { + var format = formats[i] + if (~["mp4","webm"].indexOf(format["ext"])) { + console.log("Fallback format selected: " + format["format_id"]) + mediaPlayer.source = format["url"] + return; + } + } + // Run out of options. Fail. + fail(qsTr("Problem finding stream URL")) } onError: { diff --git a/sailfish/qml/WideText.qml b/sailfish/qml/WideText.qml index 4f299bad..90558f6f 100644 --- a/sailfish/qml/WideText.qml +++ b/sailfish/qml/WideText.qml @@ -16,22 +16,121 @@ along with this program. If not, see [http://www.gnu.org/licenses/]. */ -import QtQuick 2.0 +import QtQuick 2.6 import Sailfish.Silica 1.0 Item { id: rootItem property string body + property string displayBody: "" property ListItem listItem + property var inlineMedia: [] signal clicked - height: commentLoader.height + height: childrenRect.height + Column { + spacing: Theme.paddingSmall + id: commentCol + Loader { + id: commentLoader + sourceComponent: normalCommentComponent + } + Repeater { + model: inlineMedia + delegate: Loader { + width: commentCol.width + property var media: modelData + sourceComponent: media.type === "gif" ? gifDelegate : imgDelegate + onLoaded: { + item.media = media; + console.log("Loaded "+media.type+" "+media.source+" width:"+media.widthHint); + } + } + } + } - Loader { - id: commentLoader - sourceComponent: normalCommentComponent + function updateImages() { + var newInlineMedia = [] + var updatedBody = body || "" + // Look for gifs + var regex = /<[a-z\s]*="(https?:\/\/[^\.]+\.redd\.it\/([^\.]*\.gif)[^"]*)"[^>]*[^>]*>/gi + var match; + while ((match = regex.exec(updatedBody)) !== null) { + console.log("Found gif: "+match[2]); + newInlineMedia.push({ + type: "gif", + source: match[1].replace(/&/g, "&") + }) + } + updatedBody = updatedBody.replace(regex, ""); + // Look for linked images + regex = /href="(https?:\/\/preview\.redd\.it\/([^\.]*\.[a-z]{3,4})[^"]*width=([0-9]+)[^"]*)"/gi + while ((match = regex.exec(updatedBody)) !== null) { + console.log("Found preview image: "+match[2]); + var re = new RegExp(">https:\/\/preview.redd.it\/" + match[2] + "[^<]*<", "i"); + updatedBody = updatedBody.replace(re, ">https://preview.redd.it/"+match[2]+"<"); + newInlineMedia.push({ + type: "image", + source: match[1].replace(/&/g, "&"), + widthHint: parseInt(match[3], 10) + }) + } + + inlineMedia = newInlineMedia + if (displayBody !== updatedBody) + displayBody = updatedBody + } + + Component.onCompleted: { + updateImages() + } + + onBodyChanged: updateImages() + + Component { + id: gifDelegate + AnimatedImage { + id: gifItem + property var media + width: commentCol.width + height: implicitWidth > 0 ? Math.round(width * implicitHeight / implicitWidth) : 0 + source: media ? media.source : "" + asynchronous: true + cache: true + fillMode: Image.PreserveAspectFit + + MouseArea { + anchors.fill: parent + onClicked: { + if (!media) + return; + globalUtils.openImageViewPage(media.source); + } + } + } + } + + Component { + id: imgDelegate + Image { + property var media + width: media && media.widthHint ? Math.min(commentCol.width, media.widthHint) : commentCol.width + source: media ? media.source : "" + asynchronous: true + cache: true + fillMode: Image.PreserveAspectFit + + MouseArea { + anchors.fill: parent + onClicked: { + if (!media) + return; + globalUtils.openImageViewPage(media.source); + } + } + } } Component { @@ -42,7 +141,10 @@ Item { // viewhack to render richtext wide again after orientation goes horizontal (?) property bool oriChanged: false onWidthChanged: { - if (oriChanged) text = text + " "; + if (oriChanged) { + text = text + " "; + updateImages(); + } } Connections { target: appWindow @@ -55,7 +157,7 @@ Item { : constant.colorDisabled wrapMode: Text.Wrap textFormat: Text.RichText - text: constant.contentStyle(listItem.enabled) + body + text: constant.contentStyle(listItem.enabled) + displayBody onLinkActivated: globalUtils.openLink(link); Component.onCompleted: { @@ -90,7 +192,10 @@ Item { // viewhack to render richtext wide again after orientation goes horizontal (?) property bool oriChanged: false onWidthChanged: { - if (oriChanged) text = text + " "; + if (oriChanged) { + text = text + " "; + updateImages(); + } } Connections { target: appWindow @@ -103,7 +208,7 @@ Item { : constant.colorDisabled wrapMode: Text.Wrap textFormat: Text.RichText - text: constant.contentStyle(listItem.enabled) + body + text: constant.contentStyle(listItem.enabled) + displayBody onLinkActivated: globalUtils.openLink(link); } } diff --git a/sailfish/qml/cover/CoverPage.qml b/sailfish/qml/cover/CoverPage.qml index c485cfdd..e1621e3b 100644 --- a/sailfish/qml/cover/CoverPage.qml +++ b/sailfish/qml/cover/CoverPage.qml @@ -40,8 +40,20 @@ CoverBackground { opacity: 0.2 } - CoverPlaceholder { - text: pageStack.currentPage.title || "" + Text { + id: coverTitle + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + width: parent.width - (Theme.paddingLarge * 2) + height: parent.height - (Theme.paddingLarge * 2) + text: pageStack.currentPage.summary || pageStack.currentPage.title || "" + wrapMode: Text.WordWrap + elide: Text.ElideRight + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: Theme.primaryColor + font.pixelSize: Theme.fontSizeLarge } - } diff --git a/sailfish/qml/img/bitcoin.png b/sailfish/qml/img/bitcoin.png deleted file mode 100644 index cf55a4be..00000000 Binary files a/sailfish/qml/img/bitcoin.png and /dev/null differ diff --git a/sailfish/qml/img/btc-qr.png b/sailfish/qml/img/btc-qr.png deleted file mode 100644 index 48b4edb5..00000000 Binary files a/sailfish/qml/img/btc-qr.png and /dev/null differ diff --git a/sailfish/qml/img/paypal.png b/sailfish/qml/img/paypal.png deleted file mode 100644 index 9cf8465a..00000000 Binary files a/sailfish/qml/img/paypal.png and /dev/null differ diff --git a/sailfish/qml/main.qml b/sailfish/qml/main.qml index 41c79387..3d0ff734 100644 --- a/sailfish/qml/main.qml +++ b/sailfish/qml/main.qml @@ -24,9 +24,13 @@ import harbour.quickddit.Core 1.0 ApplicationWindow { id: appWindow - initialPage: Component { MainPage { } } + initialPage: Component { SubredditsPage { } } cover: Qt.resolvedUrl("cover/CoverPage.qml"); + Component.onCompleted: { + pageStack.animatorPush("MainPage.qml", {}, PageStackAction.Immediate); + } + Python { id: python @@ -57,6 +61,10 @@ ApplicationWindow { if (result === undefined) { return; } + if (/^https?:\/\/\S+\-silent.(mp4|avi|mkv|webm)/.test(result.url) { + /* Workaround that youtube-dl returns a url with -silent.suffix here */ + result.url = result.url.replace('-silent', ''); + } console.log(JSON.stringify(result,null,4)) info = result @@ -95,7 +103,7 @@ ApplicationWindow { return true; } else if (/^https?:\/\/(www\.)?bitchute\.com\/.+/.test(url)) { return true; - } else if (/^https?:\/\/(www\.)?redgifs\.com\/.+/.test(url)) { + } else if (/^https?:\/\/((www|v[0-9])\.)?redgifs\.com\/.+/.test(url)) { return true; } else { return false; @@ -190,44 +198,11 @@ ApplicationWindow { InfoBanner { id: infoBanner } - property QtObject webViewPage: null - property Component __webViewPage: Component { - WebViewer {} - } - - property QtObject subredditsPage - property Component __subredditsPage: Component { - SubredditsPage {} - } // A collections of global utility functions QtObject { id: globalUtils - property Component __openLinkDialogComponent: null - - function getMainPage() { - return pageStack.find(function(page) { return page.objectName === "mainPage"; }); - } - - function getWebViewPage() { - if (webViewPage === null) { - webViewPage = __webViewPage.createObject(appWindow); - } - return webViewPage; - } - - function getNavPage() { - if (subredditsPage == undefined) { - subredditsPage = __subredditsPage.createObject(appWindow); - } - return subredditsPage; - } - - function getMultiredditModel() { - return getNavPage().getMultiredditModel() - } - function previewableVideo(url) { if (python.isUrlSupported(url)) { return true; @@ -288,53 +263,49 @@ ApplicationWindow { var params = {} if (/^(\/r\/\w+)?\/comments\/\w+/.test(redditLink.path)) - pushOrReplace(Qt.resolvedUrl("CommentPage.qml"), {linkPermalink: url}); + pageStack.push(Qt.resolvedUrl("CommentPage.qml"), {linkPermalink: url}); else if (/^\/r\/(\w+)/.test(redditLink.path)) { var path = redditLink.path.split("/"); params["subreddit"] = path[2]; if (path[3] === "search") { if (redditLink.queryMap["q"] !== undefined) params["query"] = redditLink.queryMap["q"] - pushOrReplace(Qt.resolvedUrl("SearchDialog.qml"), params); + pageStack.push(Qt.resolvedUrl("SearchDialog.qml"), params); + return; + } + + if (path[3] === "s" ) { // Share link + if (!QMLUtils.resolveRedditShareUrl(url)) + infoBanner.alert(qsTr("Unable to resolve reddit share link")); return; } if (path[3] !== undefined && path[3] !== "") params["section"] = path[3]; - pushOrReplace(Qt.resolvedUrl("MainPage.qml"), params); + pageStack.push(Qt.resolvedUrl("MainPage.qml"), params); } else if (/^\/u(ser)?\/([A-Za-z0-9_-]+)/.test(redditLink.path)) { var username = redditLink.path.split("/")[2]; - pushOrReplace(Qt.resolvedUrl("UserPage.qml"), {username: username}); + pageStack.push(Qt.resolvedUrl("UserPage.qml"), {username: username}); } else if (/^\/message\/compose/.test(redditLink.path)) { params["recipient"] = redditLink.queryMap["to"] if (redditLink.queryMap["message"] !== null) params["message"] = redditLink.queryMap["message"] if (redditLink.queryMap["subject"] !== null) params["subject"] = redditLink.queryMap["subject"] - pushOrReplace(Qt.resolvedUrl("SendMessagePage.qml"), params); + pageStack.push(Qt.resolvedUrl("SendMessagePage.qml"), params); } else if (/^\/search/.test(redditLink.path)) { if (redditLink.queryMap["q"] !== undefined) params["query"] = redditLink.queryMap["q"] - pushOrReplace(Qt.resolvedUrl("SearchDialog.qml"), params); + pageStack.push(Qt.resolvedUrl("SearchDialog.qml"), params); } else infoBanner.alert(qsTr("Unsupported reddit url")); } - function pushOrReplace(page, params) { - if (pageStack.currentPage.objectName === "subredditsPage") { - var mainPage = globalUtils.getMainPage(); - mainPage.__pushedAttached = false; - pageStack.replaceAbove(mainPage, page, params); - } else { - pageStack.push(page, params) - } - } - function parseRedditLink(url) { var shortLinkRe = /^https?:\/\/redd.it\/([^/]+)\/?/.exec(url); var linkRe = /^(https?:\/\/(\w+\.)?reddit.com)?(\/[^?]*)(\?.*)?/.exec(url); if (linkRe === null && shortLinkRe === null) { - return null; + return { path: "" }; } var link = {} @@ -488,8 +459,8 @@ ApplicationWindow { if (result.length > 0) QMLUtils.publishNotification( result[0].subject, - "in /r/" + result[0].subreddit + " by " + result[0].author - + (result.length === 1 ? "" : qsTr(" and %1 other").arg(result.length-1)), + qsTr("in /r/%1 by %2").arg(result[0].subreddit).arg(result[0].author) + + (result.length === 1 ? "" : " " + qsTr("and %1 other").arg(result.length-1)), result.length); } @@ -499,7 +470,7 @@ ApplicationWindow { QMLUtils.publishNotification( messages[i].author !== "" ? qsTr("Message from %1").arg(messages[i].author) - : qsTr("Message from %1").arg("r/" + messages[i].subreddit), + : qsTr("Message from %1").arg("/r/" + messages[i].subreddit), messages[i].rawBody, 1); } @@ -527,7 +498,7 @@ ApplicationWindow { if (pageStack.currentPage.objectName === "messagePage") { pageStack.currentPage.refresh(); } else { - pageStack.push(Qt.resolvedUrl("MessagePage.qml")); + pageStack.push(Qt.resolvedUrl("MessagePage.qml"), { section: MessageModel.AllSection }); } appWindow.activate(); @@ -547,6 +518,12 @@ ApplicationWindow { if (globalUtils.redditLink(QMLUtils.clipboardText)) clipboardNotifier.show() } + onRedditShareUrlResolved: { + globalUtils.openRedditLink(resolvedUrl); + } + onRedditShareUrlFailed: { + infoBanner.alert(qsTr("Unable to resolve reddit share link") + "\n" + errorString); + } } } diff --git a/sailfish/translations/harbour-quickddit-cs.ts b/sailfish/translations/harbour-quickddit-cs.ts index 0724d031..906a04fa 100644 --- a/sailfish/translations/harbour-quickddit-cs.ts +++ b/sailfish/translations/harbour-quickddit-cs.ts @@ -1,4 +1,6 @@ - + + + AboutMultiredditManager @@ -20,38 +22,38 @@ O %1 - - + + Add Subreddit Přidat subreddit - + Description Popis - + No description Bez popisu - + Subreddits Subreddity - + Go to %1 Jdi k %1 - + Remove Odstranit - + Enter subreddit name Zadejte název subredditu @@ -66,49 +68,44 @@ Quickddit - A free and open source Reddit client for mobile phones - + - + App icon by Andrew Zhilin Icon aplikace od Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Překladatel - + Current language translation by %1 Aktuální jazyk přeložen od %1 - + Licensed under GNU GPLv3+ Licencováno podle GNU GPLv3+ - + Source Zdroj - + License Licence - + Translations Překlady - - - Donate! - - AboutSubredditPage @@ -145,12 +142,20 @@ %n subscribers - + + + + + %n active users - + + + + + @@ -175,7 +180,7 @@ GoldRestricted - + @@ -190,7 +195,7 @@ Self posts only - + @@ -205,7 +210,7 @@ Banned - + @@ -231,184 +236,46 @@ AccountsPage - + Accounts - + - + Remove %1 account - + - + Activate - + - + Remove - + Odstranit - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here - - - - - SettingsPage - - - App Settings - Nastavení aplikace - - - - UX - - - - - Font Size - Velikost písma - - - - Tiny - Drobný - - - - Small - Malý - - - - Medium - Střední - - - - Large - Velký - - - - Device Orientation - Orientace zařízení - - - - Automatic - Automatický - - - - Portrait only - Pouze portrét - - - - Landscape only - Pouze na šířku - - - - Thumbnail Size - Velikost miniatur - - - - Auto - Auto - - - - Thumbnail Link Type Indicator - - - - - Comments Tap To Hide - - - - - Notifications - Oznámení - - - - Check Messages - Zkontrolujte zprávy - - - - Media - + - - Preferred Video Size - - - - - Loop Videos - - - - - Connection - - - - - Use Tor - - - - - When enabled, please make sure Tor is installed and active. - - - - - Account - - - - - Signed in to Reddit as - - - - - Not signed in - - - - - Sign out - + + You have signed out from Reddit + - + Sign in to Reddit - + - - You have signed out from Reddit - - - - - Accounts - + + Sign out + @@ -416,37 +283,49 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Gilded - + [score hidden] - + %n pts - + + + + + Load %n hidden comments - Naplnit %n skrytý komentářNaplnit %n skryté komentářeNaplnit %n skrytých komentářůNaplnit %n skrytých komentářů + + Naplnit %n skrytý komentář + Naplnit %n skryté komentáře + Naplnit %n skrytých komentářů + Continue this thread - + Show %n collapsed comments - Zobrazit %n sbalený komentářZobrazit %n sbalené komentářeZobrazit %n sbalených komentářůZobrazit %n sbalených komentářů + + Zobrazit %n sbalený komentář + Zobrazit %n sbalené komentáře + Zobrazit %n sbalených komentářů + @@ -465,23 +344,23 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - + Enter your reply here + - Enter your new comment here... - Zadejte svůj nový komentář... + Enter your new comment here + - + Save - + - + Add - + @@ -517,147 +396,134 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - + Edit - + Delete - + CommentPage - + Comments Komentáře - + Best - + - + Top - + - + New - + - + Hot - + - + Controversial - + - + Old - + - + Edit Post - + - - + + Sort - + - + Add comment Přidat komentář - + Refresh - + - + Viewing a single comment's thread Prohlížení vlákna jediného komentáře - + View All Comments Zobrazit vše komentáře - + Deleting comment Smazani komentáře - - - DonatePage - - - Donate - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - + + Share + ImageViewPage - + Image - + - + Save Image - + - + URL - + - + Error loading image - + - + Image saved to gallery - + - + Image save failed! - + + + + + Share Image + @@ -665,12 +531,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Unable to get Imgur ID from the url: %1 - + Imgur API returns no image - + @@ -678,12 +544,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis The link has been added - + The link text has been changed - + @@ -691,64 +557,69 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Delete - + Hide - + LoadingFooter - Load More... - + Load More… + MainPage - + About %1 - + O %1 - + New Post - + - - + + Section - + - + Search - + - + Refresh - + + + + + Last refreshed + - + Delete link - + - + Hide link - + - - Nothing here :( - + + Nothing here + @@ -756,22 +627,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %1 from %2 - + in %1 - + to %1 - + from %1 - + @@ -779,22 +650,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - + Delete - + Mark As Read - + Mark As Unread - + @@ -803,17 +674,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Messages - + All - + Unread - + @@ -823,49 +694,49 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Post Replies - + Sent - + Username Mentions - + New Message - + Section - + Refresh - + Deleting message - + Nothing here :( - + Message sent - + @@ -873,7 +744,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Moderators - + Moderátoři @@ -881,22 +752,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddits - + - + Refresh - + - + About O - + Nothing here :( - + @@ -904,41 +775,41 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Open URL - + - Open in browser - + Open in… + - Launching web browser... - + Launching… + Copy URL - + URL copied to clipboard - + Open in Kodi - + Source - + Zdroj @@ -946,57 +817,82 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + NSFW - + NSFW Promoted - + Gilded - + Archived - + Archivováno Locked - + submitted %1 by %2 - + to %1 - + %n crossposts - + + + + + %n points - + + + + + %n comments - + + + + + + + + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + @@ -1004,22 +900,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Search - + Enter search query - + Search for - + Posts - + @@ -1042,27 +938,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Search Result: %1 - + Relevance - + New - + Hot - + Top - + @@ -1072,54 +968,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis All time - + This hour - + Today - + This week - + This month - + This year - + Search Again - + Time Range - + Sort - + Refresh - + @@ -1128,66 +1024,66 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Hot - + New - + Rising - + Controversial - + Top - + Best - + Hour - + Day - + Week - + Month - + Year - + All time - + @@ -1195,47 +1091,47 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis New Post - + Edit Post - + Post Title - + Self Post - + Post URL - + Post Text - + Flair - + Submit - + Save - + @@ -1243,65 +1139,194 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis New Message - + Reply Message - + Recipient - + to moderators of - + to - + Subject - + Message - + Send - + + + + + SettingsPage + + + UX + + + + + Font Size + Velikost písma + + + + Tiny + Drobný + + + + Small + Malý + + + + Medium + Střední + + + + Large + Velký + + + + Device Orientation + Orientace zařízení + + + + Automatic + Automatický + + + + Portrait only + Pouze portrét + + + + Landscape only + Pouze na šířku + + + + Thumbnail Size + Velikost miniatur + + + + Auto + Auto + + + + Thumbnail Link Type Indicator + + + + + Comments Tap To Hide + + + + + Notifications + Oznámení + + + + Check Messages + Zkontrolujte zprávy + + + + Media + + + + + Preferred Video Size + + + + + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + + + + Loop Videos + + + + + Connection + + + + + Use Tor + + + + + When enabled, please make sure Tor is installed and active. + + + + + Accounts + + + + + Settings + SignInPage - + + Sign in to Reddit - + - + Cancel - + - - Reload - - - - + Sign in successful! Welcome! :) - + @@ -1309,35 +1334,39 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n subscribers - + + + + + SubredditDelegate - + NSFW - + NSFW - + Contributor - + Přispěvatel - + Banned - + - + Mod - + Mod - + Muted - + Tlumené @@ -1376,113 +1405,128 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Section - + Refresh - + About - + O Subscribe - + Abonovat Unsubscribe - + Odhlásit odběr Nothing here :( - + You have %2 from %1 - + SubredditsPage - - Subreddits - Subreddity - - - + About Quickddit - + - + Settings - + - + My Profile - + - + Messages - + - + Go to a specific subreddit Přejděte na konkrétní subreddit - + Front Page - + + + + + Quickddit + - + + Signed in as %1 + + + + + Not signed in + + + + Popular - + - + All - + - - Browse for Subreddits... - Hledat subreddity... + + Multireddits + - - Multireddits - + + My Saved Things + + + + + Browse all Subreddits + - + Subscribed Subreddits Abonnované subreddity - + About - + O - + Unsubscribe - + Odhlásit odběr - + You have unsubscribed from %1 Vy jste se odhlásil od %1 @@ -1490,128 +1534,128 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis UserPage - + User %1 - + - - + + Overview - + - - + + Comments Komentáře - - + + Submitted - + - + Upvoted - + - + Downvoted - + - + Saved Things - + - + Section - + - + Send Message - + - + Refresh - + - + My Profile - + - + User Profile - + - + Friend - + - + Gold - + - + Email Verified - + - + Mod - + Mod - + No Robots - + - + %1 link karma - + - + %1 comment karma %1 komentář karma - + created %1 - + - + Delete - + - + Delete link - + - + Nothing here :( - + - + Message sent - + @@ -1619,45 +1663,59 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Gilded - + Comment in %1 Komentář v %1 + + + [score hidden] + + + + + %n pts + + + + + + UserPageLinkDelegate Sticky - + NSFW - + NSFW Promoted - + Gilded - + Locked - + @@ -1665,37 +1723,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Now - + Just now - + %n mins ago - + + + + + %n hours ago - + + + + + %n days ago - + + + + + %n months ago - + + + + + %n years ago - + + + + + @@ -1703,106 +1781,120 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - + URL - + Error loading video - + - - + Problem finding stream URL - + - + youtube-dl error: %1 - + WebViewer - + WebViewer - + - + Copy URL - + - + URL copied to clipboard - + - + Open in browser - + - + Back - + - + Forward - + main - + Unsupported reddit url - + - + Unsupported image url - + - + Unsupported video url - + - + Please log in again - + - - and %1 other - + + in /r/%1 by %2 + - - + + and %1 other + + + + + Message from %1 - + - + New message from %1 - + - + %n new messages 0 - + + + + + + + + + + Unable to resolve reddit share link + diff --git a/sailfish/translations/harbour-quickddit-de.ts b/sailfish/translations/harbour-quickddit-de.ts index 9d165d4b..2425874c 100644 --- a/sailfish/translations/harbour-quickddit-de.ts +++ b/sailfish/translations/harbour-quickddit-de.ts @@ -22,38 +22,38 @@ Über %1 - - + + Add Subreddit Subreddit hinzufügen - + Description Beschreibung - + No description Keine Beschreibung - + Subreddits Subreddits - + Go to %1 Gehe zu %1 - + Remove Entfernen - + Enter subreddit name Subreddit Namen eintragen @@ -71,46 +71,41 @@ Quickddit - Gratis Open source Reddit Client für mobile Geräte - + App icon by Andrew Zhilin App Icon von Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) PawelSpoon - + Current language translation by %1 Aktuelle Übersetzung durch %1 - + Licensed under GNU GPLv3+ Lizensiert unter GNU GPLv3+ - + Source Quelle - + License Lizenz - + Translations Übersetzungen - - - Donate! - Spende! - AboutSubredditPage @@ -228,7 +223,7 @@ You have subscribed to %1 - Du hast %1 abonniert. + Du hast %1 abonniert @@ -239,42 +234,42 @@ AccountsPage - + Accounts Konto Sign out - Abmelden + Abmelden Sign in to Reddit - Anmelden + Anmelden You have signed out from Reddit - Du hast dich von Reddit abgemeldet. + Du hast dich von Reddit abgemeldet. - + Remove %1 account Entferne %1 Konto - + Activate Aktiviere - + Remove Entfernen - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -346,21 +341,21 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login - Enter your reply here... - Antwort hier eintragen... + Enter your reply here + - Enter your new comment here... - Neuen Kommentar hier eintragen... + Enter your new comment here + - + Save Speichern - + Add Hinzufügen @@ -414,129 +409,116 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login CommentPage - + Comments Kommentare - + Best Beste - + Top Top - + New Neu - + Hot Hot - + Controversial Kontrovers - + Old Alt - + Edit Post Beitrag ändern - - + + Sort Sortieren - + Add comment Kommentar hinzufügen - + + Share + + + + Refresh Neu laden - + Viewing a single comment's thread Kommentar Thread ansehen - + View All Comments Alle Kommentare anzeigen - + Deleting comment Kommentar wird gelöscht - - DonatePage - - - Donate - Spenden - - - - Donate via PayPal: - Mit PayPal spenden: - - - - Donate via Bitcoin: - Bitcoins spenden: - - - - Address copied to clipboard - Adresse kopiert - - ImageViewPage - + Image Bild - + Save Image Bild speichern - + + Share Image + + + + URL URL - + Error loading image Fehler bei Laden des Bildes - + Image saved to gallery Bild in Galerie gespeichert - + Image save failed! Bild speichern gescheitert! @@ -584,52 +566,57 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login LoadingFooter - Load More... - Mehr Laden... + Load More… + MainPage - + About %1 Über %1 - + New Post Neuer Beitrag - - + + Section Sektion - + Search Suchen - + Refresh Neu laden - + + Last refreshed + + + + Delete link Link Löschen - + Hide link Link ausblenden - - Nothing here :( - Nichts hier :( + + Nothing here + @@ -765,17 +752,17 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login Multireddits - + Refresh Neu laden - + About Über - + Nothing here :( Nichts hier :( @@ -790,14 +777,14 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login - Open in browser - Im Browser öffnen + Open in… + - Launching web browser... - Browser wird gestartet... + Launching… + @@ -889,6 +876,19 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + SearchDialog @@ -1176,122 +1176,132 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login Settings - Einstellungen + Einstellungen Accounts - Konto + Konto UX - UX + UX Font Size - Schriftgröße + Schriftgröße Tiny - Winzig + Winzig Small - Klein + Klein Medium - Mittel + Mittel Large - Groß + Groß Device Orientation - Orientierung + Orientierung Automatic - Dynamisch + Dynamisch Portrait only - Hochformat + Hochformat Landscape only - Querformat + Querformat Thumbnail Size - Miniaturbildgröße + Miniaturbildgröße Auto - Auto + Auto Thumbnail Link Type Indicator - Miniaturansicht - Linktyp - Indikator + Miniaturansicht - Linktyp - Indikator Comments Tap To Hide - Kommentare durch Antippen verstecken + Kommentare durch Antippen verstecken Notifications - Meldungen + Meldungen Check Messages - Check Nachrichten + Check Nachrichten Media - Medien + Medien Preferred Video Size - Bevorzugte Videoqualität + Bevorzugte Videoqualität - Loop Videos - Angeheftet + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Angeheftet + + + Connection - Verbindung + Verbindung - + Use Tor - Verwende Tor + Verwende Tor - + When enabled, please make sure Tor is installed and active. - Wenn aktiv, muss Tor installiert und ausgeführt werden + Wenn aktiv, muss Tor installiert und ausgeführt werden @@ -1300,7 +1310,7 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login Sign in to Reddit - Anmelden + Anmelden @@ -1327,27 +1337,27 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login SubredditDelegate - + NSFW NSFW - + Contributor Mitwirkender - + Banned Verboten - + Mod Mod - + Muted Stumm @@ -1424,77 +1434,92 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login SubredditsPage - - Subreddits - Subreddits - - - + About Quickddit Über Quickddit - + Settings Einstellungen - + My Profile Mein Profil - + Messages Nachrichten - + Go to a specific subreddit Gehe zum Subreddit - + Front Page Erste Seite - + + Quickddit + + + + + Signed in as %1 + + + + + Not signed in + + + + Popular Populär - + All Alle - - Browse for Subreddits... - Suche nach Subreddits - - - + Multireddits Multireddits - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Abbonierte Subreddits - + About Über - + Unsubscribe Abmelden - + You have unsubscribed from %1 Du hast dich von %1 abgemeldet. @@ -1502,126 +1527,126 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login UserPage - + User %1 Nutzer %1 - - + + Overview Übersicht - - + + Comments Kommentare - - + + Submitted Eingereicht - + Upvoted +1 - + Downvoted -1 - + Saved Things Gespeichert - + Section Sektion - + Send Message Nachricht schicken - + Refresh Neu laden - + My Profile Mein Profil - + User Profile Nutzerprofil - + Friend Freund - + Gold Gold - + Email Verified Email verifiziert - + Mod Mod - + No Robots Keine Robots - + %1 link karma %1 Karma verlinken - + %1 comment karma %1 Karma kommentieren - + created %1 Erzeugt %1 - + Delete Löschen - + Delete link Link Löschen - + Nothing here :( Nichts hier :( - + Message sent Nachricht gesendet @@ -1643,6 +1668,19 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login Comment in %1 Kommentiere in %1 + + + [score hidden] + [Score verstecken] + + + + %n pts + + %n Punkt + %n Punkte + + UserPageLinkDelegate @@ -1730,28 +1768,27 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login Video - Video + URL - URL + URL Error loading video - Fehler bei Laden des Videos + - - + Problem finding stream URL - Stream URL wurde nicht gefunden + - + youtube-dl error: %1 - Youtube-dll Fehler: %1 + @@ -1790,43 +1827,54 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login main - + + + Unable to resolve reddit share link + + + + Unsupported reddit url Nicht unterstützte Reddit url - + Unsupported image url Nicht unterstützte Bild url - + Unsupported video url Nicht unterstützte Video url - + Please log in again Bitte neu Anmelden - - and %1 other - and %1 andere + + in /r/%1 by %2 + + + + + and %1 other + - - + + Message from %1 Message von %1 - + New message from %1 Neue Nachricht von %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-el.ts b/sailfish/translations/harbour-quickddit-el.ts index 2c48f18d..0b10c825 100644 --- a/sailfish/translations/harbour-quickddit-el.ts +++ b/sailfish/translations/harbour-quickddit-el.ts @@ -22,38 +22,38 @@ Σχετικά με το %1 - - + + Add Subreddit Προσθήκη Υπό-reddit - + Description Περιγραφή - + No description Χωρίς περιγραφή - + Subreddits Υπό-reddits - + Go to %1 Μετάβαση σε %1 - + Remove Αφαίρεση - + Enter subreddit name Εισαγάγετε το όνομα του υπό-reddit @@ -71,46 +71,41 @@ Quickddit - Ένας ελεύθερος και ανοιχτού κώδικα πελάτης Reddit για κινητά τηλέφωνα - + App icon by Andrew Zhilin Εικονίδιο εφαρμογής από τον Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Δημήτριος Γλενταδάκης - + Current language translation by %1 Μετάφραση από τον %1 - + Licensed under GNU GPLv3+ Υπόκειται στην άδεια χρήσης GNU GPLv3+ - + Source Πηγή - + License Άδεια χρήσης - + Translations Μεταφράσεις - - - Donate! - - AboutSubredditPage @@ -239,42 +234,42 @@ AccountsPage - + Accounts Sign out - Αποσύνδεση + Αποσύνδεση Sign in to Reddit - Συνδεθείτε στο Reddit + Συνδεθείτε στο Reddit You have signed out from Reddit - Έχετε αποσυνδεθεί από το Reddit + Έχετε αποσυνδεθεί από το Reddit - + Remove %1 account - + Activate - + Remove - Αφαίρεση + Αφαίρεση - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -344,21 +339,21 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - Εισαγάγετε την απάντησή σας εδώ... + Enter your reply here + - Enter your new comment here... - Εισαγάγετε το νέο σας σχόλιο εδώ... + Enter your new comment here + - + Save Αποθήκευση - + Add Προσθήκη @@ -412,129 +407,116 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis CommentPage - + Comments Σχόλια - + Best Άριστο - + Top Κορυφή - + New Νέο - + Hot Καυτό - + Controversial Επίμαχο - + Old Παλιό - + Edit Post Επεξεργασία ανάρτησης - - + + Sort Ταξινόμηση - + Add comment Προσθήκη σχολίου - + + Share + + + + Refresh Ανανέωση - + Viewing a single comment's thread Προβολή νήματος ενός σχολίου - + View All Comments Προβολή όλων των σχολίων - + Deleting comment Διαγραφή σχολίου - - DonatePage - - - Donate - - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - - - ImageViewPage - + Image Εικόνα - + Save Image Αποθήκευση εικόνας - + + Share Image + + + + URL URL - + Error loading image Σφάλμα φόρτωσης της εικόνας - + Image saved to gallery Η εικόνα αποθηκεύτηκε στην πινακοθήκη - + Image save failed! Η αποθήκευση της εικόνας απέτυχε! @@ -582,52 +564,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis LoadingFooter - Load More... - Φόρτωση περισσοτέρων... + Load More… + MainPage - + About %1 Σχετικά με το %1 - + New Post Νέα ανάρτηση - - + + Section Ενότητα - + Search Αναζήτηση - + Refresh Ανανέωση - + + Last refreshed + + + + Delete link Διαγραφή δεσμού - + Hide link - - Nothing here :( - Δεν υπάρχει τίποτα εδώ :( + + Nothing here + @@ -658,12 +645,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - Απάντηση + Απάντηση Delete - Διαγραφή + Διαγραφή @@ -763,17 +750,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Πολλαπλά reddit - + Refresh Ανανέωση - + About - Σχετικά + - + Nothing here :( Δεν υπάρχει τίποτα εδώ :( @@ -788,14 +775,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Άνοιγμα στον φυλλομετρητή + Open in… + - Launching web browser... - Εκκίνηση φυλλομετρητή... + Launching… + @@ -887,6 +874,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + SearchDialog @@ -1045,7 +1045,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Best - Άριστο + Άριστο @@ -1174,7 +1174,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - Ρυθμίσεις + Ρυθμίσεις @@ -1189,57 +1189,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Font Size - Μέγεθος γραμματοσειράς + Μέγεθος γραμματοσειράς Tiny - Μικροσκοπική + Μικροσκοπική Small - Μικρή + Μικρή Medium - Μεσαία + Μεσαία Large - Μεγάλη + Μεγάλη Device Orientation - Προσανατολισμός της συσκευής + Προσανατολισμός της συσκευής Automatic - Αυτόματο + Αυτόματο Portrait only - Μόνο πορτραίτο + Μόνο πορτραίτο Landscape only - Μόνο τοπίο + Μόνο τοπίο Thumbnail Size - Μέγεθος εικόνων επισκόπησης + Μέγεθος εικόνων επισκόπησης Auto - Αυτόματο + Αυτόματο @@ -1254,42 +1254,52 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Notifications - Ειδοποιήσεις + Ειδοποιήσεις Check Messages - Έλεγχος μηνυμάτων + Έλεγχος μηνυμάτων Media - Πολυμέσα + Πολυμέσα Preferred Video Size - Προτιμώμενο μέγεθος βίντεο + Προτιμώμενο μέγεθος βίντεο - Loop Videos - Αναπαραγωγή βίντεο σε βρόχο + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Αναπαραγωγή βίντεο σε βρόχο + + + Connection - Σύνδεση + Σύνδεση - + Use Tor - Χρήση του Tor + Χρήση του Tor - + When enabled, please make sure Tor is installed and active. - Όντας ενεργοποιημένο, σιγουρευτείτε ότι το Tor είναι εγκατεστημένο και ενεργό. + Όντας ενεργοποιημένο, σιγουρευτείτε ότι το Tor είναι εγκατεστημένο και ενεργό. @@ -1298,7 +1308,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - Συνδεθείτε στο Reddit + Συνδεθείτε στο Reddit @@ -1325,27 +1335,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditDelegate - + NSFW NSFW - + Contributor Συντελεστής - + Banned Αποκλεισμένος - + Mod Mod - + Muted Σε σίγαση @@ -1422,77 +1432,92 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditsPage - - Subreddits - Υπό-reddits - - - + About Quickddit Περί του Quickddit - + Settings Ρυθμίσεις - + My Profile Η ταυτότητά μου - + Messages Μηνύματα - + Go to a specific subreddit Μετάβαση σε ένα υπό-reddit - + Front Page Πρωτοσέλιδο - + + Quickddit + + + + + Signed in as %1 + + + + + Not signed in + + + + Popular Δημοφιλή - + All Όλα - - Browse for Subreddits... - Περιήγηση στα Υπό-reddits... - - - + Multireddits Πολλαπλά reddit - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Υπό-reddits με συνδρομή - + About Σχετικά - + Unsubscribe Ακύρωση συνδρομής - + You have unsubscribed from %1 Ακυρώσατε την συνδρομή από το %1 @@ -1500,126 +1525,126 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis UserPage - + User %1 Χρήστης %1 - - + + Overview Επισκόπηση - - + + Comments Σχόλια - - + + Submitted Εστάλη - + Upvoted Υπερψηφισμένο - + Downvoted Καταψηφισμένο - + Saved Things Αποθηκευμένα αντικείμενα - + Section Ενότητα - + Send Message Αποστολή μηνύματος - + Refresh Ανανέωση - + My Profile Η ταυτότητά μου - + User Profile Ταυτότητα χρήστη - + Friend Φίλος - + Gold Χρυσός - + Email Verified Εξακριβωμένη ηλ. αλληλογραφία - + Mod Συντονιστής - + No Robots Όχι ρομπότ - + %1 link karma %1 κάρμα συνδέσμου - + %1 comment karma %1 κάρμα σχολίου - + created %1 δημιουργήθηκε %1 - + Delete Διαγραφή - + Delete link Διαγραφή συνδέσμου - + Nothing here :( Δεν υπάρχει τίποτα εδώ :( - + Message sent Το μήνυμα εστάλη @@ -1641,6 +1666,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment in %1 Σχόλιο στο %1 + + + [score hidden] + [κρυφή καταμέτρηση] + + + + %n pts + + + + + UserPageLinkDelegate @@ -1728,26 +1766,25 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - Βίντεο + URL - URL + URL Error loading video - Σφάλμα φόρτωσης του βίντεο + - - + Problem finding stream URL - Πρόβλημα εύρεσης της ροής του URL + - + youtube-dl error: %1 @@ -1788,43 +1825,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + + + Unable to resolve reddit share link + + + + Unsupported reddit url Μη υποστηριζόμενο url reddit - + Unsupported image url Μη υποστηριζόμενο url εικόνας - + Unsupported video url Μη υποστηριζόμενο url βίντεο - + Please log in again Παρακαλώ συνδεθείτε ξανά - - and %1 other - και %1 ακόμα + + in /r/%1 by %2 + + + + + and %1 other + - - + + Message from %1 Μήνυμα από τον/την %1 - + New message from %1 Νέο μήνυμα από τον/την %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-en_GB.ts b/sailfish/translations/harbour-quickddit-en_GB.ts index 49077db0..ff8d4db6 100644 --- a/sailfish/translations/harbour-quickddit-en_GB.ts +++ b/sailfish/translations/harbour-quickddit-en_GB.ts @@ -22,38 +22,38 @@ About %1 - - + + Add Subreddit Add Subreddit - + Description Description - + No description No description - + Subreddits Subreddits - + Go to %1 Go to %1 - + Remove Remove - + Enter subreddit name Enter subreddit name @@ -71,46 +71,41 @@ Quickddit - A free and open source Reddit client for mobile phones - + App icon by Andrew Zhilin App icon by Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) _translator - + Current language translation by %1 Current language translation by %1 - + Licensed under GNU GPLv3+ Licensed under GNU GPLv3+ - + Source Source - + License License - + Translations Translations - - - Donate! - Donate! - AboutSubredditPage @@ -239,42 +234,42 @@ AccountsPage - + Accounts Accounts Sign out - Sign out + Sign out Sign in to Reddit - Sign in to Reddit + Sign in to Reddit You have signed out from Reddit - You have signed out from Reddit + You have signed out from Reddit - + Remove %1 account Remove %1 account - + Activate Activate - + Remove Remove - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -346,21 +341,21 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - Enter your reply here... + Enter your reply here + Enter your reply here - Enter your new comment here... - Enter your new comment here... + Enter your new comment here + Enter your new comment here - + Save Save - + Add Add @@ -414,129 +409,116 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis CommentPage - + Comments Comments - + Best Best - + Top Top - + New New - + Hot Hot - + Controversial Controversial - + Old Old - + Edit Post Edit Post - - + + Sort Sort - + Add comment Add comment - + + Share + Share + + + Refresh Refresh - + Viewing a single comment's thread Viewing a single comment's thread - + View All Comments View All Comments - + Deleting comment Deleting comment - - DonatePage - - - Donate - Donate - - - - Donate via PayPal: - Donate via PayPal: - - - - Donate via Bitcoin: - Donate via Bitcoin: - - - - Address copied to clipboard - Address copied to clipboard - - ImageViewPage - + Image Image - + Save Image Save Image - + + Share Image + Share Image + + + URL URL - + Error loading image Error loading image - + Image saved to gallery Image saved to gallery - + Image save failed! Image save failed! @@ -584,52 +566,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis LoadingFooter - Load More... - Load More... + Load More… + Load More… MainPage - + About %1 About %1 - + New Post New Post - - + + Section Section - + Search Search - + Refresh Refresh - + + Last refreshed + Last refreshed + + + Delete link Delete link - + Hide link Hide link - - Nothing here :( - Nothing here :( + + Nothing here + Nothing here @@ -765,17 +752,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddits - + Refresh Refresh - + About About - + Nothing here :( Nothing here :( @@ -790,14 +777,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Open in browser + Open in… + Open in… - Launching web browser... - Launching web browser... + Launching… + Launching… @@ -889,6 +876,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis + + QMLUtils + + + Invalid share URL + Invalid share URL + + + + Unable to resolve share URL + Unable to resolve share URL + + SearchDialog @@ -1176,122 +1176,132 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - Settings + Settings Accounts - Accounts + Accounts UX - UX + UX Font Size - Font Size + Font Size Tiny - Tiny + Tiny Small - Small + Small Medium - Medium + Medium Large - Large + Large Device Orientation - Device Orientation + Device Orientation Automatic - Automatic + Automatic Portrait only - Portrait only + Portrait only Landscape only - Landscape only + Landscape only Thumbnail Size - Thumbnail Size + Thumbnail Size Auto - Auto + Auto Thumbnail Link Type Indicator - Thumbnail Link Type Indicator + Thumbnail Link Type Indicator Comments Tap To Hide - Comments Tap To Hide + Comments Tap To Hide Notifications - Notifications + Notifications Check Messages - Check Messages + Check Messages Media - Media + Media Preferred Video Size - Preferred Video Size + Preferred Video Size - Loop Videos - Loop Videos + Prefer adaptive video streams + Prefer adaptive video streams + + + + More likely to have sound, but may be less stable. + More likely to have sound, but may be less stable. + Loop Videos + Loop Videos + + + Connection - Connection + Connection - + Use Tor - Use Tor + Use Tor - + When enabled, please make sure Tor is installed and active. - When enabled, please make sure Tor is installed and active. + When enabled, please make sure Tor is installed and active. @@ -1300,17 +1310,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - Sign in to Reddit + Sign in to Reddit Cancel - + Cancel Sign in successful! Welcome! :) - + Sign in successful! Welcome! :) @@ -1327,27 +1337,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditDelegate - + NSFW NSFW - + Contributor Contributor - + Banned Banned - + Mod Mod - + Muted Muted @@ -1424,77 +1434,92 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditsPage - - Subreddits - Subreddits - - - + About Quickddit About Quickddit - + Settings Settings - + My Profile My Profile - + Messages Messages - + Go to a specific subreddit Go to a specific subreddit - + Front Page Front Page - + + Quickddit + Quickddit + + + + Signed in as %1 + Signed in as %1 + + + + Not signed in + Not signed in + + + Popular Popular - + All All - - Browse for Subreddits... - Browse for Subreddits... - - - + Multireddits Multireddits - + + My Saved Things + My Saved Things + + + + Browse all Subreddits + Browse all Subreddits + + + Subscribed Subreddits Subscribed Subreddits - + About About - + Unsubscribe Unsubscribe - + You have unsubscribed from %1 You have unsubscribed from %1 @@ -1502,126 +1527,126 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis UserPage - + User %1 User %1 - - + + Overview Overview - - + + Comments Comments - - + + Submitted Submitted - + Upvoted Upvoted - + Downvoted Downvoted - + Saved Things Saved Things - + Section Section - + Send Message Send Message - + Refresh Refresh - + My Profile My Profile - + User Profile User Profile - + Friend Friend - + Gold Gold - + Email Verified Email Verified - + Mod Mod - + No Robots No Robots - + %1 link karma %1 link karma - + %1 comment karma %1 comment karma - + created %1 created %1 - + Delete Delete - + Delete link Delete link - + Nothing here :( Nothing here :( - + Message sent Message sent @@ -1643,6 +1668,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment in %1 Comment in %1 + + + [score hidden] + [score hidden] + + + + %n pts + + %n pt + %n pts + + UserPageLinkDelegate @@ -1743,13 +1781,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Error loading video - - + Problem finding stream URL Problem finding stream URL - + youtube-dl error: %1 youtube-dl error: %1 @@ -1790,43 +1827,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + + + Unable to resolve reddit share link + Unable to resolve reddit share link + + + Unsupported reddit url Unsupported reddit url - + Unsupported image url Unsupported image url - + Unsupported video url Unsupported video url - + Please log in again Please log in again - - and %1 other - and %1 other + + in /r/%1 by %2 + in /r/%1 by %2 + + + + and %1 other + and %1 other - - + + Message from %1 Message from %1 - + New message from %1 New message from %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-et.ts b/sailfish/translations/harbour-quickddit-et.ts new file mode 100644 index 00000000..e96da777 --- /dev/null +++ b/sailfish/translations/harbour-quickddit-et.ts @@ -0,0 +1,1886 @@ + + + + + AboutMultiredditManager + + + %1 has been added to %2 + + + + + %1 has been removed from %2 + + + + + AboutMultiredditPage + + + About %1 + Teave: %1 + + + + + Add Subreddit + Lisa alamreddit + + + + Description + Kirjeldus + + + + No description + Kirjeldus puudub + + + + Subreddits + Alamredditid + + + + Go to %1 + Ava %1 + + + + Remove + Eemalda + + + + Enter subreddit name + Sisesta alamredditi nimi + + + + AboutPage + + + About + Rakenduse teave + + + + Quickddit - A free and open source Reddit client for mobile phones + Quickddit - tasuta, vaba ja avatud lähtekoodiga Redditi klient nutitelefonidele + + + + App icon by Andrew Zhilin + Rakenduse ikooni autor on Andrew Zhilin + + + + _translator + _translator is used as a placeholder for the name of the translator (you :) + Priit Jõerüüt + + + + Current language translation by %1 + Selle keele tõlke autor on %1 + + + + Licensed under GNU GPLv3+ + Litsentseeritud GNU GPLv3+ alusel + + + + Source + Lähtekood + + + + License + Litsents + + + + Translations + Tõlked + + + + AboutSubredditPage + + + About %1 + Rakenduse teave: %1 + + + + Moderators + Moderaatorid + + + + Message Moderators + Saada sõnum moderaatoritele + + + + Unsubscribe + Loobu tellimusest + + + + Subscribe + Telli + + + + This subreddit is Not Safe For Work + See alamreddit sisaldab ebasobilikku sisu + + + + %n subscribers + + %n tellija + %n tellijat + + + + + %n active users + + %n aktiivne kasutaja + %n aktiivset kasutajat + + + + + Subscribed + Tellitud + + + + Not Subscribed + Pole tellitud + + + + Private + Privaatne + + + + Restricted + Piiratud + + + + GoldRestricted + GoldRestricted + + + + Archived + Arhiveeritud + + + + Links only + Vaid lingid + + + + Self posts only + Vaid omad postitused + + + + NSFW + Ebasobilik sisu + + + + Contributor + Kaasautor + + + + Banned + Keelatud + + + + Mod + Mod + + + + Muted + Summutatud + + + + You have subscribed to %1 + Sa oled lisanud tellimuse %1 alamredditile + + + + You have unsubscribed from %1 + Sa oled eemaldanud tellimuse %1 alamredditist + + + + AccountsPage + + + Accounts + Kasutajakontod + + + + Sign out + Logi välja + + + + Sign in to Reddit + Logi sisse Redditisse + + + + You have signed out from Reddit + Sa oled Redditist välja loginud + + + + Remove %1 account + Eemalda kasutajakonto: %1 + + + + Activate + Lülita sisse + + + + Remove + Eemalda + + + + No known accounts yet. + +To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here + Ühtegi kontot veel pole. + +Mõne lisamiseks lihtsalt logi sisse. Quickddit jätab õnnestunud sisselogimised meelde ja need kontod saavad olema nähtavad siin + + + + CommentDelegate + + + Sticky + Kleepuv + + + + Gilded + Kullatud + + + + [score hidden] + [punktiskoor on peidetud] + + + + %n pts + + %n pt + %n pt + + + + + Load %n hidden comments + + Laadi %n peidetud kommentaar + Laadi %n peidetud kommentaari + + + + + Continue this thread + Jätka seda jutulõnga + + + + Show %n collapsed comments + + Näita %n ahendatud kommentaari + Näita %n ahendatud kommentaari + + + + + Editing Comment + Kommentaar on muutmisel + + + + Comment Reply + Vastus kommentaarile + + + + New Comment + Uus kommentaar + + + + Enter your reply here + Sisesta oma vastus siia + + + + Enter your new comment here + Sisesta oma uus kommentaar siia + + + + Save + Salvesta + + + + Add + Lisa + + + + CommentManager + + + The comment has been added + Kommentaar on lisatud + + + + The comment has been edited + Kommentaar on muudetud + + + + The comment has been deleted + Kommentaar on kustutatud + + + + CommentMenu + + + Copy Comment + Kopeeri kommentaar + + + + Comment copied to clipboard + Kommentaar on kopeeritud lõikelauale + + + + Reply + Vasta + + + + Edit + Muuda + + + + Delete + Kustuta + + + + CommentPage + + + Comments + Kommentaarid + + + + Best + Parim + + + + Top + Populaarseim + + + + New + Uus + + + + Hot + Kuum + + + + Controversial + Vastuoluline + + + + Old + Vana + + + + Edit Post + Muuda postitust + + + + + Sort + Järjesta + + + + Add comment + Lisa kommentaar + + + + Share + Jaga + + + + Refresh + Värskenda andmeid + + + + Viewing a single comment's thread + Vaatad ühe kommentaari jutulõnga + + + + View All Comments + Vaata kõiki kommentaare + + + + Deleting comment + Kustutan kommentaari + + + + ImageViewPage + + + Image + Pilt + + + + Save Image + Salvesta pilt + + + + Share Image + Jaga pilti + + + + URL + Võrguaadress + + + + Error loading image + Viga pildi laadimisel + + + + Image saved to gallery + Pilt on salvestatud galeriisse + + + + Image save failed! + Pildi salvestamine ei õnnestunud! + + + + ImgurManager + + + Unable to get Imgur ID from the url: %1 + Imguri tunnust ei õnnestu sellest võrguaadressist tuvastada: %1 + + + + Imgur API returns no image + Imguri API päringu vastuses pole ühtegi pilti + + + + LinkManager + + + The link has been added + Link on lisatud + + + + The link text has been changed + Lingi tekst on muudetud + + + + LinkMenu + + + Delete + Kustuta + + + + Hide + Peida + + + + LoadingFooter + + + Load More… + Laadi veel… + + + + MainPage + + + About %1 + Teave: %1 + + + + New Post + Uus postitus + + + + + Section + Alajaotus + + + + Search + Otsi + + + + Refresh + Värskenda andmeid + + + + Last refreshed + Viimati uuendatud + + + + Delete link + Kustuta link + + + + Hide link + Peida link + + + + Nothing here + Siin pole mitte midagi + + + + MessageDelegate + + + %1 from %2 + + + + + in %1 + + + + + to %1 + + + + + from %1 + + + + + MessageMenu + + + Reply + Vasta + + + + Delete + Kustuta + + + + Mark As Read + Märgi loetuks + + + + Mark As Unread + Märgi mitteloetuks + + + + MessagePage + + + + Messages + Sõnumid + + + + All + Kõik + + + + Unread + Lugemata + + + + Comment Replies + Kommentaari vastused + + + + Post Replies + Postituse vastused + + + + Sent + Saadetud + + + + Username Mentions + Kasutajanime mainimised + + + + New Message + Uus sõnum + + + + + Section + Alajaotus + + + + Refresh + Värskenda andmeid + + + + Deleting message + Kustutan sõnumit + + + + Nothing here :( + Siin pole mitte midagi :( + + + + + Message sent + Sõnum on saadetud + + + + ModeratorListPage + + + Moderators + Moderaatorid + + + + MultiredditsPage + + + Multireddits + Multiredditid + + + + Refresh + Värskenda andmeid + + + + About + Teave + + + + Nothing here :( + Siin pole mitte midagi :( + + + + OpenLinkDialog + + + Open URL + Ava võrguaadress + + + + + Open in… + Ava rakendusega… + + + + + Launching… + Käivitan… + + + + + Copy URL + Kopeeri võrguaadress + + + + + URL copied to clipboard + Võrguaadress on kopeeritud lõikelauale + + + + Open in Kodi + Ava Kodis + + + + Source + Allikas + + + + PostInfoText + + + Sticky + Kleepuv + + + + NSFW + Ebasobilik sisu + + + + Promoted + Reklaampostitus + + + + Gilded + Kullatud + + + + Archived + Arhiveeritud + + + + Locked + Lukus + + + + submitted %1 by %2 + + + + + to %1 + + + + + %n crossposts + + %n ristpostitus + %n ristpostitust + + + + + %n points + + %n punkt + %n punkti + + + + + %n comments + + %n kommentaar + %n kommentaari + + + + + QMLUtils + + + Invalid share URL + Vigane jagamise võrguaadress + + + + Unable to resolve share URL + Jagamise võrguaadressi sisu pole võimalik tuvastada + + + + SearchDialog + + + Search + Otsi + + + + Enter search query + Sisesta otsingupäring + + + + Search for + Otsinguobjekt + + + + Posts + Postitused + + + + Subreddits + Alamredditid + + + + Search within this subreddit: + Otsi siit alamredditist: + + + + Enter subreddit name + Sisesta alamredditi nimi + + + + SearchPage + + + Search Result: %1 + Otsingutulemus: %1 + + + + Relevance + Asjakohasus + + + + New + Uus + + + + Hot + Kuum + + + + Top + Populaarne + + + + Comments + Kommentaarid + + + + All time + Läbi aegade + + + + This hour + Viimasel tunnil + + + + Today + Täna + + + + This week + Sel nädalal + + + + This month + Sel kuul + + + + This year + Sel aastal + + + + Search Again + Otsi uuesti + + + + + Time Range + Ajavahemik + + + + + Sort + Järjestus + + + + Refresh + Värskenda andmed + + + + SectionSelectionDialog + + + + Hot + Kuum + + + + + New + Uus + + + + + Rising + Kasvutrendis + + + + + Controversial + Vastuoluline + + + + + Top + Populaarne + + + + Best + Parim + + + + Hour + Tund + + + + Day + Päev + + + + Week + Nädal + + + + Month + Kuu + + + + Year + Aasta + + + + All time + Läbi aegade + + + + SendLinkPage + + + New Post + Uus postitus + + + + Edit Post + Muuda postitust + + + + Post Title + Postituse pealkiri + + + + Self Post + Enesepostitus + + + + Post URL + Postituse võrguaadress + + + + Post Text + Postituse tekst + + + + Flair + + + + + Submit + Saada + + + + Save + Salvesta + + + + SendMessagePage + + + New Message + Uus sõnum + + + + Reply Message + Vastussõnum + + + + Recipient + Saaja + + + + to moderators of + moderaatoritele + + + + to + + + + + Subject + Kirja pealkiri + + + + Message + Kirja sisu + + + + Send + Saada + + + + SettingsPage + + + Settings + Seadistused + + + + Accounts + Kasutajakontod + + + + UX + Kasutajaliides + + + + Font Size + Kirjatüübi suurus + + + + Tiny + Pisike + + + + Small + Väike + + + + Medium + Keskmine + + + + Large + Suur + + + + Device Orientation + Seadme paigutus + + + + Automatic + Automaatne + + + + Portrait only + Ainult püstvaade + + + + Landscape only + Ainult rõhtvaade + + + + Thumbnail Size + Pisipildi suurus + + + + Auto + Automaatne + + + + Thumbnail Link Type Indicator + Pisipildi lingi tüübi tunnus + + + + Comments Tap To Hide + Kommentaaride peitmine puudutamisel + + + + Notifications + Teavitused + + + + Check Messages + Kontrolli sõnumeid + + + + Media + Meedium + + + + Preferred Video Size + Video eelistatud suurus + + + + Prefer adaptive video streams + Eelista videovoo adaptiivset esitust + + + + More likely to have sound, but may be less stable. + Heliriba toimib paremini, aga võib olla vähem stabiilne. + + + + Loop Videos + Esita videoid lõputu tsüklina + + + + Connection + Ühendus + + + + Use Tor + Kasuta Tori võrku + + + + When enabled, please make sure Tor is installed and active. + Selle valiku sisselülitamisel palun kontrolli, et Tor on paigaldatud ja aktiivne. + + + + SignInPage + + + + Sign in to Reddit + Logi sisse Redditisse + + + + Cancel + Katkesta + + + + Sign in successful! Welcome! :) + Sisselogimine õnnestus! Tere tulemast! :) + + + + SubredditBrowseDelegate + + + %n subscribers + + %n tellija + %n tellijat + + + + + SubredditDelegate + + + NSFW + Ebasobilik sisu + + + + Contributor + Kaasautor + + + + Banned + Keelatud + + + + Mod + Mod + + + + Muted + Summutatud + + + + SubredditsBrowsePage + + + Subreddits Search: %1 + Alamredditite otsing: %1 + + + + Popular Subreddits + Populaarsed alamredditid + + + + New Subreddits + Uued alamredditid + + + + My Subreddits - Subscriber + Minu alamredditid - tellijana + + + + My Subreddits - Approved Submitter + Minu alamredditid - heakskiidetud autorina + + + + My Subreddits - Moderator + Minu alamredditid - moderaatorina + + + + + Section + Alajaotus + + + + Refresh + Värskenda andmeid + + + + About + Teave + + + + Subscribe + Telli + + + + Unsubscribe + Loobu tellimusest + + + + Nothing here :( + Siin pole mitte midagi :( + + + + You have %2 from %1 + + + + + SubredditsPage + + + About Quickddit + Rakenduse teave: Quickddit + + + + Settings + Seadistused + + + + My Profile + Minu profiil + + + + Messages + Sõnumid + + + + Go to a specific subreddit + Ava konkreetne alamreddit + + + + Front Page + Avaleht + + + + Quickddit + Quickddit + + + + Signed in as %1 + Sisselogitud kui %1 + + + + Not signed in + Sa pole sisse loginud + + + + Popular + Populaarsed + + + + All + Kõik + + + + Multireddits + Multiredditid + + + + My Saved Things + Minu salvestatu + + + + Browse all Subreddits + Sirvi kõiki alamredditeid + + + + Subscribed Subreddits + Tellitud alamredditid + + + + About + Teave + + + + Unsubscribe + Loobu tellimusest + + + + You have unsubscribed from %1 + Sa oled eemaldanud tellimuse %1 alamredditist + + + + UserPage + + + User %1 + Kasutaja %1 + + + + + Overview + Ülevaade + + + + + Comments + Kommentaar + + + + + Submitted + Saadetud + + + + Upvoted + Poolthääletatud + + + + Downvoted + Vastuhääletatud + + + + Saved Things + Salvestatu + + + + + Section + Alajaotus + + + + Send Message + Saada sõnum + + + + Refresh + Värskenda andmeid + + + + My Profile + Minu profiil + + + + User Profile + Kasutajaprofiil + + + + Friend + Sõber + + + + Gold + Kuld + + + + Email Verified + E-posti aadress on kinnitatud + + + + Mod + Mod + + + + No Robots + Roboteid pole + + + + %1 link karma + %1 lingi karma + + + + %1 comment karma + %1 kommentaari karma + + + + created %1 + loodud %1 + + + + Delete + Kustuta + + + + Delete link + Kustuta link + + + + Nothing here :( + Siin pole mitte midagi :( + + + + Message sent + Sõnum on saadetud + + + + UserPageCommentDelegate + + + Sticky + Kleepuv + + + + Gilded + Kullatud + + + + Comment in %1 + Kommentaar: %1 + + + + [score hidden] + [punktiskoor on peidetud] + + + + %n pts + + %n pt + %n pt + + + + + UserPageLinkDelegate + + + Sticky + Kleepuv + + + + NSFW + Ebasobilik sisu + + + + Promoted + Reklaampostitus + + + + Gilded + Kullatud + + + + Locked + Lukus + + + + Utils + + + Now + Äsja + + + + Just now + Hetk tagasi + + + + %n mins ago + + %n min tagasi + %n min tagasi + + + + + %n hours ago + + %n tund tagasi + %n tundi tagasi + + + + + %n days ago + + %n päev tagasi + %n päeva tagasi + + + + + %n months ago + + %n kuu tagasi + %n kuud tagasi + + + + + %n years ago + + %n aasta tagasi + %n aastat tagasi + + + + + VideoViewPage + + + Video + Video + + + + URL + Võrguaadress + + + + Error loading video + Viga video laadimisel + + + + Problem finding stream URL + Viga voogedastuse võrguaadressi tuvastamisega + + + + youtube-dl error: %1 + youtube-dl viga: %1 + + + + WebViewer + + + WebViewer + Veebivaade + + + + Copy URL + Kopeeri võrguaadress + + + + URL copied to clipboard + Võrguaadress on kopeeritud lõikelauale + + + + Open in browser + Ava veebibrauseris + + + + Back + Tagasi + + + + Forward + Edasi + + + + main + + + Unsupported reddit url + See Redditi võrguaadress pole toetatud + + + + Unsupported image url + See pildi võrguaadress pole toetatud + + + + Unsupported video url + See video võrguaadress pole toetatud + + + + Please log in again + Palun logi uuesti sisse + + + + in /r/%1 by %2 + teemas /r/%1 autorilt %2 + + + + and %1 other + ja %1 üks teine + + + + + Message from %1 + Sõnum saatjalt %1 + + + + New message from %1 + Uus sõnum saatjalt %s + + + + %n new messages + 0 + + %n uus sõnum + %n uut sõnumit + + + + + + Unable to resolve reddit share link + Redditi jagamislingi lahendamine ei õnnestu + + + diff --git a/sailfish/translations/harbour-quickddit-fr.ts b/sailfish/translations/harbour-quickddit-fr.ts index ebc1e1ca..7c24bb7b 100644 --- a/sailfish/translations/harbour-quickddit-fr.ts +++ b/sailfish/translations/harbour-quickddit-fr.ts @@ -22,38 +22,38 @@ À propos de %1 - - + + Add Subreddit Ajouter le Subreddit - + Description Description - + No description Pas de description - + Subreddits Subreddits - + Go to %1 Aller vers %1 - + Remove Retirer - + Enter subreddit name Entrer le nom d'un Subreddit @@ -68,49 +68,44 @@ Quickddit - A free and open source Reddit client for mobile phones - Un client Reddit pour Sailfish OS. + Un client Reddit pour Sailfish OS - + App icon by Andrew Zhilin Icône de l'appli : Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Jean-Luc, lutinotmalin - + Current language translation by %1 Traduction française : %1 - + Licensed under GNU GPLv3+ Sous licence GNU GPLv3+ - + Source Source - + License Licence - + Translations Traductions - - - Donate! - - AboutSubredditPage @@ -239,42 +234,42 @@ AccountsPage - + Accounts Sign out - Déconnexion + Déconnexion Sign in to Reddit - Connexion à Reddit + Connexion à Reddit You have signed out from Reddit - Vous vous êtes déconnecté de Reddit + Vous vous êtes déconnecté de Reddit - + Remove %1 account - + Activate - + Remove - Retirer + Retirer - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -344,21 +339,21 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - Entrez votre réponse ici... + Enter your reply here + - Enter your new comment here... - Entrez votre commentaire ici... + Enter your new comment here + - + Save Enregistrer - + Add Ajouter @@ -412,129 +407,116 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis CommentPage - + Comments Commentaires - + Best Meilleur - + Top Top - + New Nouveau - + Hot Populaire - + Controversial Controversé - + Old Ancien - + Edit Post Modifier le post - - + + Sort Trier - + Add comment Ajouter un commentaire - + + Share + + + + Refresh Rafraîchir - + Viewing a single comment's thread Visualisation d'un seul commentaire de la discussion - + View All Comments Voir tous les commentaires - + Deleting comment Suppression du commentaire - - DonatePage - - - Donate - - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - - - ImageViewPage - + Image Image - + Save Image Enregistrer l'image - + + Share Image + + + + URL URL - + Error loading image Erreur lors du chargement de l'image - + Image saved to gallery Image enregistrée dans la galerie - + Image save failed! Échec lors de l'enregistrement de l'image ! @@ -582,52 +564,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis LoadingFooter - Load More... - Charger plus... + Load More… + MainPage - + About %1 À propos de %1 - + New Post Nouveau post - - + + Section Section - + Search Rechercher - + Refresh Rafraîchir - + + Last refreshed + + + + Delete link Supprimer le lien - + Hide link Masquer le lien - - Nothing here :( - Il n'y a rien ici :( + + Nothing here + @@ -763,19 +750,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddits - + Refresh Rafraîchir - + About À propos - + Nothing here :( - Il n'y a rien ici :( + Il n'y a rien ici :( @@ -788,14 +775,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Ouvrir dans le navigateur + Open in… + - Launching web browser... - Ouverture du navigateur... + Launching… + @@ -887,6 +874,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + SearchDialog @@ -1045,7 +1045,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Best - Meilleur + Meilleur @@ -1174,7 +1174,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - Paramètres + Paramètres @@ -1189,62 +1189,62 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Font Size - Taille de la police + Taille de la police Tiny - Minuscule + Minuscule Small - Petit + Petit Medium - Moyen + Moyen Large - Grand + Grand Device Orientation - Orientation de l'appareil + Orientation de l'appareil Automatic - Automatique + Automatique Portrait only - Portrait uniquement + Portrait uniquement Landscape only - Paysage uniquement + Paysage uniquement Thumbnail Size - Taille de la vignette + Taille de la vignette Auto - Auto + Auto Thumbnail Link Type Indicator - Indicateur + Indicateur @@ -1254,42 +1254,52 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Notifications - Notifications + Notifications Check Messages - Vérifier les messages + Vérifier les messages Media - Média + Média Preferred Video Size - Qualité vidéo souhaitée + Qualité vidéo souhaitée - Loop Videos - Vidéos en boucle + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Vidéos en boucle + + + Connection - Connexion + Connexion - + Use Tor - Utiliser Tor + Utiliser Tor - + When enabled, please make sure Tor is installed and active. - Si sélectionné, assurez-vous que l'application Tor soit installée et bien active. + Si sélectionné, assurez-vous que l'application Tor soit installée et bien active. @@ -1298,7 +1308,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - Connexion à Reddit + Connexion à Reddit @@ -1325,27 +1335,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditDelegate - + NSFW NSFW - + Contributor Contributeur - + Banned Banni - + Mod Mod - + Muted Muet @@ -1422,77 +1432,92 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditsPage - - Subreddits - Subreddits - - - + About Quickddit À propos de Quickddit - + Settings Paramètres - + My Profile Mon profil - + Messages Messages - + Go to a specific subreddit Aller vers un Subreddit spécifique - + Front Page Page d'accueil - + + Quickddit + + + + + Signed in as %1 + + + + + Not signed in + + + + Popular Populaire - + All Tous - - Browse for Subreddits... - Parcourir les Subreddits... - - - + Multireddits Multireddits - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Subreddits abonnés - + About À propos - + Unsubscribe Se désabonner - + You have unsubscribed from %1 Vous vous êtes désabonné de %1 @@ -1500,126 +1525,126 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis UserPage - + User %1 Utilisateur %1 - - + + Overview Vue générale - - + + Comments Commentaires - - + + Submitted Soumis - + Upvoted Votés positivement - + Downvoted Votés négativement - + Saved Things Eléments enregistrés - + Section Section - + Send Message Envoyer le message - + Refresh Rafraîchir - + My Profile Mon profil - + User Profile Profil d'utilisateur - + Friend Ami - + Gold Or - + Email Verified E-mail vérifié - + Mod Mod - + No Robots Pas de robots - + %1 link karma %1 lien(s) karma - + %1 comment karma %1 commentaire(s) karma - + created %1 inscrit %1 - + Delete Supprimer - + Delete link Supprimer le lien - + Nothing here :( Il n'y a rien ici :( - + Message sent Message envoyé @@ -1641,6 +1666,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment in %1 Commentaire dans %1 + + + [score hidden] + [score masqué] + + + + %n pts + + + + + UserPageLinkDelegate @@ -1728,28 +1766,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - Vidéo + URL - URL + URL Error loading video - Erreur lors du chargement de la vidéo + - - + Problem finding stream URL - Problème pour trouver l'URL de flux + - + youtube-dl error: %1 - Erreur YouTube-DL : %1 + @@ -1788,43 +1825,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + + + Unable to resolve reddit share link + + + + Unsupported reddit url URL Reddit non supportée - + Unsupported image url URL Image non supportée - + Unsupported video url URL Vidéo non supportée - + Please log in again Merci de vous connecter à nouveau - - and %1 other - et %1 autres + + in /r/%1 by %2 + + + + + and %1 other + - - + + Message from %1 Message de %1 - + New message from %1 Nouveau message de %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-hu.ts b/sailfish/translations/harbour-quickddit-hu.ts index 5bfdebe4..d3ce29a0 100644 --- a/sailfish/translations/harbour-quickddit-hu.ts +++ b/sailfish/translations/harbour-quickddit-hu.ts @@ -1,4 +1,6 @@ - + + + AboutMultiredditManager @@ -20,38 +22,38 @@ Az %1-ról - - + + Add Subreddit Alreddit hozzáadása - + Description Leírás - + No description Nincs leírás - + Subreddits Alredditek - + Go to %1 Ugrás ide: %1 - + Remove Eltávolítás - + Enter subreddit name Alreddit név beírása @@ -69,46 +71,41 @@ Quickddit - Egy ingyenes és nyílt forráskódú Reddit kliens mobiltelefonra - + App icon by Andrew Zhilin Alkalmazás-ikon: Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) leoka - Szabó G. - + Current language translation by %1 Jelen nyelvi fordítás: %1 - + Licensed under GNU GPLv3+ Megjelent a GNU GPLv3+ licenc alatt - + Source Forrás - + License Licenc - + Translations Fordítások - - - Donate! - - AboutSubredditPage @@ -145,12 +142,16 @@ %n subscribers - + + + %n active users - + + + @@ -175,7 +176,7 @@ GoldRestricted - + @@ -231,184 +232,46 @@ AccountsPage - + Accounts - + - + Remove %1 account - + - + Activate - + - + Remove - + Eltávolítás - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here - - - - - SettingsPage - - - App Settings - Alkalmazásbeállítások - - - - UX - - - - - Font Size - Betűméret - - - - Tiny - Icipici - - - - Small - Kicsi - - - - Medium - Közepes - - - - Large - Nagy - - - - Device Orientation - Készülékorientáció - - - - Automatic - Automatikus - - - - Portrait only - Csak függőleges - - - - Landscape only - Csak vízszintes - - - - Thumbnail Size - Miniatűrök mérete - - - - Auto - Automatikus - - - - Thumbnail Link Type Indicator - - - - - Comments Tap To Hide - - - - - Notifications - Értesítések - - - - Check Messages - Üzenetek ellenőrzése - - - - Media - Média - - - - Preferred Video Size - Preferált videóméret - - - - Loop Videos - Videók végtelelnítése - - - - Connection - Kapcsolat - - - - Use Tor - Tor használata - - - - When enabled, please make sure Tor is installed and active. - Ha engedélyezve van, bizonyosodj meg, hogy a Tor telepítve van és aktív. - - - - Account - Fiók - - - - Signed in to Reddit as - Bejelentkeztél a Reddit-be mint - - - - Not signed in - + - - Sign out - Kijelentkezés + + You have signed out from Reddit + - + Sign in to Reddit Bejelentkezés a Reddit-be - - You have signed out from Reddit - Kijelentkeztél a Reddit-ből - - - - Accounts - + + Sign out + @@ -426,27 +289,33 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis [score hidden] - + %n pts - + + + Load %n hidden comments - + + + Continue this thread - + Show %n collapsed comments - + + + @@ -456,7 +325,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment Reply - + @@ -465,21 +334,21 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - Írd ide a válaszodat... + Enter your reply here + - Enter your new comment here... - Írd ide az új hozzászólásodat... + Enter your new comment here + - + Save Mentés - + Add Hozzásadás @@ -533,144 +402,131 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis CommentPage - + Comments Hozzászólások - + Best Legjobb - + Top - + - + New Új - + Hot - + - + Controversial - + - + Old Régi - + Edit Post Poszt szerkesztése - - + + Sort Rendezés - + Add comment Hozzászólás hozzáadása - + Refresh Frissítés - + Viewing a single comment's thread - + - + View All Comments Minden hozzászólás megtekintése - + Deleting comment Hozzászólás törlése - - - DonatePage - - - Donate - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - + + Share + ImageViewPage - + Image Kép - + Save Image Kép mentése - + URL URL - + Error loading image Hiba a kép betöltésekor - + Image saved to gallery Kép mentve a glériába - + Image save failed! Kép mentése sikertelen! + + + Share Image + + ImgurManager Unable to get Imgur ID from the url: %1 - + Imgur API returns no image - + @@ -683,7 +539,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis The link text has been changed - + @@ -696,59 +552,64 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Hide - + LoadingFooter - Load More... - Több betöltése... + Load More… + MainPage - + About %1 Az %1-ról - + New Post Új poszt - - + + Section - + - + Search Keresés - + Refresh Frissítés - + + Last refreshed + + + + Delete link Hivatkozás törlése - + Hide link - + - - Nothing here :( - Semmi újság :( + + Nothing here + @@ -756,22 +617,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %1 from %2 - + in %1 - + to %1 - + from %1 - + @@ -779,12 +640,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - + Válasz Delete - + Törlés @@ -818,12 +679,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment Replies - + Post Replies - + @@ -833,7 +694,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Username Mentions - + @@ -844,7 +705,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Section - + @@ -854,7 +715,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Deleting message - + @@ -881,20 +742,20 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddits - + - + Refresh Frissítés - + About Súgó - + Nothing here :( Semmi újság :( @@ -909,14 +770,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Megnyitás böngészőben + Open in… + - Launching web browser... - Böngésző indítása... + Launching… + @@ -946,7 +807,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Ragadós @@ -956,12 +817,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Promoted - + Gilded - + Aranyozott @@ -976,27 +837,46 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis submitted %1 by %2 - + to %1 - + %n crossposts - + + + %n points - + + + %n comments - + + + + + + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + @@ -1009,17 +889,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Enter search query - + Search for - + Posts - + @@ -1057,12 +937,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Hot - + Top - + @@ -1102,7 +982,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Search Again - + @@ -1128,7 +1008,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Hot - + @@ -1140,24 +1020,24 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Rising - + Controversial - + Top - + Best - + Legjobb @@ -1210,22 +1090,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Self Post - + Post URL - + Post Text - + Flair - + @@ -1248,27 +1128,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply Message - + Recipient - + to moderators of - + to - + Subject - + @@ -1281,25 +1161,154 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Küldés + + SettingsPage + + + UX + + + + + Font Size + Betűméret + + + + Tiny + Icipici + + + + Small + Kicsi + + + + Medium + Közepes + + + + Large + Nagy + + + + Device Orientation + Készülékorientáció + + + + Automatic + Automatikus + + + + Portrait only + Csak függőleges + + + + Landscape only + Csak vízszintes + + + + Thumbnail Size + Miniatűrök mérete + + + + Auto + Automatikus + + + + Thumbnail Link Type Indicator + + + + + Comments Tap To Hide + + + + + Notifications + Értesítések + + + + Check Messages + Üzenetek ellenőrzése + + + + Media + Média + + + + Preferred Video Size + Preferált videóméret + + + + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + + + + Loop Videos + Videók végtelelnítése + + + + Connection + Kapcsolat + + + + Use Tor + Tor használata + + + + When enabled, please make sure Tor is installed and active. + Ha engedélyezve van, bizonyosodj meg, hogy a Tor telepítve van és aktív. + + + + Accounts + + + + + Settings + Beállítások + + SignInPage - + + Sign in to Reddit Bejelentkezés a Reddit-be - + Cancel Mégse - - Reload - Újratöltés - - - + Sign in successful! Welcome! :) A belépés sikeres! Üdvözlünk! :) @@ -1309,33 +1318,35 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n subscribers - + + + SubredditDelegate - + NSFW NSFW - + Contributor - + Közreműködő - + Banned Bannolva - + Mod - + Mod - + Muted Némítva @@ -1376,7 +1387,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Section - + @@ -1386,7 +1397,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis About - + Súgó @@ -1406,210 +1417,225 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis You have %2 from %1 - + SubredditsPage - - Subreddits - Alredditek - - - + About Quickddit A Quickddit-ről - + Settings Beállítások - + My Profile Saját profil - + Messages Üzenetek - + Go to a specific subreddit Ugrás egy adott alreddithez - + Front Page - + + + + + Quickddit + - + + Signed in as %1 + + + + + Not signed in + + + + Popular Népszerű - + All Mind - - Browse for Subreddits... - Alredditek böngészése... + + Multireddits + - - Multireddits - + + My Saved Things + + + + + Browse all Subreddits + - + Subscribed Subreddits Jegyzett alredditek - + About - + Súgó - + Unsubscribe Leíratkozás - + You have unsubscribed from %1 - + Leiratkoztál innen: %1 UserPage - + User %1 - + - - + + Overview Áttekintés - - + + Comments Hozászólások - - + + Submitted - + - + Upvoted - + - + Downvoted - + - + Saved Things Mentett dolgok - + Section - + - + Send Message Üzenet küldése - + Refresh Frissítés - + My Profile Saját profil - + User Profile Felhasználói profil - + Friend Barát - + Gold - + - + Email Verified Email ellenőrizve - + Mod Mod - + No Robots - + - + %1 link karma %1 link karma - + %1 comment karma %1 hozzászólás karma - + created %1 létrehozva %1 - + Delete Törlés - + Delete link Hivatkozás törlése - + Nothing here :( Semmi újság :( - + Message sent Üzenet elküldve @@ -1624,12 +1650,24 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Gilded - + Aranyozott Comment in %1 - + + + + + [score hidden] + + + + + %n pts + + + @@ -1647,12 +1685,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Promoted - + Gilded - + Aranyozott @@ -1675,27 +1713,37 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n mins ago - + + + %n hours ago - + + + %n days ago - + + + %n months ago - + + + %n years ago - + + + @@ -1703,59 +1751,58 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - Videó + URL - URL + URL Error loading video - Hiba a videó betöltésekor + - - + Problem finding stream URL - + - + youtube-dl error: %1 - + WebViewer - + WebViewer - + - + Copy URL URL másolása - + URL copied to clipboard URL a vágólapra másolva - + Open in browser Megnyitás böngészőben - + Back Vissza - + Forward Előre @@ -1763,46 +1810,59 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + Unsupported reddit url Nem támogatott reddit-hivatkozás - + Unsupported image url Nem támogatott képhivatkozás - + Unsupported video url Nem támogatott videóhivatkozás - + Please log in again Kérlek lépj be újra - - and %1 other - és %1 más + + in /r/%1 by %2 + - - + + and %1 other + + + + + Message from %1 Üzenet innen: %1 - + New message from %1 Új üzenet innen: %1 - + %n new messages 0 - %n új üzenet%n új üzenet + + %n új üzenet + + + + + + Unable to resolve reddit share link + diff --git a/sailfish/translations/harbour-quickddit-it.ts b/sailfish/translations/harbour-quickddit-it.ts index f887a797..b4c8ec28 100644 --- a/sailfish/translations/harbour-quickddit-it.ts +++ b/sailfish/translations/harbour-quickddit-it.ts @@ -22,38 +22,38 @@ Informazioni su %1 - - + + Add Subreddit Aggiungi Subreddit - + Description Descrizione - + No description Nessuna descrizione - + Subreddits Subreddit - + Go to %1 Vai a %1 - + Remove Rimuovere - + Enter subreddit name Digita il nome del subreddit @@ -71,46 +71,41 @@ Quickddit - Un client Reddit libero e gratuito per telefoni cellulari - + App icon by Andrew Zhilin Icona dell'app di Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) David "zarel" Costa - + Current language translation by %1 Traduzione in italiano di %1 - + Licensed under GNU GPLv3+ Fornito in licenza GNU GPLv3+ - + Source Sorgente - + License Licenza - + Translations Traduzioni - - - Donate! - - AboutSubredditPage @@ -239,42 +234,42 @@ AccountsPage - + Accounts Sign out - Disconnettiti + Disconnettiti Sign in to Reddit - Accedi a Reddit + Accedi a Reddit You have signed out from Reddit - Ti sei disconnesso da Reddit + Ti sei disconnesso da Reddit - + Remove %1 account - + Activate - + Remove - Rimuovere + Rimuovere - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -344,21 +339,21 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - Scrivi qui la tua risposta... + Enter your reply here + - Enter your new comment here... - Scrivi qui il nuovo commento... + Enter your new comment here + - + Save Salva - + Add Aggiungi @@ -412,129 +407,116 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis CommentPage - + Comments Commenti - + Best Migliori - + Top Più votati - + New Nuovi - + Hot Caldi - + Controversial Discussi - + Old Vecchi - + Edit Post Modifica Post - - + + Sort Ordinamento - + Add comment Aggiungi commento - + + Share + + + + Refresh Aggiorna - + Viewing a single comment's thread Si sta visualizzando il thread di un singolo commento - + View All Comments Mostra tutti i commenti - + Deleting comment Eliminazione commento - - DonatePage - - - Donate - - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - - - ImageViewPage - + Image Immagine - + Save Image Salva immagine - + + Share Image + + + + URL URL - + Error loading image Errore nel caricamento dell'immagine - + Image saved to gallery Immagine salvata nella galleria - + Image save failed! Salvataggio dell'immagine fallito! @@ -562,7 +544,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis The link text has been changed - Il testo del collegamento è stato cambiato + Il testo del collegamento è stato cambiato @@ -582,52 +564,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis LoadingFooter - Load More... - Carica altri... + Load More… + MainPage - + About %1 Informazioni su %1 - + New Post Nuovo Post - - + + Section Sezione - + Search Ricerca - + Refresh Aggiorna - + + Last refreshed + + + + Delete link Elimina collegamento - + Hide link - - Nothing here :( - Qui non c'è nulla :( + + Nothing here + @@ -658,12 +645,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - Rispondi + Rispondi Delete - Elimina + Elimina @@ -763,17 +750,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddit - + Refresh Aggiorna - + About Informazioni - + Nothing here :( Qui non c'è nulla :( @@ -788,14 +775,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Apri nel browser + Open in… + - Launching web browser... - Avvio del browser web... + Launching… + @@ -855,7 +842,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis submitted %1 by %2 - inviato %1 da %2 + inviato %1 da %2 @@ -887,6 +874,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + SearchDialog @@ -1045,7 +1045,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Best - Migliori + Migliori @@ -1174,7 +1174,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - Impostazioni + Impostazioni @@ -1189,57 +1189,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Font Size - Dimensione carattere + Dimensione carattere Tiny - Minuscolo + Minuscolo Small - Piccolo + Piccolo Medium - Medio + Medio Large - Grande + Grande Device Orientation - Orientamento + Orientamento Automatic - Automatico + Automatico Portrait only - Solo verticale + Solo verticale Landscape only - Solo orizzontale + Solo orizzontale Thumbnail Size - Dimensione anteprima + Dimensione anteprima Auto - Auto + Auto @@ -1254,42 +1254,52 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Notifications - Notifiche + Notifiche Check Messages - Controlla messaggi + Controlla messaggi Media - Media + Media Preferred Video Size - Preferenza Dimensione Video + Preferenza Dimensione Video - Loop Videos - Ripeti Video + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Ripeti Video + + + Connection - Connessione + Connessione - + Use Tor - Usa Tor + Usa Tor - + When enabled, please make sure Tor is installed and active. - Se abilitato, assicurati che Tor sia installato e attivo. + Se abilitato, assicurati che Tor sia installato e attivo. @@ -1298,7 +1308,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - Accedi a Reddit + Accedi a Reddit @@ -1325,27 +1335,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditDelegate - + NSFW NSFW - + Contributor Collaboratore - + Banned Bannato - + Mod Mod - + Muted Muto @@ -1422,77 +1432,92 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditsPage - - Subreddits - Subreddit - - - + About Quickddit Riguardo a Quickddit - + Settings Impostazioni - + My Profile Il Mio Profilo - + Messages Messaggi - + Go to a specific subreddit Vai a un subreddit specifico - + Front Page Prima Pagina - + + Quickddit + + + + + Signed in as %1 + + + + + Not signed in + + + + Popular Popolari - + All Tutti - - Browse for Subreddits... - Altri Subreddit... - - - + Multireddits Multireddit - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Subreddit Sottoscritti - + About Informazioni - + Unsubscribe Disiscriviti - + You have unsubscribed from %1 Disiscrizione avvenuta da %1 @@ -1500,126 +1525,126 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis UserPage - + User %1 Utente %1 - - + + Overview Panoramica - - + + Comments Commenti - - + + Submitted Inviati - + Upvoted Votati positivamente - + Downvoted Votati negativamente - + Saved Things Cose Salvate - + Section Sezione - + Send Message Invia Messaggio - + Refresh Aggiorna - + My Profile Il Mio Profilo - + User Profile Profilo Utente - + Friend Amico - + Gold Oro - + Email Verified Email Verificata - + Mod Mod - + No Robots No Robot - + %1 link karma %1 karma dei link - + %1 comment karma %1 karma dei commenti - + created %1 creato %1 - + Delete Elimina - + Delete link Elimina collegamento - + Nothing here :( Qui non c'è nulla :( - + Message sent Messaggio inviato @@ -1641,6 +1666,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment in %1 Commento in %1 + + + [score hidden] + [punteggio nascosto] + + + + %n pts + + + + + UserPageLinkDelegate @@ -1728,26 +1766,25 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - Video + URL - URL + URL Error loading video - Errore nel caricamento del video + - - + Problem finding stream URL - Problema nel trovare l'URL dello stream + - + youtube-dl error: %1 @@ -1788,43 +1825,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + + + Unable to resolve reddit share link + + + + Unsupported reddit url URL di Reddit non supportato - + Unsupported image url URL immagine non supportato - + Unsupported video url URL video non supportato - + Please log in again Per favore accedi di nuovo - - and %1 other - e %1 altri + + in /r/%1 by %2 + + + + + and %1 other + - - + + Message from %1 Messaggio da %1 - + New message from %1 Nuovo messaggio da %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-nl.ts b/sailfish/translations/harbour-quickddit-nl.ts index 48ca2818..f9730eec 100644 --- a/sailfish/translations/harbour-quickddit-nl.ts +++ b/sailfish/translations/harbour-quickddit-nl.ts @@ -22,38 +22,38 @@ Over %1 - - + + Add Subreddit Subreddit toevoegen - + Description Beschrijving - + No description Geen beschrijving - + Subreddits Subreddits - + Go to %1 Ga naar %1 - + Remove Verwijderen - + Enter subreddit name Voer een subredditnaam in @@ -71,46 +71,41 @@ Quickddit - een vrije Reddit-cliënt voor je mobiele telefoon - + App icon by Andrew Zhilin App-pictogram door Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Nathan Follens - + Current language translation by %1 Huidige vertaling door %1 - + Licensed under GNU GPLv3+ Uitgebracht onder de GNU GPLv3+-licentie - + Source Broncode - + License Licentie - + Translations Vertalingen - - - Donate! - Doneer! - AboutSubredditPage @@ -239,42 +234,42 @@ AccountsPage - + Accounts Accounts Sign out - Uitloggen + Uitloggen Sign in to Reddit - Inloggen bij Reddit + Inloggen bij Reddit You have signed out from Reddit - Je bent uitgelogd bij Reddit + Je bent uitgelogd bij Reddit - + Remove %1 account Account %1 verwijderen - + Activate Activeren - + Remove Verwijderen - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -346,21 +341,21 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen - Enter your reply here... - Voer je reactie hier in... + Enter your reply here + Schrijf hier je reactie - Enter your new comment here... - Voer je nieuwe reactie hier in... + Enter your new comment here + Schrijf hier je nieuwe reactie - + Save Opslaan - + Add Toevoegen @@ -414,129 +409,116 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen CommentPage - + Comments Reacties - + Best Beste - + Top Top - + New Nieuw - + Hot Populair - + Controversial Controversieel - + Old Oud - + Edit Post Post bewerken - - + + Sort Sorteren - + Add comment Reactie toevoegen - + + Share + Delen + + + Refresh Vernieuwen - + Viewing a single comment's thread Je bekijkt de discussie van één reactie - + View All Comments Alle reacties bekijken - + Deleting comment Reactie wordt verwijderd - - DonatePage - - - Donate - Doneren - - - - Donate via PayPal: - Doneren via PayPal: - - - - Donate via Bitcoin: - Doneren via Bitcoin: - - - - Address copied to clipboard - Adres gekopieerd naar klembord - - ImageViewPage - + Image Afbeelding - + Save Image Afbeelding opslaan - + + Share Image + Afbeelding delen + + + URL URL - + Error loading image Fout bij laden van afbeelding - + Image saved to gallery Afbeelding opgeslagen in galerij - + Image save failed! Opslaan van afbeelding mislukt! @@ -584,52 +566,57 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen LoadingFooter - Load More... - Meer laden... + Load More… + Meer laden… MainPage - + About %1 Over %1 - + New Post Nieuwe post - - + + Section Sectie - + Search Zoeken - + Refresh Vernieuwen - + + Last refreshed + Laatst vernieuwd + + + Delete link Verwijzing verwijderen - + Hide link Verwijzing verbergen - - Nothing here :( - Niets te zien :( + + Nothing here + Niets te zien @@ -765,17 +752,17 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen Multireddits - + Refresh Vernieuwen - + About Over - + Nothing here :( Niets te zien :( @@ -790,14 +777,14 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen - Open in browser - Openen in browser + Open in… + Openen met… - Launching web browser... - Browser wordt geopend... + Launching… + Starten… @@ -889,6 +876,19 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen + + QMLUtils + + + Invalid share URL + Ongeldige deel-URL + + + + Unable to resolve share URL + Kon de deel-URL niet vinden + + SearchDialog @@ -1176,122 +1176,132 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen Settings - Instellingen + Instellingen Accounts - Accounts + Accounts UX - Gebruikersinterface + Gebruikersinterface Font Size - Lettergrootte + Lettergrootte Tiny - Extra klein + Extra klein Small - Klein + Klein Medium - Gemiddeld + Gemiddeld Large - Groot + Groot Device Orientation - Schermoriëntatie + Schermoriëntatie Automatic - Automatisch + Automatisch Portrait only - Enkel portret + Enkel portret Landscape only - Enkel landschap + Enkel landschap Thumbnail Size - Miniatuurgrootte + Miniatuurgrootte Auto - Automatisch + Automatisch Thumbnail Link Type Indicator - Verwijzingstype-indicator voor miniaturen + Verwijzingstype-indicator voor miniaturen Comments Tap To Hide - Tikken om reacties te verbergen + Tikken om reacties te verbergen Notifications - Meldingen + Meldingen Check Messages - Bericht + Bericht Media - Media + Media Preferred Video Size - Voorkeursgrootte voor video’s + Voorkeursgrootte voor video’s - Loop Videos - Video’s herhalend afspelen + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Video’s herhalend afspelen + + + Connection - Verbinding + Verbinding - + Use Tor - Tor gebruiken + Tor gebruiken - + When enabled, please make sure Tor is installed and active. - Hiervoor dient Tor geïnstalleerd en actief te zijn. + Hiervoor dient Tor geïnstalleerd en actief te zijn. @@ -1300,17 +1310,17 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen Sign in to Reddit - Inloggen bij Reddit + Inloggen bij Reddit Cancel - + Annuleren Sign in successful! Welcome! :) - + Je bent ingelogd! Welkom! :) @@ -1327,27 +1337,27 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen SubredditDelegate - + NSFW NSFW - + Contributor Bijdrager - + Banned Verbannen - + Mod Mod - + Muted Gedempt @@ -1424,77 +1434,92 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen SubredditsPage - - Subreddits - Subreddits - - - + About Quickddit Over Quickddit - + Settings Instellingen - + My Profile Mijn profiel - + Messages Berichten - + Go to a specific subreddit Ga naar een specifieke subreddit - + Front Page Voorpagina - + + Quickddit + Quickddit + + + + Signed in as %1 + Ingelogd als %1 + + + + Not signed in + Niet ingelogd + + + Popular Populair - + All Alles - - Browse for Subreddits... - Bladeren door subreddits... - - - + Multireddits Multireddits - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Geabonneerde subreddits - + About Over - + Unsubscribe Uitschrijven - + You have unsubscribed from %1 Je bent niet meer geabonneerd op %1 @@ -1502,126 +1527,126 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen UserPage - + User %1 Gebruiker %1 - - + + Overview Overzicht - - + + Comments Reacties - - + + Submitted Ingediend - + Upvoted Omhoog gestemd - + Downvoted Omlaag gestemd - + Saved Things Opgeslagen dingen - + Section Sectie - + Send Message Bericht verzenden - + Refresh Vernieuwen - + My Profile Mijn profiel - + User Profile Gebruikersprofiel - + Friend Vriend - + Gold Goud - + Email Verified Geverifieerd e-mailadres - + Mod Mod - + No Robots Geen robots - + %1 link karma %1 verwijzingskarma - + %1 comment karma %1 reactiekarma - + created %1 %1 aangemaakt - + Delete Verwijderen - + Delete link Verwijzing verwijderen - + Nothing here :( Niets te zien :( - + Message sent Bericht verzonden @@ -1643,6 +1668,19 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen Comment in %1 Reactie in %1 + + + [score hidden] + [score verborgen] + + + + %n pts + + %n pt + %n ptn + + UserPageLinkDelegate @@ -1730,28 +1768,27 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen Video - Video + URL - URL + URL Error loading video - Fout bij laden van video + - - + Problem finding stream URL - Kon stream-URL niet vinden + - + youtube-dl error: %1 - youtube-dl-fout: %1 + @@ -1790,43 +1827,54 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen main - + + + Unable to resolve reddit share link + Kon de reddit-deelkoppeling niet vinden + + + Unsupported reddit url Reddit-URL niet ondersteund - + Unsupported image url Afbeeldings-URL niet ondersteund - + Unsupported video url Video-URL niet ondersteund - + Please log in again Log opnieuw in - - and %1 other - en %1 andere + + in /r/%1 by %2 + in /r/%1 door %2 + + + + and %1 other + en nog %1 meer - - + + Message from %1 Bericht van %1 - + New message from %1 Nieuw bericht van %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-nl_BE.ts b/sailfish/translations/harbour-quickddit-nl_BE.ts index b85838a7..a9948d60 100644 --- a/sailfish/translations/harbour-quickddit-nl_BE.ts +++ b/sailfish/translations/harbour-quickddit-nl_BE.ts @@ -22,38 +22,38 @@ Over %1 - - + + Add Subreddit Subreddit toevoegen - + Description Beschrijving - + No description Geen beschrijving - + Subreddits Subreddits - + Go to %1 Ga naar %1 - + Remove Verwijderen - + Enter subreddit name Voert ne subredditnaam in @@ -71,46 +71,41 @@ Quickddit - ne vrije Reddit-cliënt voor uwe gsm - + App icon by Andrew Zhilin App-pictogram door Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Nathan Follens - + Current language translation by %1 Huidige vertaling door %1 - + Licensed under GNU GPLv3+ Uitgebracht onder de GNU GPLv3+-licentie - + Source Broncode - + License Licentie - + Translations Vertalingen - - - Donate! - Doneert! - AboutSubredditPage @@ -142,7 +137,7 @@ This subreddit is Not Safe For Work - Deze subreddit is nie geschikt voor op ’t werk + Deze subreddit is ni’ geschikt voôr op ’t werk @@ -168,7 +163,7 @@ Not Subscribed - Nie geabonneerd + Ni’ geabonneerd @@ -228,53 +223,53 @@ You have subscribed to %1 - Ge zijt nu geabonneerd op %1 + Ge zij nu geabonneerd op %1 You have unsubscribed from %1 - Ge zijt nie meer geabonneerd op %1 + Ge zij nimeêr geabonneerd op %1 AccountsPage - + Accounts Accounts Sign out - Uitloggen + Uitloggen Sign in to Reddit - Inloggen bij Reddit + Inloggen bij Reddit You have signed out from Reddit - Ge zijt uitgelogd bij Reddit + Ge zijt uitgelogd bij Reddit - + Remove %1 account Account %1 verwijderen - + Activate Activeren - + Remove Verwijderen - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -342,25 +337,25 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New Comment - Nieuwe commentaar + Nieve commentaar - Enter your reply here... - Voert uwe commentaar hier in... + Enter your reply here + Schrijft hier uwe commentaar - Enter your new comment here... - Voert uwe nieuwe commentaar hier in... + Enter your new comment here + Schrijft hier uwe nieve commentaar - + Save Opslaan - + Add Toevoegen @@ -414,129 +409,116 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding CommentPage - + Comments Commentaren - + Best Beste - + Top Top - + New - Nieuw + Nief - + Hot Populair - + Controversial Controversieel - + Old Oud - + Edit Post Post bewerken - - + + Sort Sorteren - + Add comment Commentaar toevoegen - + + Share + Dêlen + + + Refresh - Vernieuwen + Vernieven - + Viewing a single comment's thread Ge bekijkt den draad van ene commentaar - + View All Comments Alle commentaren bekijken - + Deleting comment Commentaar wordt verwijderd - - DonatePage - - - Donate - Doneren - - - - Donate via PayPal: - Doneren via PayPal: - - - - Donate via Bitcoin: - Doneren via Bitcoin: - - - - Address copied to clipboard - Adres gekopieerd naar klembord - - ImageViewPage - + Image Afbeelding - + Save Image Afbeelding opslaan - + + Share Image + Afbeelding dêlen + + + URL URL - + Error loading image Fout bij laden van afbeelding - + Image saved to gallery Afbeelding opgeslagen in galerij - + Image save failed! Opslaan van afbeelding mislukt! @@ -546,7 +528,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Unable to get Imgur ID from the url: %1 - Kost den Imgur-ID nie ophalen van URL: %1 + Kost den Imgur-ID ni ophalen van URL: %1 @@ -577,59 +559,64 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Hide - Verbergen + Wegsteken LoadingFooter - Load More... - Meer laden... + Load More… + Meêr laden… MainPage - + About %1 Over %1 - + New Post - Nieuwe post + Nieve post - - + + Section Sectie - + Search Zoeken - + Refresh - Vernieuwen + Vernieven - + + Last refreshed + Laatst verniefd + + + Delete link - Verwijzing verwijderen + Koppeling verwijderen - + Hide link - Verwijzing verbergen + Koppeling wegsteken - - Nothing here :( - Niks te zien :( + + Nothing here + Niks te zien @@ -719,7 +706,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New Message - Nieuw bericht + Nief bericht @@ -730,7 +717,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Refresh - Vernieuwen + Vernieven @@ -765,17 +752,17 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Multireddits - + Refresh - Vernieuwen + Vernieven - + About Over - + Nothing here :( Niks te zien :( @@ -790,14 +777,14 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding - Open in browser - Openen in browser + Open in… + Openen me… - Launching web browser... - Browser wordt geopend... + Launching… + Starten… @@ -889,6 +876,19 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding + + QMLUtils + + + Invalid share URL + Ongeldigen deêl-URL + + + + Unable to resolve share URL + Kost den deêl-URL ni’ vinden + + SearchDialog @@ -942,7 +942,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New - Nieuw + Nief @@ -1009,7 +1009,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Refresh - Vernieuwen + Vernieven @@ -1024,7 +1024,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New - Nieuw + Nief @@ -1085,7 +1085,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New Post - Nieuwe post + Nieve post @@ -1133,7 +1133,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New Message - Nieuw bericht + Nief bericht @@ -1176,122 +1176,132 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Settings - Instellingen + Instellingen Accounts - Accounts + Accounts UX - Gebruikersinterface + Gebruikersinterface Font Size - Lettergrootte + Lettergrootte Tiny - Extra klein + Extra klein Small - Klein + Klein Medium - Gemiddeld + Gemiddeld Large - Groot + Groot Device Orientation - Schermoriëntatie + Schermoriëntatie Automatic - Automatisch + Automatisch Portrait only - Enkel portret + Enkel portret Landscape only - Enkel landschap + Enkel landschap Thumbnail Size - Miniatuurgrootte + Miniatuurgrootte Auto - Automatisch + Automatisch Thumbnail Link Type Indicator - Verwijzingstype-indicator voor miniaturen + Verwijzingstype-indicator voor miniaturen Comments Tap To Hide - Tikken voor commentaren te verbergen + Tikt voôr commentaren weg te steken Notifications - Meldingen + Meldingen Check Messages - Bericht + Bericht Media - Media + Media Preferred Video Size - Voorkeursgrootte voor filmkes + Voorkeursgrootte voor filmkes - Loop Videos - Filmkes herhalend afspelen + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Filmkes herhalend afspelen + + + Connection - Verbinding + Verbinding - + Use Tor - Tor gebruiken + Tor gebruiken - + When enabled, please make sure Tor is installed and active. - Hiervoor moet Tor geïnstalleerd en actief zijn. + Hiervoôr moet Tor geïnstalleerd en actief zijn. @@ -1300,17 +1310,17 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Sign in to Reddit - Inloggen bij Reddit + Inloggen bij Reddit Cancel - + Annuleren Sign in successful! Welcome! :) - + Ge zijt ingelogd! Welkom! :) @@ -1327,27 +1337,27 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding SubredditDelegate - + NSFW NSFW - + Contributor Bijdrager - + Banned Verbannen - + Mod Mod - + Muted Gedempt @@ -1367,7 +1377,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding New Subreddits - Nieuwe subreddits + Nieve subreddits @@ -1393,7 +1403,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Refresh - Vernieuwen + Vernieven @@ -1424,204 +1434,219 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding SubredditsPage - - Subreddits - Subreddits - - - + About Quickddit Over Quickddit - + Settings Instellingen - + My Profile Mijn profiel - + Messages Berichten - + Go to a specific subreddit Ga naar ne specifieke subreddit - + Front Page Voorpagina - + + Quickddit + Quickddit + + + + Signed in as %1 + Ingelogd as %1 + + + + Not signed in + Ni ingelogd + + + Popular Populair - + All Alles - - Browse for Subreddits... - Bladeren door subreddits... - - - + Multireddits Multireddits - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Geabonneerde subreddits - + About Over - + Unsubscribe Uitschrijven - + You have unsubscribed from %1 - Ge zijt nie meer geabonneerd op %1 + Ge zij nimeêr geabonneerd op %1 UserPage - + User %1 Gebruiker %1 - - + + Overview Overzicht - - + + Comments Commentaren - - + + Submitted Ingediend - + Upvoted Omhoog gestemd - + Downvoted Omlaag gestemd - + Saved Things Opgeslagen dingen - + Section Sectie - + Send Message Bericht verzenden - + Refresh - Vernieuwen + Vernieven - + My Profile Mijn profiel - + User Profile Gebruikersprofiel - + Friend Vriend - + Gold Goud - + Email Verified Geverifieerd e-mailadres - + Mod Mod - + No Robots Geen robots - + %1 link karma %1 verwijzingskarma - + %1 comment karma %1 commentaarkarma - + created %1 %1 aangemaakt - + Delete Verwijderen - + Delete link Verwijzing verwijderen - + Nothing here :( Niks te zien :( - + Message sent Bericht verzonden @@ -1643,6 +1668,19 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Comment in %1 Commentaar in %1 + + + [score hidden] + [score verdoken] + + + + %n pts + + %n pt + %n ptn + + UserPageLinkDelegate @@ -1743,13 +1781,12 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Fout bij laden van filmke - - + Problem finding stream URL - Kon stream-URL nie vinden + Kost de stream-URL ni’ vinden - + youtube-dl error: %1 youtube-dl-fout: %1 @@ -1790,48 +1827,59 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding main - + + + Unable to resolve reddit share link + Kost de reddit-deêlkoppeling ni’ vinden + + + Unsupported reddit url - Reddit-URL nie ondersteund + Reddit-URL ni ondersteund - + Unsupported image url - Afbeeldings-URL nie ondersteund + Afbeeldings-URL ni ondersteund - + Unsupported video url - Video-URL nie ondersteund + Video-URL ni ondersteund - + Please log in again Logt terug in - - and %1 other - en %1 andere + + in /r/%1 by %2 + in /r/%1 van %2 + + + + and %1 other + en nog %1 meêr - - + + Message from %1 Bericht van %1 - + New message from %1 - Nieuw bericht van %1 + Nief bericht van %1 - + %n new messages 0 - %n nieuw bericht - %n nieuwe berichten + %n nief bericht + %n nieve berichten diff --git a/sailfish/translations/harbour-quickddit-pl.ts b/sailfish/translations/harbour-quickddit-pl.ts index b3e83582..219f0666 100644 --- a/sailfish/translations/harbour-quickddit-pl.ts +++ b/sailfish/translations/harbour-quickddit-pl.ts @@ -22,38 +22,38 @@ O %1 - - + + Add Subreddit Dodaj Subreddit - + Description Opis - + No description Brak opisu - + Subreddits Subreddity - + Go to %1 Idź do %1 - + Remove Usuń - + Enter subreddit name Wpisz nazwę subreddita @@ -71,46 +71,41 @@ Quickddit - wolny i otwarty klient Reddita na urządzenia mobilne - + App icon by Andrew Zhilin Autor ikony aplikacji: Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Maciej Wereski - + Current language translation by %1 Tłumaczenie na język polski: %1 - + Licensed under GNU GPLv3+ Na licencji GNU GPLv3+ - + Source Źródło - + License Licencja - + Translations Tłumaczenia - - - Donate! - - AboutSubredditPage @@ -235,48 +230,48 @@ You have unsubscribed from %1 - Anulowano subskrypcję %1 + Anulowano subskrypcję %1 AccountsPage - + Accounts Sign out - Wyloguj + Wyloguj Sign in to Reddit - Zaloguj się do Reddita + Zaloguj się do Reddita You have signed out from Reddit - Wylogowano z Reddita + Wylogowano z Reddita - + Remove %1 account - + Activate - + Remove - Usuń + Usuń - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -349,21 +344,21 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Enter your reply here... - Wpisz tu odpowiedź... + Enter your reply here + - Enter your new comment here... - Wpisz nowy komentarz tutaj... + Enter your new comment here + - + Save Zapisz - + Add Dodaj @@ -417,129 +412,116 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis CommentPage - + Comments Komentarze - + Best Najlepsze - + Top Top - + New Nowe - + Hot Gorące - + Controversial Kontrowersyjne - + Old Stare - + Edit Post Edytuj Post - - + + Sort Sortuj - + Add comment Dodaj komentarz - + + Share + + + + Refresh Odśwież - + Viewing a single comment's thread Wyświetlanie pojedynczego wątku komentarza - + View All Comments Wyświetl wszystkie komentarze - + Deleting comment Usuwanie komentarza - - DonatePage - - - Donate - - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - - - ImageViewPage - + Image Obraz - + Save Image Zapisz Obraz - + + Share Image + + + + URL URL - + Error loading image Błąd przy ładowaniu obrazu - + Image saved to gallery Obraz zapisany w galerii - + Image save failed! Zapis obrazu nie powiódł się! @@ -587,52 +569,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis LoadingFooter - Load More... - Załaduj więcej... + Load More… + MainPage - + About %1 O %1 - + New Post Nowy Post - - + + Section Sekcja - + Search Szukaj - + Refresh Odśwież - + + Last refreshed + + + + Delete link Usuń link - + Hide link - - Nothing here :( - Nic tutaj nie ma :( + + Nothing here + @@ -663,12 +650,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - Odpowiedz + Odpowiedz Delete - Usuń + Usuń @@ -768,17 +755,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddity - + Refresh Odśwież - + About O - + Nothing here :( Nic tutaj nie ma :( @@ -793,14 +780,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Otwórz w przeglądarce + Open in… + - Launching web browser... - Uruchamianie przeglądarki... + Launching… + @@ -895,6 +882,19 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + SearchDialog @@ -1053,7 +1053,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Best - Najlepsze + Najlepsze @@ -1182,7 +1182,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - Ustawienia + Ustawienia @@ -1197,57 +1197,57 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Font Size - Rozmiar Czcionki + Rozmiar Czcionki Tiny - Miniaturowy + Miniaturowy Small - Mały + Mały Medium - Średni + Średni Large - Duży + Duży Device Orientation - Orientacja wyświetlacza + Orientacja wyświetlacza Automatic - Automatycznie + Automatycznie Portrait only - Tylko pionowa + Tylko pionowa Landscape only - Tylko pozioma + Tylko pozioma Thumbnail Size - Rozmiar Miniaturek + Rozmiar Miniaturek Auto - Auto + Auto @@ -1262,42 +1262,52 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Notifications - Powiadomienia + Powiadomienia Check Messages - Sprawdź wiadomości + Sprawdź wiadomości Media - Media + Media Preferred Video Size - Preferowany Rozmiar Filmów + Preferowany Rozmiar Filmów - Loop Videos - Zapętlaj Filmy + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Zapętlaj Filmy + + + Connection - Połączenie + Połączenie - + Use Tor - Używaj sieci Tor + Używaj sieci Tor - + When enabled, please make sure Tor is installed and active. - Proszę upewnij się, że Tor jest zainstalowany i aktywny, jeżeli ta opcja jest zaznaczona. + Proszę upewnij się, że Tor jest zainstalowany i aktywny, jeżeli ta opcja jest zaznaczona. @@ -1306,7 +1316,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - Zaloguj się do Reddita + Zaloguj się do Reddita @@ -1334,27 +1344,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditDelegate - + NSFW NSFW - + Contributor Kontrybutor - + Banned Zbanowany - + Mod Moderator - + Muted Wyciszony @@ -1431,204 +1441,219 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditsPage - - Subreddits - Subreddity - - - + About Quickddit O Quickddit - + Settings Ustawienia - + My Profile Mój Profil - + Messages Wiadomości - + Go to a specific subreddit Przejdź do określonego subreddita - + Front Page Strona Główna - + + Quickddit + + + + + Signed in as %1 + + + + + Not signed in + + + + Popular Popularne - + All Wszystko - - Browse for Subreddits... - Przeglądaj Subreddity... - - - + Multireddits Multireddity - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Subskrybowane Subreddity - + About O - + Unsubscribe Wypisz - + You have unsubscribed from %1 - Anulowano subskrypcję %1 + Anulowano subskrypcję %1 UserPage - + User %1 Użytkownik %1 - - + + Overview Przegląd - - + + Comments Komentarze - - + + Submitted Wysłane - + Upvoted Podbite - + Downvoted Obniżone - + Saved Things Zapisane - + Section Sekcja - + Send Message Wyślij Wiadomość - + Refresh Odśwież - + My Profile Mój Profil - + User Profile Profil Użytkownika - + Friend Przyjaciel - + Gold Złoto - + Email Verified Email Zweryfikowany - + Mod Moderator - + No Robots Brak Robotów - + %1 link karma %1 karma linków - + %1 comment karma %1 karma komentarzy - + created %1 stworzono %1 - + Delete Usuń - + Delete link Usuń link - + Nothing here :( Nic tutaj nie ma :( - + Message sent Wiadomość wysłana @@ -1650,6 +1675,20 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Comment in %1 Komentarz w %1 + + + [score hidden] + [wynik ukryty] + + + + %n pts + + + + + + UserPageLinkDelegate @@ -1742,26 +1781,25 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - Film + URL - URL + URL Error loading video - Błąd przy ładowaniu filmu + - - + Problem finding stream URL - Problem ze znalezieniem strumienia URL + - + youtube-dl error: %1 @@ -1786,7 +1824,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Open in browser - Otwórz w przeglądarce + Otwórz w przeglądarce @@ -1802,43 +1840,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + + + Unable to resolve reddit share link + + + + Unsupported reddit url Niewspierany URL reddita - + Unsupported image url Niewspierany URL obrazu - + Unsupported video url Niewspierany URL filmu - + Please log in again Proszę, zaloguj się ponownie - - and %1 other - i %1 inny(ch) + + in /r/%1 by %2 + + + + + and %1 other + - - + + Message from %1 Wiadomość od %1 - + New message from %1 Nowa wiadomość od %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-pt_BR.ts b/sailfish/translations/harbour-quickddit-pt_BR.ts index 2e067a43..c4447d90 100644 --- a/sailfish/translations/harbour-quickddit-pt_BR.ts +++ b/sailfish/translations/harbour-quickddit-pt_BR.ts @@ -22,38 +22,38 @@ Sobre %1 - - + + Add Subreddit Adicionar Comunidade - + Description Descrição - + No description Sem descrição - + Subreddits Comunidades - + Go to %1 Ir para %1 - + Remove Remover - + Enter subreddit name Insira o nome da Comunidade @@ -71,46 +71,41 @@ Quickddit - Um cliente Reddit software livre e open source para celulares - + App icon by Andrew Zhilin Design do ícone por Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) caio2k - + Current language translation by %1 Traduzido por %1 - + Licensed under GNU GPLv3+ Licença sob a GNU GPLv3+ - + Source Código fonte - + License Licença - + Translations Traduções - - - Donate! - Fazer doação - AboutSubredditPage @@ -239,42 +234,42 @@ AccountsPage - + Accounts Contas Sign out - Fazer logout + Fazer logout Sign in to Reddit - Fazer login no Reddit + Fazer login no Reddit You have signed out from Reddit - Logout do Reddit feito + Logout do Reddit feito - + Remove %1 account Remover conta %1 - + Activate Ativar - + Remove Remover - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -346,21 +341,21 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas - Enter your reply here... - Insira sua resposta aqui... + Enter your reply here + - Enter your new comment here... - Insira seu comentário aqui... + Enter your new comment here + - + Save Salvar - + Add Adicionar @@ -414,129 +409,116 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas CommentPage - + Comments Comentários - + Best Melhores - + Top Top - + New Novos - + Hot Quentes - + Controversial Controversos - + Old Antigos - + Edit Post Editar postagem - - + + Sort Ordenar comentários por - + Add comment Adicionar Comentário - + + Share + + + + Refresh Atualizar - + Viewing a single comment's thread Vendo somente uma discussão - + View All Comments Ver todos os Comentários - + Deleting comment Apagar Comentário - - DonatePage - - - Donate - Fazer Doação - - - - Donate via PayPal: - Doar pelo Paypal: - - - - Donate via Bitcoin: - Doar por Bitcoin: - - - - Address copied to clipboard - Endereço copiado para área de transferência - - ImageViewPage - + Image Imagem - + Save Image Salvar Imagem - + + Share Image + + + + URL Endereço - + Error loading image Erro ao carregar imagem - + Image saved to gallery Imagem salva na galeria - + Image save failed! Erro ao salvar imagem! @@ -584,52 +566,57 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas LoadingFooter - Load More... - Carregar mais... + Load More… + MainPage - + About %1 Sobre %1 - + New Post Novo Postagem - - + + Section Seção - + Search Buscar - + Refresh Atualizar - + + Last refreshed + + + + Delete link Apagar link - + Hide link Esconder link - - Nothing here :( - Nada aqui :( + + Nothing here + @@ -765,17 +752,17 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas Multireddits - + Refresh Atualizar - + About Sobre - + Nothing here :( Nada aqui :( @@ -790,14 +777,14 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas - Open in browser - Abrir no navegador + Open in… + - Launching web browser... - Abrindo navegador... + Launching… + @@ -889,6 +876,19 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + SearchDialog @@ -1176,122 +1176,132 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas Settings - Configurações + Configurações Accounts - Contas + Contas UX - Interface + Interface Font Size - Tamanho da fonte + Tamanho da fonte Tiny - Minúsculo + Minúsculo Small - Pequeno + Pequeno Medium - Médio + Médio Large - Grande + Grande Device Orientation - Orientação + Orientação Automatic - Dinâmica + Dinâmica Portrait only - Retrato + Retrato Landscape only - Paisagem + Paisagem Thumbnail Size - Tamanho da miniatura + Tamanho da miniatura Auto - Automático + Automático Thumbnail Link Type Indicator - Ícone para links + Ícone para links Comments Tap To Hide - Tocar para esconder comentário + Tocar para esconder comentário Notifications - Notificações + Notificações Check Messages - Verificar mensagens + Verificar mensagens Media - Mídia + Mídia Preferred Video Size - Resolução de vídeo + Resolução de vídeo - Loop Videos - Repetir vídeo + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + Loop Videos + Repetir vídeo + + + Connection - Conexão + Conexão - + Use Tor - Usar Tor + Usar Tor - + When enabled, please make sure Tor is installed and active. - Quando habilitado verificar se Tor está instalado e ativo. + Quando habilitado verificar se Tor está instalado e ativo. @@ -1300,7 +1310,7 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas Sign in to Reddit - Fazer login no Reddit + Fazer login no Reddit @@ -1327,27 +1337,27 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas SubredditDelegate - + NSFW NSFW - + Contributor Colaborador - + Banned Banido - + Mod Mod - + Muted Mudo @@ -1424,77 +1434,92 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas SubredditsPage - - Subreddits - Comunidades - - - + About Quickddit Sobre Quickddit - + Settings Configurações - + My Profile Meu Perfil - + Messages Mensagens - + Go to a specific subreddit Insira a Comunidade aqui - + Front Page Página Inicial - + + Quickddit + + + + + Signed in as %1 + + + + + Not signed in + + + + Popular Popular - + All Todos - - Browse for Subreddits... - Listar Comunidades... - - - + Multireddits Multireddits - + + My Saved Things + + + + + Browse all Subreddits + + + + Subscribed Subreddits Membro das Comunidades - + About Sobre - + Unsubscribe Sair - + You have unsubscribed from %1 Você saiu do %1 @@ -1502,126 +1527,126 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas UserPage - + User %1 Usuário %1 - - + + Overview Resumo - - + + Comments Comentários - - + + Submitted Enviado - + Upvoted Cimavotado - + Downvoted Baixovotado - + Saved Things Coisas Salvas - + Section Seção - + Send Message Enviar Mensagem - + Refresh Atualizar - + My Profile Meu Perfil - + User Profile Perfil do Usuário - + Friend Amigo - + Gold Premiado - + Email Verified Email Verificado - + Mod Mod - + No Robots Não Robô - + %1 link karma %1 karma de Links - + %1 comment karma %1 karma de Comentários - + created %1 conta criada %1 - + Delete Apagar - + Delete link Apagar link - + Nothing here :( Nada aqui :( - + Message sent Mensagem enviada @@ -1643,6 +1668,19 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas Comment in %1 Comentário em %1 + + + [score hidden] + [pontuação oculta] + + + + %n pts + + %n pontos + %n pontos + + UserPageLinkDelegate @@ -1730,28 +1768,27 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas Video - Vídeo + URL - Endereço + Endereço Error loading video - Erro ao carregar vídeo + - - + Problem finding stream URL - Erro ao encontrar endereço para stream + - + youtube-dl error: %1 - Ocorreu um erro de youtube-dl: %1 + @@ -1790,43 +1827,54 @@ Para adicionar uma conta faça um Login. Aqui estarão listadas todas as contas main - + + + Unable to resolve reddit share link + + + + Unsupported reddit url Endereço de reddit não suportado - + Unsupported image url Endereço de imagem não suportado - + Unsupported video url Endereço de vídeo não suportado - + Please log in again Favor fazer login novamente - - and %1 other - e %1 outros + + in /r/%1 by %2 + + + + + and %1 other + - - + + Message from %1 Mensagem de %1 - + New message from %1 Nova mensagem de %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-ru.ts b/sailfish/translations/harbour-quickddit-ru.ts new file mode 100644 index 00000000..f51c2d57 --- /dev/null +++ b/sailfish/translations/harbour-quickddit-ru.ts @@ -0,0 +1,1900 @@ + + + + + AboutMultiredditManager + + + %1 has been added to %2 + %1 был добавлен к %2 + + + + %1 has been removed from %2 + %1 был удален из %2 + + + + AboutMultiredditPage + + + About %1 + О мультиреддите %1 + + + + + Add Subreddit + Добавить сабреддит + + + + Description + Описание + + + + No description + Нет описания + + + + Subreddits + Сабреддиты + + + + Go to %1 + Перейти к %1 + + + + Remove + Убрать + + + + Enter subreddit name + Введите название сабреддита + + + + AboutPage + + + About + О приложении + + + + Quickddit - A free and open source Reddit client for mobile phones + Quickddit — бесплатный клиент Reddit с открытым исходным кодом для мобильных телефонов + + + + App icon by Andrew Zhilin + Значок приложения от Andrew Zhilin + + + + _translator + _translator is used as a placeholder for the name of the translator (you :) + Denis Lednev + + + + Current language translation by %1 + Перевод на текущий язык от %1 + + + + Licensed under GNU GPLv3+ + Лицензия GNU GPLv3+ + + + + Source + Источник + + + + License + Лицензия + + + + Translations + Переводы + + + + AboutSubredditPage + + + About %1 + О сабреддите %1 + + + + Moderators + Модераторы + + + + Message Moderators + Модераторы сообщений + + + + Unsubscribe + Отписаться + + + + Subscribe + Подписаться + + + + This subreddit is Not Safe For Work + Этот сабреддит небезопасен для работы + + + + %n subscribers + + %n подписчик + %n подписчика + %n подписчиков + + + + + %n active users + + %n активный пользователь + %n активных пользователя + %n активных пользователей + + + + + Subscribed + Подписан + + + + Not Subscribed + Не подписан + + + + Private + Приватный + + + + Restricted + Ограниченный + + + + GoldRestricted + Доступ ограничен для пользователей с Reddit Gold + + + + Archived + Архивировано + + + + Links only + Только ссылки + + + + Self posts only + Только текстовые посты + + + + NSFW + 18+ + + + + Contributor + Автор + + + + Banned + Заблокирован + + + + Mod + Модератор + + + + Muted + Заглушён + + + + You have subscribed to %1 + Вы подписаны на %1 + + + + You have unsubscribed from %1 + Вы отписались от %1 + + + + AccountsPage + + + Accounts + Аккаунты + + + + Sign out + Выйти из аккаунта + + + + Sign in to Reddit + Войти в аккаунт Reddit + + + + You have signed out from Reddit + Вы вышли из аккаунта Reddit + + + + Remove %1 account + Удалить аккаунт %1 + + + + Activate + Активировать + + + + Remove + Отключить + + + + No known accounts yet. + +To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here + Пока нет известных аккаунтов. Чтобы добавить аккаунты, просто войдите. Quickddit запомнит успешные входы и отобразит аккаунты здесь + + + + CommentDelegate + + + Sticky + Закреплённый + + + + Gilded + Награждён + + + + [score hidden] + оценка скрыта + + + + %n pts + + %n балл + %n балла + %n баллов + + + + + Load %n hidden comments + + Загрузить %n скрытый комментарий + Загрузить %n скрытых комментария + Загрузить %n скрытых комментариев + + + + + Continue this thread + Продолжить эту ветку + + + + Show %n collapsed comments + + Показать %n свёрнутый комментарий + Показать %n свёрнутых комментария + Показать %n свёрнутых комментариев + + + + + Editing Comment + Редактирование комментария + + + + Comment Reply + Ответить на комментарий + + + + New Comment + Новый комментарий + + + + Enter your reply here + Введите ваш ответ здесь + + + + Enter your new comment here + Введите ваш комментарий + + + + Save + Сохранить + + + + Add + Добавить + + + + CommentManager + + + The comment has been added + Комментарий был добавлен + + + + The comment has been edited + Комментарий был отредактирован + + + + The comment has been deleted + Комментарий был удалён + + + + CommentMenu + + + Copy Comment + Скопировать + + + + Comment copied to clipboard + Комментарий скопирован в буфер обмена + + + + Reply + Ответить + + + + Edit + Редактировать + + + + Delete + Удалить + + + + CommentPage + + + Comments + Комментарии + + + + Best + Лучшие + + + + Top + Топ + + + + New + Новые + + + + Hot + Горячие + + + + Controversial + Противоречивые + + + + Old + Старые + + + + Edit Post + Редактировать пост + + + + + Sort + Сортировать + + + + Add comment + Добавить комментарий + + + + Share + Поделиться + + + + Refresh + Обновить + + + + Viewing a single comment's thread + Просмотр ветки одного комментария + + + + View All Comments + Просмотреть все комментарии + + + + Deleting comment + Удаление комментария + + + + ImageViewPage + + + Image + Изображение + + + + Save Image + Сохранить изображение + + + + Share Image + Поделиться изображением + + + + URL + ссылка + + + + Error loading image + Ошибка загрузки изображения + + + + Image saved to gallery + Изображение сохранено в галерею + + + + Image save failed! + Не удалось сохранить изображение! + + + + ImgurManager + + + Unable to get Imgur ID from the url: %1 + Не удалось получить идентификатор Imgur из URL: %1 + + + + Imgur API returns no image + API Imgur не возвращает изображение + + + + LinkManager + + + The link has been added + Ссылка успешно добавлена + + + + The link text has been changed + Текст ссылки был изменён + + + + LinkMenu + + + Delete + Удалить + + + + Hide + Скрыть ссылку + + + + LoadingFooter + + + Load More… + Загрузить еще… + + + + MainPage + + + About %1 + Около %1 + + + + New Post + Новый пост + + + + + Section + Раздел + + + + Search + Поиск + + + + Refresh + Обновить + + + + Last refreshed + Последнее обновление + + + + Delete link + Удалить ссылку + + + + Hide link + Скрыть ссылку + + + + Nothing here + Здесь ничего нет + + + + MessageDelegate + + + %1 from %2 + %1 из %2 + + + + in %1 + в %1 + + + + to %1 + к %1 + + + + from %1 + от %1 + + + + MessageMenu + + + Reply + Ответить + + + + Delete + Удалить + + + + Mark As Read + Отметить как прочитанное + + + + Mark As Unread + Отметить как непрочитанное + + + + MessagePage + + + + Messages + Сообщения + + + + All + Все + + + + Unread + Непрочитанные + + + + Comment Replies + Ответы на комментарии + + + + Post Replies + Ответы на публикации + + + + Sent + Отправил + + + + Username Mentions + Упоминания имени пользователя + + + + New Message + Новое сообщение + + + + + Section + Раздел + + + + Refresh + Обновить + + + + Deleting message + Удаление сообщения + + + + Nothing here :( + Здесь ничего нет :( + + + + + Message sent + Сообщение отправлено + + + + ModeratorListPage + + + Moderators + Модераторы + + + + MultiredditsPage + + + Multireddits + Коллекции сабреддитов + + + + Refresh + Обновить + + + + About + О программе + + + + Nothing here :( + Здесь ничего нет :( + + + + OpenLinkDialog + + + Open URL + Открыть ссылку + + + + + Open in… + Открыть через… + + + + + Launching… + Запуск… + + + + + Copy URL + Скопировать URL + + + + + URL copied to clipboard + URL скопирована в буфер обмена + + + + Open in Kodi + Открыто в Коди + + + + Source + Источник + + + + PostInfoText + + + Sticky + Закреплённый + + + + NSFW + 18+ + + + + Promoted + Повышен + + + + Gilded + Пост награждён + + + + Archived + Архивировано + + + + Locked + Заблокировано + + + + submitted %1 by %2 + Опубликовано %1 пользователем %2 + + + + to %1 + В %1 + + + + %n crossposts + + %n перепост + %n перепоста + %n перепостов + + + + + %n points + + %n балл + %n балла + %n баллов + + + + + %n comments + + %n комментарий + %n комментария + %n комментариев + + + + + QMLUtils + + + Invalid share URL + Неверный URL + + + + Unable to resolve share URL + Не удалось разрешить URL + + + + SearchDialog + + + Search + Поиск + + + + Enter search query + Введите поисковый запрос + + + + Search for + Искать + + + + Posts + Постам + + + + Subreddits + Сабреддиты + + + + Search within this subreddit: + Искать в этом Subreddits: + + + + Enter subreddit name + Введите название subreddit + + + + SearchPage + + + Search Result: %1 + Результат поиска: %1 + + + + Relevance + Релевантность + + + + New + Новые + + + + Hot + Популярные + + + + Top + Top + + + + Comments + Комментарии + + + + All time + За всё время + + + + This hour + За последний час + + + + Today + Сегодня + + + + This week + На этой неделе + + + + This month + За этот месяц + + + + This year + За этот год + + + + Search Again + Искать снова + + + + + Time Range + Период времени + + + + + Sort + Сортировать + + + + Refresh + Обновить + + + + SectionSelectionDialog + + + + Hot + Горячее + + + + + New + Новые + + + + + Rising + Набирающие популярность + + + + + Controversial + Спорные темы + + + + + Top + Лучшее + + + + Best + Рекомендуемое + + + + Hour + Последний час + + + + Day + Сегодня + + + + Week + На этой неделе + + + + Month + В этом месяце + + + + Year + В этом году + + + + All time + За всё время + + + + SendLinkPage + + + New Post + Новый пост + + + + Edit Post + Редактировать пост + + + + Post Title + Заголовок поста + + + + Self Post + Самостоятельная публикация + + + + Post URL + URL-адрес публикации + + + + Post Text + Текст публикации + + + + Flair + метка + + + + Submit + Опубликовать + + + + Save + Сохранить + + + + SendMessagePage + + + New Message + Новое сообщение + + + + Reply Message + Ответить на сообщение + + + + Recipient + Получатель + + + + to moderators of + модераторам + + + + to + к + + + + Subject + Тема + + + + Message + Сообщение + + + + Send + Отправить + + + + SettingsPage + + + Settings + Настройки + + + + Accounts + Аккаунты + + + + UX + Настройки UX + + + + Font Size + Размер шрифта + + + + Tiny + Очень маленький + + + + Small + Маленький + + + + Medium + Средний + + + + Large + Большой + + + + Device Orientation + Ориентация устройства + + + + Automatic + Автоматически + + + + Portrait only + Только портретная ориентация + + + + Landscape only + Только альбомная ориентация + + + + Thumbnail Size + Размер изображений + + + + Auto + Автоматически + + + + Thumbnail Link Type Indicator + Индикатор типа ссылки изображения + + + + Comments Tap To Hide + Нажмите, чтобы скрыть комментарии + + + + Notifications + Уведомления + + + + Check Messages + Проверить сообщения + + + + Media + Медиа + + + + Preferred Video Size + Предпочтительный размер видео + + + + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + + + + Loop Videos + Автоповтор видео + + + + Connection + Подключение + + + + Use Tor + Tor + + + + When enabled, please make sure Tor is installed and active. + При включении убедитесь, что Tor установлен и активен + + + + SignInPage + + + + Sign in to Reddit + Войти в Reddit + + + + Cancel + Отмена + + + + Sign in successful! Welcome! :) + Вход выполнен успешно! Добро пожаловать! :) + + + + SubredditBrowseDelegate + + + %n subscribers + + %n подписчик + %n подписчики + %n подписчиков + + + + + SubredditDelegate + + + NSFW + 18+ + + + + Contributor + Автор + + + + Banned + Запрещено + + + + Mod + Делегированный модератор + + + + Muted + заглушён + + + + SubredditsBrowsePage + + + Subreddits Search: %1 + Поиск в сабреддитах: %1 + + + + Popular Subreddits + Популярные сабреддиты + + + + New Subreddits + Новые сабреддиты + + + + My Subreddits - Subscriber + Мои сабреддиты - Подписчик + + + + My Subreddits - Approved Submitter + Мои сабреддиты — одобренный автор + + + + My Subreddits - Moderator + Мои сабреддиты — модератор + + + + + Section + Раздел + + + + Refresh + Обновить + + + + About + Информация + + + + Subscribe + Подписаться + + + + Unsubscribe + Отписаться + + + + Nothing here :( + Здесь ничего нет :( + + + + You have %2 from %1 + У вас есть %2 от %1 + + + + SubredditsPage + + + About Quickddit + О сабреддите + + + + Settings + Настройки + + + + My Profile + Мой профиль + + + + Messages + Сообщения + + + + Go to a specific subreddit + Перейти к конкретному сабреддиту + + + + Front Page + Главная страница + + + + Quickddit + Quickddit + + + + Signed in as %1 + Вы вошли как %1 + + + + Not signed in + Вы не вошли в аккаунт + + + + Popular + Популярное + + + + All + Все + + + + Multireddits + Мульти‑реддиты + + + + My Saved Things + Мои сохранённые + + + + Browse all Subreddits + Просмотреть все сабреддиты + + + + Subscribed Subreddits + Подписанные сабреддиты + + + + About + Информация + + + + Unsubscribe + Отписаться + + + + You have unsubscribed from %1 + Вы отписались от %1 + + + + UserPage + + + User %1 + Пользователь %1 + + + + + Overview + Обзор + + + + + Comments + Комментарии + + + + + Submitted + Публикации + + + + Upvoted + Понравившееся + + + + Downvoted + Не понравившееся + + + + Saved Things + Сохранённое + + + + + Section + Раздел + + + + Send Message + Отправить сообщение + + + + Refresh + Обновить + + + + My Profile + Мой профиль + + + + User Profile + Профиль пользователя + + + + Friend + Друг + + + + Gold + Золото + + + + Email Verified + Адрес электронной почты подтверждён + + + + Mod + Модератор + + + + No Robots + Никаких роботов + + + + %1 link karma + %1 карма + + + + %1 comment karma + Карма комментариев: %1 + + + + created %1 + создано %1 + + + + Delete + Удалить + + + + Delete link + Удалить ссылку + + + + Nothing here :( + Здесь ничего нет :( + + + + Message sent + Сообщение отправлено + + + + UserPageCommentDelegate + + + Sticky + Закреплённый + + + + Gilded + Награждённые комментарии + + + + Comment in %1 + Комментарий в %1 + + + + [score hidden] + [оценка скрыта] + + + + %n pts + + %n балл + %n балла + %n баллов + + + + + UserPageLinkDelegate + + + Sticky + Закреплённый + + + + NSFW + 18+ + + + + Promoted + Повышен + + + + Gilded + Награждённые ссылки + + + + Locked + Заблокировано + + + + Utils + + + Now + Сейчас + + + + Just now + Прямо сейчас + + + + %n mins ago + + %n минута назад + %n минуты назад + %n минут назад + + + + + %n hours ago + + %n час назад + %n часов назад + %n часов назад + + + + + %n days ago + + %n день назад + %n дней назад + %n дней назад + + + + + %n months ago + + %n месяц назад + %n месяцев назад + %n месяцев назад + + + + + %n years ago + + %n год назад + %n лет назад + %n лет назад + + + + + VideoViewPage + + + Video + Видео + + + + URL + Ссылка на видео + + + + Error loading video + Ошибка загрузки видео + + + + Problem finding stream URL + Проблема с поиском URL потока + + + + youtube-dl error: %1 + Ошибка youtube-dl: %1 + + + + WebViewer + + + WebViewer + Веб-просмотрщик + + + + Copy URL + Скопировать ссылку + + + + URL copied to clipboard + URL скопирован в буфер обмена + + + + Open in browser + Открыть в браузере + + + + Back + Назад + + + + Forward + Вперед + + + + main + + + + Unable to resolve reddit share link + Не удалось разрешить ссылку на Reddit + + + + Unsupported reddit url + Неподдерживаемый URL-адрес Reddit + + + + Unsupported image url + Неподдерживаемый URL изображения + + + + Unsupported video url + Неподдерживаемый URL-адрес видео + + + + Please log in again + Пожалуйста, войдите снова + + + + in /r/%1 by %2 + в /r/%1 от %2 + + + + and %1 other + и %1 другой + + + + + Message from %1 + Сообщение от %1 + + + + New message from %1 + Новое сообщение от %1 + + + + %n new messages + 0 + + %n новое сообщение + %n новых сообщений + %n новых сообщений + + + + diff --git a/sailfish/translations/harbour-quickddit-sv.ts b/sailfish/translations/harbour-quickddit-sv.ts index 80abb5e4..f808b046 100644 --- a/sailfish/translations/harbour-quickddit-sv.ts +++ b/sailfish/translations/harbour-quickddit-sv.ts @@ -22,38 +22,38 @@ Om %1 - - + + Add Subreddit Lägg till Subreddit - + Description Beskrivning - + No description Ingen beskrivning - + Subreddits Subredditar - + Go to %1 Gå till %1 - + Remove Ta bort - + Enter subreddit name Ange subreddit-namn @@ -71,46 +71,41 @@ Quickddit - En Reddit-klient för mobiltelefoner, som fri och öppen källkod - + App icon by Andrew Zhilin App-ikon av Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) Åke Engelbrektson - + Current language translation by %1 Aktuell översättning av %1 - + Licensed under GNU GPLv3+ Licensierad under GNU GPLv3+ - + Source Källkod - + License Licens - + Translations Översättningar - - - Donate! - Donera! - AboutSubredditPage @@ -148,7 +143,7 @@ %n subscribers - %n prenumeranter + %n prenumerant %n prenumeranter @@ -218,7 +213,7 @@ Mod - Mod + Modd @@ -239,42 +234,42 @@ AccountsPage - + Accounts Konton Sign out - Logga ut + Logga ut Sign in to Reddit - Logga in på Reddit + Logga in på Reddit You have signed out from Reddit - Du har loggat ut från Reddit + Du har loggat ut från Reddit - + Remove %1 account Ta bort %1 konto - + Activate Aktivera - + Remove Ta bort - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -346,21 +341,21 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin - Enter your reply here... - Ange ditt svar här... + Enter your reply here + Ange ditt svar här - Enter your new comment here... - Ange din nya kommentar här... + Enter your new comment here + Ange din nya kommentar här - + Save Spara - + Add Lägg till @@ -414,129 +409,116 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin CommentPage - + Comments Kommentarer - + Best Bäst - + Top Högsta poäng - + New Nya - + Hot - Heta + Het - + Controversial Kontroversiella - + Old Äldst - + Edit Post Redigera inlägg - - + + Sort Sortera - + Add comment Lägg till kommentar - + + Share + Dela + + + Refresh Uppdatera - + Viewing a single comment's thread Visar en enskild kommentarstråd - + View All Comments Visa alla kommentarer - + Deleting comment Ta bort kommentar - - DonatePage - - - Donate - Donera - - - - Donate via PayPal: - Donera via PayPal: - - - - Donate via Bitcoin: - Donera Bitcoin: - - - - Address copied to clipboard - Adress kopierad till urklipp - - ImageViewPage - + Image Bild - + Save Image Spara bild - + + Share Image + Dela bild + + + URL Länk - + Error loading image Kunde inte läsa in bild - + Image saved to gallery Bild sparad i Galleri - + Image save failed! Kunde inte spara bild! @@ -584,52 +566,57 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin LoadingFooter - Load More... - Läs in mer... + Load More… + Läs in mer… MainPage - + About %1 Om %1 - + New Post Nytt inlägg - - + + Section Sektion - + Search Sök - + Refresh Uppdatera - + + Last refreshed + Sista uppdaterade + + + Delete link Ta bort länk - + Hide link Dölj länk - - Nothing here :( - Inget här :( + + Nothing here + Inget här @@ -765,17 +752,17 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Multiredditar - + Refresh Uppdatera - + About Om - + Nothing here :( Inget här :( @@ -790,14 +777,14 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin - Open in browser - Öppna i webbläsare + Open in… + Öppna i… - Launching web browser... - Startar webbläsaren... + Launching… + Startar… @@ -889,6 +876,19 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin + + QMLUtils + + + Invalid share URL + Ogiltig delnings-URL + + + + Unable to resolve share URL + Kan inte att lösa ut delnings-URL + + SearchDialog @@ -947,7 +947,7 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Hot - Heta + Het @@ -1018,7 +1018,7 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Hot - Heta + Het @@ -1168,7 +1168,7 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Send - Skicka + Sänd @@ -1176,122 +1176,132 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Settings - Inställningar + Inställningar Accounts - Konton + Konton UX - UX + UX Font Size - Teckenstorlek + Teckenstorlek Tiny - Mycket liten + Mycket liten Small - Liten + Liten Medium - Medium + Medium Large - Stor + Stor Device Orientation - Enhetsorientering + Enhetsorientering Automatic - Auto + Auto Portrait only - Endast stående + Endast stående Landscape only - Endast liggande + Endast liggande Thumbnail Size - Miniatyrstorlek + Miniatyrstorlek Auto - Auto + Auto Thumbnail Link Type Indicator - Länktypsindikator för miniatyrer + Länktypsindikator för miniatyrer Comments Tap To Hide - Kommentarer. Tryck för att dölja. + Kommentarer. Tryck för att dölja Notifications - Aviseringar + Aviseringar Check Messages - Läs meddelanden + Läs meddelanden Media - Media + Media Preferred Video Size - Föredragen videostorlek + Föredragen videostorlek - Loop Videos - Loopa videor + Prefer adaptive video streams + Föredrar adaptiva videoströmmar + + + + More likely to have sound, but may be less stable. + Mer benägna att ha ljud, men kan vara mindre stabila. + Loop Videos + Loopa videor + + + Connection - Anslutning + Anslutning - + Use Tor - Använd Tor + Använd Tor - + When enabled, please make sure Tor is installed and active. - Tillse att Tor är installerad och startad, vid aktivering. + Tillse att Tor är installerad och startad, vid aktivering. @@ -1300,17 +1310,17 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Sign in to Reddit - Logga in på Reddit + Logga in på Reddit Cancel - + Avbryt Sign in successful! Welcome! :) - + Inloggning slutförd! Välkommen! :) @@ -1327,27 +1337,27 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin SubredditDelegate - + NSFW NSFW - + Contributor Användare - + Banned Blockerad - + Mod - Mod + Modd - + Muted Tystad @@ -1424,77 +1434,92 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin SubredditsPage - - Subreddits - Underredditar - - - + About Quickddit Om Quickddit - + Settings Inställningar - + My Profile Min profil - + Messages Meddelanden - + Go to a specific subreddit Gå till en specifik underreddit - + Front Page Startsida - + + Quickddit + Quickddit + + + + Signed in as %1 + Inloggad som %1 + + + + Not signed in + Inte inloggad + + + Popular - Heta + Populär - + All Alla - - Browse for Subreddits... - Bläddra efter underredditar... - - - + Multireddits Multiredditar - + + My Saved Things + Min sparade saker + + + + Browse all Subreddits + Bläddra i alla Subreddits + + + Subscribed Subreddits Prenumererade underredditar - + About Om - + Unsubscribe Avsluta prenumeration - + You have unsubscribed from %1 Du har avslutat prenumerationen på %1 @@ -1502,126 +1527,126 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin UserPage - + User %1 Användare %1 - - + + Overview Översikt - - + + Comments Kommentarer - - + + Submitted Postad - + Upvoted Uppröstat - + Downvoted Nerröstat - + Saved Things Sparade saker - + Section Sektion - + Send Message Skicka meddelande - + Refresh Uppdatera - + My Profile Min profil - + User Profile Användarprofil - + Friend Vän - + Gold Guld - + Email Verified E-post verifierad - + Mod - Mod + Modd - + No Robots Inga robotar - + %1 link karma %1 länkkarma - + %1 comment karma %1 kommentarskarma - + created %1 skapad %1 - + Delete Ta bort - + Delete link Ta bort länk - + Nothing here :( Inget här :( - + Message sent Meddelande skickat @@ -1643,6 +1668,19 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin Comment in %1 Kommentar i %1 + + + [score hidden] + [poäng dold] + + + + %n pts + + %n p + %n p + + UserPageLinkDelegate @@ -1735,21 +1773,20 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin URL - Länk + URL Error loading video - Kunde inte läsa in video + Fel vid inläsning av video - - + Problem finding stream URL - Kunde inte hitta strömningslänk + Problem att hitta strömnings-URL - + youtube-dl error: %1 youtube-dl-fel: %1 @@ -1790,43 +1827,54 @@ Logga in för att lägga till konton. Quickddit kommer ihåg en lyckad inloggnin main - + + + Unable to resolve reddit share link + Kan inte lösa ut reddit delningslänkk + + + Unsupported reddit url Reddit-länken stöds inte - + Unsupported image url Bildlänken stöds inte - + Unsupported video url Videolänken stöds inte - + Please log in again Logga in igen - - and %1 other - och %1 andra + + in /r/%1 by %2 + i /r/%1 av %2 + + + + and %1 other + och %1 andra - - + + Message from %1 Meddelande från %1 - + New message from %1 Nytt meddelande från %1 - + %n new messages 0 diff --git a/sailfish/translations/harbour-quickddit-uk.ts b/sailfish/translations/harbour-quickddit-uk.ts new file mode 100644 index 00000000..76b1e53e --- /dev/null +++ b/sailfish/translations/harbour-quickddit-uk.ts @@ -0,0 +1,1902 @@ + + + + + AboutMultiredditManager + + + %1 has been added to %2 + %1 додано до %2 + + + + %1 has been removed from %2 + %1 було видалено з %2 + + + + AboutMultiredditPage + + + About %1 + Близько %1 + + + + + Add Subreddit + Додати Subreddit + + + + Description + Опис + + + + No description + Без опису + + + + Subreddits + Сабреддіти + + + + Go to %1 + Перейти до %1 + + + + Remove + Видалити мультиреддіт + + + + Enter subreddit name + Введіть назву сабреддіту + + + + AboutPage + + + About + Про нас + + + + Quickddit - A free and open source Reddit client for mobile phones + Quickddit — безкоштовний клієнт Reddit з відкритим кодом для мобільних телефонів + + + + App icon by Andrew Zhilin + Іконка програми від Andrew Zhilin + + + + _translator + _translator is used as a placeholder for the name of the translator (you :) + Denis Lednev + + + + Current language translation by %1 + Поточний переклад мови від %1 + + + + Licensed under GNU GPLv3+ + Ліцензовано GNU GPLv3+ + + + + Source + Джерело + + + + License + Ліцензія + + + + Translations + Переклади + + + + AboutSubredditPage + + + About %1 + Про %1 + + + + Moderators + Модератори + + + + Message Moderators + Модератори повідомлень + + + + Unsubscribe + Відписатися + + + + Subscribe + Підписатися + + + + This subreddit is Not Safe For Work + Цей сабреддіт небезпечний для роботи + + + + %n subscribers + + %n підписник + %n підписники + %n підписників + + + + + %n active users + + %n активний користувач + %n активні користувачі + %n активних користувачів + + + + + Subscribed + Підписаний + + + + Not Subscribed + Не підписаний + + + + Private + Приватний + + + + Restricted + Обмежено + + + + GoldRestricted + Доступно лише для Reddit Premium + + + + Archived + Архівовано + + + + Links only + Тільки посилання + + + + Self posts only + Тільки власні публікації + + + + NSFW + 18+ + + + + Contributor + Автор + + + + Banned + Заблокований + + + + Mod + Модератор + + + + Muted + Заглушений + + + + You have subscribed to %1 + Ви підписалися на %1 + + + + You have unsubscribed from %1 + Ви відписалися від %1 + + + + AccountsPage + + + Accounts + Облікові записи + + + + Sign out + Вийти + + + + Sign in to Reddit + Увійти в Reddit + + + + You have signed out from Reddit + Ви вийшли з Reddit + + + + Remove %1 account + Видалити обліковий запис %1 + + + + Activate + Активувати + + + + Remove + Видалити обліковий запис + + + + No known accounts yet. + +To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here + Поки що немає відомих облікових записів. + +Щоб додати облікові записи, просто увійдіть у систему. Quickddit запам’ятає успішні входи та перелічить облікові записи тут. + + + + CommentDelegate + + + Sticky + Закріплений + + + + Gilded + Нагороджено + + + + [score hidden] + оцінку приховано + + + + %n pts + + %n пін + %n піни + %n пінів + + + + + Load %n hidden comments + + Завантажити прихований коментар + Завантажити %n приховані коментарі + Завантажити %n прихованих коментарів + + + + + Continue this thread + Продовжити цю тему + + + + Show %n collapsed comments + + %n прихований коментар + %n приховані коментарі + %n прихованих коментарів + + + + + Editing Comment + Редагування коментаря + + + + Comment Reply + Відповісти + + + + New Comment + Новий коментар + + + + Enter your reply here + Введіть свою відповідь тут + + + + Enter your new comment here + Введіть свій коментар + + + + Save + Зберегти + + + + Add + Додати + + + + CommentManager + + + The comment has been added + Коментар додано + + + + The comment has been edited + Коментар було відредаговано + + + + The comment has been deleted + Коментар видалено + + + + CommentMenu + + + Copy Comment + Копіювати + + + + Comment copied to clipboard + Коментар скопійовано в буфер обміну + + + + Reply + Відповідь + + + + Edit + Редагувати + + + + Delete + Видалити + + + + CommentPage + + + Comments + Коментарі + + + + Best + Найкращий + + + + Top + Найкращі коментарі + + + + New + Новий + + + + Hot + Актуальні коментарі + + + + Controversial + Спірний + + + + Old + Старий + + + + Edit Post + Редагувати публікацію + + + + + Sort + Сортувати + + + + Add comment + Додати коментар + + + + Share + Поділитися + + + + Refresh + Оновити + + + + Viewing a single comment's thread + Перегляд гілки одного коментаря + + + + View All Comments + Переглянути всі коментарі + + + + Deleting comment + Видалення коментаря + + + + ImageViewPage + + + Image + Зображення + + + + Save Image + Зберегти зображення + + + + Share Image + Поділитися зображенням + + + + URL + посилання + + + + Error loading image + Помилка завантаження зображення + + + + Image saved to gallery + Зображення збережено в галерею + + + + Image save failed! + Збереження зображення не вдалося! + + + + ImgurManager + + + Unable to get Imgur ID from the url: %1 + Не вдалося отримати ідентифікатор Imgur з URL-адреси: %1 + + + + Imgur API returns no image + API Imgur не повертає зображення + + + + LinkManager + + + The link has been added + Посилання додано + + + + The link text has been changed + Текст посилання змінено + + + + LinkMenu + + + Delete + Видалити + + + + Hide + Приховати + + + + LoadingFooter + + + Load More… + Завантажити ще… + + + + MainPage + + + About %1 + Близько %1 + + + + New Post + Нова публікація + + + + + Section + Розділ + + + + Search + Пошук + + + + Refresh + Оновити + + + + Last refreshed + Останнє оновлення + + + + Delete link + Видалити посилання + + + + Hide link + Приховати посилання + + + + Nothing here + Тут нічого немає + + + + MessageDelegate + + + %1 from %2 + %1 з %2 + + + + in %1 + у %1 + + + + to %1 + до %1 + + + + from %1 + від %1 + + + + MessageMenu + + + Reply + Відповідь + + + + Delete + Видалено + + + + Mark As Read + Позначити як прочитане + + + + Mark As Unread + Позначити як непрочитане + + + + MessagePage + + + + Messages + Повідомлення + + + + All + Усі + + + + Unread + Непрочитане + + + + Comment Replies + Відповіді на коментарі + + + + Post Replies + Відповіді на публікації + + + + Sent + Надіслано + + + + Username Mentions + Згадки імені користувача + + + + New Message + Нове повідомлення + + + + + Section + Розділ + + + + Refresh + Оновити + + + + Deleting message + Видалення повідомлення + + + + Nothing here :( + Тут нічого немає :( + + + + + Message sent + Повідомлення надіслано + + + + ModeratorListPage + + + Moderators + Список модераторів + + + + MultiredditsPage + + + Multireddits + Мультиреддіти + + + + Refresh + Оновити + + + + About + Про мульти‑реддіти + + + + Nothing here :( + Тут нічого немає :( + + + + OpenLinkDialog + + + Open URL + Відкрити URL-адресу + + + + + Open in… + Відкрити в… + + + + + Launching… + Запуск… + + + + + Copy URL + Копіювати URL-адресу + + + + + URL copied to clipboard + URL-адресу скопійовано в буфер обміну + + + + Open in Kodi + Відкрити в Kodi + + + + Source + Джерело + + + + PostInfoText + + + Sticky + Закріплений допис + + + + NSFW + 18+ + + + + Promoted + Підвищено + + + + Gilded + Нагороджений допис + + + + Archived + Архівовано + + + + Locked + Заблоковано + + + + submitted %1 by %2 + надіслано %1 користувачем %2 + + + + to %1 + до %1 + + + + %n crossposts + + %n перепост + %n перепости + %n перепостів + + + + + %n points + + %n бал + %n бали + %n балів + + + + + %n comments + + %n коментар + %n коментарі + %n коментарів + + + + + QMLUtils + + + Invalid share URL + Недійсна URL-адреса + + + + Unable to resolve share URL + Не вдалося розпізнати URL-адресу + + + + SearchDialog + + + Search + Пошук + + + + Enter search query + Введіть пошуковий запит + + + + Search for + Шукати + + + + Posts + Дописам + + + + Subreddits + Сабреддіти + + + + Search within this subreddit: + Пошук у цьому сабреддіті: + + + + Enter subreddit name + Введіть назву сабреддіту + + + + SearchPage + + + Search Result: %1 + Результат пошуку: %1 + + + + Relevance + Релевантність + + + + New + Новi + + + + Hot + Популярні + + + + Top + Найкращі + + + + Comments + Коментарі + + + + All time + Весь час + + + + This hour + Цієї години + + + + Today + Сьогодні + + + + This week + Цього тижня + + + + This month + Цього місяця + + + + This year + Цього року + + + + Search Again + Шукати знову + + + + + Time Range + Діапазон часу + + + + + Sort + Сортувати + + + + Refresh + Оновити + + + + SectionSelectionDialog + + + + Hot + Популярні + + + + + New + Новi + + + + + Rising + Зростаючі + + + + + Controversial + Суперечливі + + + + + Top + Топ + + + + Best + Найкращий + + + + Hour + Година + + + + Day + День + + + + Week + Тиждень + + + + Month + Місяць + + + + Year + Рік + + + + All time + Весь час + + + + SendLinkPage + + + New Post + Нова публікація + + + + Edit Post + Редагувати публікацію + + + + Post Title + Назва публікації + + + + Self Post + Самостійна публікація + + + + Post URL + URL-адреса публікації + + + + Post Text + Текст публікації + + + + Flair + Позначка + + + + Submit + Надіслати посилання + + + + Save + Зберегти + + + + SendMessagePage + + + New Message + Нове повідомлення + + + + Reply Message + Відповісти на повідомлення + + + + Recipient + Одержувач + + + + to moderators of + модераторам + + + + to + до + + + + Subject + Тема + + + + Message + Введіть текст повідомлення + + + + Send + Надіслати + + + + SettingsPage + + + Settings + Налаштування + + + + Accounts + Облікові записи + + + + UX + Налаштування UX + + + + Font Size + Розмір шрифту + + + + Tiny + Крихітний + + + + Small + Малий + + + + Medium + Середній + + + + Large + Великий + + + + Device Orientation + Орієнтація пристрою + + + + Automatic + Автоматично + + + + Portrait only + Тільки портретна орієнтація + + + + Landscape only + Тільки альбомна орієнтація + + + + Thumbnail Size + Розмір мініатюри + + + + Auto + Авто + + + + Thumbnail Link Type Indicator + Індикатор типу посилання на мініатюру + + + + Comments Tap To Hide + Коментарі Натисніть, щоб приховати + + + + Notifications + Сповіщення + + + + Check Messages + Перевірити повідомлення + + + + Media + Медіа + + + + Preferred Video Size + Бажаний розмір відео + + + + Loop Videos + Циклічні відео + + + + Connection + З'єднання + + + + Use Tor + Tor + + + + When enabled, please make sure Tor is installed and active. + Після ввімкнення переконайтеся, що Tor встановлено та активовано. + + + + More likely to have sound, but may be less stable. + + + + + Prefer adaptive video streams + + + + + SignInPage + + + + Sign in to Reddit + Увійти в Reddit + + + + Cancel + Скасувати + + + + Sign in successful! Welcome! :) + Вхід успішний! Ласкаво просимо! :) + + + + SubredditBrowseDelegate + + + %n subscribers + + %n підписник + %n підписники + %n підписників + + + + + SubredditDelegate + + + NSFW + 18+ + + + + Contributor + Автор + + + + Banned + Заборонений + + + + Mod + Модератор + + + + Muted + Заглушений + + + + SubredditsBrowsePage + + + Subreddits Search: %1 + Пошук на Subreddits: %1 + + + + Popular Subreddits + Популярні сабреддіти + + + + New Subreddits + Нові сабреддіти + + + + My Subreddits - Subscriber + Мої сабреддіти - Підписник + + + + My Subreddits - Approved Submitter + Мої сабреддіти - Затверджений автор + + + + My Subreddits - Moderator + Мої сабреддіти - Модератор + + + + + Section + Розділ + + + + Refresh + Оновити + + + + About + Про сабреддіт + + + + Subscribe + Підписатися + + + + Unsubscribe + Скасувати підписку + + + + Nothing here :( + Тут нічого немає :( + + + + You have %2 from %1 + У вас є %2 від %1 + + + + SubredditsPage + + + About Quickddit + Про Quickddit + + + + Settings + Налаштування + + + + My Profile + Мій профіль + + + + Messages + Повідомлення + + + + Go to a specific subreddit + Перейдіть до певного сабреддиту + + + + Front Page + Головна сторінка + + + + Quickddit + Quickddit + + + + Signed in as %1 + Увійшов як %1 + + + + Not signed in + Ви не ввійшли + + + + Popular + Популярне + + + + All + Усі + + + + Multireddits + Мультиреддіти + + + + Subscribed Subreddits + Підписані сабреддіти + + + + About + Про сабреддіт + + + + Unsubscribe + Скасувати підписку + + + + You have unsubscribed from %1 + Ви відписалися від %1 + + + + My Saved Things + Збережене + + + + Browse all Subreddits + Переглянути всі сабреддіти + + + + UserPage + + + User %1 + Користувач %1 + + + + + Overview + Огляд + + + + + Comments + Коментарі + + + + + Submitted + Опубліковано + + + + Upvoted + Вподобані + + + + Downvoted + Неподобані + + + + Saved Things + Збережені + + + + + Section + Розділ + + + + Send Message + Надіслати повідомлення користувачу + + + + Refresh + Оновити + + + + My Profile + Мій профіль + + + + User Profile + Профіль користувача + + + + Friend + Друг + + + + Gold + Золото + + + + Email Verified + Електронна пошта підтверджена + + + + Mod + Модератор + + + + No Robots + Без роботів + + + + %1 link karma + %1 карма посилання + + + + %1 comment karma + %1 коментар карми + + + + created %1 + створено %1 + + + + Delete + Стерти + + + + Delete link + Видалити посилання + + + + Nothing here :( + Тут нічого немає :( + + + + Message sent + Повідомлення надіслано + + + + UserPageCommentDelegate + + + Sticky + Закріплений коментар + + + + Gilded + Нагороджений коментар + + + + Comment in %1 + Коментар у %1 + + + + [score hidden] + оцінку приховано + + + + %n pts + + %n бал + %n бали + %n балів + + + + + UserPageLinkDelegate + + + Sticky + Закріплене посилання + + + + NSFW + 18+ + + + + Promoted + Підвищено + + + + Gilded + Нагороджене посилання + + + + Locked + Заблоковано + + + + Utils + + + Now + Зараз + + + + Just now + Щойно + + + + %n mins ago + + %n хвилину тому + %n хвилини тому + %n хвилин тому + + + + + %n hours ago + + %n годину тому + %n години тому + %n годин тому + + + + + %n days ago + + %n день тому + %n дні тому + %n днів тому + + + + + %n months ago + + %n місяць тому + %n місяці тому + %n місяців тому + + + + + %n years ago + + %n рік тому + %n роки тому + %n років тому + + + + + VideoViewPage + + + Video + Відео + + + + URL + посилання + + + + Error loading video + Помилка завантаження відео + + + + Problem finding stream URL + Проблема з пошуком URL + + + + youtube-dl error: %1 + Помилка youtube-dl: %1 + + + + WebViewer + + + WebViewer + Веб-переглядач + + + + Copy URL + Копіювати URL-адресу + + + + URL copied to clipboard + URL-адресу скопійовано в буфер обміну + + + + Open in browser + Відкрити у браузері + + + + Back + Назад + + + + Forward + Вперед + + + + main + + + + Unable to resolve reddit share link + Не вдалося розблокувати посилання для поширення на Reddit + + + + Unsupported reddit url + Непідтримувана URL-адреса Reddit + + + + Unsupported image url + Непідтримувана URL-адреса зображення + + + + Unsupported video url + Непідтримувана URL-адреса відео + + + + Please log in again + Будь ласка, увійдіть ще раз + + + + in /r/%1 by %2 + у /r/%1 користувачем %2 + + + + and %1 other + та ще %1 + + + + + Message from %1 + Повідомлення від %1 + + + + New message from %1 + Нове повідомлення від %1 + + + + %n new messages + 0 + + %n нове повідомлення + %n нові повідомлення + %n нових повідомлень + + + + diff --git a/sailfish/translations/harbour-quickddit.ts b/sailfish/translations/harbour-quickddit.ts index d92869b6..d9bd0842 100644 --- a/sailfish/translations/harbour-quickddit.ts +++ b/sailfish/translations/harbour-quickddit.ts @@ -6,12 +6,12 @@ %1 has been added to %2 - + %1 has been added to %2 %1 has been removed from %2 - + %1 has been removed from %2 @@ -19,43 +19,43 @@ About %1 - + About %1 - - + + Add Subreddit - + Add Subreddit - + Description - + Description - + No description - + No description - + Subreddits - + Subreddits - + Go to %1 - + Go to %1 - + Remove - + Remove - + Enter subreddit name - + Enter subreddit name @@ -63,53 +63,48 @@ About - + About Quickddit - A free and open source Reddit client for mobile phones - + Quickddit - A free and open source Reddit client for mobile phones - + App icon by Andrew Zhilin - + App icon by Andrew Zhilin - + _translator _translator is used as a placeholder for the name of the translator (you :) - + _translator - + Current language translation by %1 - + Current language translation by %1 - + Licensed under GNU GPLv3+ - + Licensed under GNU GPLv3+ - + Source - + Source - + License - + License - + Translations - - - - - Donate! - + Translations @@ -117,37 +112,37 @@ About %1 - + About %1 Moderators - + Moderators Message Moderators - + Message Moderators Unsubscribe - + Unsubscribe Subscribe - + Subscribe This subreddit is Not Safe For Work - + This subreddit is Not Safe For Work %n subscribers - + %n subscriber %n subscribers @@ -155,7 +150,7 @@ %n active users - + %n active user %n active users @@ -163,122 +158,124 @@ Subscribed - + Subscribed Not Subscribed - + Not Subscribed Private - + Private Restricted - + Restricted GoldRestricted - + GoldRestricted Archived - + Archived Links only - + Links only Self posts only - + Self posts only NSFW - + NSFW Contributor - + Contributor Banned - + Banned Mod - + Mod Muted - + Muted You have subscribed to %1 - + You have subscribed to %1 You have unsubscribed from %1 - + You have unsubscribed from %1 AccountsPage - + Accounts - + Accounts Sign out - + Sign out Sign in to Reddit - + Sign in to Reddit You have signed out from Reddit - + You have signed out from Reddit - + Remove %1 account - + Remove %1 account - + Activate - + Activate - + Remove - + Remove - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here - + No known accounts yet. + +To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here @@ -286,22 +283,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Sticky Gilded - + Gilded [score hidden] - + [score hidden] %n pts - + %n pt %n pts @@ -309,7 +306,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Load %n hidden comments - + Load %n hidden comment Load %n hidden comments @@ -317,12 +314,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Continue this thread - + Continue this thread Show %n collapsed comments - + Show %n collapsed comment Show %n collapsed comments @@ -330,37 +327,37 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Editing Comment - + Editing Comment Comment Reply - + Comment Reply New Comment - + New Comment - Enter your reply here... - + Enter your reply here + Enter your reply here - Enter your new comment here... - + Enter your new comment here + Enter your new comment here - + Save - + Save - + Add - + Add @@ -368,17 +365,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis The comment has been added - + The comment has been added The comment has been edited - + The comment has been edited The comment has been deleted - + The comment has been deleted @@ -386,157 +383,144 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Copy Comment - + Copy Comment Comment copied to clipboard - + Comment copied to clipboard Reply - + Reply Edit - + Edit Delete - + Delete CommentPage - + Comments - + Comments - + Best - + Best - + Top - + Top - + New - + New - + Hot - + Hot - + Controversial - + Controversial - + Old - + Old - + Edit Post - + Edit Post - - + + Sort - + Sort - + Add comment - + Add comment + + + + Share + Share - + Refresh - + Refresh - + Viewing a single comment's thread - + Viewing a single comment's thread - + View All Comments - + View All Comments - + Deleting comment - - - - - DonatePage - - - Donate - - - - - Donate via PayPal: - - - - - Donate via Bitcoin: - - - - - Address copied to clipboard - + Deleting comment ImageViewPage - + Image - + Image - + Save Image - + Save Image + + + + Share Image + Share Image - + URL - + URL - + Error loading image - + Error loading image - + Image saved to gallery - + Image saved to gallery - + Image save failed! - + Image save failed! @@ -544,12 +528,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Unable to get Imgur ID from the url: %1 - + Unable to get Imgur ID from the url: %1 Imgur API returns no image - + Imgur API returns no image @@ -557,12 +541,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis The link has been added - + The link has been added The link text has been changed - + The link text has been changed @@ -570,64 +554,69 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Delete - + Delete Hide - + Hide LoadingFooter - Load More... - + Load More… + Load More… MainPage - + About %1 - + About %1 - + New Post - + New Post - - + + Section - + Section - + Search - + Search - + Refresh - + Refresh + + + + Last refreshed + Last refreshed - + Delete link - + Delete link - + Hide link - + Hide link - - Nothing here :( - + + Nothing here + Nothing here @@ -635,22 +624,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %1 from %2 - + %1 from %2 in %1 - + in %1 to %1 - + to %1 from %1 - + from %1 @@ -658,22 +647,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - + Reply Delete - + Delete Mark As Read - + Mark As Read Mark As Unread - + Mark As Unread @@ -682,69 +671,69 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Messages - + Messages All - + All Unread - + Unread Comment Replies - + Comment Replies Post Replies - + Post Replies Sent - + Sent Username Mentions - + Username Mentions New Message - + New Message Section - + Section Refresh - + Refresh Deleting message - + Deleting message Nothing here :( - + Nothing here :( Message sent - + Message sent @@ -752,7 +741,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Moderators - + Moderators @@ -760,22 +749,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Multireddits - + Multireddits - + Refresh - + Refresh - + About - + About - + Nothing here :( - + Nothing here :( @@ -783,41 +772,41 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Open URL - + Open URL - Open in browser - + Open in… + Open in… - Launching web browser... - + Launching… + Launching… Copy URL - + Copy URL URL copied to clipboard - + URL copied to clipboard Open in Kodi - + Open in Kodi Source - + Source @@ -825,47 +814,47 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Sticky NSFW - + NSFW Promoted - + Promoted Gilded - + Gilded Archived - + Archived Locked - + Locked submitted %1 by %2 - + submitted %1 by %2 to %1 - + to %1 %n crossposts - + %n crosspost %n crossposts @@ -873,7 +862,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n points - + %n point %n points @@ -881,48 +870,61 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n comments - + %n comment %n comments + + QMLUtils + + + Invalid share URL + Invalid share URL + + + + Unable to resolve share URL + Unable to resolve share URL + + SearchDialog Search - + Search Enter search query - + Enter search query Search for - + Search for Posts - + Posts Subreddits - + Subreddits Search within this subreddit: - + Search within this subreddit: Enter subreddit name - + Enter subreddit name @@ -930,84 +932,84 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Search Result: %1 - + Search Result: %1 Relevance - + Relevance New - + New Hot - + Hot Top - + Top Comments - + Comments All time - + All time This hour - + This hour Today - + Today This week - + This week This month - + This month This year - + This year Search Again - + Search Again Time Range - + Time Range Sort - + Sort Refresh - + Refresh @@ -1016,66 +1018,66 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Hot - + Hot New - + New Rising - + Rising Controversial - + Controversial Top - + Top Best - + Best Hour - + Hour Day - + Day Week - + Week Month - + Month Year - + Year All time - + All time @@ -1083,47 +1085,47 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis New Post - + New Post Edit Post - + Edit Post Post Title - + Post Title Self Post - + Self Post Post URL - + Post URL Post Text - + Post Text Flair - + Flair Submit - + Submit Save - + Save @@ -1131,42 +1133,42 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis New Message - + New Message Reply Message - + Reply Message Recipient - + Recipient to moderators of - + to moderators of to - + to Subject - + Subject Message - + Message Send - + Send @@ -1174,122 +1176,132 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - + Settings Accounts - + Accounts UX - + UX Font Size - + Font Size Tiny - + Tiny Small - + Small Medium - + Medium Large - + Large Device Orientation - + Device Orientation Automatic - + Automatic Portrait only - + Portrait only Landscape only - + Landscape only Thumbnail Size - + Thumbnail Size Auto - + Auto Thumbnail Link Type Indicator - + Thumbnail Link Type Indicator Comments Tap To Hide - + Comments Tap To Hide Notifications - + Notifications Check Messages - + Check Messages Media - + Media Preferred Video Size - + Preferred Video Size - Loop Videos - + Prefer adaptive video streams + Prefer adaptive video streams + + + + More likely to have sound, but may be less stable. + More likely to have sound, but may be less stable. + Loop Videos + Loop Videos + + + Connection - + Connection - + Use Tor - + Use Tor - + When enabled, please make sure Tor is installed and active. - + When enabled, please make sure Tor is installed and active. @@ -1298,17 +1310,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - + Sign in to Reddit Cancel - + Cancel Sign in successful! Welcome! :) - + Sign in successful! Welcome! :) @@ -1316,7 +1328,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n subscribers - + %n subscriber %n subscribers @@ -1325,29 +1337,29 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis SubredditDelegate - + NSFW - + NSFW - + Contributor - + Contributor - + Banned - + Banned - + Mod - + Mod - + Muted - + Muted @@ -1355,273 +1367,288 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Subreddits Search: %1 - + Subreddits Search: %1 Popular Subreddits - + Popular Subreddits New Subreddits - + New Subreddits My Subreddits - Subscriber - + My Subreddits - Subscriber My Subreddits - Approved Submitter - + My Subreddits - Approved Submitter My Subreddits - Moderator - + My Subreddits - Moderator Section - + Section Refresh - + Refresh About - + About Subscribe - + Subscribe Unsubscribe - + Unsubscribe Nothing here :( - + Nothing here :( You have %2 from %1 - + You have %2 from %1 SubredditsPage - - Subreddits - - - - + About Quickddit - + About Quickddit - + Settings - + Settings - + My Profile - + My Profile - + Messages - + Messages - + Go to a specific subreddit - + Go to a specific subreddit - + Front Page - + Front Page - + + Quickddit + Quickddit + + + + Signed in as %1 + Signed in as %1 + + + + Not signed in + Not signed in + + + Popular - + Popular - + All - + All - - Browse for Subreddits... - + + Multireddits + Multireddits - - Multireddits - + + My Saved Things + My Saved Things + + + + Browse all Subreddits + Browse all Subreddits - + Subscribed Subreddits - + Subscribed Subreddits - + About - + About - + Unsubscribe - + Unsubscribe - + You have unsubscribed from %1 - + You have unsubscribed from %1 UserPage - + User %1 - + User %1 - - + + Overview - + Overview - - + + Comments - + Comments - - + + Submitted - + Submitted - + Upvoted - + Upvoted - + Downvoted - + Downvoted - + Saved Things - + Saved Things - + Section - + Section - + Send Message - + Send Message - + Refresh - + Refresh - + My Profile - + My Profile - + User Profile - + User Profile - + Friend - + Friend - + Gold - + Gold - + Email Verified - + Email Verified - + Mod - + Mod - + No Robots - + No Robots - + %1 link karma - + %1 link karma - + %1 comment karma - + %1 comment karma - + created %1 - + created %1 - + Delete - + Delete - + Delete link - + Delete link - + Nothing here :( - + Nothing here :( - + Message sent - + Message sent @@ -1629,17 +1656,30 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Sticky Gilded - + Gilded Comment in %1 - + Comment in %1 + + + + [score hidden] + [score hidden] + + + + %n pts + + %n pt + %n pts + @@ -1647,27 +1687,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sticky - + Sticky NSFW - + NSFW Promoted - + Promoted Gilded - + Gilded Locked - + Locked @@ -1675,17 +1715,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Now - + Now Just now - + Just now %n mins ago - + %n min ago %n mins ago @@ -1693,7 +1733,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n hours ago - + %n hour ago %n hours ago @@ -1701,7 +1741,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n days ago - + %n day ago %n days ago @@ -1709,7 +1749,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n months ago - + %n month ago %n months ago @@ -1717,7 +1757,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n years ago - + %n year ago %n years ago @@ -1728,28 +1768,27 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - + Video URL - + URL Error loading video - + Error loading video - - + Problem finding stream URL - + Problem finding stream URL - + youtube-dl error: %1 - + youtube-dl error: %1 @@ -1757,77 +1796,88 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis WebViewer - + WebViewer Copy URL - + Copy URL URL copied to clipboard - + URL copied to clipboard Open in browser - + Open in browser Back - + Back Forward - + Forward main - + + + Unable to resolve reddit share link + Unable to resolve reddit share link + + + Unsupported reddit url - + Unsupported reddit url - + Unsupported image url - + Unsupported image url - + Unsupported video url - + Unsupported video url - + Please log in again - + Please log in again + + + + in /r/%1 by %2 + in /r/%1 by %2 - - and %1 other - + + and %1 other + and %1 other - - + + Message from %1 - + Message from %1 - + New message from %1 - + New message from %1 - + %n new messages 0 - + %n new message %n new messages diff --git a/sailfish/translations/translations.pri b/sailfish/translations/translations.pri index e5a91fbb..0f516230 100644 --- a/sailfish/translations/translations.pri +++ b/sailfish/translations/translations.pri @@ -1,16 +1,20 @@ TRANSLATION_SOURCES += ../src -TRANSLATIONS = translations/harbour-quickddit-en_GB.ts \ - translations/harbour-quickddit-nl.ts \ - translations/harbour-quickddit-nl_BE.ts \ - translations/harbour-quickddit-sv.ts \ - translations/harbour-quickddit-el.ts \ +TRANSLATIONS = translations/harbour-quickddit.ts \ + translations/harbour-quickddit-cs.ts \ translations/harbour-quickddit-de.ts \ + translations/harbour-quickddit-el.ts \ + translations/harbour-quickddit-en_GB.ts \ + translations/harbour-quickddit-et.ts \ translations/harbour-quickddit-fr.ts \ + translations/harbour-quickddit-hu.ts \ translations/harbour-quickddit-it.ts \ + translations/harbour-quickddit-nl.ts \ + translations/harbour-quickddit-nl_BE.ts \ translations/harbour-quickddit-pl.ts \ - translations/harbour-quickddit-pt_BR.ts - + translations/harbour-quickddit-pt_BR.ts \ + translations/harbour-quickddit-ru.ts \ + translations/harbour-quickddit-sv.ts \ updateqm.input = TRANSLATIONS updateqm.output = translations/${QMAKE_FILE_BASE}.qm diff --git a/sailfish/translations/update_translations_json b/sailfish/translations/update_translations_json deleted file mode 100755 index 9bfa93e1..00000000 --- a/sailfish/translations/update_translations_json +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -url="https://www.transifex.com/api/2/project/quickddit" -path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -transifexrc="$HOME/.transifexrc" -tlogin="" -tpassword="" - -if [ "$#" -ne 2 ]; then - if [ -f $transifexrc ]; then - echo "Using credentials from $transifexrc" - tlogin=$(echo $(awk -F "=" '/username/ {print $2}' $transifexrc)) - tpassword=$(echo $(awk -F "=" '/password/ {print $2}' $transifexrc)) - else - echo -e "\n Usage: update_translations_json \n" - exit - fi -else - tlogin=$1 - tpassword=$2 -fi - -echo "Getting $url" -curl -L --user $tlogin:$tpassword -X GET $url/languages/ > $path/translations.json - -for i in $(jq -r '.[].language_code' $path/harbour-quickddit-$i.ts -done - -echo "Done!" diff --git a/src/apirequest.cpp b/src/apirequest.cpp index 5b39f36a..69b97824 100644 --- a/src/apirequest.cpp +++ b/src/apirequest.cpp @@ -36,7 +36,7 @@ static const QByteArray USER_AGENT = QByteArray("Quickddit/") + APP_VERSION + " #define REDDIT_NORMAL_DOMAIN "https://www.reddit.com" #define REDDIT_OAUTH_DOMAIN "https://oauth.reddit.com" -#define REDDIT_ACCESS_TOKEN_URL "https://ssl.reddit.com/api/v1/access_token" +#define REDDIT_ACCESS_TOKEN_URL "https://www.reddit.com/api/v1/access_token" APIRequest::APIRequest(Type type, QNetworkAccessManager *netManager, QObject *parent) : QObject(parent), m_type(type), m_netManager(netManager), m_reply(0) diff --git a/src/commentmodel.cpp b/src/commentmodel.cpp index c276a6a5..a355bc97 100644 --- a/src/commentmodel.cpp +++ b/src/commentmodel.cpp @@ -505,6 +505,18 @@ void CommentModel::showNewComment() endInsertRows(); } +void CommentModel::removeNewComment() +{ + for (int i = 0; i < m_commentList.count(); ++i) { + if (m_commentList.at(i).viewId() == "new") { + beginRemoveRows(QModelIndex(), i, i); + m_commentList.removeAt(i); + endRemoveRows(); + break; + } + } +} + // network methods void CommentModel::refresh(bool refreshOlder) diff --git a/src/commentmodel.h b/src/commentmodel.h index 5cbab073..950c9e84 100644 --- a/src/commentmodel.h +++ b/src/commentmodel.h @@ -115,6 +115,7 @@ class CommentModel : public AbstractListModelManager Q_INVOKABLE void expand(const QString &fullname); Q_INVOKABLE void setView(const QString &fullname, const QString &view); Q_INVOKABLE void showNewComment(); + Q_INVOKABLE void removeNewComment(); Q_INVOKABLE void setLocalData(const QString &fullname, const QVariant &data); protected: diff --git a/src/inboxmanager.cpp b/src/inboxmanager.cpp index 0d2b2240..c1289e32 100644 --- a/src/inboxmanager.cpp +++ b/src/inboxmanager.cpp @@ -33,13 +33,11 @@ * 2. notifications. emit event on *new* unread message. */ InboxManager::InboxManager(QObject *parent) : - AbstractManager(parent), m_enabled(true) + AbstractManager(parent), m_hasUnread(false), m_enabled(false), m_pollTimer(this) { - m_pollTimer = new QTimer(this); - m_pollTimer->setInterval(TIMER_INI_INTERVAL); - m_pollTimer->setSingleShot(false); - connect(m_pollTimer, SIGNAL(timeout()), this, SLOT(pollTimeout())); - m_pollTimer->start(); + m_pollTimer.setInterval(TIMER_INI_INTERVAL); + m_pollTimer.setSingleShot(false); + connect(&m_pollTimer, SIGNAL(timeout()), this, SLOT(pollTimeout())); } bool InboxManager::hasUnread() @@ -62,36 +60,45 @@ bool InboxManager::enabled() void InboxManager::setEnabled(bool enabled) { - if (enabled != m_enabled) { - m_enabled = enabled; - emit enabledChanged(enabled); - if (enabled) - resetTimer(); + if (enabled == m_enabled) return; + + m_enabled = enabled; + emit enabledChanged(enabled); + + if (enabled) { + resetTimer(); + if (!m_pollTimer.isActive()) + m_pollTimer.start(); + if (manager() && manager()->isSignedIn()) + request(); + } else { + qDebug() << "Stopping inbox timer"; + m_pollTimer.stop(); + setHasUnread(false); } } void InboxManager::pollTimeout() { - int interval = m_pollTimer->interval(); + int interval = m_pollTimer.interval(); // exponential back-off to max interval interval = qMin(interval * 3, TIMER_MAX_INTERVAL); // interval lower bound interval = qMax(interval, TIMER_MIN_INTERVAL); - m_pollTimer->setInterval(interval); + m_pollTimer.setInterval(interval); if (m_enabled) request(); } void InboxManager::resetTimer(){ - qDebug(); - m_pollTimer->setInterval(TIMER_INI_INTERVAL); + m_pollTimer.setInterval(TIMER_INI_INTERVAL); } void InboxManager::request() { - if (!manager()->isSignedIn()) + if (manager() == 0 || !manager()->isSignedIn()) return; QHash parameters; @@ -145,6 +152,7 @@ void InboxManager::onInboxReceived(QNetworkReply *reply) void InboxManager::filterInbox(Listing messages) { + if (manager() == 0) return; QString lastSeenMessage = manager()->settings()->lastSeenMessage(); QVariantList unreadMessages; diff --git a/src/inboxmanager.h b/src/inboxmanager.h index 2149798a..dc0d7907 100644 --- a/src/inboxmanager.h +++ b/src/inboxmanager.h @@ -60,7 +60,7 @@ private slots: private: bool m_hasUnread; bool m_enabled; - QTimer* m_pollTimer; + QTimer m_pollTimer; void setHasUnread(bool hasUnread); diff --git a/src/linkmodel.cpp b/src/linkmodel.cpp index 660471cd..0a840338 100644 --- a/src/linkmodel.cpp +++ b/src/linkmodel.cpp @@ -205,6 +205,16 @@ void LinkModel::setMultireddit(const QString &multireddit) } } +QDateTime LinkModel::lastRefreshedTime() const +{ + return m_lastRefreshedTime; +} + +bool LinkModel::lastRefreshedValid() const +{ + return m_lastRefreshedTime.isValid(); +} + QString LinkModel::searchQuery() const { return m_searchQuery; @@ -321,6 +331,8 @@ void LinkModel::refresh(bool refreshOlder) } else { beginRemoveRows(QModelIndex(), 0, m_linkList.count() - 1); m_linkList.clear(); + m_lastRefreshedTime = QDateTime(); + emit lastRefreshedTimeChanged(); endRemoveRows(); } } @@ -468,6 +480,10 @@ void LinkModel::onFinished(QNetworkReply *reply) ? Parser::parseDuplicates(reply->readAll()) : Parser::parseLinkList(reply->readAll()); if (!links.isEmpty()) { + if (m_linkList.isEmpty()) { + m_lastRefreshedTime = QDateTime::currentDateTime(); + emit lastRefreshedTimeChanged(); + } // remove duplicate if (!m_linkList.isEmpty()) { QMutableListIterator i(links); diff --git a/src/linkmodel.h b/src/linkmodel.h index b459e6ab..578c3b73 100644 --- a/src/linkmodel.h +++ b/src/linkmodel.h @@ -23,6 +23,8 @@ #include "abstractlistmodelmanager.h" #include "linkobject.h" +#include + class LinkModel : public AbstractListModelManager { Q_OBJECT @@ -37,6 +39,8 @@ class LinkModel : public AbstractListModelManager Q_PROPERTY(QString subreddit READ subreddit WRITE setSubreddit NOTIFY subredditChanged) Q_PROPERTY(QString multireddit READ multireddit WRITE setMultireddit NOTIFY multiredditChanged) Q_PROPERTY(TimeRange sectionTimeRange READ sectionTimeRange WRITE setSectionTimeRange NOTIFY sectionTimeRangeChanged) + Q_PROPERTY(QDateTime lastRefreshedTime READ lastRefreshedTime NOTIFY lastRefreshedTimeChanged) + Q_PROPERTY(bool lastRefreshedValid READ lastRefreshedValid NOTIFY lastRefreshedTimeChanged) // Only for Search Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged) @@ -139,6 +143,9 @@ class LinkModel : public AbstractListModelManager QString multireddit() const; void setMultireddit(const QString &multireddit); + QDateTime lastRefreshedTime() const; + bool lastRefreshedValid() const; + QString searchQuery() const; void setSearchQuery(const QString &query); @@ -166,6 +173,7 @@ class LinkModel : public AbstractListModelManager void sectionTimeRangeChanged(); void subredditChanged(); void multiredditChanged(); + void lastRefreshedTimeChanged(); void searchQueryChanged(); void searchSortChanged(); void searchTimeRangeChanged(); @@ -183,6 +191,7 @@ private slots: QString m_searchQuery; SearchSortType m_searchSort; TimeRange m_searchTimeRange; + QDateTime m_lastRefreshedTime; QList m_linkList; diff --git a/src/parser.cpp b/src/parser.cpp index c3ba99ee..cc560953 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -119,7 +119,7 @@ void linkFromMap(LinkObject &link, const QVariantMap &linkMap) QString thumbnail = linkMap.value("thumbnail").toString(); if (thumbnail.startsWith("http")) - link.setThumbnailUrl(QUrl(thumbnail)); + link.setThumbnailUrl(QUrl(unescapeUrl(thumbnail))); link.setText(unescapeHtml(linkMap.value("selftext_html").toString())); link.setRawText(unescapeMarkdown(linkMap.value("selftext").toString())); diff --git a/src/qmlutils.cpp b/src/qmlutils.cpp index f7430df0..2f626a9e 100644 --- a/src/qmlutils.cpp +++ b/src/qmlutils.cpp @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include #include #include @@ -41,9 +43,9 @@ #include #endif -const QString QMLUtils::SOURCE_REPO_URL = "https://github.com/accumulator/Quickddit"; +const QString QMLUtils::SOURCE_REPO_URL = "https://github.com/abranson/Quickddit"; const QString QMLUtils::GPL3_LICENSE_URL = "http://www.gnu.org/licenses/gpl-3.0.html"; -const QString QMLUtils::TRANSLATIONS_URL = "https://www.transifex.com/outright-solutions/quickddit/"; +const QString QMLUtils::TRANSLATIONS_URL = "https://hosted.weblate.org/projects/quickddit/"; QMLUtils::QMLUtils(QObject *parent) : QObject(parent) @@ -179,6 +181,48 @@ void QMLUtils::onSaveImageFinished() m_reply = 0; } +bool QMLUtils::resolveRedditShareUrl(const QString &url) +{ + QUrl requestUrl(url); + if (!requestUrl.isValid()) { + emit redditShareUrlFailed(tr("Invalid share URL")); + return false; + } + + qDebug() << "Resolving share URL: " << url; + + QNetworkRequest request(requestUrl); + request.setRawHeader("User-Agent", "Quickddit/" APP_VERSION); + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + // TODO: this will need to be done manually on Harmattan + request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif + + QNetworkReply *reply = m_manager.get(request); + if (!reply) { + emit redditShareUrlFailed(tr("Unable to resolve share URL")); + return false; + } + + connect(reply, SIGNAL(finished()), this, SLOT(onResolveShareUrlFinished())); + return true; +} + +void QMLUtils::onResolveShareUrlFinished() +{ + QNetworkReply *reply = qobject_cast(sender()); + + if (reply->error() == QNetworkReply::NoError) + emit redditShareUrlResolved(reply->url().toString()); + else { + qDebug() << reply->error(); + emit redditShareUrlFailed(reply->errorString()); + } + + reply->deleteLater(); +} + void QMLUtils::publishNotification(const QString &summary, const QString &body, const int count) { @@ -186,21 +230,22 @@ void QMLUtils::publishNotification(const QString &summary, const QString &body, MNotification notification("quickddit.inbox", summary, body); notification.setCount(count); notification.setIdentifier("0"); - MRemoteAction action("org.quickddit", "/", "org.quickddit.view", "showInbox"); + MRemoteAction action("nl.outrightsolutions.Quickddit", "/nl/outrightsolutions/Quickddit", "org.quickddit.view", "showInbox"); notification.setAction(action); notification.publish(); #elif Q_OS_SAILFISH Notification notification; - notification.setCategory("harbour-quickddit.inbox"); notification.setSummary(summary); notification.setBody(body); notification.setItemCount(count); notification.setReplacesId(0); + notification.setAppIcon("harbour-quickddit"); + notification.setHintValue("x-nemo-feedback", "social"); notification.setRemoteAction( Notification::remoteAction( - "default", "show Inbox", "org.quickddit", "/", "org.quickddit.view", "showInbox")); + "default", "Show Inbox", "nl.outrightsolutions.Quickddit", "/nl/outrightsolutions/Quickddit", "org.quickddit.view", "showInbox")); notification.publish(); #endif diff --git a/src/qmlutils.h b/src/qmlutils.h index 63253339..d9dfa8a7 100644 --- a/src/qmlutils.h +++ b/src/qmlutils.h @@ -21,6 +21,7 @@ #define QMLUTILS_H #include +#include #include #include #include @@ -66,6 +67,13 @@ class QMLUtils : public QObject */ Q_INVOKABLE QString getRedditShortUrl(const QString &fullname); + /** + * Follow all redirects on a reddit share URL to find where it really points to. + * Used for /s/ URLs. + * @param url the URL to resolve + */ + Q_INVOKABLE bool resolveRedditShareUrl(const QString &url); + /** * Get a absolute Reddit url from a relative url * Return the same string if the url is already an absolute url @@ -82,11 +90,14 @@ class QMLUtils : public QObject private slots: void onSaveImageFinished(); void onClipboardChanged(); + void onResolveShareUrlFinished(); signals: void saveImageSucceeded(const QString &name); void saveImageFailed(const QString &name); void clipboardChanged(); + void redditShareUrlResolved(const QString &resolvedUrl); + void redditShareUrlFailed(const QString &errorString); private: QNetworkAccessManager m_manager; diff --git a/src/quickdditmanager.cpp b/src/quickdditmanager.cpp index 62aa8565..a71a8182 100644 --- a/src/quickdditmanager.cpp +++ b/src/quickdditmanager.cpp @@ -43,8 +43,9 @@ #define REDDIT_OAUTH_SCOPE "read,mysubreddits,subscribe,vote,submit,edit,identity,privatemessages,history,save,flair,report,wikiread" QuickdditManager::QuickdditManager(QObject *parent) : - QObject(parent), m_netManager(new QNetworkAccessManager(this)), m_settings(0), m_signedIn(false), - m_accessTokenRequest(0), m_pendingRequest(0), m_userInfoReply(0) + QObject(parent), m_netManager(new QNetworkAccessManager(this)), m_settings(0), m_busy(false), + m_signedIn(false), m_accessTokenRequest(0), m_pendingRequest(0), m_userInfoReply(0), + m_currentAccountIconImg(QUrl()) { } @@ -138,7 +139,7 @@ APIRequest *QuickdditManager::createRedditRequest(QObject *parent, APIRequest::H QUrl QuickdditManager::generateAuthorizationUrl() { - QUrl url("https://www.reddit.com/api/v1/authorize"); + QUrl url("https://www.reddit.com/api/v1/authorize.compact"); QHash parameters; parameters.insert("response_type", "code"); @@ -273,10 +274,7 @@ void QuickdditManager::onAccessTokenRequestFinished(QNetworkReply *reply) m_accessTokenRequest = 0; if (!m_accessToken.isEmpty()) { - if (m_settings->redditUsername().isEmpty()) - updateRedditUsername(); - else - saveOrAddAccountInfo(); + updateRedditUsername(); } setBusy(false); @@ -321,8 +319,14 @@ void QuickdditManager::onUserInfoFinished(QNetworkReply *reply) QVariantMap userJson = QtJson::parse(reply->readAll(), ok).toMap(); Q_ASSERT_X(ok, Q_FUNC_INFO, "Error parsing JSON"); m_settings->setRedditUsername(userJson.value("name").toString()); + QString iconUrl = userJson.value("icon_img").toString(); + if (iconUrl.isEmpty()) + iconUrl = userJson.value("snoovatar_img").toString(); + iconUrl.replace("&", "&"); + m_currentAccountIconImg = QUrl(iconUrl); } else { qDebug("Network error: %s", qPrintable(reply->errorString())); + m_currentAccountIconImg = QUrl(); } saveOrAddAccountInfo(); @@ -353,6 +357,7 @@ void QuickdditManager::saveOrAddAccountInfo() data.accountName = m_settings->redditUsername(); data.refreshToken = m_settings->refreshToken(); data.lastSeenMessage = m_settings->lastSeenMessage(); + data.iconImg = m_currentAccountIconImg; bool found = false; QList accountlist = m_settings->accounts(); @@ -386,4 +391,3 @@ void QuickdditManager::selectAccount(QString accountName) } } } - diff --git a/src/quickdditmanager.h b/src/quickdditmanager.h index 2bb379f1..6cd032e2 100644 --- a/src/quickdditmanager.h +++ b/src/quickdditmanager.h @@ -108,6 +108,7 @@ private slots: APIRequest *m_pendingRequest; APIRequest *m_userInfoReply; + QUrl m_currentAccountIconImg; void refreshAccessToken(); void updateRedditUsername(); diff --git a/src/settings.cpp b/src/settings.cpp index 83993712..2b9874aa 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -58,6 +58,7 @@ Settings::Settings(QObject *parent) : m_thumbnailScale = static_cast(m_settings->value("thumbnailScale", Settings::ScaleAuto).toInt()); m_showLinkType = m_settings->value("showLinkType", false).toBool(); m_loopVideos = m_settings->value("loopVideos", false).toBool(); + m_preferAdaptive = m_settings->value("preferAdaptive", false).toBool(); m_subredditSection = m_settings->value("subredditSection", 0).toInt(); m_messageSection = m_settings->value("messageSection", 0).toInt(); m_commentSort = m_settings->value("commentSort", 0).toInt(); @@ -89,6 +90,7 @@ Settings::Settings(QObject *parent) : data.accountName = m_settings->value("acctUsername").toString(); data.refreshToken = m_settings->value("acctRefreshToken").toByteArray(); data.lastSeenMessage = m_settings->value("acctLastSeenMessage").toString(); + data.iconImg = m_settings->value("acctIcon").toUrl(); m_accounts.append(data); } m_settings->endArray(); @@ -100,6 +102,7 @@ Settings::Settings(QObject *parent) : data.accountName = m_redditUsername; data.refreshToken = m_refreshToken; data.lastSeenMessage = m_lastSeenMessage; + data.iconImg = QUrl(); initial_accounts.append(data); setAccounts(initial_accounts); } @@ -253,6 +256,20 @@ void Settings::setLoopVideos(const bool loopVideos) } } +bool Settings::preferAdaptive() const +{ + return m_preferAdaptive; +} + +void Settings::setPreferAdaptive(const bool preferAdaptive) +{ + if (m_preferAdaptive != preferAdaptive) { + m_preferAdaptive = preferAdaptive; + m_settings->setValue("preferAdaptive", m_preferAdaptive); + emit preferAdaptiveChanged(); + } +} + int Settings::subredditSection() const { return m_subredditSection; @@ -367,11 +384,22 @@ void Settings::setAccounts(const QList accounts) m_settings->setValue("acctUsername", m_accounts.at(i).accountName); m_settings->setValue("acctRefreshToken", m_accounts.at(i).refreshToken); m_settings->setValue("acctLastSeenMessage", m_accounts.at(i).lastSeenMessage); + m_settings->setValue("acctIcon", m_accounts.at(i).iconImg); } m_settings->endArray(); emit accountsChanged(); } +QUrl Settings::accountIcon(const QString &accountName) const +{ + for (int i = 0; i < m_accounts.size(); ++i) { + if (m_accounts.at(i).accountName == accountName) { + return m_accounts.at(i).iconImg; + } + } + return QUrl(); +} + void Settings::removeAccount(const QString& accountName) { QList accountlist = accounts(); diff --git a/src/settings.h b/src/settings.h index e4dadba8..ea2fa30b 100644 --- a/src/settings.h +++ b/src/settings.h @@ -22,6 +22,7 @@ #include #include +#include class QSettings; @@ -40,6 +41,7 @@ class Settings : public QObject Q_PROPERTY(ThumbnailScale thumbnailScale READ thumbnailScale WRITE setThumbnailScale NOTIFY thumbnailScaleChanged) Q_PROPERTY(bool showLinkType READ showLinkType WRITE setShowLinkType NOTIFY showLinkTypeChanged) Q_PROPERTY(bool loopVideos READ loopVideos WRITE setLoopVideos NOTIFY loopVideosChanged) + Q_PROPERTY(bool preferAdaptive READ preferAdaptive WRITE setPreferAdaptive NOTIFY preferAdaptiveChanged) Q_PROPERTY(int subredditSection READ subredditSection WRITE setSubredditSection NOTIFY subredditSectionChanged) Q_PROPERTY(int messageSection READ messageSection WRITE setMessageSection NOTIFY messageSectionChanged) Q_PROPERTY(int commentSort READ commentSort WRITE setCommentSort NOTIFY commentSortChanged) @@ -80,6 +82,7 @@ class Settings : public QObject QString accountName; QByteArray refreshToken; QString lastSeenMessage; + QUrl iconImg; }; struct SubredditPrefs { @@ -121,6 +124,9 @@ class Settings : public QObject bool loopVideos() const; void setLoopVideos(const bool loopVideos); + bool preferAdaptive() const; + void setPreferAdaptive(const bool preferAdaptive); + int subredditSection() const; void setSubredditSection(const int subredditSection); @@ -142,6 +148,7 @@ class Settings : public QObject QList accounts() const; QStringList accountNames() const; void setAccounts(const QList accounts); + Q_INVOKABLE QUrl accountIcon(const QString &accountName) const; Q_INVOKABLE void removeAccount(const QString& accountName); QStringList filteredSubreddits() const; @@ -155,6 +162,7 @@ class Settings : public QObject void thumbnailScaleChanged(); void showLinkTypeChanged(); void loopVideosChanged(); + void preferAdaptiveChanged(); void subredditSectionChanged(); void messageSectionChanged(); void commentSortChanged(); @@ -176,6 +184,7 @@ class Settings : public QObject ThumbnailScale m_thumbnailScale; bool m_showLinkType; bool m_loopVideos; + bool m_preferAdaptive; QStringList m_filteredSubreddits; int m_subredditSection; int m_messageSection; diff --git a/youtube-dl b/youtube-dl index b224cf39..956b8c58 160000 --- a/youtube-dl +++ b/youtube-dl @@ -1 +1 @@ -Subproject commit b224cf39d53bd16bcfda2ac493712c3ff449ecb8 +Subproject commit 956b8c585591b401a543e409accb163eeaaa1193