diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..f03d6650 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,225 @@ +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 -d \ + --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 + filename=$(basename "$f") + nvra=${filename%.rpm} + arch=${nvra##*.} + nvr=${nvra%.$arch} + release=${nvr##*-} + nv=${nvr%-*} + pkgname=${nv%-*} + + case "$f" in + *aarch64.rpm) dest="aarch64" ;; + *armv7hl.rpm) dest="armv7hl" ;; + *i486.rpm) dest="i486" ;; + *) echo "Skipping unknown arch in $f"; continue ;; + esac + + echo "Removing older ${pkgname} packages from $dest/" + rm -f "$dest"/"${pkgname}"-*.${arch}.rpm + + 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 83% rename from sailfish/rpm/harbour-quickddit.changes rename to rpm/harbour-quickddit.changes index 18c295ee..134ceccd 100644 --- a/sailfish/rpm/harbour-quickddit.changes +++ b/rpm/harbour-quickddit.changes @@ -1,9 +1,89 @@ # 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 +* Wed May 27 2026 Andrew Branson 1.14.11-1 +- fix: Use Sailjail D-Bus activation for the launcher +- fix: Let video playback extend into screen cutouts +- chg: Move Sailfish application organization to org.quickddit + +* Thu May 14 2026 Andrew Branson 1.14.10-1 +- fix: Follow Reddit links opened from the OS +- new: Support screen notches +- chg: Update translations + +* Sat Mar 28 2026 Andrew Branson 1.14.9-1 +- chg: Add Reddit API key build-time configuration for packaged builds +- fix: Restore loading progress for animated image downloads +- chg: Keep only the newest published RPM per package and architecture in the repo +- chg: Update translations + +* Tue Mar 17 2026 Andrew Branson 1.14.8-1 +- chg: Re-release the Sailfish sign-in compatibility fix as 1.14.8 for harbour versioning compatibility. Grr. + +* Mon Mar 16 2026 Andrew Branson 1.14.7.1-1 +- fix: Override the embedded Reddit sign-in user agent for Sailfish browser compatibility +- chg: Update translation source locations + +* Sun Mar 15 2026 Andrew Branson 1.14.7-1 +- new: Swipeable gallery for images +- fix: Cache animated images to reduce memory use +- chg: Update translations + +* 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..77c749af 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.11 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,20 @@ 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..bbfacb9d 100644 --- a/sailfish/dbusapp.cpp +++ b/sailfish/dbusapp.cpp @@ -27,15 +27,35 @@ DbusApp::DbusApp(QObject *parent) : QObject(parent) { new ViewAdaptor(this); + new ApplicationAdaptor(this); QDBusConnection c = QDBusConnection::sessionBus(); - bool ret = c.registerService("org.quickddit"); + bool ret = c.registerService("org.quickddit.Quickddit"); Q_ASSERT(ret); - ret = c.registerObject("/", this); + ret = c.registerObject("/org/quickddit/Quickddit", this); Q_ASSERT(ret); Q_UNUSED(ret); } +ApplicationAdaptor::ApplicationAdaptor(QObject *parent) : + QDBusAbstractAdaptor(parent) +{ + setAutoRelaySignals(true); +} + +void ApplicationAdaptor::Activate(const QVariantMap &platform_data) +{ + Q_UNUSED(platform_data); + qDebug() << "Activate"; +} + +void ApplicationAdaptor::Open(const QStringList &uris, const QVariantMap &platform_data) +{ + Q_UNUSED(platform_data); + qDebug() << "Open" << uris; + QMetaObject::invokeMethod(parent(), "openURL", Q_ARG(QStringList, uris)); +} + void DbusApp::showInbox() { qDebug() << "showInbox"; @@ -45,5 +65,13 @@ void DbusApp::showInbox() void DbusApp::openURL(const QString& url) { qDebug() << "openURL" << url; - emit requestOpenURL(url); + if (!url.isEmpty()) + emit requestOpenURL(url); +} + +void DbusApp::openURL(const QStringList& urls) +{ + qDebug() << "openURL" << urls; + if (!urls.isEmpty()) + openURL(urls.first()); } diff --git a/sailfish/dbusapp.h b/sailfish/dbusapp.h index 5849a64b..258b9aaa 100644 --- a/sailfish/dbusapp.h +++ b/sailfish/dbusapp.h @@ -19,7 +19,34 @@ #ifndef DBUSAPP_H #define DBUSAPP_H +#include #include +#include +#include +#include + +class ApplicationAdaptor : public QDBusAbstractAdaptor +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.freedesktop.Application") + Q_CLASSINFO("D-Bus Introspection", "" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" + "") +public: + explicit ApplicationAdaptor(QObject *parent); + +public slots: + void Activate(const QVariantMap &platform_data); + void Open(const QStringList &uris, const QVariantMap &platform_data); +}; class DbusApp : public QObject { @@ -34,6 +61,7 @@ class DbusApp : public QObject public slots: void showInbox(); void openURL(const QString& url); + void openURL(const QStringList& urls); }; #endif // DBUSAPP_H diff --git a/sailfish/harbour-quickddit.desktop b/sailfish/harbour-quickddit.desktop index 59d17179..5d94c27e 100644 --- a/sailfish/harbour-quickddit.desktop +++ b/sailfish/harbour-quickddit.desktop @@ -2,10 +2,13 @@ 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-Sailjail] Permissions=Internet;Audio;Pictures;WebView -OrganizationName=nl.outrightsolutions +OrganizationName=org.quickddit ApplicationName=Quickddit +ExecDBus=harbour-quickddit --prestart 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/iface/org.quickddit.xml b/sailfish/iface/org.quickddit.xml index b7ba05c3..eafd6459 100644 --- a/sailfish/iface/org.quickddit.xml +++ b/sailfish/iface/org.quickddit.xml @@ -4,7 +4,7 @@ - + diff --git a/sailfish/main.cpp b/sailfish/main.cpp index 347f6aac..b669e5ec 100644 --- a/sailfish/main.cpp +++ b/sailfish/main.cpp @@ -21,6 +21,7 @@ #include #endif +#include #include #include // for qmlRegisterType #include @@ -58,8 +59,8 @@ int main(int argc, char *argv[]) app->setApplicationDisplayName("Quickddit"); app->setApplicationName("Quickddit"); - app->setOrganizationName("nl.outrightsolutions"); - app->setOrganizationDomain("outrightsolutions.nl"); + app->setOrganizationName("org.quickddit"); + app->setOrganizationDomain("quickddit.org"); app->setApplicationVersion(APP_VERSION); qmlRegisterType("harbour.quickddit.Core", 1, 0, "Settings"); @@ -87,7 +88,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 +98,14 @@ int main(int argc, char *argv[]) view->setSource(SailfishApp::pathTo("qml/main.qml")); view->show(); + const QStringList arguments = app->arguments(); + for (int i = 1; i < arguments.count(); ++i) { + const QString argument = arguments.at(i); + if (!argument.startsWith("-")) { + dbusApp.openURL(argument); + break; + } + } + 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..49b9ab71 100644 --- a/sailfish/qml/ImageViewPage.qml +++ b/sailfish/qml/ImageViewPage.qml @@ -20,55 +20,142 @@ import QtQuick 2.0 import Sailfish.Silica 1.0 import harbour.quickddit.Core 1.0 +import Sailfish.Share 1.0 AbstractPage { id: imageViewPage title: qsTr("Image") - property alias imageUrl: viewer.source + property url imageUrl property alias imgurUrl: imgurManager.imgurUrl property alias galleryUrl: galleryManager.galleryUrl property QtObject activeManager: imgurManager.imgurUrl ? imgurManager : galleryManager + property int imageCount: activeManager.imageUrls.length > 0 + ? activeManager.imageUrls.length + : imageUrl.toString() !== "" ? 1 : 0 + property Item currentSwipeItem: imageSwipeView.currentItem + property Item currentViewer: currentSwipeItem ? currentSwipeItem.viewer : null + property bool currentImageZoomed: currentViewer && currentViewer.image + && currentViewer.image.scale > (currentViewer.fitScale * 1.01) + property url currentImageUrl: currentSwipeItem ? currentSwipeItem.sourceUrl : imageUrl + + function jumpToImage(index) { + if (index < 0 || index >= imageSwipeView.count) + return + + imageSwipeView.cancelFlick() + imageSwipeView.positionViewAtIndex(index, ListView.Beginning) + if (imageSwipeView.currentIndex !== index) + imageSwipeView.currentIndex = index + } + // to make the image outside of the page not visible during page transitions clip: true SilicaFlickable { - id: imageFlickable + id: pageFlickable anchors { - top: parent.top; left: parent.left; - right: isPortrait ? parent.right : thumbnailListView.left; + top: parent.top + left: parent.left + right: isPortrait ? parent.right : thumbnailListView.left bottom: isPortrait ? thumbnailListView.top : parent.bottom } - contentWidth: viewer.width; contentHeight: viewer.height + contentWidth: width + contentHeight: height - // When orientation changes, both height and width properties receive changed events - // in random order. Fire a short timer to wait out the updates, then fit to screen - onHeightChanged: { - resizeTimer.start() + ShareAction { + id: sharer + mimeType: "text/x-url" } PullDownMenu { MenuItem { text: qsTr("Save Image") - enabled: imageUrl.toString() !== "" - onClicked: QMLUtils.saveImage(imageUrl.toString()); + enabled: currentImageUrl.toString() !== "" + onClicked: QMLUtils.saveImage(currentImageUrl.toString()) + } + MenuItem { + text: qsTr("Share Image") + enabled: currentViewer && currentViewer.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 (currentImageUrl.toString() !== "") { url = currentImageUrl.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()); + onClicked: globalUtils.createOpenLinkDialog(imgurUrl || galleryUrl || currentImageUrl.toString()) } } - ImageViewer { - id: viewer - flickable: imageFlickable - // pause the animation when app is in background - paused: imageViewPage.status !== PageStatus.Active || !Qt.application.active - onSourceChanged: console.log("source changed: " + source); - } + ListView { + id: imageSwipeView + anchors.fill: parent + clip: true + orientation: ListView.Horizontal + snapMode: ListView.SnapOneItem + boundsBehavior: Flickable.StopAtBounds + highlightRangeMode: ListView.StrictlyEnforceRange + preferredHighlightBegin: 0 + preferredHighlightEnd: width + model: imageCount + interactive: count > 1 && !currentImageZoomed + + delegate: Item { + id: imagePageDelegate + + width: imageSwipeView.width + height: imageSwipeView.height + property bool isCurrentImage: imageSwipeView.currentIndex === index + + property alias viewer: viewer + property url sourceUrl: activeManager.imageUrls.length > 0 + ? activeManager.imageUrls[index] + : imageViewPage.imageUrl + + SilicaFlickable { + id: imageFlickable + anchors.fill: parent + contentWidth: viewer.width + contentHeight: viewer.height + + // Width and height updates can arrive in random order during orientation changes. + onHeightChanged: resizeTimer.start() + onWidthChanged: resizeTimer.start() + + ImageViewer { + id: viewer + flickable: imageFlickable + source: imagePageDelegate.sourceUrl + paused: imageViewPage.status !== PageStatus.Active + || !Qt.application.active + || !imagePageDelegate.isCurrentImage + onSourceChanged: console.log("source changed: " + source) + } + + ScrollDecorator {} + } - ScrollDecorator {} + Timer { + id: resizeTimer + interval: 1 + repeat: false + onTriggered: viewer._fitToScreen() + } + } + + onCurrentIndexChanged: { + if (activeManager.imageUrls.length > 0 && activeManager.selectedIndex !== currentIndex) + activeManager.selectedIndex = currentIndex + if (thumbnailListView.count > 0) + thumbnailListView.positionViewAtIndex(currentIndex, ListView.Center) + } + } } Loader { @@ -76,13 +163,18 @@ AbstractPage { anchors.centerIn: parent sourceComponent: { if (activeManager.busy) - return busyIndicatorComponent; + return busyIndicatorComponent - switch (viewer.status) { - case Image.Loading: return busyIndicatorComponent - case Image.Error: return failedLoading - default: return undefined - } + if (!currentViewer) + return undefined + + if (currentViewer.loading) + return busyIndicatorComponent + + if (currentViewer.status === Image.Error) + return failedLoading + + return undefined } Component { @@ -104,7 +196,7 @@ AbstractPage { anchors.centerIn: parent visible: !activeManager.busy font.pixelSize: constant.fontSizeSmall - text: Math.round(viewer.progress * 100) + "%" + text: Math.round((currentViewer ? currentViewer.progress : 0) * 100) + "%" } } } @@ -117,9 +209,9 @@ AbstractPage { property int _itemSize: 150 anchors { - left: isPortrait ? parent.left : undefined; - right: parent.right; - top: isPortrait ? undefined : parent.top; + left: isPortrait ? parent.left : undefined + right: parent.right + top: isPortrait ? undefined : parent.top bottom: parent.bottom } height: isPortrait @@ -157,23 +249,28 @@ AbstractPage { id: selectedIndicator anchors.fill: parent color: "transparent" - border.color: index === activeManager.selectedIndex ? "steelblue" : "black" + border.color: index === imageSwipeView.currentIndex ? "steelblue" : "black" border.width: 4 } MouseArea { anchors.fill: parent - onClicked: activeManager.selectedIndex = index; + onClicked: { + imageViewPage.jumpToImage(index) + if (activeManager.selectedIndex !== index) + activeManager.selectedIndex = index + } } } - onModelChanged: positionViewAtIndex(activeManager.selectedIndex, ListView.Center) + onModelChanged: if (count > 0) positionViewAtIndex(imageSwipeView.currentIndex, ListView.Center) onOrientationChanged: latePositioning.start() Timer { id: latePositioning - interval: 0; repeat: false - onTriggered: thumbnailListView.positionViewAtIndex(activeManager.selectedIndex, ListView.Center) + interval: 0 + repeat: false + onTriggered: if (thumbnailListView.count > 0) thumbnailListView.positionViewAtIndex(imageSwipeView.currentIndex, ListView.Center) } } @@ -181,8 +278,8 @@ AbstractPage { id: imgurManager manager: quickdditManager onError: { - infoBanner.warning(errorString); - console.log(errorString); + infoBanner.warning(errorString) + console.log(errorString) } } @@ -190,36 +287,25 @@ AbstractPage { id: galleryManager manager: quickdditManager onError: { - infoBanner.warning(errorString); - console.log(errorString); + infoBanner.warning(errorString) + console.log(errorString) } } - Binding { - target: viewer - property: "source" - value: imgurManager.imageUrl - when: imageViewPage.imgurUrl - } - - Binding { - target: viewer - property: "source" - value: galleryManager.imageUrl - when: imageViewPage.galleryUrl.toString() !== "" + Connections { + target: activeManager + onSelectedIndexChanged: { + if (activeManager.selectedIndex >= 0 + && activeManager.selectedIndex < imageSwipeView.count + && imageSwipeView.currentIndex !== activeManager.selectedIndex) { + imageViewPage.jumpToImage(activeManager.selectedIndex) + } + } } Connections { target: QMLUtils - onSaveImageSucceeded: infoBanner.alert(qsTr("Image saved to gallery")); - onSaveImageFailed: infoBanner.warning(qsTr("Image save failed!")); - } - - Timer { - id: resizeTimer - interval: 1 - repeat: false - - onTriggered: viewer._fitToScreen() + onSaveImageSucceeded: infoBanner.alert(qsTr("Image saved to gallery")) + onSaveImageFailed: infoBanner.warning(qsTr("Image save failed!")) } } diff --git a/sailfish/qml/ImageViewer.qml b/sailfish/qml/ImageViewer.qml index e0151442..f53baa8b 100644 --- a/sailfish/qml/ImageViewer.qml +++ b/sailfish/qml/ImageViewer.qml @@ -24,8 +24,11 @@ Item { id: imageViewer property QtObject image: imageLoader.item - property int status - property real progress: 0 + property int status: image ? image.status : Image.Null + property bool cacheLoading: false + property real cacheProgress: 0 + property real progress: cacheLoading ? cacheProgress : image ? image.progress : 0 + property bool loading: cacheLoading || status === Image.Loading || (progress > 0 && progress < 1) property url source property bool paused: false @@ -34,6 +37,11 @@ Item { property Flickable flickable + function _isRemoteAnimatedSource(url) { + var src = String(url) + return /^https?:\/\//i.test(src) && /\.(gif|apng|webp)(\?|#|$)/i.test(src) + } + width: Math.max(image.width * image.scale, flickable.width) height: Math.max(image.height * image.scale, flickable.height) @@ -74,14 +82,65 @@ Item { id: imageItem paused: imageViewer.paused - source: imageViewer.source + property url requestedSource: imageViewer.source + property url resolvedSource: imageViewer.source + property url cachedLocalSource: "" + property bool pendingCachedSwitch: false + source: resolvedSource + + function applyCachedSource() { + if (cachedLocalSource.length === 0 || resolvedSource === cachedLocalSource) + return + + resolvedSource = cachedLocalSource + pendingCachedSwitch = false + } + + function queueOrApplyCachedSource() { + if (cachedLocalSource.length === 0) + return + + if (!playing || status !== Image.Ready) { + applyCachedSource() + return + } + + if (frameCount <= 1 || currentFrame >= frameCount - 1) { + applyCachedSource() + return + } + + pendingCachedSwitch = true + } anchors.centerIn: parent asynchronous: true smooth: !flickable.moving - cache: true + cache: false fillMode: Image.PreserveAspectFit + onRequestedSourceChanged: { + resolvedSource = requestedSource + cachedLocalSource = "" + pendingCachedSwitch = false + imageViewer.cacheLoading = false + imageViewer.cacheProgress = 0 + + if (!imageViewer._isRemoteAnimatedSource(requestedSource)) + return + + var originalUrl = String(requestedSource) + var cachedUrl = QMLUtils.cachedAnimatedImageUrl(originalUrl) + if (cachedUrl.length > 0) + cachedLocalSource = cachedUrl + else { + imageViewer.cacheLoading = true + QMLUtils.cacheAnimatedImage(originalUrl) + } + + queueOrApplyCachedSource() + } + onScaleChanged: { _onScaleChanged() } @@ -100,6 +159,45 @@ Item { parent.safe = true } + onCurrentFrameChanged: { + if (pendingCachedSwitch && frameCount > 1 && currentFrame >= frameCount - 1) + applyCachedSource() + } + + onPlayingChanged: { + if (pendingCachedSwitch && playing) + applyCachedSource() + } + + Connections { + target: QMLUtils + onAnimatedImageCached: { + if (originalUrl !== String(imageItem.requestedSource)) + return + + imageViewer.cacheLoading = false + imageViewer.cacheProgress = 1 + imageItem.cachedLocalSource = localUrl + imageItem.queueOrApplyCachedSource() + } + + onAnimatedImageCacheProgress: { + if (originalUrl !== String(imageItem.requestedSource)) + return + + imageViewer.cacheLoading = true + imageViewer.cacheProgress = progress + } + + onAnimatedImageCacheFailed: { + if (originalUrl !== String(imageItem.requestedSource)) + return + + imageViewer.cacheLoading = false + imageViewer.cacheProgress = 0 + } + } + NumberAnimation { id: loadedAnimation target: imageItem @@ -109,17 +207,6 @@ Item { easing.type: Easing.InOutQuad } - Binding { - target: imageViewer - property: "progress" - value: imageItem.progress - } - Binding { - target: imageViewer - property: "status" - value: imageItem.status - } - DisplayBlanking { preventBlanking: imageItem.playing } @@ -165,17 +252,6 @@ Item { easing.type: Easing.InOutQuad } - Binding { - target: imageViewer - property: "progress" - value: imageItem.progress - } - Binding { - target: imageViewer - property: "status" - value: imageItem.status - } - Component.onCompleted: console.log("Safe Image viewer used") } } diff --git a/sailfish/qml/InfoBanner.qml b/sailfish/qml/InfoBanner.qml index fe0e7350..e66d97ad 100644 --- a/sailfish/qml/InfoBanner.qml +++ b/sailfish/qml/InfoBanner.qml @@ -24,27 +24,30 @@ MouseArea { id: infoBanner property bool isWarning: false + readonly property real topInset: Screen.hasCutouts && Screen.topCutout.height > 0 + ? Screen.topCutout.height + Theme.paddingSmall + : 0 + property bool isPortrait: appWindow.deviceOrientation === Orientation.Portrait + || appWindow.deviceOrientation === Orientation.PortraitInverted function alert(text) { isWarning = false - messageText.text = text; - infoBanner.opacity = 1.0; - hideTimer.start(); - console.log(text); + messageText.text = text + infoBanner.opacity = 1.0 + hideTimer.restart() + console.log(text) } function warning(text) { isWarning = true - messageText.text = text; - infoBanner.opacity = 1.0; - hideTimer.start(); - console.log(text); + messageText.text = text + infoBanner.opacity = 1.0 + hideTimer.restart() + console.log(text) } - property bool isPortrait: appWindow.deviceOrientation === Orientation.Portrait || appWindow.deviceOrientation === Orientation.PortraitInverted - width: isPortrait ? parent.width : parent.height - height: messageText.height + 2 * constant.paddingMedium + height: topInset + messageText.height + 2 * constant.paddingMedium visible: opacity > 0.0 opacity: 0.0 @@ -56,6 +59,7 @@ MouseArea { value: { switch (appWindow.deviceOrientation) { case Orientation.Portrait: + return 0 case Orientation.Landscape: return 0 case Orientation.PortraitInverted: @@ -72,11 +76,13 @@ MouseArea { value: { switch (appWindow.deviceOrientation) { case Orientation.Portrait: - case Orientation.LandscapeInverted: return 0 case Orientation.Landscape: + return appWindow.width case Orientation.PortraitInverted: return appWindow.width + case Orientation.LandscapeInverted: + return 0 } } } @@ -106,10 +112,12 @@ MouseArea { spacing: 20 anchors { - margins: constant.paddingMedium - left: parent.left; - right: parent.right; - verticalCenter: parent.verticalCenter + left: parent.left + right: parent.right + top: parent.top + topMargin: topInset + constant.paddingMedium + leftMargin: constant.paddingMedium + rightMargin: constant.paddingMedium } Image { @@ -130,11 +138,11 @@ MouseArea { Timer { id: hideTimer interval: 3000 - onTriggered: infoBanner.opacity = 0.0; + onTriggered: infoBanner.opacity = 0.0 } onClicked: { - opacity = 0.0; - hideTimer.stop(); + opacity = 0.0 + hideTimer.stop() } } 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..bbf27408 100644 --- a/sailfish/qml/SignInPage.qml +++ b/sailfish/qml/SignInPage.qml @@ -13,7 +13,7 @@ import Sailfish.Silica 1.0 import Sailfish.WebView 1.0 as SailfishWebView import Sailfish.WebView.Popups 1.0 as SailfishWebViewPopups -Dialog { +AbstractDialog { id: signInDialog // For CoverPage @@ -55,6 +55,7 @@ Dialog { anchors.fill: parent url: quickdditManager.generateAuthorizationUrl(); + httpUserAgent: "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0" privateMode: true popupProvider: SailfishWebViewPopups.PopupProvider { @@ -75,10 +76,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..0754717d 100644 --- a/sailfish/qml/VideoViewPage.qml +++ b/sailfish/qml/VideoViewPage.qml @@ -24,11 +24,18 @@ import harbour.quickddit.Core 1.0 AbstractPage { id: videoViewPage title: qsTr("Video") + cutoutMode: CutoutMode.FullScreen + backgroundColor: "black" property string videoUrl property string origUrl property bool error: false + readonly property real topInset: orientation == Orientation.Portrait + && Screen.hasCutouts + && Screen.topCutout.height > 0 + ? Screen.topCutout.height + Theme.paddingSmall + : 0 SilicaFlickable { id: videoFlickable @@ -116,6 +123,26 @@ AbstractPage { } } + Text { + anchors { + top: parent.top + left: parent.left + right: parent.right + leftMargin: constant.paddingLarge + rightMargin: constant.paddingLarge + topMargin: videoViewPage.topInset + 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 +162,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 +237,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["vcodec"].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["vcodec"].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 +309,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..1290bc38 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..36b449b3 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..ad8ccc50 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 @@ -1308,7 +1318,7 @@ Um Konten hinzuzufügen, logge dich ein. Quickddit merkt sich erfolgreiche Login - + Sign in successful! Welcome! :) @@ -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..b41e2c3d 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 @@ -1306,7 +1316,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - + Sign in successful! Welcome! :) @@ -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..890d457c 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 @@ -1733,23 +1771,22 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis 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 @@ -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..cd81bf84 --- /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..41b04b07 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 @@ -1306,7 +1316,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - + Sign in successful! Welcome! :) @@ -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..c543121c 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..dbb1d9f4 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 @@ -142,22 +137,22 @@ This subreddit is Not Safe For Work - Questo subreddit ĆØ Non Idoneo Al Lavoro (NSFW) + Questo subreddit ĆØ Non Idoneo Al Lavoro %n subscribers - - - + + %n sottoscritto + %n sottoscritti %n active users - - - + + %n utente attivo + %n utenti attivi @@ -239,46 +234,48 @@ AccountsPage - + Accounts - + Account 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 - + Rimuovi %1 account - + Activate - + Attiva - + Remove - Rimuovere + Rimuovere - + No known accounts yet. To add accounts, simply log in. Quickddit will remember succesful logins and list the accounts here - + Ancora nessun account conosciuto + +Per aggiungere account, effettua l'accesso. Quickddit si ricorderĆ  degli accessi eseguiti con successo ed elencherĆ  gli account qui @@ -301,9 +298,9 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n pts - - - + + %n punto + %n punti @@ -344,21 +341,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 + Inserisci la tua risposta qui - Enter your new comment here... - Scrivi qui il nuovo commento... + Enter your new comment here + Inserisci il tuo commento qui - + Save Salva - + Add Aggiungi @@ -412,129 +409,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 + Condividi + + + 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 + Condividi Immagine + + + 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 +546,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 @@ -575,59 +559,64 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Hide - + Nascondi LoadingFooter - Load More... - Carica altri... + Load More… + Carica altro… MainPage - + About %1 Informazioni su %1 - + New Post Nuovo Post - - + + Section Sezione - + Search Ricerca - + Refresh Aggiorna - + + Last refreshed + Ultimo aggiornamento + + + Delete link Elimina collegamento - + Hide link - + Nascondi collegamento - - Nothing here :( - Qui non c'ĆØ nulla :( + + Nothing here + Niente da vedere qui @@ -658,12 +647,12 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Reply - Rispondi + Rispondi Delete - Elimina + Elimina @@ -712,7 +701,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Username Mentions - + Menzioni username @@ -733,7 +722,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Deleting message - + Elimino messaggio @@ -763,17 +752,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 +777,14 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - Open in browser - Apri nel browser + Open in… + Apri in… - Launching web browser... - Avvio del browser web... + Launching… + Sto aprendo… @@ -855,7 +844,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 @@ -865,28 +854,41 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n crossposts - - - + + %n post su altri reddit + %n post su altri reddit %n points - - - + + %n punto + %n punti %n comments - - - + + %n commento + %n commenti + + QMLUtils + + + Invalid share URL + URL di condivisione non valido + + + + Unable to resolve share URL + Impossibile risolvere URL di condivisione + + SearchDialog @@ -990,7 +992,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Search Again - + Cerca di nuovo @@ -1045,7 +1047,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Best - Migliori + Migliori @@ -1113,7 +1115,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Flair - + Stile @@ -1174,122 +1176,132 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Settings - Impostazioni + Impostazioni Accounts - + Account UX - + UX 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 Thumbnail Link Type Indicator - + Indicatore tipo di collegamento miniatura Comments Tap To Hide - + Premi per nascondere i commenti 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 + Preferisci trasmissioni video adattive + + + + More likely to have sound, but may be less stable. + Potrebbe sentirsi meglio, ma essere meno stabile. + 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,17 +1310,17 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - Accedi a Reddit + Accedi a Reddit Cancel - + Cancella - + Sign in successful! Welcome! :) - + Accesso effettuato! Benvenuto! :) @@ -1316,36 +1328,36 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n subscribers - - - + + %n sottoscritto + %n sottoscritti SubredditDelegate - + NSFW NSFW - + Contributor Collaboratore - + Banned Bannato - + Mod Mod - + Muted Muto @@ -1422,77 +1434,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 + Quickddit + + + + Signed in as %1 + Accesso effettuato come %1 + + + + Not signed in + Accesso non effettuato + + + Popular Popolari - + All Tutti - - Browse for Subreddits... - Altri Subreddit... - - - + Multireddits Multireddit - + + My Saved Things + Le mie cose salvate + + + + Browse all Subreddits + Spulcia tutti i subreddit + + + Subscribed Subreddits Subreddit Sottoscritti - + About Informazioni - + Unsubscribe Disiscriviti - + You have unsubscribed from %1 Disiscrizione avvenuta da %1 @@ -1500,126 +1527,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 +1668,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 + + %n punto + %n punti + + UserPageLinkDelegate @@ -1685,41 +1725,41 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis %n mins ago - - - + + %n minuto fa + %n minuti fa %n hours ago - - - + + %n ora fa + %n ore fa %n days ago - - - + + %n giorno fa + %n giorni fa %n months ago - - - + + %n mese fa + %n mesi fa %n years ago - - - + + %n anno fa + %n anni fa @@ -1731,25 +1771,24 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Video - + URL URL - + Error loading video - Errore nel caricamento del video + Errore caricamento video - - + Problem finding stream URL - Problema nel trovare l'URL dello stream + Impossibile trovare URL trasmissione - + youtube-dl error: %1 - + errore youtube-dl: %1 @@ -1788,43 +1827,54 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis main - + + + Unable to resolve reddit share link + Impossibile risolvere collegamento di condivisione reddit + + + Unsupported reddit url URL di Reddit non supportato - + Unsupported image url - URL immagine non supportato + Url immagine non supportato - + Unsupported video url - URL video non supportato + Url video non supportato - + Please log in again Per favore accedi di nuovo - - and %1 other - e %1 altri + + in /r/%1 by %2 + in /r/%1 da %2 + + + + and %1 other + e %1 altro/i - - + + 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..96a72702 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,7 +1310,7 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen Sign in to Reddit - Inloggen bij Reddit + Inloggen bij Reddit @@ -1308,9 +1318,9 @@ Meld je aan om accounts toe te voegen. Quickddit zal je succesvolle aanmeldingen - + 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..d584d727 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,7 +1310,7 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Sign in to Reddit - Inloggen bij Reddit + Inloggen bij Reddit @@ -1308,9 +1318,9 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding - + 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 @@ -1733,23 +1771,22 @@ Meld u aan voor accounts toe te voegen. Quickddit gaat uw succesvolle aanmelding Filmke - + URL URL - + Error loading video 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..706f218e 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 @@ -1314,7 +1324,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - + Sign in successful! Welcome! :) @@ -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.ts b/sailfish/translations/harbour-quickddit-pt.ts new file mode 100644 index 00000000..124a4dee --- /dev/null +++ b/sailfish/translations/harbour-quickddit-pt.ts @@ -0,0 +1,1886 @@ + + + + + AboutMultiredditManager + + + %1 has been added to %2 + %1 adicionado ao %2 + + + + %1 has been removed from %2 + %1 removido do %2 + + + + AboutMultiredditPage + + + About %1 + 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 + + + + AboutPage + + + About + Sobre + + + + Quickddit - A free and open source Reddit client for mobile phones + Quickddit - Um cliente Reddit software livre e open source para telemóveis + + + + 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 + + + + AboutSubredditPage + + + About %1 + Sobre %1 + + + + Moderators + Moderadores + + + + Message Moderators + Enviar mensagem Ć  moderação + + + + Unsubscribe + Sair + + + + Subscribe + Unir-se + + + + This subreddit is Not Safe For Work + Esta Comunidade NĆ£o Ć© Segura para o Trabalho + + + + %n subscribers + + %n inscrito + %n membros + + + + + %n active users + + %n usuĆ”rio ativo + %n usuĆ”rios ativos + + + + + Subscribed + Membro + + + + Not Subscribed + NĆ£o membro + + + + Private + Privado + + + + Restricted + Restrito + + + + GoldRestricted + Somente Premiados + + + + Archived + Arquivado + + + + Links only + Somente ligaƧƵes + + + + Self posts only + Somente postagens de texto + + + + NSFW + NSFW + + + + Contributor + Colaborador + + + + Banned + Banido + + + + Mod + Mod + + + + Muted + Mudo + + + + You have subscribed to %1 + Se uniu ao %1 + + + + You have unsubscribed from %1 + Saiu do %1 + + + + AccountsPage + + + Accounts + Contas + + + + Sign out + Fazer logout + + + + Sign in to Reddit + Fazer login no Reddit + + + + You have signed out from Reddit + 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 + NĆ£o hĆ” nenhuma conta configurada. + +Para adicionar uma conta faƧa um Login. Aqui estarĆ£o listadas todas as contas jĆ” usadas no Quickddit + + + + CommentDelegate + + + Sticky + Fixo + + + + Gilded + + + + + [score hidden] + [pontuação oculta] + + + + %n pts + + %n ponto + %n pontos + + + + + Load %n hidden comments + + Carregar %n comentĆ”rio oculto + Carregar %n comentĆ”rios ocultos + + + + + Continue this thread + Continuar discussĆ£o + + + + Show %n collapsed comments + + Mostrar comentĆ”rio agrupado + Mostrar %n comentĆ”rios agrupados + + + + + Editing Comment + Editar ComentĆ”rio + + + + Comment Reply + Comentar Resposta + + + + New Comment + Novo ComentĆ”rio + + + + Enter your reply here + Digite a sua resposta aqui + + + + Enter your new comment here + + + + + Save + Gravar + + + + Add + Adicionar + + + + CommentManager + + + The comment has been added + ComentĆ”rio adicionado + + + + The comment has been edited + ComentĆ”rio editado + + + + The comment has been deleted + O comentĆ”rio foi apagado + + + + CommentMenu + + + Copy Comment + Copiar comentĆ”rio + + + + Comment copied to clipboard + ComentĆ”rio copiado para a Ć”rea de transferĆŖncia + + + + Reply + Responder + + + + Edit + Editar + + + + Delete + Apagar + + + + 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 + A ver somente uma discussĆ£o + + + + View All Comments + Ver todos os ComentĆ”rios + + + + Deleting comment + Apagar comentĆ”rio + + + + ImageViewPage + + + Image + Imagem + + + + Save Image + Gravar Imagem + + + + Share Image + + + + + URL + EndereƧo + + + + Error loading image + Erro ao carregar imagem + + + + Image saved to gallery + Imagem gravada na galeria + + + + Image save failed! + Erro ao gravar imagem! + + + + ImgurManager + + + Unable to get Imgur ID from the url: %1 + ImpossĆ­vel obter Imgur ID do endereƧo: %1 + + + + Imgur API returns no image + NĆ£o foi possĆ­vel encontra imagem atravĆ©s da API do Imgur + + + + LinkManager + + + The link has been added + Ligação adicionada + + + + The link text has been changed + Texto da ligação atualizada + + + + LinkMenu + + + Delete + Apagar + + + + Hide + Esconder + + + + LoadingFooter + + + Load More… + + + + + MainPage + + + About %1 + Sobre %1 + + + + New Post + Novo Postagem + + + + + Section + Secção + + + + Search + Pesquisar + + + + Refresh + Atualizar + + + + Last refreshed + + + + + Delete link + Apagar ligação + + + + Hide link + Esconder ligação + + + + Nothing here + + + + + MessageDelegate + + + %1 from %2 + %1 de %2 + + + + in %1 + em %1 + + + + to %1 + para %1 + + + + from %1 + de %1 + + + + MessageMenu + + + Reply + Responder + + + + Delete + Apagar + + + + Mark As Read + Marcar como lido + + + + Mark As Unread + Marcar como nĆ£o lido + + + + MessagePage + + + + Messages + Mensagens + + + + All + Tudo + + + + Unread + NĆ£o lido + + + + Comment Replies + Respostas ao ComentĆ”rio + + + + Post Replies + Respostas Ć  Postagem + + + + Sent + + + + + Username Mentions + MenƧƵes de nome de utilizador + + + + New Message + Nova Mensagem + + + + + Section + Secção + + + + Refresh + Atualizar + + + + Deleting message + A apagar mensagem + + + + Nothing here :( + Nada aqui :( + + + + + Message sent + Mensagem enviada + + + + ModeratorListPage + + + Moderators + Moderadores + + + + MultiredditsPage + + + Multireddits + + + + + Refresh + Atualizar + + + + About + Sobre + + + + Nothing here :( + Nada aqui :( + + + + OpenLinkDialog + + + Open URL + Navegar para + + + + + Open in… + + + + + + Launching… + + + + + + Copy URL + Copiar endereƧo + + + + + URL copied to clipboard + EndereƧo copiado para a Ć”rea de transferĆŖncia + + + + Open in Kodi + Abrir no Kodi + + + + Source + Fonte + + + + PostInfoText + + + Sticky + Fixo + + + + NSFW + NSFW + + + + Promoted + Promovido + + + + Gilded + + + + + Archived + Arquivado + + + + Locked + Bloqueado + + + + submitted %1 by %2 + postado por %2 %1 + + + + to %1 + no %1 + + + + %n crossposts + + + + + + + + %n points + + %n ponto + %n pontos + + + + + %n comments + + + + + + + + QMLUtils + + + Invalid share URL + + + + + Unable to resolve share URL + + + + + SearchDialog + + + Search + Pesquisar + + + + Enter search query + + + + + Search for + Pesquisar por + + + + Posts + Postagens + + + + Subreddits + Comunidades + + + + Search within this subreddit: + Pesquisar nesta Comunidade: + + + + Enter subreddit name + Insira o nome da Comunidade + + + + SearchPage + + + Search Result: %1 + Resultado da pesquisa: %1 + + + + Relevance + RelevĆ¢ncia + + + + New + Novos + + + + Hot + Quentes + + + + Top + Top + + + + Comments + ComentĆ”rios + + + + All time + Desde sempre + + + + This hour + Esta hora + + + + Today + Hoje + + + + This week + Esta semana + + + + This month + Este mĆŖs + + + + This year + Este ano + + + + Search Again + Pesquisar outra vez + + + + + Time Range + PerĆ­odo + + + + + Sort + Ordenar + + + + Refresh + Atualizar + + + + SectionSelectionDialog + + + + Hot + Quentes + + + + + New + Novos + + + + + Rising + Em ascensĆ£o + + + + + Controversial + Controverso + + + + + Top + Top + + + + Best + Melhores + + + + Hour + Hora + + + + Day + Dia + + + + Week + Semana + + + + Month + MĆŖs + + + + Year + Ano + + + + All time + Desde sempre + + + + SendLinkPage + + + New Post + Nova Postagem + + + + Edit Post + Editar Postagem + + + + Post Title + TĆ­tulo da Postagem + + + + Self Post + Postagem Própria + + + + Post URL + Postar EndereƧo web + + + + Post Text + Postar Texto + + + + Flair + + + + + Submit + + + + + Save + Gravar + + + + SendMessagePage + + + New Message + Nova Mensagem + + + + Reply Message + Responder Mensagem + + + + Recipient + DestinatĆ”rios + + + + to moderators of + para moderadores do + + + + to + para + + + + Subject + Assunto + + + + Message + Mensagem + + + + Send + + + + + SettingsPage + + + Settings + ConfiguraƧƵes + + + + Accounts + Contas + + + + UX + Interface + + + + Font Size + Tamanho da fonte + + + + Tiny + MinĆŗsculo + + + + Small + Pequeno + + + + Medium + MĆ©dio + + + + Large + Grande + + + + Device Orientation + Orientação + + + + Automatic + DinĆ¢mica + + + + Portrait only + Retrato + + + + Landscape only + Paisagem + + + + Thumbnail Size + Tamanho da miniatura + + + + Auto + AutomĆ”tico + + + + Thumbnail Link Type Indicator + + + + + Comments Tap To Hide + Tocar para esconder comentĆ”rio + + + + Notifications + NotificaƧƵes + + + + Check Messages + Verificar mensagens + + + + Media + MĆ©dia + + + + Preferred Video Size + Resolução de vĆ­deo + + + + Prefer adaptive video streams + + + + + More likely to have sound, but may be less stable. + + + + + Loop Videos + Repetir vĆ­deo + + + + Connection + ConexĆ£o + + + + Use Tor + Usar Tor + + + + When enabled, please make sure Tor is installed and active. + Quando ativado verificar se Tor estĆ” instalado e ativo. + + + + SignInPage + + + + Sign in to Reddit + Fazer login no Reddit + + + + Cancel + + + + + Sign in successful! Welcome! :) + + + + + SubredditBrowseDelegate + + + %n subscribers + + + + + + + + SubredditDelegate + + + NSFW + NSFW + + + + Contributor + Colaborador + + + + Banned + Banido + + + + Mod + + + + + Muted + Mudo + + + + SubredditsBrowsePage + + + Subreddits Search: %1 + Comunidades encontradas: %1 + + + + Popular Subreddits + Comunidades Populares + + + + New Subreddits + Novas Comunidades + + + + My Subreddits - Subscriber + As minhas Comunidades - Membro + + + + My Subreddits - Approved Submitter + As Minhas Comunidades - Editor aprovado + + + + My Subreddits - Moderator + As Minhas Comunidades - Moderador + + + + + Section + Secção + + + + Refresh + Atualizar + + + + About + Sobre + + + + Subscribe + Unir-se + + + + Unsubscribe + Sair + + + + Nothing here :( + Nada aqui :( + + + + You have %2 from %1 + Tem %2 de %1 + + + + SubredditsPage + + + About Quickddit + Sobre Quickddit + + + + Settings + ConfiguraƧƵes + + + + My Profile + O 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 + + + + + All + Todos + + + + Multireddits + + + + + My Saved Things + + + + + Browse all Subreddits + + + + + Subscribed Subreddits + Membro das Comunidades + + + + About + Sobre + + + + Unsubscribe + Sair + + + + You have unsubscribed from %1 + Saiu do %1 + + + + UserPage + + + User %1 + Utilizador %1 + + + + + Overview + Resumo + + + + + Comments + ComentĆ”rios + + + + + Submitted + + + + + Upvoted + Cimavotado + + + + Downvoted + Baixovotado + + + + Saved Things + Coisas Gravadas + + + + + Section + Secção + + + + Send Message + Enviar Mensagem + + + + Refresh + Atualizar + + + + My Profile + O meu Perfil + + + + User Profile + Perfil do Utilizador + + + + Friend + Amigo + + + + Gold + + + + + Email Verified + Email Verificado + + + + Mod + + + + + No Robots + NĆ£o RobĆ“ + + + + %1 link karma + %1 karma de ligaƧƵes + + + + %1 comment karma + %1 karma de ComentĆ”rios + + + + created %1 + conta criada %1 + + + + Delete + Apagar + + + + Delete link + Apagar ligação + + + + Nothing here :( + Nada aqui :( + + + + Message sent + Mensagem enviada + + + + UserPageCommentDelegate + + + Sticky + Fixo + + + + Gilded + + + + + Comment in %1 + ComentĆ”rio em %1 + + + + [score hidden] + + + + + %n pts + + + + + + + + UserPageLinkDelegate + + + Sticky + Fixo + + + + NSFW + NSFW + + + + Promoted + Promovido + + + + Gilded + + + + + Locked + Bloqueado + + + + Utils + + + Now + Agora + + + + Just now + Agora mesmo + + + + %n mins ago + + %n minuto atrĆ”s + hĆ” %n minutos + + + + + %n hours ago + + %n hora atrĆ”s + hĆ” %n horas + + + + + %n days ago + + ontem + hĆ” %n dias + + + + + %n months ago + + mĆŖs passado + hĆ” %n meses + + + + + %n years ago + + ano passado + hĆ” %n anos + + + + + VideoViewPage + + + Video + + + + + URL + + + + + Error loading video + + + + + Problem finding stream URL + + + + + youtube-dl error: %1 + + + + + WebViewer + + + WebViewer + + + + + Copy URL + Copiar endereƧo + + + + URL copied to clipboard + EndereƧo copiado para a Ć”rea de transferĆŖncia + + + + Open in browser + Abrir no navegador + + + + Back + Voltar + + + + Forward + AvanƧar + + + + 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 + + + + 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 + + %n nova mensagem + %n novas mensagens + + + + diff --git a/sailfish/translations/harbour-quickddit-pt_BR.ts b/sailfish/translations/harbour-quickddit-pt_BR.ts index 2e067a43..cb4f3915 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 @@ -1308,7 +1318,7 @@ Para adicionar uma conta faƧa um Login. Aqui estarĆ£o listadas todas as contas - + Sign in successful! Welcome! :) @@ -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..440785f0 --- /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..a5580850 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 @@ -142,13 +137,13 @@ This subreddit is Not Safe For Work - Denna subreddit Ƥr inte arbetsplatssƤker (NSFW) + Denna subreddit Ƥr inte arbetsplatssƤker %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 @@ -1733,23 +1771,22 @@ Logga in fƶr att lƤgga till konton. Quickddit kommer ihĆ„g en lyckad inloggnin Video - + 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..807ae128 --- /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..0325db4e 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,7 +1310,7 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis Sign in to Reddit - + Sign in to Reddit @@ -1306,9 +1318,9 @@ To add accounts, simply log in. Quickddit will remember succesful logins and lis - + 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 - - 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 - + %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..bd6c7171 100644 --- a/src/qmlutils.cpp +++ b/src/qmlutils.cpp @@ -22,9 +22,13 @@ #include #include #include +#include +#include #include #include #include +#include +#include #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) #include @@ -41,9 +45,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) @@ -56,6 +60,22 @@ QMLUtils::QMLUtils(QObject *parent) : m_clipboard = QApplication::clipboard(); #endif connect(m_clipboard, SIGNAL(dataChanged()), this, SLOT(onClipboardChanged())); + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) + QString cacheLocation = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); +#else + QString cacheLocation = QDesktopServices::storageLocation(QDesktopServices::DataLocation); +#endif + if (cacheLocation.isEmpty()) + cacheLocation = QDir::tempPath() + QDir::separator() + "Quickddit"; + m_animatedCacheDir = cacheLocation + QDir::separator() + "animated"; + clearAnimatedImageCache(); + QDir().mkpath(m_animatedCacheDir); +} + +QMLUtils::~QMLUtils() +{ + clearAnimatedImageCache(); } void QMLUtils::copyToClipboard(const QString &text) @@ -179,6 +199,222 @@ void QMLUtils::onSaveImageFinished() m_reply = 0; } +void QMLUtils::clearAnimatedImageCache() +{ + QHash::iterator fileIt = m_animatedImageFiles.begin(); + while (fileIt != m_animatedImageFiles.end()) { + QNetworkReply *reply = fileIt.key(); + QFile *file = fileIt.value(); + QString finalPath = m_animatedImageFinalPaths.value(reply); + QString partPath = finalPath.isEmpty() ? QString() : finalPath + ".part"; + + if (reply) + reply->abort(); + if (file) { + if (file->isOpen()) + file->close(); + delete file; + } + if (!partPath.isEmpty()) + QFile::remove(partPath); + if (reply) + delete reply; + + ++fileIt; + } + + m_animatedImageFiles.clear(); + m_animatedImageUrls.clear(); + m_animatedImageFinalPaths.clear(); + m_pendingAnimatedImageUrls.clear(); + m_animatedImageCache.clear(); + + QDir cacheDir(m_animatedCacheDir); + if (!cacheDir.exists()) + return; + + QFileInfoList entries = cacheDir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot); + foreach (const QFileInfo &entry, entries) + QFile::remove(entry.absoluteFilePath()); +} + +QString QMLUtils::cachedAnimatedImageUrl(const QString &url) const +{ + QString originalUrl = QUrl(url).toString(); + return m_animatedImageCache.value(originalUrl); +} + +void QMLUtils::cacheAnimatedImage(const QString &url) +{ + QUrl sourceUrl(url); + if (!sourceUrl.isValid()) + return; + if (!sourceUrl.scheme().startsWith("http")) + return; + + QString originalUrl = sourceUrl.toString(); + if (m_animatedImageCache.contains(originalUrl)) { + emit animatedImageCached(originalUrl, m_animatedImageCache.value(originalUrl)); + return; + } + if (m_pendingAnimatedImageUrls.contains(originalUrl)) + return; + + QByteArray hash = QCryptographicHash::hash(originalUrl.toUtf8(), QCryptographicHash::Md5).toHex(); + QString extension = QFileInfo(sourceUrl.path()).suffix().toLower(); + if (extension.isEmpty()) + extension = "gif"; + QString finalPath = m_animatedCacheDir + QDir::separator() + QString::fromLatin1(hash) + "." + extension; + QString partPath = finalPath + ".part"; + + if (QFile::exists(finalPath) && QFileInfo(finalPath).size() > 0) { + QString localUrl = QUrl::fromLocalFile(finalPath).toString(); + m_animatedImageCache.insert(originalUrl, localUrl); + emit animatedImageCached(originalUrl, localUrl); + return; + } + + QFile::remove(partPath); + QFile *file = new QFile(partPath, this); + if (!file->open(QIODevice::WriteOnly)) { + file->deleteLater(); + return; + } + + QNetworkRequest request(sourceUrl); + request.setRawHeader("User-Agent", "Quickddit/" APP_VERSION); + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif + + QNetworkReply *reply = m_manager.get(request); + if (!reply) { + file->close(); + file->deleteLater(); + return; + } + + m_pendingAnimatedImageUrls.insert(originalUrl); + m_animatedImageFiles.insert(reply, file); + m_animatedImageUrls.insert(reply, originalUrl); + m_animatedImageFinalPaths.insert(reply, finalPath); + + connect(reply, SIGNAL(readyRead()), this, SLOT(onAnimatedImageReadyRead())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(onAnimatedImageDownloadProgress(qint64,qint64))); + connect(reply, SIGNAL(finished()), this, SLOT(onAnimatedImageFinished())); +} + +void QMLUtils::onAnimatedImageReadyRead() +{ + QNetworkReply *reply = qobject_cast(sender()); + if (!reply) + return; + + QFile *file = m_animatedImageFiles.value(reply, 0); + if (!file) + return; + + file->write(reply->readAll()); +} + +void QMLUtils::onAnimatedImageDownloadProgress(qint64 bytesReceived, qint64 bytesTotal) +{ + QNetworkReply *reply = qobject_cast(sender()); + if (!reply) + return; + + QString originalUrl = m_animatedImageUrls.value(reply); + if (originalUrl.isEmpty()) + return; + + if (bytesTotal > 0) { + qreal progress = qreal(bytesReceived) / qreal(bytesTotal); + emit animatedImageCacheProgress(originalUrl, progress); + } +} + +void QMLUtils::onAnimatedImageFinished() +{ + QNetworkReply *reply = qobject_cast(sender()); + if (!reply) + return; + + QFile *file = m_animatedImageFiles.take(reply); + QString originalUrl = m_animatedImageUrls.take(reply); + QString finalPath = m_animatedImageFinalPaths.take(reply); + QString partPath = finalPath + ".part"; + m_pendingAnimatedImageUrls.remove(originalUrl); + + if (!file) { + reply->deleteLater(); + return; + } + + file->write(reply->readAll()); + file->close(); + + if (reply->error() == QNetworkReply::NoError && file->size() > 0) { + QFile::remove(finalPath); + if (QFile::rename(partPath, finalPath)) { + QString localUrl = QUrl::fromLocalFile(finalPath).toString(); + m_animatedImageCache.insert(originalUrl, localUrl); + emit animatedImageCached(originalUrl, localUrl); + } else { + QFile::remove(partPath); + emit animatedImageCacheFailed(originalUrl); + } + } else { + QFile::remove(partPath); + emit animatedImageCacheFailed(originalUrl); + } + + file->deleteLater(); + reply->deleteLater(); +} + +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) { @@ -191,16 +427,17 @@ void QMLUtils::publishNotification(const QString &summary, const QString &body, 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", "org.quickddit.Quickddit", "/org/quickddit/Quickddit", "org.quickddit.view", "showInbox")); notification.publish(); #endif diff --git a/src/qmlutils.h b/src/qmlutils.h index 63253339..9df3ae86 100644 --- a/src/qmlutils.h +++ b/src/qmlutils.h @@ -21,9 +21,12 @@ #define QMLUTILS_H #include +#include #include #include #include +#include +#include #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) #include @@ -50,6 +53,7 @@ class QMLUtils : public QObject static QString translationsUrl() { return TRANSLATIONS_URL; } explicit QMLUtils(QObject *parent = 0); + ~QMLUtils(); float pScale() { return cpScale; } QString clipboardText() const; @@ -66,6 +70,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 @@ -75,6 +86,8 @@ class QMLUtils : public QObject Q_INVOKABLE QString toAbsoluteUrl(const QString &url); Q_INVOKABLE void saveImage(const QString &url); + Q_INVOKABLE void cacheAnimatedImage(const QString &url); + Q_INVOKABLE QString cachedAnimatedImageUrl(const QString &url) const; Q_INVOKABLE void publishNotification(const QString &summary, const QString &body, const int count); Q_INVOKABLE void clearNotification(); @@ -82,18 +95,35 @@ class QMLUtils : public QObject private slots: void onSaveImageFinished(); void onClipboardChanged(); + void onResolveShareUrlFinished(); + void onAnimatedImageReadyRead(); + void onAnimatedImageDownloadProgress(qint64 bytesReceived, qint64 bytesTotal); + void onAnimatedImageFinished(); signals: void saveImageSucceeded(const QString &name); void saveImageFailed(const QString &name); void clipboardChanged(); + void redditShareUrlResolved(const QString &resolvedUrl); + void redditShareUrlFailed(const QString &errorString); + void animatedImageCacheProgress(const QString &originalUrl, qreal progress); + void animatedImageCacheFailed(const QString &originalUrl); + void animatedImageCached(const QString &originalUrl, const QString &localUrl); private: + void clearAnimatedImageCache(); + QNetworkAccessManager m_manager; QNetworkReply* m_reply; QFile *m_imageFile; QClipboard *m_clipboard; QString m_myclip; + QString m_animatedCacheDir; + QHash m_animatedImageCache; + QSet m_pendingAnimatedImageUrls; + QHash m_animatedImageFiles; + QHash m_animatedImageUrls; + QHash m_animatedImageFinalPaths; float cpScale; void setPScale(); 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