From c0c78ae9bb6636c45cca8444a388a71bc20c59ff Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 4 Apr 2021 12:26:55 +0200 Subject: [PATCH 01/47] Do not set reChaptache cookie when there is no cookie stored In DownloaderImpl#getCookies(String url) the reChaptcha cookie is set if it is not null. For this reason, the cookie was set in every request. --- app/src/main/java/org/schabi/newpipe/App.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index e3e9c3e4ebe..af118387caa 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -130,7 +130,7 @@ protected void setCookiesToDownloader(final DownloaderImpl downloader) { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( getApplicationContext()); final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key); - downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, "")); + downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, null)); downloader.updateYoutubeRestrictedModeCookies(getApplicationContext()); } From edf8bf2c9dea62a54f3049a1d28520b5f0d34cb8 Mon Sep 17 00:00:00 2001 From: mhmdanas <32234660+mhmdanas@users.noreply.github.com> Date: Sat, 10 Apr 2021 12:15:33 +0300 Subject: [PATCH 02/47] Allow installation on external storage --- app/src/main/AndroidManifest.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 23128117a67..e247e57b89d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,8 @@ + package="org.schabi.newpipe" + android:installLocation="auto"> From fc4dd4524a6fbb35d39157bf0b1d12ddf0fa1e07 Mon Sep 17 00:00:00 2001 From: camo0112 <56369484+camo0112@users.noreply.github.com> Date: Mon, 19 Apr 2021 10:52:52 +0530 Subject: [PATCH 03/47] Replaced if/else with switch --- .../org/schabi/newpipe/error/ErrorActivity.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java b/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java index 2fcba0e1a94..1bcd28d2ed7 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java @@ -190,15 +190,16 @@ public boolean onCreateOptionsMenu(final Menu menu) { @Override public boolean onOptionsItemSelected(final MenuItem item) { - final int id = item.getItemId(); - if (id == android.R.id.home) { - onBackPressed(); - } else if (id == R.id.menu_item_share_error) { - ShareUtils.shareText(this, getString(R.string.error_report_title), buildJson()); - } else { - return false; + switch (item.getItemId()) { + case R.id.home: + onBackPressed(); + return true; + case R.id.menu_item_share_error: + ShareUtils.shareText(this, getString(R.string.error_report_title), buildJson()); + return true; + default: + return false; } - return true; } private void openPrivacyPolicyDialog(final Context context, final String action) { From 57f1152751221ad3e3e0b581efa78e92544568fd Mon Sep 17 00:00:00 2001 From: camo0112 <56369484+camo0112@users.noreply.github.com> Date: Mon, 19 Apr 2021 19:26:15 +0530 Subject: [PATCH 04/47] suppress false warning (which affect only library projects) --- app/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index bbf75063bc3..759b26d2694 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -66,6 +66,9 @@ android { // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false + // suppress false warning ("Resource IDs will be non-final in Android Gradle Plugin version + // 5.0, avoid using them in switch case statements"), which affects only library projects + disable 'NonConstantResourceId' } compileOptions { From e7750373667cda5bbdeac1e3f8541f91a04e3dfe Mon Sep 17 00:00:00 2001 From: Sub Raizada Date: Thu, 22 Apr 2021 02:45:04 +0000 Subject: [PATCH 05/47] Only show 'download has started' toast when a download has started --- .../java/org/schabi/newpipe/download/DownloadDialog.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 4d3726c3888..db2b3b7e2ad 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -671,9 +671,6 @@ private void prepareSelectedDownload() { prefs.edit() .putString(getString(R.string.last_used_download_type), selectedMediaType) .apply(); - - Toast.makeText(context, getString(R.string.download_has_started), - Toast.LENGTH_SHORT).show(); } private void checkSelectedDownload(final StoredDirectoryHelper mainStorage, @@ -929,6 +926,9 @@ private void continueSelectedDownload(@NonNull final StoredFileHelper storage) { DownloadManagerService.startMission(context, urls, storage, kind, threads, currentInfo.getUrl(), psName, psArgs, nearLength, recoveryInfo); + Toast.makeText(context, getString(R.string.download_has_started), + Toast.LENGTH_SHORT).show(); + dismiss(); } } From e52048c69e5f7a2782068894919219b59a3c53ee Mon Sep 17 00:00:00 2001 From: Saurav Rao <56369484+sauravrao637@users.noreply.github.com> Date: Fri, 23 Apr 2021 15:09:08 +0530 Subject: [PATCH 06/47] Update shot_10.png to include Bandcamp in the list of services (#6140) * update shot_10.png * updated shot_10.png Co-authored-by: camo0112 <56369484+camo0112@users.noreply.github.com> --- .../en-US/images/phoneScreenshots/shot_10.png | Bin 59211 -> 120204 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png index 87947bce8380ea3429fdbbac6373b70a1de6c230..803fb64280f2c741eaa9322fcfc096e494c11611 100644 GIT binary patch literal 120204 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 EFQoPSg8%>k literal 59211 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 From 3fe80ec5acf1b95e1df96b487004b263ae17102b Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Sat, 24 Apr 2021 07:45:12 +0530 Subject: [PATCH 07/47] Use Animator.addListener() extension. --- .../java/org/schabi/newpipe/ktx/TextView.kt | 13 ++-------- .../main/java/org/schabi/newpipe/ktx/View.kt | 25 ++++++++----------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/ktx/TextView.kt b/app/src/main/java/org/schabi/newpipe/ktx/TextView.kt index cfb13a10733..c70af1e7d05 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/TextView.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/TextView.kt @@ -2,13 +2,12 @@ package org.schabi.newpipe.ktx -import android.animation.Animator -import android.animation.AnimatorListenerAdapter import android.animation.ArgbEvaluator import android.animation.ValueAnimator import android.util.Log import android.widget.TextView import androidx.annotation.ColorInt +import androidx.core.animation.addListener import androidx.interpolator.view.animation.FastOutSlowInInterpolator import org.schabi.newpipe.MainActivity @@ -34,14 +33,6 @@ fun TextView.animateTextColor(duration: Long, @ColorInt colorStart: Int, @ColorI viewPropertyAnimator.interpolator = FastOutSlowInInterpolator() viewPropertyAnimator.duration = duration viewPropertyAnimator.addUpdateListener { setTextColor(it.animatedValue as Int) } - viewPropertyAnimator.addListener(object : AnimatorListenerAdapter() { - override fun onAnimationEnd(animation: Animator) { - setTextColor(colorEnd) - } - - override fun onAnimationCancel(animation: Animator) { - setTextColor(colorEnd) - } - }) + viewPropertyAnimator.addListener(onCancel = { setTextColor(colorEnd) }, onEnd = { setTextColor(colorEnd) }) viewPropertyAnimator.start() } diff --git a/app/src/main/java/org/schabi/newpipe/ktx/View.kt b/app/src/main/java/org/schabi/newpipe/ktx/View.kt index 2fd80703c23..8f2249493ce 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/View.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/View.kt @@ -11,6 +11,7 @@ import android.util.Log import android.view.View import androidx.annotation.ColorInt import androidx.annotation.FloatRange +import androidx.core.animation.addListener import androidx.core.view.ViewCompat import androidx.core.view.isGone import androidx.core.view.isInvisible @@ -106,15 +107,10 @@ fun View.animateBackgroundColor(duration: Long, @ColorInt colorStart: Int, @Colo viewPropertyAnimator.addUpdateListener { animation: ValueAnimator -> backgroundTintListCompat = ColorStateList(empty, intArrayOf(animation.animatedValue as Int)) } - viewPropertyAnimator.addListener(object : AnimatorListenerAdapter() { - override fun onAnimationEnd(animation: Animator) { - backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) - } - - override fun onAnimationCancel(animation: Animator) { - onAnimationEnd(animation) - } - }) + viewPropertyAnimator.addListener( + onCancel = { backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) }, + onEnd = { backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) } + ) viewPropertyAnimator.start() } @@ -134,17 +130,16 @@ fun View.animateHeight(duration: Long, targetHeight: Int): ValueAnimator { layoutParams.height = value.toInt() requestLayout() } - animator.addListener(object : AnimatorListenerAdapter() { - override fun onAnimationEnd(animation: Animator) { + animator.addListener( + onCancel = { layoutParams.height = targetHeight requestLayout() - } - - override fun onAnimationCancel(animation: Animator) { + }, + onEnd = { layoutParams.height = targetHeight requestLayout() } - }) + ) animator.start() return animator } From 5a5a24bf1a85b2ae78e9128a6c70ac22211786c2 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Mon, 26 Apr 2021 11:59:35 +0200 Subject: [PATCH 08/47] Added translation using Weblate (Latin) Added translation using Weblate (Latin) Translated using Weblate (Slovak) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Malayalam) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 2.0% (1 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translated using Weblate (Hebrew) Currently translated at 44.8% (22 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/ Translated using Weblate (Malayalam) Currently translated at 6.1% (3 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ml/ Translated using Weblate (Indonesian) Currently translated at 100.0% (49 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/ Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (49 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/ Translated using Weblate (Somali) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Latin) Currently translated at 8.1% (52 of 639 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (639 of 639 strings) Added translation using Weblate (Dutch (Middle)) Translated using Weblate (Bengali (Bangladesh)) Currently translated at 62.1% (397 of 639 strings) Translated using Weblate (Croatian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Croatian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Bengali) Currently translated at 89.6% (573 of 639 strings) Translated using Weblate (German) Currently translated at 53.0% (26 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 26.5% (13 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_BR/ Translated using Weblate (Tamazight (Central Atlas)) Currently translated at 31.1% (199 of 639 strings) Translated using Weblate (Latin) Currently translated at 16.4% (105 of 639 strings) Translated using Weblate (Czech) Currently translated at 100.0% (639 of 639 strings) --- app/src/main/res/values-bn-rBD/strings.xml | 1 + app/src/main/res/values-bn/strings.xml | 40 +++-- app/src/main/res/values-cs/strings.xml | 18 ++- app/src/main/res/values-dum/strings.xml | 2 + app/src/main/res/values-hr/strings.xml | 5 +- app/src/main/res/values-la/strings.xml | 142 ++++++++++++++++++ app/src/main/res/values-ml/strings.xml | 86 +++++++++-- app/src/main/res/values-sk/strings.xml | 40 ++--- app/src/main/res/values-so/strings.xml | 2 +- app/src/main/res/values-tzm/strings.xml | 29 ++++ .../metadata/android/de/changelogs/64.txt | 12 +- .../metadata/android/de/changelogs/820.txt | 2 +- .../metadata/android/de/changelogs/830.txt | 2 +- .../metadata/android/de/changelogs/860.txt | 7 + .../metadata/android/de/changelogs/959.txt | 6 +- .../metadata/android/de/full_description.txt | 2 +- .../metadata/android/et/changelogs/63.txt | 8 + .../metadata/android/he/changelogs/967.txt | 1 + .../metadata/android/id/changelogs/967.txt | 1 + .../metadata/android/ml/changelogs/968.txt | 7 + .../metadata/android/ml/full_description.txt | 1 + .../metadata/android/pt-BR/changelogs/63.txt | 8 + .../metadata/android/uk/short_description.txt | 2 +- .../android/zh-Hans/changelogs/967.txt | 2 + 24 files changed, 362 insertions(+), 64 deletions(-) create mode 100644 app/src/main/res/values-dum/strings.xml create mode 100644 app/src/main/res/values-la/strings.xml create mode 100644 fastlane/metadata/android/de/changelogs/860.txt create mode 100644 fastlane/metadata/android/et/changelogs/63.txt create mode 100644 fastlane/metadata/android/he/changelogs/967.txt create mode 100644 fastlane/metadata/android/id/changelogs/967.txt create mode 100644 fastlane/metadata/android/ml/changelogs/968.txt create mode 100644 fastlane/metadata/android/ml/full_description.txt create mode 100644 fastlane/metadata/android/pt-BR/changelogs/63.txt create mode 100644 fastlane/metadata/android/zh-Hans/changelogs/967.txt diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index f510e9c1b69..51430f854b5 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -397,4 +397,5 @@ আরও তথ্য এবং খবরের জন্য নিউপাইপ ওয়েবসাইট দেখো। দিয়ে খুলো + মতামত \ No newline at end of file diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 1437a5fe724..ed4bbe8fcd2 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -141,11 +141,11 @@ একটি ত্রুটি রিপোর্ট করো (পরীক্ষামূলক) গোপনীয়তা বর্ধিত করতে টর এর মাধ্যমে ডাউনলোড ট্রাফিক জোরপুর্বক পাঠাও (ভিডিওগুলি স্ট্রিমিং এ সমর্থিত নয়)। টর ব্যবহার করো - অপছন্দ হয়েছে - পছন্দ হয়েছে - আপলোডারের ইউজারপিক থাম্বনেইল - ভিডিও প্রাকদর্শন, সময়ঃ - ভিডিও প্রাকদর্শন থাম্বনেইল + অপছন্দ + পছন্দ + আপলোডারের অবয়বের প্রতিচ্ছবি + ভিডিও চালাও, সময়ঃ + ভিডিও প্রাকদর্শন প্রতিচ্ছবি বর্ণনা: তোমার মন্তব্য (ইংরেজিতে): কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর: @@ -200,7 +200,7 @@ পেছনে নিয়ে যান অরিয়েন্টেশন বদলান [অজানা] - নিউ পাইপ এর নতুন ভার্সন এর সূচনা + নতুন নিউপাইপ সংস্করণের বিজ্ঞপ্তি অ্যাপ আপডেট এর সূচনা নিউ পাইপ এর সূচনা ফাইল @@ -361,7 +361,7 @@ তৃতীয় অ্যাকশন বাটন দ্বিতীয় অ্যাকশান বাটন একটি সংশ্লিষ্ট স্ট্রিম যোগ করে প্লেব্যাক সারি শেষ করা অব্যাহত রাখো (পুনরাবৃত্তি ছাড়া) - সক্রিয় প্লেয়ার সারি প্রতিস্থাপন করা হবে + সক্রিয় চালক সারি প্রতিস্থাপিত হবে এক প্লেয়ার থেকে অন্য প্লেয়ারে পরিবর্তন করলে তোমার সারি প্রতিস্থাপিত হতে পারে কিউ মোছার আগে নিশ্চিত করো কমপ্যাক্ট বিজ্ঞপ্তিতে প্রদর্শন করতে তুমি সর্বাধিক তিনটি ক্রিয়া নির্বাচন করতে পারো! @@ -416,7 +416,7 @@ "স্বয়ংক্রিয়ভাবে প্লেব্যাক শুরু করো %s — তে" একটি পপ-আপে প্লে শুরু করো পটভূমিতে প্লে শুরু করো - অ্যান্ড্রয়েডে মুক্ত সহজ স্ট্রিমিং। + অ্যান্ড্রয়েডে মুক্তভাবে ও সহজে প্রচার দেখার অ্যাপ। ইতিহাস, সদস্যতা এবং পছন্দ-তালিকা রপ্তানি করো \"সংযোজন করতে ধরে রাখো\" পরামর্শ দেখাও উপলব্ধ হলে আলাদা ফিড থেকে এনো @@ -491,7 +491,7 @@ সাম্প্রতিক ইন্সট্যান্স ইতোমধ্যে বিদ্যমান ডিফল্ট কন্টেন্টের দেশ - সম্পর্কিত স্ট্রিম + সম্পর্কিত ভুক্তি বর্ণনা দেখাও হ্যাশ গণনা করা হচ্ছে থাম্বনেইল দেখাও @@ -507,7 +507,7 @@ চ্যানেল গ্রুপ অধ্যায় মতামত - বিবরণ + বর্ণনা দিয়ে খুলো ফিড হালনাগাদ সীমা খালি গ্রুপ নাম @@ -541,7 +541,7 @@ এই ডাউনলোড উদ্ধার করা যাচ্ছে না এই ফাইলের উপর লেখা যাচ্ছে না নিউপাইপ হালনাগাদ আছে! - পপআপ প্লেয়ারে ক্ষুদ্রকরণ করো + ভাসমান চালকের ক্ষুদ্রকরণ করো প্লেয়ার পটভূমিতে ক্ষুদ্রকরণ করো অ্যাপ পরিবর্তনে ক্ষুদ্রকরণ করো আনহুক (বিকৃতি হতে পারে) @@ -551,7 +551,7 @@ মেমরি ক্ষয় দেখাও রিক্যাপচা কুকি পরিষ্কার করো %s দ্বারা তৈরি - চ্যানেলের অবতার প্রতিচ্ছবি + চ্যানেলের অবতারের প্রতিচ্ছবি দ্রুত মোড বন্ধ করো দ্রুত মোড চালু করো ফাইল বামানো যায়নি @@ -568,12 +568,24 @@ এতে তোমার বর্তমান অবস্থা সরানো হবে। সতর্কতা: সব তথ্য আনা যায়নি। © %3$s এর মাধ্যমে %2$s দিয়ে %1$s - ভিডিও হ্যাশিং অগ্রগতির বিজ্ঞপ্তি + ভিডিও হ্যাশিংয়ের অগ্রগতির বিজ্ঞপ্তি ডাউনলোড শুরু হয়েছে স্বয়ংক্রিয় (ডিভাইস রঙ) - ভিডিও ব্যাখ্যা ও অন্যান্য তথ্য লুকাও + ভিডিও বর্ণনা ও অন্যান্য তথ্য লুকাও অন্ধকার রঙ নিউপাইপের জন্য পটভূমিতে ও পপ-আপ প্লেয়ারের বিজ্ঞপ্তি নিরাপদ সংযোগ স্থাপন করা যায় নি চ্যানেলের তথ্য দেখাও + এই নামের ডাউনলোডকৃত ফাইল আগে থেকে আছে + মূল পাতায় যেসব ট্যাব দেখানো হয় + বহিঃচালক এইরকম সংযোগ সমর্থন করে না + তোমার পছন্দের অন্ধকার রঙ এখানে নাও – %s + অগ্রগতি হারিয়ে গেছে, কারণ এই ফাইল মুছে গেছে + এই উদ্দিষ্ট ফোল্ডার বানানো যায় নি + এই নামের একটি ফাইল আগে থেকে আছে + এইরকম তথ্য খোলার সহজাত ক্রিয়া – %s + পছন্দসমূহ কি আমদানি করতে চাও\? + অবৈধ অক্ষরগুলো এই মান দ্বারা প্রতিস্থাপিত + অন্য অ্যাপের উপরে দেখাতে অনুমতি দাও + %s-এ তোমার পছন্দের ইন্সট্যান্স খুঁজো \ No newline at end of file diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 03211ab9cc0..097f9f3a972 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -294,7 +294,7 @@ Přejmenovat Jméno Přidat do playlistu - Nastavit jako náhled playlistu + Nastavit jako miniaturu playlistu Přidat playlist do záložek Smazat záložku Smazat tento playlist\? @@ -673,4 +673,20 @@ Podobné strýmy Vypnout pro skrytí popisu videa a doplňkové informace Zbořit aplikaci + Stahování bylo zahájeno + Můžete si zvolit svůj oblíbený motiv níže + Zvolte si svůj oblíbený noční motiv -- %s + Automatický (motiv zařízení) + Radio + Představujeme + Tento obsah je dostupný jen platícím uživatelům, a tak jej NewPipe nemůže stáhnout ani přehrát. + Toto video je dostupné jen členům YouTube Music Premium, a tak je NewPipe nemůže stáhnout ani přehrát. + Tento obsah je soukromý, a tak jej NewPipe nemůže stáhnout ani přehrát. + Toto je stopa SoundCloud Go+, přinejmenším ve Vaší zemi, a tak ji NewPipe nemůže stáhnout ani přehrát. + Tento obsah není ve Vaší zemi k dispozici. + Zobrazit podrobnosti kanálu + Vyřešit + Toto video je věkově omezeno. +\nKvůli novým pravidlům YouTube ohledně věkově omezených videí nemůže NewPipe získat přístup na streamy videa, a tak je nemůže přehrát. + Noční motiv \ No newline at end of file diff --git a/app/src/main/res/values-dum/strings.xml b/app/src/main/res/values-dum/strings.xml new file mode 100644 index 00000000000..a6b3daec935 --- /dev/null +++ b/app/src/main/res/values-dum/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 1f34ba9346b..1e2b6bf172b 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -440,8 +440,8 @@ Preuzeta datoteka s tim nazivom već postoji Datoteka s ovim nazivom se već preuzima Kod - Odredišnu mapu nije moguće stvoriti - Datoteku nije moguće stvoriti + Odredišna mapa se ne može stvoriti + Datoteka se ne može stvoriti Sustav je odbio dozvolu Nije moguće uspostaviti sigurnu vezu Nije moguće pronaći server @@ -688,4 +688,5 @@ Prekini program Riješi Noćna tema + Prikaži detalje kanala \ No newline at end of file diff --git a/app/src/main/res/values-la/strings.xml b/app/src/main/res/values-la/strings.xml new file mode 100644 index 00000000000..5072864e757 --- /dev/null +++ b/app/src/main/res/values-la/strings.xml @@ -0,0 +1,142 @@ + + + Immuta + Muta + Renovationes + Reporta + Non invenit + Creavit file non potui + Codex + + %d dies + %d dies + + + %d hora + %d horae + + + %d minutum + %d minuta + + Nullus + Error + Mane… + Adde ad + Elige tab + Tab novus + Iscriptiones + Principalis + Informationes ostende + Non potui inscription renovare + Non potui inscription mutare + Canalem inscripsit + Inscribe + Scriptum + Scribe + Popup mode + Nullus amnem amnibus invenit (potes instalar VLC quia id ludere). + Nullus amnem amnibus invenit. Instalar VLC\? + Scarica amnem file + Utere ludionem externum + Removes sentum aliquas resolutionibus + Utere lectorem externum + Rotatio + Elige browser + Condividi apud + Praecessi propter: %s + Intendi \"%1$s\"\? + Optiones + Tange \"Quaere\" ad initium +\n + Quaere + Scarica + Condividi + Aperi apud + Aperi in popup mode + Aperi in browser + Inrita + instalar + Edita %1$s + %1$s views + Initio + Pausa + Repone + Canales + Canalis + Omnis + Collectio + Cantica + + %s signator + %s signatores + + Nulli signatores + Nullae resultationes + Apparentia + Servitium + Selectio + Alter + Mos + NewPipe notitia + + %s audiens + %s audientes + + Declina + Lude + Utere Tor + Dele omnis + Dele unus + Dele + Crea + Accipe + Nomin + Retentati maximi + Retentare + Localis + Novi popularesque + Renomina + Cancella + Dona + Dimitte + Namquam + Capitulum + Recensi + Pausa + Pendens + Finii + + %d secundus + %d secundi + + Factum + Quaere semper + Index + Nullus limus + Thema noctis + Nullae captiones + Nullae commentaria + Commentaria + Commentarium tuum (In Anglico): + Ostende commentarium + Misce + Repete + Nihil + Semel + Semper + Lude omnes + Non possum ludere hic amnis + Passus + Tempus + Remove + Niger + Obscurum + Lux + Captiones + Auto-generare + Retrahe + Satiatus + Aptus + Deinde + \ No newline at end of file diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index eda9349b405..7c221f20b70 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -17,11 +17,14 @@ \n2. ഈ URL- ലേക്ക് പോകുക: %1$s \n3. ആവശ്യപ്പെടുമ്പോൾ ലോഗിൻ ചെയ്യുക \n4. നിങ്ങളെ റീഡയറക്‌ടുചെയ്‌ത പ്രൊഫൈൽ URL പകർത്തുക. - എക്‌സ്‌പോർട്ട് ഫയൽ ഡൗൺലോഡുചെയ്‌തുകൊണ്ട് YouTube സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ ഇമ്പോർട്ടുചെയ്യുക: + ഗൂഗിൾ ടേക്ക് ഔട്ടിൽ നിന്ന് യൂട്യൂബ് സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ ഇമ്പോർട്ടുചെയ്യുക: \n \n1. ഈ URL ലേക്ക് പോകുക: %1$s \n2. ആവശ്യപ്പെടുമ്പോൾ ലോഗിൻ ചെയ്യുക -\n3. ഒരു ഡൗൺലോഡ് തുടങ്ങണം (അതാണ് എക്‌സ്‌പോർട്ട് ഫയൽ) +\n3. \"All data included\" ക്ലിക്കുചെയ്യുക, തുടർന്ന് \"Deselect all\" എന്നതിൽ ക്ലിക്കുചെയ്യുക, തുടർന്ന് \"subscriptions\" മാത്രം തിരഞ്ഞെടുത്ത് \"OK\" ക്ലിക്കുചെയ്യുക. +\n4. \"Next Export\" ക്ലിക്കുചെയ്യുക, തുടർന്ന് \"Create Export\" ക്ലിക്കുചെയ്യുക +\n5. \"Download\" ബട്ടൺ പ്രത്യക്ഷപ്പെട്ടതിനുശേഷം അതിൽ ക്ലിക്കുചെയ്യുക +\n6. ഡൗൺ‌ലോഡുചെയ്‌ത ടേക്ക്ഔട്ട് സിപ്പിൽ നിന്ന് .json ഫയൽ എക്‌സ്‌ട്രാക്റ്റുചെയ്യുക (സാധാരണയായി \"YouTube, YouTube Music / subscription / subscription.json\" ന് കീഴിൽ) അത് ഇവിടെ ഇറക്കുമതി ചെയ്യുക. സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ എക്‌സ്‌പോർട്ടുചെയ്യാനായില്ല സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ ഇറക്കുമതി ചെയ്യാൻ കഴിഞ്ഞില്ല മുമ്പത്തെ എക്സ്പോർട്ട് @@ -80,7 +83,7 @@ ഏറ്റവും ഇഷ്ടപ്പെട്ടത് സമീപകാലത്ത് ചേർത്തത് പ്രാദേശികം - ന്യൂ & ഹോട്ട് + പുതിയതും ചൂടേറിയതും മികച്ച 50 ട്രെൻഡിങ്ങ് കിയോസ്ക് @@ -218,7 +221,7 @@ ഓഡിയോ വീഡിയോ \'%1$s\' ഡൗൺലോഡ് പട്ടിക നിലവിൽ വന്നു - \'%1$s\' ഡൗൺലോഡ് പട്ടിക ഉണ്ടാക്കാൻ സാധിച്ചില്ല + \'%1$s\' ഡൗൺ‌ലോഡ് ഡയറക്‌ടറി സൃഷ്‌ടിക്കാൻ‌ സാധിച്ചില്ല പുനക്രമീകരിക്കാൻ വലിച്ചിടുക ¡ഇബടെ ഒരു കുന്തോമില്ല! ഫലങ്ങൾ ലഭ്യമല്ല @@ -284,8 +287,8 @@ മൊത്തം കാഴ്ച ചരിത്രം നീക്കട്ടെയോ\? കണ്ട സ്ട്രീമുകളുടെയും പ്ലേബാക്ക് സ്ഥാനങ്ങളുടെയും ചരിത്രം നീക്കം ചെയ്യും കാഴ്ച ചരിത്രം നീക്കുക - ചരിത്രം, സബ്സ്ക്രിബ്ഷനുകൾ, പ്ലേലിസ്റ്റുകൾ എന്നിവ ഇറക്കുമതി ചെയ്യുക - ഇപ്പോഴുള്ള ചരിത്രത്തെയും സബ്സ്ക്രിബ്ഷനെയും അസാധുവാക്കും + ചരിത്രം, സബ്സ്ക്രിബ്ഷനുകൾ, പ്ലേലിസ്റ്റുകൾ, സജ്ജീകരണങ്ങൾ എന്നിവ ഇറക്കുമതി ചെയ്യുക + നിങ്ങളുടെ നിലവിലെ ചരിത്രം, സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ, പ്ലേലിസ്റ്റുകൾ (ഓപ്‌ഷണലായി) ക്രമീകരണങ്ങൾ അസാധുവാക്കുന്നു ഡാറ്റാബേസ് കയറ്റുമതി ചെയ്യുക ഡാറ്റാബേസ് അവതരിപ്പിക്കുക അംഗീകരിക്കുക @@ -329,10 +332,10 @@ ഡൗൺലോഡുകൾ ഡൗൺലോഡുകൾ ലൈവ് - ഈ വീഡിയോ പ്രായപരിമിതി ഉള്ളതാണ്. + ഈ വീഡിയോ പ്രായപരിമിതി ഉള്ളതാണ്. \n -\nഇത് കാണണമെങ്കിൽ പ്രായനിയന്ത്രണ ക്രമീകരണങ്ങളിൽ മാറ്റം വരുത്തുക. - പ്രായപരിമിതപ്പെടുത്തിയ കന്റെന്റ് +\nനിങ്ങൾക്ക് ഇത് കാണണമെങ്കിൽ ക്രമീകരണങ്ങളിൽ \"%1$s\" ഓണാക്കുക. + പ്രായ നിയന്ത്രിത ഉള്ളടക്കം കാണിക്കുക കന്റെന്റ് പോപ്പപ്പ് പ്ലേയറിൽ ക്യൂ ചെയ്തിരിക്കുന്നു ബാക്ക്ഗ്രൗണ്ട് പ്ലേയറിൽ ക്യൂ ചെയ്തിരിക്കുന്നു @@ -600,7 +603,7 @@ ചാനൽ ലഘുചിത്രം സേവനങ്ങളിൽ നിന്നുള്ള യഥാർത്ഥ വാചകങ്ങൾ സ്ട്രീം ഇനങ്ങളിൽ ദൃശ്യമാകും ഇനങ്ങളിൽ യഥാർത്ഥ സമയം മുമ്പ് കാണിക്കുക - യുട്യൂബ് നിയന്ത്രിത മോഡ് + YouTube- ന്റെ \"നിയന്ത്രിത മോഡ്\" ഓണാക്കുക ഇതിനായുള്ള ഫലങ്ങൾ കാണിക്കുന്നു: %s ഗ്രൂപ്പുചെയ്യാത്ത സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ മാത്രം കാണിക്കുക ഇതുവരെ ഒരു പ്ലേലിസ്റ്റ് ബുക്ക്മാർക്കുകളും ഇല്ല @@ -608,14 +611,71 @@ നിങ്ങളുടെ ക്രാഷ് ചർച്ച ചെയ്യുന്ന ഒരു പ്രശ്നം ഇതിനകം നിലവിലുണ്ടോയെന്ന് ദയവായി പരിശോധിക്കുക. തനിപ്പകർപ്പ് ആയ ടിക്കറ്റുകള്‍ സൃഷ്ടിക്കുമ്പോൾ, യഥാർത്ഥ ബഗ് പരിഹരിക്കുവാന്‍ വേണ്ടി ഞങ്ങ‍ള്‍ക്ക് ചെലവഴിക്കാൻ കഴിയുമായിരുന്ന സമയം നിങ്ങൾ ഞങ്ങളിൽ നിന്ന് എടുക്കുകയാണ് ചെയ്യുന്നത്. ഫോർമാറ്റുചെയ്‌ത റിപ്പോർട്ട് പകർത്തുക പ്ലേലിസ്റ്റ് പേജ് - തെറ്റ് GitHub ല്‍ റിപ്പോര്‍ട്ട് ചെയ്യുക + GitHub- ൽ റിപ്പോർട്ട് ചെയ്യുക ലഘുചിത്രം 1: 1 വീക്ഷണാനുപാതത്തിലേക്ക് സ്കെയിൽ ചെയ്യുക - "വീഡിയോ കവർ ചിത്രത്തിന്റെ മെയിൻ കളറിന് അനുസരിച്ചു നോട്ടിഫിക്കേഷന്റെ കളർ മാറ്റാൻ ആൻഡ്രോയ്ഡിനെ അനുവദിക്കുക (ഇത് എല്ലാം ഉപകരണങ്ങളിലും ലഭ്യമല്ല )" + വീഡിയോ കവർ ചിത്രത്തിന്റെ പ്രധാന നിറത്തിന് അനുസരിച്ചു നോട്ടിഫിക്കേഷന്റെ കളർ മാറ്റാൻ ആൻഡ്രോയ്ഡിനെ അനുവദിക്കുക (ഇത് എല്ലാം ഉപകരണങ്ങളിലും ലഭ്യമല്ല ) നോട്ടിഫിക്കേഷൻ വർണ്ണാഭമാകുക ഒന്നുമില്ല ക്രമരഹിതം ആവർത്തിക്കുക - നിങ്ങൾക്ക് കോംപാക്ട് നോട്ടിഫിക്കേഷൻ ആയി കാണിക്കാൻ മൂന്ന് നോട്ടിഫിക്കേഷൻ വരെ തിരഞ്ഞെടുക്കാം. + കോം‌പാക്റ്റ് അറിയിപ്പിൽ‌ കാണിക്കുന്നതിന് നിങ്ങൾക്ക് പരമാവധി മൂന്ന് പ്രവർ‌ത്തനങ്ങൾ‌ തിരഞ്ഞെടുക്കാനാകും! ഇതിനോടൊപ്പം തുറക്കുക നോട്ടിഫിക്കേഷനിൽ കാണിക്കുന്ന വീഡിയോ കവർ ചിത്രം 16:9 എന്ന അനുപാതത്തിൽ നിന്നും 1:1 ലേക്ക് മാറ്റാം (പ്രശ്നങ്ങൾ ഉണ്ടാവാൻ സാധ്യത ) + ഡൗൺലോഡ് ആരംഭിച്ചു + ചുവടെ നിങ്ങളുടെ പ്രിയപ്പെട്ട രാത്രി തീം തിരഞ്ഞെടുക്കാം + നിങ്ങളുടെ പ്രിയപ്പെട്ട രാത്രി തീം തിരഞ്ഞെടുക്കുക — %s + യാന്ത്രികം (ഉപകരണ തീം) + റേഡിയോ + തിരഞ്ഞെടുത്തത് + പണമടച്ച ഉപയോക്താക്കൾക്ക് മാത്രമേ ഈ ഉള്ളടക്കം ലഭ്യമാകൂ, അതിനാൽ ഇത് ന്യൂപൈപ്പ് സ്ട്രീം ചെയ്യാനോ ഡൗൺലോഡ് ചെയ്യാനോ കഴിയില്ല. + ഈ വീഡിയോ യൂട്യൂബ് മ്യൂസിക് പ്രീമിയം അംഗങ്ങൾക്ക് മാത്രമേ ലഭ്യമാകൂ, അതിനാൽ ഇത് ന്യൂപൈപ്പ് സ്ട്രീം ചെയ്യാനോ ഡൗൺലോഡ് ചെയ്യാനോ കഴിയില്ല. + ഈ ഉള്ളടക്കം സ്വകാര്യമാണ്, അതിനാൽ ഇത് ന്യൂപൈപ്പ് സ്ട്രീം ചെയ്യാനോ ഡൗൺലോഡ് ചെയ്യാനോ കഴിയില്ല. + ഇത് നിങ്ങളുടെ രാജ്യത്തെങ്കിലും ഒരു സൗണ്ട്ക്ലൗഡ് ഗോ + ട്രാക്കാണ്, അതിനാൽ ഇത് ന്യൂപൈപ്പ് സ്ട്രീം ചെയ്യാനോ ഡൗൺലോഡ് ചെയ്യാനോ കഴിയില്ല. + ഈ ഉള്ളടക്കം നിങ്ങളുടെ രാജ്യത്ത് ലഭ്യമല്ല. + നിങ്ങളുടെ ഉപകരണത്തിലെ ഒരു അപ്ലിക്കേഷനും ഇത് തുറക്കാൻ കഴിയില്ല + അധ്യായങ്ങൾ + സമീപകാലം + ലോക്ക് സ്ക്രീൻ പശ്ചാത്തലത്തിനും അറിയിപ്പുകൾക്കും ലഘുചിത്രം ഉപയോഗിക്കുക + ലഘുചിത്രം കാണിക്കുക + ഒരിക്കലും + വൈഫൈയിൽ മാത്രം + പ്ലേബാക്ക് സ്വപ്രേരിതമായി ആരംഭിക്കുക — %s + അപ്ലിക്കേഷൻ ക്രാഷ് ചെയ്യുക + മെമ്മറി ലീക്കുകൾ കാണിക്കുക + എൻക്യൂ ചെയ്തു + എൻക്യൂ + ചാനൽ വിശദാംശങ്ങൾ കാണിക്കുക + ക്യൂ പ്ലേ ചെയ്യുക + പരിഹരിക്കുക + ഹാഷ് കണക്കാക്കുന്നു + വിവരണം + അനുബന്ധ ഇനങ്ങൾ + അഭിപ്രായങ്ങൾ + നിങ്ങൾ ഒരു reCAPTCHA പരിഹരിക്കുമ്പോൾ ന്യൂപൈപ്പ് സംഭരിക്കുന്ന കുക്കികൾ മായ്‌ക്കുക + reCAPTCHA കുക്കികൾ‌ മായ്‌ച്ചു + ReCAPTCHA കുക്കികൾ മായ്‌ക്കുക + വീഡിയോ ഹാഷിംഗ് പുരോഗതിക്കായുള്ള അറിയിപ്പുകൾ + വീഡിയോ ഹാഷ് അറിയിപ്പ് + ഈ വീഡിയോ പ്രായപരിധി നിർണ്ണയിച്ചിരിക്കുന്നു. +\nപ്രായ-നിയന്ത്രിത വീഡിയോകളുള്ള പുതിയ യൂട്യൂബ് നയങ്ങൾ കാരണം, ന്യൂപൈപ്പിന് അതിന്റെ വീഡിയോ സ്ട്രീമുകളിലൊന്നും ആക്സസ് ചെയ്യാൻ കഴിയില്ല, അതിനാൽ ഇത് പ്ലേ ചെയ്യാൻ കഴിയില്ല. + പക്വതയുള്ള ഉള്ളടക്കം മറയ്ക്കുന്ന \"നിയന്ത്രിത മോഡ്\" യൂട്യൂബ് നൽകുന്നു + കുട്ടികൾക്ക് അനുയോജ്യമല്ലാത്ത ഉള്ളടക്കം കാണിക്കുക കാരണം അതിന് പ്രായപരിധി ഉണ്ട് (18+ പോലെ) + അറിയിപ്പ് + URL തിരിച്ചറിയാൻ കഴിഞ്ഞില്ല. മറ്റൊരു അപ്ലിക്കേഷൻ ഉപയോഗിച്ച് തുറക്കണോ\? + യാന്ത്രിക-ക്യൂ + സ്ട്രീം സ്രഷ്ടാവ്, സ്ട്രീം ഉള്ളടക്കം അല്ലെങ്കിൽ ഒരു തിരയൽ അഭ്യർത്ഥന എന്നിവയെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന മെറ്റാ വിവര ബോക്സുകൾ മറയ്ക്കുന്നതിന് ഓഫാക്കുക. + മെറ്റാഇൻഫോ കാണിക്കുക + വീഡിയോ വിവരണവും അധിക വിവരങ്ങളും മറയ്ക്കുന്നതിന് ഓഫാക്കുക + വിവരണം കാണിക്കുക + സജീവ പ്ലെയർ ക്യൂ മാറ്റിസ്ഥാപിക്കും + ഒരു പ്ലെയറിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറുന്നത് നിങ്ങളുടെ ക്യൂവിനെ പുനഃസ്ഥാപിച്ചേക്കാം + ഒരു ക്യൂ മായ്‌ക്കുന്നതിന് മുമ്പ് സ്ഥിരീകരണത്തിനായി ആവശ്യപ്പെടുക + രാത്രി തീം + ബഫറിംഗ് + ചുവടെയുള്ള ഓരോ അറിയിപ്പ് പ്രവർത്തനവും ടാപ്പുചെയ്ത് എഡിറ്റുചെയ്യുക. വലതുവശത്തുള്ള ചെക്ക്ബോക്സുകൾ ഉപയോഗിച്ച് കോംപാക്റ്റ് അറിയിപ്പിൽ കാണിക്കുന്നതിന് അവയിൽ മൂന്നെണ്ണം വരെ തിരഞ്ഞെടുക്കുക. + അഞ്ചാം പ്രവർത്തന ബട്ടൺ + നാലാം പ്രവർത്തന ബട്ടൺ + മൂന്നാം പ്രവർത്തന ബട്ടൺ + രണ്ടാം പ്രവർത്തന ബട്ടൺ + ആദ്യ പ്രവർത്തന ബട്ടൺ \ No newline at end of file diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index d129fdbc33b..2f574160212 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -17,16 +17,16 @@ Použiť externý prehrávač videa Použiť externý prehrávač zvuku Prevzaté video ukladať do - Tu sú uložené stiahnuté video súbory - Vyberte adresár pre ukladanie video súborov + Prevzaté video súbory sú uložené tu + Vyberte priečinok na ukladanie videí Adresár pre stiahnuté audio Vyberte adresár pre ukladanie audio súborov - Tu sú uložené stiahnuté audio súbory + Prevzaté zvukové súbory sú uložené tu Štandardné rozlíšenie Prehrať cez Kodi Nainštalovať chýbajúcu aplikáciu Kore\? Zobraziť možnosť \"Prehrať cez Kodi\" - Zobrazovať možnosť prehrať video cez multimediálne centrum Kodi + Zobraziť možnosť \"Prehraj cez Kodi\" Zvuk Predvolený zvukový formát Téma @@ -54,7 +54,7 @@ Použiť Tor (Experimentálne) Vyžadovať preberanie cez Tor pre väčšie súkromie (streamovanie videa momentálne nie je podporované). Nemožno vytvoriť adresár na preberanie \'%1$s\' - Adresár na preberanie bol vytvorený \'%1$s\' + Zložka na preberanie bola vytvorená \'%1$s\' Ťuknite na \"Vyhľadávanie\" \n Automatické prehrávanie @@ -69,7 +69,7 @@ Pardon, toto sa nemalo stať. Nahlásiť túto chybu mejlom Pardon, niečo sa pokazilo. - Nahlásiť + Správa Info: Čo sa stalo: Váš komentár (v Angličtine): @@ -79,7 +79,7 @@ Video Zvuk Znova - Najskôr povoľte prístup na úložisko + Najprv povoľte prístup k uložisku Štart Pauza Prehrať @@ -110,7 +110,7 @@ Kanál k M - mld. + B Požiadavka reCAPTCHA Áno Neskôr @@ -129,7 +129,7 @@ Filter Obnoviť Vyčistiť - Odoberie audio pri niektorých rozlíšeniach + Neprehrá audio pri niektorých rozlíšeniach Zapamätať si parametre mini okna Zapamätať si posledné nastavenie veľkosti a pozície mini okna Ovládanie prehrávača gestami @@ -151,7 +151,7 @@ História pozretí Ukladať históriu pozretých videí Pokračovať v prehrávaní - Pokračovať po prerušeniach (napr. hlasový hovor) + Pokračovať po prerušeniach (napr. telefonát) NewPipe notifikácie Notifikácie pre NewPipe na pozadí a v mini okne Preberanie @@ -170,7 +170,7 @@ O Prispievatelia Licencie - Ľahké streamovanie v systéme Android. + Ľahké prehrávanie na Androide. Pozrieť na GitHube Licencia NewPipe Či už máte nápady, prekladáte, spravíte zmenu dizajnu, čistenie kódu alebo skutočné ťažké zmeny v kóde, pomoc je vždy vítaná. Čím viac, tým lepšie! @@ -246,7 +246,7 @@ Zrušiť Premenovať Prispieť - Aplikácia NewPipe je vyvíjaná dobrovoľníkmi. Ak sa vám aplikácia páči, odmeňte vývojárov aby mohli NewPipe naďalej vylepšovať. Určite ich poteší napríklad šálka dobrej kávy. + Aplikácia NewPipe je vyvíjaná dobrovoľníkmi v ich voľnom čase snažiac sa vám priniesť najlepší zážitok z appky, ak sa vám páči, odmeňte vývojárov aby mohli NewPipe naďalej vylepšovať napríklad pri šálke dobrej kávy. Daruj Webstránka Pre viac informácií a noviniek navštívte webstránku NewPipe. @@ -264,8 +264,8 @@ Vyberte si kanál Zatiaľ nemáte žiadne odbery kanálov Vyberte si kiosk - Vyexportované - Naimportované + Export dokončený + Import dokončený Neplatný ZIP súbor Upozornenie: Nemožno importovať všetky súbory. Toto prepíše vaše aktuálne nastavenie. @@ -279,7 +279,7 @@ Podržaním pridať do zoznamu Prehrať odtiaľto Prehrať (zvuk) odtiaľto na pozadí - Začať prehrávanie v mini okne + Spustiť prehrávanie vo vyskakovacom okne Otvoriť zásuvku Zavrieť zásuvku Prehrávač videa @@ -306,7 +306,7 @@ Vyplniť Zväčšiť Používať rýchly posun - Rýchly posun umožňuje prejsť na novú pozíciu rýchlejšie, ale s menšou presnosťou. Posúvanie o 5, 15 alebo 25 sekúnd s týmto nastavením nefunguje. + Rýchly posun umožňuje prejsť na novú pozíciu rýchlejšie, ale s menšou presnosťou. Posun o 5, 15 alebo 25 sekúnd v tomto prípade nie je možný. Načítanie miniatúr Vypnutím tejto funkcie sa nebudú vytvárať miniatúry a tým sa ušetrí miesto a pamäť. Zmena nastavení spôsobuje vyčistenie vyrovnávacej pamäte. Vyrovnávacia pamäť obrázkov vymazaná @@ -314,7 +314,7 @@ Odstrániť všetky údaje webových stránok vo vyrovnávacej pamäti Vyrovnávacia pamäť metadát bola vymazaná Automaticky zaradiť daľší stream - Pokračovať v prehrávaní súvisiacich streamov + Končiaci neopakujúci sa zoznam prehrávania bude pokračovať súvisiacim streamom Ladenie Súbor Neplatný adresár @@ -412,7 +412,7 @@ Upozornenia na novú verziu NewPipe Externé úložisko je nedostupné Sťahovanie na externú SD kartu nie je možné. Obnoviť umiestnenie priečinka na sťahovanie\? - Nemožno načítať uložené karty, použijú sa predvolené + Chyba pri načítavaní uložených kariet, použijú sa predvolené Obnoviť predvolené nastavenia Chcete obnoviť predvolené hodnoty\? Počet odberateľov nie je k dispozícii @@ -466,7 +466,7 @@ Žiadne komentáre Nemožno načítať komentáre Zatvoriť - Pokračovať v prehrávaní + Obnoviť prehrávanie Obnovenie poslednej pozície prehrávania Poradie v zoznamoch Zobraziť indikátory polohy prehrávania v zoznamoch @@ -513,7 +513,7 @@ Dĺžka rýchleho pretáčania Inštancie PeerTube Vyberte si svoje obľúbené inštancie PeerTube - Vyhladať inštancie, ktoré sa vám páčia, na %s + Nájdite inštancie, ktoré chcete na %s Pridať inštanciu Vložiť URL inštancie Nepodarilo sa overiť inštanciu diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index ec5bade536f..946ce10658f 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -288,7 +288,7 @@ K M U ogolow app-ka kaydka aaalada marka hore - Markale iskuday + Kuceli Dhagaysi Muuqaal Waa la sameeyay galka soodajinta ee \'%1$s\' diff --git a/app/src/main/res/values-tzm/strings.xml b/app/src/main/res/values-tzm/strings.xml index df3fae42098..cc856f58680 100644 --- a/app/src/main/res/values-tzm/strings.xml +++ b/app/src/main/res/values-tzm/strings.xml @@ -169,4 +169,33 @@ Asenṭeḍ ameɣri n uvidyu abeṛṛani abeṛṛem Txsed ad tarad \"%1$s\"\? + Asgum n yiḍ + Ṛẓem s + Tirubba n tbadut + Matta n umaynu + ttseqsa abda + Tasna ixwan + Ittwakkes uferdis + Ṛẓem asit + Ɣef NewPipe + Ṛaja… + + %s umsflid + %s imsfliden + + Walu tannayin + Azgal n uẓeṭṭa + Ɣas yat + Aṛadyu + Fru + Ixfawalen + Usar + Asurif + Sisem + Amezray + Amezray + Azgal + Sisem + Sbedd + [Arussin] \ No newline at end of file diff --git a/fastlane/metadata/android/de/changelogs/64.txt b/fastlane/metadata/android/de/changelogs/64.txt index 31c6f6a5df8..0ff57be60e5 100644 --- a/fastlane/metadata/android/de/changelogs/64.txt +++ b/fastlane/metadata/android/de/changelogs/64.txt @@ -1,8 +1,8 @@ ### Verbesserungen -- Eine Möglichkeit die Videoqualität, bei Nutzung mobiler Daten, zu drosseln wurde hinzugefügt. #1339 -- Merke Helligkeitsstufe für diese Instanz #1442 -- Verbesserte download Leistung für schwächere CPUs #1431 -- Hinzugefügte (instand) Unterstützung für Mediensitzungen #1433 +- Es wurde die Möglichkeit hinzugefügt bei der Verwendung von Mobilen Daten die Videoqualität zu limitieren #1339 +- Die eingestellte Helligkeit wird während der Sitzung beibehalten #1442 +- Verbesserung der Download-Performance auf schwächeren CPUs #1431 +- (Funktionierender) Support für "Media session" wurde hinzugefügt #1433 -### Reparaturen (Fix) -- Absturz beim Öffnen von Downloads behoben (Fix jetzt für Release-Builds verfügbar) # 1441 +### Fehlerbehebungen +- Absturz beim Starten von Downloads wurde behoben (Fehlerbehebung nun verfügbar für Release Builds) #1441 diff --git a/fastlane/metadata/android/de/changelogs/820.txt b/fastlane/metadata/android/de/changelogs/820.txt index 8312f818734..1cc80072b63 100644 --- a/fastlane/metadata/android/de/changelogs/820.txt +++ b/fastlane/metadata/android/de/changelogs/820.txt @@ -1 +1 @@ -Regex für Entschlüsselungsfunktionsname, das YouTube unverwendbar macht, reapariert. +Der Regex für den Namen der Entschlüsselungsfunktion, der YouTube unbrauchbar machte, wurde korrigiert. diff --git a/fastlane/metadata/android/de/changelogs/830.txt b/fastlane/metadata/android/de/changelogs/830.txt index 5139b3e84d0..c4a9dc9ff1d 100644 --- a/fastlane/metadata/android/de/changelogs/830.txt +++ b/fastlane/metadata/android/de/changelogs/830.txt @@ -1 +1 @@ -Aktualisierung der SoundCloud client ID zur behebung von SoundCloud Problemen. +Aktualisierung der SoundCloud client_id, um SoundCloud-Probleme zu beheben. diff --git a/fastlane/metadata/android/de/changelogs/860.txt b/fastlane/metadata/android/de/changelogs/860.txt new file mode 100644 index 00000000000..caa021118e2 --- /dev/null +++ b/fastlane/metadata/android/de/changelogs/860.txt @@ -0,0 +1,7 @@ +Verbesserungen +• Sichern und wiederherstellen ob Tonhöhe und Geschwindigkeit gekoppelt sein sollen oder nicht +• Das Ausschalten des Bildschirms während dem Abspielen +• Anzahl an Aufrufen und Abonnenten gerundet +• YouTube optimiert um weniger Daten zu verbrauchen + +Mehr als 15 weitere YouTube bezogene Fehler wurden behoben. diff --git a/fastlane/metadata/android/de/changelogs/959.txt b/fastlane/metadata/android/de/changelogs/959.txt index cc1481b906a..aa295b3e07c 100644 --- a/fastlane/metadata/android/de/changelogs/959.txt +++ b/fastlane/metadata/android/de/changelogs/959.txt @@ -1,3 +1,3 @@ -Endlose Abstürze nach Öffnen eines Fehlerberichts wurden behoben. -Die Liste der PeerTube-Instanzen, die von NewPipe automatisch geöffnet werden können, wurde aktualisisert. -Übersetzungen wurden aktualisert. +Endlose Abstürze beim Öffnen eines Fehlerberichts wurden behoben. +Die Liste der PeerTube-Instanzen, die von NewPipe automatisch geöffnet werden können, wurde aktualisiert. +Übersetzungen wurden aktualisiert. diff --git a/fastlane/metadata/android/de/full_description.txt b/fastlane/metadata/android/de/full_description.txt index 867dc62ead7..36f223785e5 100644 --- a/fastlane/metadata/android/de/full_description.txt +++ b/fastlane/metadata/android/de/full_description.txt @@ -1 +1 @@ -NewPipe verwendet keine Bibliotheken des Google Frameworks oder der YouTube API. Es analysiert die Webseite, um die benötigten Informationen zu erlangen. Aus diesem Grund kann die App ohne die Google Services verwendet werden. Ebenso wird kein YouTube-Konto für NewPipe benötigt und es ist FLOSS. +NewPipe verwendet keine Bibliotheken des Google-Frameworks oder der YouTube-API. Es analysiert die Webseite, um die benötigten Informationen zu erlangen. Aus diesem Grund kann die App ohne die Google Services verwendet werden. Ebenso wird kein YouTube-Konto für NewPipe benötigt und es ist FLOSS (Freie Software / Open-Source-Software). diff --git a/fastlane/metadata/android/et/changelogs/63.txt b/fastlane/metadata/android/et/changelogs/63.txt new file mode 100644 index 00000000000..39edda14687 --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/63.txt @@ -0,0 +1,8 @@ +### Täiustused +- Impordi/ekspordi seaded #1333 +- Ülejoonistamise vähendamine (jõudluse parendus) #1371 +- Väikesed koodi täiustused #1375 +- Lisandus igasugune kasutaja andmete kaitse (GDPR) tugi #1420 + +### Parandused +- Alla laadija: Parandati krahh, mille põhjustas katkenud .giga failide alla laadimine #1407 diff --git a/fastlane/metadata/android/he/changelogs/967.txt b/fastlane/metadata/android/he/changelogs/967.txt new file mode 100644 index 00000000000..ca61867c7ac --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/967.txt @@ -0,0 +1 @@ +תוקנה בעיה ש־YouTube לא עבד כראוי באירופה. נגרמה עקב מערכת עוגיות והסכמת פרטיות שדורשת מ־NewPipe להגדיר עוגיית הסכמה. diff --git a/fastlane/metadata/android/id/changelogs/967.txt b/fastlane/metadata/android/id/changelogs/967.txt new file mode 100644 index 00000000000..b98c1669cd0 --- /dev/null +++ b/fastlane/metadata/android/id/changelogs/967.txt @@ -0,0 +1 @@ +YouTube Tetap tidak berfungsi dengan baik di UE. Ini disebabkan oleh sebuah sistem cookie dan persetujuan privasi baru yang membutuhkan NewPipe untuk menetapkan cookie PERSETUJUAN. diff --git a/fastlane/metadata/android/ml/changelogs/968.txt b/fastlane/metadata/android/ml/changelogs/968.txt new file mode 100644 index 00000000000..88c0cd5dfc4 --- /dev/null +++ b/fastlane/metadata/android/ml/changelogs/968.txt @@ -0,0 +1,7 @@ +ദീർഘനേരം അമർത്തുന്ന മെനുവിലേക്ക് ചാനൽ വിശദാംശങ്ങൾ ഓപ്ഷൻ ചേർത്തു. +പ്ലേലിസ്റ്റ് ഇന്റർഫേസിൽ നിന്ന് പ്ലേലിസ്റ്റ് പേര് പുനർനാമകരണം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനം ചേർത്തു. +ഒരു വീഡിയോ ബഫർ ചെയ്യുമ്പോൾ താൽക്കാലികമായി നിർത്താൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നു. +വെളുത്ത തീമീൽ മിനുക്കുപ്പണികൾ നടത്തി. +ഒരു വലിയ ഫോണ്ട് വലുപ്പമായി ഓവർലാപ്പിംഗ് ഫോണ്ടുകൾ ഉപയോഗിക്കുമ്പോഴുള്ള പ്രശ്നങ്ങൾ പരിഹരിച്ചു. +ഫോർമുലർ, സെഫിയർ ഉപകരണങ്ങളിൽ വീഡിയോകളൊന്നും വരാത്ത പിശക് പരിഹരിച്ചു. +വിവിധ ക്രാഷുകൾ പരിഹരിച്ചു. diff --git a/fastlane/metadata/android/ml/full_description.txt b/fastlane/metadata/android/ml/full_description.txt new file mode 100644 index 00000000000..d351045e613 --- /dev/null +++ b/fastlane/metadata/android/ml/full_description.txt @@ -0,0 +1 @@ +ന്യൂപൈപ്പ് ഏതെങ്കിലും ഗൂഗിൾ ഫ്രെയിംവർക്ക് ലൈബ്രറികളോ യൂട്യൂബ് API- കളോ ഉപയോഗിക്കുന്നില്ല. വെബ്‌സൈറ്റിന് ആവശ്യമായ വിവരങ്ങൾ നേടുന്നതിന് മാത്രമേ ഇത് പാഴ്‌സുചെയ്യൂ. അതിനാൽ ഗൂഗിൾ സേവനങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യാത്ത ഉപകരണങ്ങളിൽ ഈ അപ്ലിക്കേഷൻ ഉപയോഗിക്കാൻ കഴിയും. കൂടാതെ, ന്യൂപൈപ്പ് ഉപയോഗിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു യൂട്യൂബ് അക്കൗണ്ട് ആവശ്യമില്ല, ഇത് ഫ്ലോസ് ആണ്. diff --git a/fastlane/metadata/android/pt-BR/changelogs/63.txt b/fastlane/metadata/android/pt-BR/changelogs/63.txt new file mode 100644 index 00000000000..d6fcbeecf87 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/changelogs/63.txt @@ -0,0 +1,8 @@ +### Melhorias + - Importar/exportar configurações #1333 + - Reduzir overdraw (melhoria de desempenho) #1371 + - Pequenas melhorias no código #1375 + - Adicione tudo sobre o GDPR #1420 + +### Corrigido + - Downloader: corrige falha no carregamento de downloads inacabados de arquivos .giga #1407 diff --git a/fastlane/metadata/android/uk/short_description.txt b/fastlane/metadata/android/uk/short_description.txt index ddc451baafc..f35a32646e6 100644 --- a/fastlane/metadata/android/uk/short_description.txt +++ b/fastlane/metadata/android/uk/short_description.txt @@ -1 +1 @@ -Безкоштовний та легкий YouTube інтерфейс для Android. +Безкоштовний та легкий YouTube інткрфейс для Android diff --git a/fastlane/metadata/android/zh-Hans/changelogs/967.txt b/fastlane/metadata/android/zh-Hans/changelogs/967.txt new file mode 100644 index 00000000000..8a74d8baacd --- /dev/null +++ b/fastlane/metadata/android/zh-Hans/changelogs/967.txt @@ -0,0 +1,2 @@ +修正了YouTube在欧盟国家无法正常使用的问题; +由于新的cookie和隐私系统, 需要NewPipe同意并保存一个cookie From e7ae215ab035c76143282cc315a45b4626aca7d4 Mon Sep 17 00:00:00 2001 From: mhmdanas <6daf084a-8eaf-40fb-86c7-8500077c3b69@anonaddy.me> Date: Wed, 28 Apr 2021 00:28:36 +0300 Subject: [PATCH 09/47] Fix some warnings --- .../newpipe/local/subscription/SubscriptionFragment.kt | 2 +- .../newpipe/local/subscription/dialog/FeedGroupDialog.kt | 5 +++-- .../schabi/newpipe/local/subscription/item/PickerIconItem.kt | 2 -- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index f8a6f0f4d03..16bdb6a137b 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -207,7 +207,7 @@ class SubscriptionFragment : BaseStateFragment() { super.onActivityResult(requestCode, resultCode, data) if (data != null && data.data != null && resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_EXPORT_CODE) { - val exportFile = Utils.getFileForUri(data.data!!) + val exportFile = Utils.getFileForUri(data.data!!)!! if (!exportFile.parentFile.canWrite() || !exportFile.parentFile.canRead()) { Toast.makeText(activity, R.string.invalid_directory, Toast.LENGTH_SHORT).show() } else { diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index 2918bcd66b9..cb0c5fe35a9 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -9,6 +9,7 @@ import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.Toast +import androidx.core.content.ContextCompat import androidx.core.content.getSystemService import androidx.core.os.bundleOf import androidx.core.view.isGone @@ -127,7 +128,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable { if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) { // KitKat doesn't apply container's theme to content - val contrastColor = ColorStateList.valueOf(resources.getColor(R.color.contrastColor)) + val contrastColor = ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.contrastColor)) searchLayoutBinding.toolbarSearchEditText.setTextColor(contrastColor) searchLayoutBinding.toolbarSearchEditText.setHintTextColor(contrastColor.withAlpha(128)) ImageViewCompat.setImageTintList(searchLayoutBinding.toolbarSearchClearIcon, contrastColor) @@ -385,7 +386,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable { private fun setupIconPicker() { val groupAdapter = GroupAdapter() - groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(requireContext(), it) }) + groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(it) }) feedGroupCreateBinding.iconSelector.apply { layoutManager = GridLayoutManager(requireContext(), 7, RecyclerView.VERTICAL, false) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt index 1b55d2e85f3..b4232f666c8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt @@ -1,6 +1,5 @@ package org.schabi.newpipe.local.subscription.item -import android.content.Context import android.view.View import androidx.annotation.DrawableRes import com.xwray.groupie.viewbinding.BindableItem @@ -9,7 +8,6 @@ import org.schabi.newpipe.databinding.PickerIconItemBinding import org.schabi.newpipe.local.subscription.FeedGroupIcon class PickerIconItem( - context: Context, val icon: FeedGroupIcon ) : BindableItem() { @DrawableRes From 2c1df5f875d479e5e23603d29308e451ac55a685 Mon Sep 17 00:00:00 2001 From: mhmdanas <6daf084a-8eaf-40fb-86c7-8500077c3b69@anonaddy.me> Date: Fri, 30 Apr 2021 01:02:46 +0300 Subject: [PATCH 10/47] Actually fix the parentFile warning --- .../newpipe/local/subscription/SubscriptionFragment.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index 16bdb6a137b..d3f80e214e6 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -207,8 +207,9 @@ class SubscriptionFragment : BaseStateFragment() { super.onActivityResult(requestCode, resultCode, data) if (data != null && data.data != null && resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_EXPORT_CODE) { - val exportFile = Utils.getFileForUri(data.data!!)!! - if (!exportFile.parentFile.canWrite() || !exportFile.parentFile.canRead()) { + val exportFile = Utils.getFileForUri(data.data!!) + val parentFile = exportFile.parentFile!! + if (!parentFile.canWrite() || !parentFile.canRead()) { Toast.makeText(activity, R.string.invalid_directory, Toast.LENGTH_SHORT).show() } else { activity.startService( From 7f6674a0e6641f2cb47b68fdde72ca320250b013 Mon Sep 17 00:00:00 2001 From: mhmdanas <6daf084a-8eaf-40fb-86c7-8500077c3b69@anonaddy.me> Date: Fri, 30 Apr 2021 01:02:57 +0300 Subject: [PATCH 11/47] Remove strings without default values --- app/src/main/res/values-kmr/strings.xml | 3 +-- app/src/main/res/values-lv/strings.xml | 3 +-- app/src/main/res/values-sr/strings.xml | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-kmr/strings.xml b/app/src/main/res/values-kmr/strings.xml index 8f03299b140..bdc7fe4066c 100644 --- a/app/src/main/res/values-kmr/strings.xml +++ b/app/src/main/res/values-kmr/strings.xml @@ -200,7 +200,6 @@ Dîrok Destûrê bixwînin NewPipe nermalava kopîleft libre ye: Hûn dikarin li gorî kêfa xwe bikar bînin, parve bikin û baştir bikin. Bi taybetî hûn dikarin wê di bin mercên Lîsansa Giştî ya GNU ya Giştî ya ku ji hêla Weqfa Nermalava Azad ve hatî weşandin de, an guhertoya 3 ya Lîsansê, an jî (li gorî vebijarka we) guhertoyek paşîn ji nû ve belav bikin û / an biguherînin. - Mezinahî kirin Zelal Hênikkirin Parzûn @@ -664,4 +663,4 @@ Derbar Mîhengên Serlêdanê kilît bikin - \ No newline at end of file + diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 6a45130e187..e8a9cca299b 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -277,7 +277,6 @@ Fails izdzēsts Atsaukt Labākā izšķirtspēja - Maina izmēru Notīrīt Atsvaidzināt Filtrēt @@ -690,4 +689,4 @@ Šis video ir ierobežots ar vecumu. \nŅemot vērā jauno YouTube politiku ar vecuma ierobežotiem videoklipiem, Newpipe nevar piekļūt šim videoklipam. Nakts Motīvs - \ No newline at end of file + diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index b3b90b95ed7..2080f4d3442 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -489,7 +489,6 @@ Укључи / искључи услугу, која је тренутно изабрана: Превуците за преуређивање Опис - Повезани стримови Коментари Проверите да ли већ постоји проблем који говори о вашем паду апликације. Када правите дупликате карата, одузимате нам време које бисмо могли потрошити на исправљање стварне грешке. Пријави на GitHub-у @@ -690,4 +689,4 @@ Прикажи детаље о каналу Повезани предмети - \ No newline at end of file + From 97b28bba4d1db7cc506baf7a051c5d2aec14e010 Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 30 Apr 2021 11:48:01 +0200 Subject: [PATCH 12/47] Update ExoPlayer to 2.13.3 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 7e62ba240a7..c9ca07b42b3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -105,7 +105,7 @@ ext { androidxRoomVersion = '2.3.0-alpha03' icepickVersion = '3.2.0' - exoPlayerVersion = '2.13.2' + exoPlayerVersion = '2.13.3' googleAutoServiceVersion = '1.0-rc7' groupieVersion = '2.8.1' markwonVersion = '4.6.0' From d6ab3298a3fc8ea5753b8a657ffd56b78e58d445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan?= Date: Sun, 2 May 2021 16:55:49 +0000 Subject: [PATCH 13/47] Added Turkish README (#6219) --- README.es.md | 2 +- README.ja.md | 2 +- README.ko.md | 2 +- README.md | 2 +- README.pt_BR.md | 2 +- README.ro.md | 2 +- README.so.md | 2 +- README.tr.md | 145 ++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 README.tr.md diff --git a/README.es.md b/README.es.md index c894dd43f0f..7eae15c08da 100644 --- a/README.es.md +++ b/README.es.md @@ -18,7 +18,7 @@
-*Lea esto en otros idiomas: [English](README.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md) .* +*Lea esto en otros idiomas: [English](README.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* AVISO: ESTA ES UNA VERSIÓN BETA, POR LO TANTO, PUEDE ENCONTRAR BUGS (ERRORES). SI ENCUENTRA UNO, ABRA UN ISSUE A TRAVÉS DE NUESTRO REPOSITORIO GITHUB. diff --git a/README.ja.md b/README.ja.md index fabafbfd177..a961005a713 100644 --- a/README.ja.md +++ b/README.ja.md @@ -17,7 +17,7 @@

ウェブサイトブログFAQニュース


-*他の言語で読む: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt.br.md), [日本語](README.ja.md), [Română](README.ro.md) 。* +*他の言語で読む: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt.br.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md)。* 注意: これはベータ版のため、バグが発生する可能性があります。もしバグが発生した場合、GitHub のリポジトリで Issue を開いてください。 diff --git a/README.ko.md b/README.ko.md index 3ee9ae63151..a677aaca42f 100644 --- a/README.ko.md +++ b/README.ko.md @@ -17,7 +17,7 @@

WebsiteBlogFAQPress


-*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md).* +*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* 경고: 이 버전은 베타 버전이므로, 버그가 발생할 수도 있습니다. 만약 버그가 발생하였다면, 우리의 GITHUB 저장소에서 ISSUE를 열람하여 주십시오. diff --git a/README.md b/README.md index 9eec4569343..866c8c5e864 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@

WebsiteBlogFAQPress


-*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md) .* +*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY. diff --git a/README.pt_BR.md b/README.pt_BR.md index 251c904b731..d0020fc54f7 100644 --- a/README.pt_BR.md +++ b/README.pt_BR.md @@ -18,7 +18,7 @@

SiteBlogFAQPress


-*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md).* +*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* AVISO: ESTA É UMA VERSÃO BETA, PORTANTO, VOCÊ PODE ENCONTRAR BUGS. ENCONTROU ALGUM, ABRA UM ISSUE ATRAVÉS DO NOSSO REPOSITÓRIO GITHUB. diff --git a/README.ro.md b/README.ro.md index 1d39422fc8b..6fa76020f8a 100644 --- a/README.ro.md +++ b/README.ro.md @@ -17,7 +17,7 @@

WebsiteBlogFAQPresă


-*Citiţi în alte limbi: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md)* +*Citiţi în alte limbi: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* Atenţionare: ACEASTA ESTE O VERSIUNE BETA, AŞA CĂ S-AR PUTE SĂ ÎNTÂLNIŢI ERORI. DACĂ SE ÎNTÂMPLĂ ACEST LUCRU, DESCHIDEŢI UN ISSUE PRIN REPSITORY-UL NOSTRU GITHUB. diff --git a/README.so.md b/README.so.md index 703886f127d..31afbe47515 100644 --- a/README.so.md +++ b/README.so.md @@ -17,7 +17,7 @@

Website-kaMaqaaladaSu'aalaha Aalaa La-iswaydiiyoWarbaahinta


-*Ku akhri luuqad kale: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md).* +*Ku akhri luuqad kale: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* DIGNIIN: MIDKAN, NOOCA APP-KA EE HADDA WALI TIJAABO AYUU KU JIRAA, SIDAA DARTEED CILLADO AYAAD LA KULMI KARTAA. HADAAD LA KULANTO, KA FUR ARIN SHARAXAYA QAYBTANADA ARRIMAHA EE GITHUB-KA. diff --git a/README.tr.md b/README.tr.md new file mode 100644 index 00000000000..bb9148af82b --- /dev/null +++ b/README.tr.md @@ -0,0 +1,145 @@ +

+

NewPipe

+

Android için hafif ve özgür bir akış arayüzü.

+ +

+ +

+ + + + + + +

+
+

Ekran fotoğraflarıAçıklamaÖzelliklerKurulum ve güncellemelerKatkıda bulunmaBağışLisans

+

Web sitesiBlogSSSBasın

+
+ +*Bu sayfayı diğer dillerde okuyun: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* + +UYARI: BU SÜRÜM BETA SÜRÜMÜDÜR, BU NEDENLE HATALARLA KARŞILAŞABİLİRSİNİZ. HATA BULURSANIZ BU GITHUB DEPOSUNDA BUNU BİLDİRİN. + +GOOGLE PLAY STORE'A NEWPIPE VEYA BAŞKA BİR KOPYASINI KOYMAK, PLAY STORE ŞARTLARINI VE KOŞULLARINI İHLAL EDER. + +## Ekran fotoğrafları + +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png) +[](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png) +[](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png) + +## Açıklama + +NewPipe herhangi bir Google çerçeve kütüphanesini, ya da YouTube API hizmetlerini kullanmaz. Gerekli web hizmetleri yalnızca gerekli bilgileri almak için kaynak olarak kullanılır, bu nedenle bu uygulama Google hizmetleri yüklü olmayan cihazlarda da kullanılabilir. Ayrıca, copyleft özgür yazılımı olan NewPipe'ı kullanmak için bir YouTube hesabına ihtiyacınız yoktur. + +### Özellikler + +* Video arama +* Videolar hakkında genel bilgileri görüntüleme +* YouTube videoları izleme +* YouTube videolarını dinleme +* Pop-up modu (hareketli oynatıcı) +* Video izlemek için akış oynatıcısını seçme +* Video indirme +* Sadece ses indirme +* Videoyu Kodi'de açma +* Sonraki video/ilgili videolar +* YouTube'u belirli bir dilde arayın +* Yaş sınırlı içeriği izleme/engelleme +* Kanallar hakkındaki genel bilgileri görüntüleme +* Kanal arama +* Bir kanaldaki videoları izleme +* Orbot/Tor desteği (henüz direkt olarak değil) +* 1080p/2K/4K desteği +* Geçmişi görme +* Kanallara abone olma +* Geçmişte arama +* Oynatma listesi arama/oynatma +* Çalma listelerini sıralayıp oynatın +* Videoları sırayla oynatın +* Yerel oynatma listeleri +* Altyazılar +* Canlı yayın desteği +* Yorumları görme + +### Desteklenen servisler + +NewPipe birden fazla hizmeti destekler. Uygulamaya ve ayıklayıcıya yeni bir hizmet ekleme konusunda daha fazla bilgiye [kılavuzlarımızdan](https://teamnewpipe.github.io/documentation/) ulaşabilirsiniz. Yeni bir hizmet eklemek istiyorsanız lütfen bizimle iletişime geçin. Şu anda desteklenen hizmetler şunlardır: + +* YouTube +* SoundCloud \[beta\] +* media.ccc.de \[beta\] +* PeerTube \[beta\] +* Bandcamp \[beta\] + + + + +## Kurulum ve güncellemeler +Aşağıdaki yöntemlerden birini kullanarak NewPipe'ı kurabilirsiniz: + 1. Özel depomuzu F-Droid'e ekleyin ve oradan yükleyin. Kılavuzu şurada bulabilirsiniz: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/ + 2. APK'yı [Github sürümlerinden](https://github.com/TeamNewPipe/NewPipe/releases) indirin ve kurun. + 3. F-Droid ile güncelleyin. Bu, güncellemeleri almanın en yavaş yöntemidir, çünkü F-Droid değişiklikleri tanımalı, APK'yı kendisi oluşturmalı, imzalamalı ve ardından güncellemeyi kullanıcılara dağıtmalıdır. + 4. Kendiniz bir APK derleyin. Bu yöntem, cihazınızda yeni özellikler edinmenin en hızlı yoludur, ancak çok daha karmaşıktır, bu nedenle diğer yöntemlerden birini kullanmanızı öneririz. + +Çoğu kullanıcı için yöntem 1'i öneririz. Yöntem 1 veya 2 kullanılarak yüklenen APK'lar birbiriyle uyumludur, ancak yöntem 3 kullanılarak yüklenenlerle uyumlu değildir. Bu durum, 1 ve 2 için kullanılan aynı imzalama anahtarıın (bizim anahtarımız) 3 için kullanılan imzalama anahtarından (F-Droid'in anahtarı) farklı olmasından kaynaklanmaktadır. Yöntem 4 kullanılarak oluşturulan deneysel APK'larda anahtar yoktur. İmzalama anahtarları, bir kullanıcının bir uygulamaya kötü amaçlı bir güncelleme yüklemek için kandırılmadığından emin olmanıza yardımcı olur. + +Bu arada, herhangi bir nedenle kaynakları değiştirmek istiyorsanız (örneğin, NewPipe'ın temel bir işlevi bozuldu ve F-Droid tarafında henüz bir güncelleme yayınlanmadı), bu prosedürü izlemenizi öneririz: +1. Verilerinizi yedekleyin. `NewPipe Ayarları > İçerik > Veritabanını dışa aktar` seçeneklerini izleyerek aboneliklerinizi, oynatma listelerinizi ve geçmişinizi yedekleyin. +2. NewPipe'ı kaldırın +3. APK dosyasını yeni bir kaynaktan indirin ve yükleyin +4. `Ayarlar > İçerik > Veritabanını içe aktar` seçeneklerini izleyerek 1. adımdaki verileri içe aktarın + +## Katkıda bulunma +Fikirleriniz, çevirileriniz, tasarım değişiklikleriniz, kod temizlemeniz veya ağır kod değişiklikleriniz olsun, yardımınıza her zaman açığız. +Yapılan her değişiklikle NewPipe daha da iyi bir konuma geliyor! + +Eğer yer almak istiyorsanız, [katkı sağlayanlar için hazırladığımız notları](.github/CONTRIBUTING.md) kontrol edin. + + +Çeviri istatistikleri + + +## Bağış +NewPipe'ı beğendiyseniz, yapacağınız bağışlar bizi motive eder. Bitcoin gönderebilir veya Bountysource veya Liberapay aracılığıyla bağış yapabilirsiniz. NewPipe'a bağış yapma hakkında daha fazla bilgi için lütfen [web sitemizi](https://newpipe.net/donate) ziyaret edin. + + + + + + + + + + + + + + + + + +
BitcoinBitcoin QR kodu16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
Liberapayliberapay.com üzerinde NewPipe'ı ziyaret edinLiberapay aracılığıyla bağış yapın
Bountysourcebountysource.com üzerinde NewPipe'ı ziyaret edinNe kadar ödül kazanabileceğinizi kontrol edin.
+ +## Gizlilik politikası + +NewPipe projesi, çevrimiçi akış hizmetlerini kullanmak için özel, özgür ve anonim bir deneyim sunmayı amaçlamaktadır. +Bu doğrultuda, uygulama sizin izniniz olmadan herhangi bir veri toplamaz. NewPipe'ın Gizlilik Politikası, bir çökme raporu gönderdiğinizde veya blogumuzda yorum yaptığınızda hangi verilerin gönderildiğini ve saklandığını ayrıntılı olarak açıklar. İlgili belgeyi [burada](https://newpipe.net/legal/privacy/) bulabilirsiniz. + +## Lisans +[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](https://www.gnu.org/licenses/gpl-3.0.en.html) + +NewPipe özgür bir yazılımdır. Kendi başınıza kullanabilir, öğrenebilir, paylaşabilir +ve geliştirebilirsiniz. Free Software Foundation tarafından yayınlanan GNU Genel Kamu Lisansı, +Lisansın 3. sürümü veya (isteğe bağlı olarak) daha sonraki bir sürümü şartları ve +koşulları altında yeniden dağıtabilir ve/veya değiştirebilirsiniz. From c85b97a4841f6cf15fddd31acf807cd5491ec9f6 Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 4 May 2021 19:08:25 +0200 Subject: [PATCH 14/47] Fix: fragmentSize is below the minimum (#6238) noticed logs " CacheDataSink: fragmentSize is below the minimum recommended value of 2097152. This may cause poor cache performance. this fixes the issue by using ExoPlayers MIN_RECOMMENDED_FRAGMENT_SIZE. Unfortunately that field is private: https://github.com/google/ExoPlayer/blob/aeb306a164911aa1491b46c2db4da0d329c83c65/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSink.java#L123 --- .../java/org/schabi/newpipe/player/helper/PlayerHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java index 0a3ea908a72..59b2fed17e9 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java @@ -297,7 +297,7 @@ public static long getPreferredCacheSize() { } public static long getPreferredFileSize() { - return 512 * 1024L; + return 2 * 1024 * 1024L; // ExoPlayer CacheDataSink.MIN_RECOMMENDED_FRAGMENT_SIZE } /** From 38ed07caa76e9f464a481316621d391fc2c98480 Mon Sep 17 00:00:00 2001 From: ix5 Date: Mon, 22 Feb 2021 20:17:12 +0100 Subject: [PATCH 15/47] Downloader: Deleter: Dismiss previous Snackbars Bug: In Downloader view, while deleting items, Snackbars at the bottom of the UI keep queuing up. You need to wait for all of them to dismiss themselves for files to actually be deleted. If you close NewPipe before all snackbars are dismissed, your files will not be deleted and show up again next time you start NewPipe. Fix: When running append(), trigger the commit() action immediately and cancel all delayed callbacks for commit(). This prevents Snackbars from stacking up in reverse order. Fixes: https://github.com/TeamNewPipe/NewPipe/issues/5660 --- app/src/main/java/us/shandian/giga/ui/common/Deleter.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/us/shandian/giga/ui/common/Deleter.java b/app/src/main/java/us/shandian/giga/ui/common/Deleter.java index b42ebbeb42a..c554766ff7e 100644 --- a/app/src/main/java/us/shandian/giga/ui/common/Deleter.java +++ b/app/src/main/java/us/shandian/giga/ui/common/Deleter.java @@ -55,6 +55,14 @@ public Deleter(View v, Context c, MissionAdapter a, DownloadManager d, MissionIt } public void append(Mission item) { + + /* If a mission is removed from the list while the Snackbar for a previously + * removed item is still showing, commit the action for the previous item + * immediately. This prevents Snackbars from stacking up in reverse order. + */ + mHandler.removeCallbacks(rCommit); + commit(); + mIterator.hide(item); items.add(0, item); From f80b1fb2feb3076b612f6fb86e6b904b58ae1929 Mon Sep 17 00:00:00 2001 From: Saurav Rao <56369484+sauravrao637@users.noreply.github.com> Date: Tue, 4 May 2021 23:27:19 +0530 Subject: [PATCH 16/47] added NoLoginRequired (#5994) Co-authored-by: camo0112 <56369484+camo0112@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 866c8c5e864..462e5757b11 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ NewPipe does not use any Google framework libraries, nor the YouTube API. Websit ### Features * Search videos +* No Login Required * Display general info about videos * Watch YouTube videos * Listen to YouTube videos From 31ea44ccf1783840b27b991f4779c6c3bf7cc5f8 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Wed, 12 May 2021 10:20:39 +0200 Subject: [PATCH 17/47] Fixed player not automatically playing (#6266) * Fixed player not automatically playing Should also fix https://github.com/TeamNewPipe/NewPipe/issues/6179 * Added comment --- app/src/main/java/org/schabi/newpipe/player/Player.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index 21276b4c0f5..ba6521b91c5 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -714,7 +714,12 @@ && isPlaybackResumeEnabled(this) // Android TV: without it focus will frame the whole player binding.playPauseButton.requestFocus(); - playPause(); + // Note: This is for automatically playing (when "Resume playback" is off), see #6179 + if (getPlayWhenReady()) { + play(); + } else { + pause(); + } } NavigationHelper.sendPlayerStartedEvent(context); } From 5b4fbe32b180510ea044285b138b3c198ebe2325 Mon Sep 17 00:00:00 2001 From: Saurav Rao <56369484+sauravrao637@users.noreply.github.com> Date: Wed, 12 May 2021 18:03:00 +0530 Subject: [PATCH 18/47] Fix trying to delete object not in list (#6127) * fix trying to delete object by index -1 * correction in checkstyle-supressions.xml Co-authored-by: camo0112 <56369484+camo0112@users.noreply.github.com> --- .../newpipe/local/LocalItemListAdapter.java | 15 +++++++++++++-- checkstyle-suppressions.xml | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java index da8902c083c..5d81c0069c0 100644 --- a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java @@ -126,8 +126,19 @@ public void addItems(@Nullable final List data) { public void removeItem(final LocalItem data) { final int index = localItems.indexOf(data); - localItems.remove(index); - notifyItemRemoved(index + (header != null ? 1 : 0)); + if (index != -1) { + localItems.remove(index); + notifyItemRemoved(index + (header != null ? 1 : 0)); + } else { + // this happens when + // 1) removeItem is called on infoItemDuplicate as in showStreamItemDialog of + // LocalPlaylistFragment in this case need to implement delete object by it's duplicate + + // OR + + // 2)data not in itemList and UI is still not updated so notifyDataSetChanged() + notifyDataSetChanged(); + } } public boolean swapItems(final int fromAdapterPosition, final int toAdapterPosition) { diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index 2ff7ae68d76..e97272fe6be 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -5,7 +5,7 @@ + lines="232,304"/> Date: Wed, 12 May 2021 16:27:13 +0200 Subject: [PATCH 19/47] Update translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Croatian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Croatian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Bengali (Bangladesh)) Currently translated at 62.1% (397 of 639 strings) Translated using Weblate (Bengali) Currently translated at 90.6% (579 of 639 strings) Translated using Weblate (Italian) Currently translated at 48.9% (24 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ Translated using Weblate (Indonesian) Currently translated at 100.0% (49 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/ Translated using Weblate (Tamazight (Central Atlas)) Currently translated at 32.8% (210 of 639 strings) Added translation using Weblate (Marathi) Added translation using Weblate (Marathi) Translated using Weblate (Spanish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Hindi) Currently translated at 85.4% (546 of 639 strings) Translated using Weblate (Marathi) Currently translated at 10.9% (70 of 639 strings) Translated using Weblate (Bengali) Currently translated at 90.9% (581 of 639 strings) Translated using Weblate (Bengali) Currently translated at 20.4% (10 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bn/ Translated using Weblate (English) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Hungarian) Currently translated at 87.6% (560 of 639 strings) Translated using Weblate (Serbian) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Portuguese) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Indonesian) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Estonian) Currently translated at 85.4% (546 of 639 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Bengali) Currently translated at 91.8% (587 of 639 strings) Translated using Weblate (Turkish) Currently translated at 30.6% (15 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/ Translated using Weblate (Romanian) Currently translated at 8.1% (4 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ro/ Translated using Weblate (Portuguese) Currently translated at 53.0% (26 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ Translated using Weblate (Spanish) Currently translated at 26.5% (13 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/ Translated using Weblate (Serbian) Currently translated at 14.2% (7 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sr/ Translated using Weblate (Estonian) Currently translated at 8.1% (4 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/et/ Translated using Weblate (Estonian) Currently translated at 8.1% (4 of 49 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/et/ Translated using Weblate (Marathi) Currently translated at 11.8% (76 of 639 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Hungarian) Currently translated at 91.7% (586 of 639 strings) Translated using Weblate (Russian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Estonian) Currently translated at 89.2% (570 of 639 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Italian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Estonian) Currently translated at 90.7% (580 of 639 strings) --- app/src/main/res/values-ar/strings.xml | 2 +- .../main/res/values-b+zh+HANS+CN/strings.xml | 154 +++++++++--------- app/src/main/res/values-bn-rBD/strings.xml | 2 +- app/src/main/res/values-bn/strings.xml | 72 ++++---- app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-et/strings.xml | 98 ++++++++++- app/src/main/res/values-hi/strings.xml | 148 ++++++++--------- app/src/main/res/values-hr/strings.xml | 22 +-- app/src/main/res/values-hu/strings.xml | 79 ++++++--- app/src/main/res/values-in/strings.xml | 8 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-mr/strings.xml | 55 +++++++ app/src/main/res/values-nb-rNO/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 12 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sr/strings.xml | 154 +++++++++--------- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-tzm/strings.xml | 11 ++ app/src/main/res/values-uk/strings.xml | 102 +++++++----- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- .../metadata/android/bn/changelogs/770.txt | 4 + .../metadata/android/de/changelogs/967.txt | 1 + .../metadata/android/es/changelogs/64.txt | 8 + .../metadata/android/es/changelogs/850.txt | 1 + .../metadata/android/et/changelogs/967.txt | 1 + .../metadata/android/et/short_description.txt | 2 +- .../metadata/android/id/short_description.txt | 2 +- .../metadata/android/it/changelogs/63.txt | 8 + .../metadata/android/it/changelogs/64.txt | 8 + .../metadata/android/pt/changelogs/958.txt | 4 +- .../metadata/android/pt/full_description.txt | 2 +- .../metadata/android/ro/changelogs/953.txt | 2 +- .../metadata/android/sr/changelogs/967.txt | 1 + .../metadata/android/sr/changelogs/968.txt | 7 + .../metadata/android/sr/full_description.txt | 2 +- .../metadata/android/sr/short_description.txt | 2 +- .../metadata/android/tr/changelogs/63.txt | 8 + .../metadata/android/tr/changelogs/64.txt | 8 + 39 files changed, 645 insertions(+), 358 deletions(-) create mode 100644 app/src/main/res/values-mr/strings.xml create mode 100644 fastlane/metadata/android/bn/changelogs/770.txt create mode 100644 fastlane/metadata/android/de/changelogs/967.txt create mode 100644 fastlane/metadata/android/es/changelogs/64.txt create mode 100644 fastlane/metadata/android/es/changelogs/850.txt create mode 100644 fastlane/metadata/android/et/changelogs/967.txt create mode 100644 fastlane/metadata/android/it/changelogs/63.txt create mode 100644 fastlane/metadata/android/it/changelogs/64.txt create mode 100644 fastlane/metadata/android/sr/changelogs/967.txt create mode 100644 fastlane/metadata/android/sr/changelogs/968.txt create mode 100644 fastlane/metadata/android/tr/changelogs/63.txt create mode 100644 fastlane/metadata/android/tr/changelogs/64.txt diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b7b29027862..96f583049af 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -55,7 +55,7 @@ خطأ تعذر تحليل الموقع تعذر فك تشفير توقيع رابط الفيديو - اضغط\"بحث\" للبدء + اضغط على \"العدسة المكبرة\" للبدء \n اشتراك مشترك diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index 26115d64bdb..f47422d5a13 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -1,13 +1,13 @@ - 点击 “搜索” 开始使用 + 点击“搜索”开始使用 \n %1$s 次观看 发布于 %1$s 在浏览器中打开 在悬浮窗中打开 - 您要找的是不是:%1$s? - 找不到串流播放器. (您可以安装 VLC 进行播放) + 您要找的是不是“%1$s”? + 找不到串流播放器(您可以安装 VLC 以播放串流)。 下载串流文件 安装 取消 @@ -15,7 +15,7 @@ 下载 搜索 设置 - 分享给... + 分享给 选择浏览器 视频下载路径 已下载的视频将存储于此 @@ -76,19 +76,19 @@ 服务器不接受多线程下载, 使用 @string/msg_threads = 1 重试 自动恢复上次播放 清空数据 - 播放历史已删除 + 播放历史已删除。 喜欢 不喜欢 - 使用Tor - [实验性]通过 Tor 强制播放以增强隐私(暂不支持串流视频) + 使用 Tor + (实验性)强制通过 Tor 下载以增强隐私(暂不支持通过 Tor 串流播放视频)。 反馈错误 用户反馈 - 无法创建下载目录\"%1$s\" - 已成功创建下载目录「%1$s」 + 无法创建下载目录“%1$s” + 已创建下载目录“%1$s” 视频 音频 重试 - 访问存储权限已被拒绝 + 请先授予访问存储权限 %s 次观看 @@ -110,11 +110,11 @@ 请稍候… 复制至剪贴板 悬浮窗播放 - 关于NewPipe + 关于 NewPipe 设置 关于 第三方许可 - © %1$s :开发者 %2$s (使用 %3$s 许可证) + © %1$s 由 %2$s 遵循 %3$s 协议发布 无法加载许可证 打开网站 关于 @@ -126,9 +126,10 @@ 字母和数字 特殊字符 没有结果 - 无订阅者 + 无人订阅 - %s 位订阅者 + %s 人订阅 + 无视频 拖动以重新排序 @@ -138,7 +139,7 @@ 退出 重命名 未安装可播放此文件的应用程序 - 已删除一项 + 已删除一个项目。 自定义主页显示的标签页 列表视图模式 已完成 @@ -152,16 +153,16 @@ %s 个下载已完成 没有评论 切换服务,当前选择: - 找不到串流播放器\\n需要安装 VLC 吗? + 找不到串流播放器。是否安装 VLC? 旋转 使用外部视频播放器 使用外部音频播放器 音频下载文件夹 从其他应用调用 NewPipe 时播放视频 默认分辨率 - 未找到 Kore\\n需要安装 Kore ? - 显示 \"使用 Kodi 播放\" 选项 - 显示 \"通过 Kodi media center 播放视频\" 的选项 + 未找到 Kore。是否安装 Kore? + 显示“使用 Kodi 播放”选项 + 显示“通过 Kodi 媒体中心播放视频”选项 音频 默认音频格式 显示“接下来”和“相似视频” @@ -184,9 +185,9 @@ 无法获得任何串流 无法加载图像 App/UI 崩溃 - 抱歉, 这本不该发生 + 抱歉, 这本不该发生。 使用电子邮件反馈错误 - 抱歉, 发生了一些错误 + 抱歉, 发生了一些错误。 反馈 信息: 发生了什么: @@ -194,38 +195,38 @@ 您的附加说明(请用英文): 详细信息: 视频预览缩略图 - 播放视频,时长: + 播放视频,时长: 视频上传者的头像缩略图 十亿 错误的 URL 或未联网 - NewPipe正在下载文件 + NewPipe 正在下载 请稍后在设置中设定下载目录 使用悬浮窗模式 \n需要该权限 - reCAPTCHA验证 - 已请求新的CAPTCHA验证 + reCAPTCHA 验证 + 已请求新的 reCAPTCHA 验证 NewPipe 悬浮窗模式 在悬浮窗中播放 默认分辨率(悬浮窗模式) 使用更高的分辨率 - 仅在某些设备上支持播放 2K / 4K 视频 + 只有某些设备支持播放 2K 或 4K 视频 清除 - 记住悬浮窗属性 + 记住悬浮窗属性(大小与位置) 记住上一次使用悬浮窗的大小和位置 悬浮窗 - 在部分分辨率下将没有音频 + 部分分辨率下没有音频 手势控制播放器 允许使用手势控制亮度和音量 搜索时显示搜索建议 最佳分辨率 - 开源且小巧的 Android 媒体播放器 - 在GitHub上查看 - NewPipe开源许可证 - 你是否想过要翻译、设计、清理或重构代码 ——我们始终欢迎你来贡献! + 开源且小巧的 Android 媒体播放器。 + 在 GitHub 上查看 + NewPipe 的许可证 + 你是否想过要翻译、设计、清理或重构代码——我们始终欢迎你来贡献! 阅读许可证 贡献 替换字符 - 取消订阅频道 + 已取消订阅频道 无法修改订阅 无法更新订阅 主页 @@ -247,7 +248,7 @@ NewPipe 在后台播放和悬浮窗播放时在通知栏中显示通知 默认视频格式 行为 - 空空如也... + 空空如也 无人观看过 项目已删除 是否删除此条搜索历史记录? @@ -262,7 +263,7 @@ 选择一个时下流行页 『时下流行』 趋势 - 前50 + 前 50 最新与热门 显示 \"长按添加\" 说明 在视频详情页中,长按背景播放或悬浮窗播放按钮时显示提示 @@ -280,10 +281,10 @@ 开始后台播放 开始在悬浮窗中播放 捐赠 - NewPipe是由志愿者开发的,他们利用自己的空闲时间为您带来最佳的用户体验。在开发者享受一杯咖啡的时候,回报他们,帮助他们让NewPipe变得更好。 - 反馈 + NewPipe 由志愿者开发,他们利用自己的空闲时间,为您带来最佳的用户体验。是时候回馈他们,让他们享受一杯咖啡,帮助开发者们让 NewPipe 变得更好。 + 回馈 官网 - 请访问 NewPipe 网站了解更多信息和讯息 + 请访问 NewPipe 网站以了解更多信息和新闻。 视频默认国家/地区 切换方向 切换到后台播放 @@ -307,13 +308,13 @@ 导出历史记录、订阅、播放列表和设置 导出成功 导入成功 - 没有有效的ZIP文件 + 没有有效的 ZIP 文件 警告: 无法导入所有文件 此操作会覆盖当前设置 显示信息 收藏 - 是否删除该条搜索历史记录吗? - 是否确定删除所有历史记录? + 是否删除这条观看历史记录? + 是否删除所有历史记录? 最近观看 最多观看 每次询问 @@ -334,7 +335,7 @@ 适应屏幕 填充屏幕 缩放画面 - 敬请期待 + 敬请期待 ;D 调试 自动生成 『内存泄漏监视』可能导致应用在『核心转储』时无响应 @@ -346,13 +347,13 @@ 播放完(非循环)列表中的最后一个视频后,自动将一个相关视频添加到当前播放列表 没有该文件夹 无相似文件/内容源 - 该文件不存在 或 缺少读写文件权限 + 文件不存在,或缺少读写文件权限 文件名不能为空 - 发生错误: %1$s + 发生错误:%1$s 导入/导出 导入 导入自… - 导出到... + 导出到… 正在导入… 正在导出… 导入文件 @@ -387,8 +388,8 @@ 音调 解除音视挂钩(可能导致失真) 首选“打开”操作 - 打开内容时默认操作:- %s - 无可下载的串流 + 打开内容时的默认操作 - %s + 没有可下载的串流 字幕 修改播放器字幕比例和背景样式, 重启应用生效 删除串流播放历史和播放痕迹记录 @@ -396,12 +397,12 @@ 清空搜索历史 清空搜索历史关键词 是否删除全部搜索历史? - 搜索历史已删除 + 搜索历史已删除。 NewPipe 是版权自由软件:您可以随时使用、研究共享和改进它。您可以根据自由软件基金会发布的 GNU 通用公共许可证GPLv3或(由您选择的)任何更高版本的许可证重新分发或修改该许可证。 是否要导入设置? NewPipe 隐私政策 NewPipe 项目非常重视您的隐私。因此,未经您的同意,应用程序不会收集任何数据。 -\nNewPipe 的隐私政策详细解释了在发送崩溃报告时发送和存储的数据。 +\nNewPipe 的隐私政策详细解释了发送崩溃报告时会发送和存储的数据。 阅读隐私政策 为了遵守欧盟的《通用数据保护条例 (GDPR)》,我们特此提醒您注意 NewPipe 的隐私政策,请您仔细阅读, \n您必须在同意以后才能向我们发送错误报告! @@ -423,7 +424,7 @@ 使用手势控制播放器的亮度 视频默认语言 应用更新通知 - NewPipe有新版本的通知 + 当 NewPipe 有新版本时发送通知 外置存储不可用 无法下载到外部 SD 卡,修改下载文件夹位置? 读取已保存标签时发生错误,因此使用默认标签 @@ -463,9 +464,9 @@ 关闭 记录播放痕迹历史 再次打开播放过的视频时, 自动定位到上次播放时位置 - 播放痕迹显示 + 在列表中显示历史播放位置 在列表中,使用底端进度条显示某一视频上次播放时的播放位置 - 已删除播放痕迹历史 + 已删除播放痕迹历史。 文件已被移动或被删除 该名称的文件已经存在 命名冲突,已存在具有该名称的文件 @@ -501,10 +502,10 @@ %s 位听众 - 语言更改 将在 重启应用 后生效 + 语言更改将在重启应用后生效。 PeerTube 服务器 - 设置自定义PeerTube服务器 - 查找你需要的服务器%s + 设置自定义 PeerTube 服务器 + 查找你需要的服务器 %s 添加服务器 输入服务器网址(URL) 无法验证服务器 @@ -524,7 +525,7 @@ 授予在其他应用上层显示的权限 Newpipe应用语言 [系统默认] - 完成后请按“完成” + 完成后请点击“完成” 完成 视频 @@ -587,7 +588,7 @@ 歌曲 该视频有年龄限制! \n -\n如果您想要观看,请在设置中启用\"%1$s\" +\n如果您想要观看,请在设置中启用“%1$s”。 由 %s 由%s创建 频道的头像缩略图 @@ -598,53 +599,53 @@ 移除看过的视频 来自服务的原始文本将在串流项目中可见 显示原始时间 - 打开YouTube\"受限模式\" + 启用 YouTube“受限模式” 仅显示未分组订阅 播放列表页 尚无收藏 选择播放列表 - 请检查您的问题是否已经存在\\n创建重复票证时, 您需要从我们那里花些时间来让我们修复真正的bug - 在GitHub上反馈 + 请先检查您的要提交的问题是否已经存在。如果你创建了重复的反馈, 就会额外耗费我们用来修复这个问题的宝贵时间。 + 在 GitHub 上反馈 复制已整理的报告 - 显示结果: %s + 显示结果:%s 从不 仅在Wi-Fi下 视频开始播放后,自动定位到上次播放时的位置 — %s 播放列表 - 无法识别该URL,用其他应用打开\? + 无法识别此 URL。是否用其他应用打开\? 自动加入播放列表 - 活跃播放列表将被替换 + 当前播放列表将被替换 从一个播放器切换到另一个播放器后,你的播放列表可能会被替换 清空播放列表前再次确认 - 缓冲 + 正在缓冲 随机播放 单曲循环 - 您最多可以选择显示在紧凑通知中的三个操作选项! - 点击编辑下面的每个通知动作\\n使用右方的复选框,选择显示在紧凑通知中的动作,最多三个 + 最多只能选择三个紧凑通知操作! + 点击编辑下面的每一个通知动作。使用右方的复选框选择在紧凑通知中显示的动作,最多可以选择三个。 第五操作按钮 第四操作按钮 第三操作按钮 第二操作按钮 第一操作按钮 - 将通知中视频缩略图长宽比从 16:9 强制缩放到 1:1 (可能导致失真) + 将通知中视频缩略图的长宽比从 16:9 强制缩放到 1:1(可能会导致失真) 强制缩放缩略图至 1:1 比例 - 通知栏 + 通知 显示内存泄漏 已加入队列 加入队列 - 清空本地存储的reCAPTCHA验证码相关cookies - reCAPTCHA cookies 已被清空 - 清空 reCAPTCHA cookies - YouTube提供了“受限模式”,将隐藏潜在的成人内容 - 展示可能不适合儿童观看的内容,因为有年龄限制(比如18岁以上) + 清空与本地存储的 reCAPTCHA 验证码有关的 cookie + reCAPTCHA cookie 已被清空 + 清空 reCAPTCHA cookie + YouTube提供了“受限模式”,可以隐藏潜在的成人内容 + 展示有年龄限制的、可能不适合儿童观看的内容(比如18+) 让Android系统根据视频缩略图的主色彩自主决定通知颜色(注意,该特性仅在部分设备上可用) 自动着色通知 锁屏背景和通知中使用缩略图 显示缩略图 视频哈希值计算通知 - 视频正在哈希值计算时显示的通知 - 计算哈希值中 + 正在计算视频哈希值时显示的通知 + 正在计算哈希值 最近 打开显示关于视频创建者及内容或搜索请求的额外元信息框 显示元数据信息 @@ -662,7 +663,8 @@ 此内容是私有的,因此 NewPipe 无法流式传输或下载该内容。 这是 SoundCloud Go +曲目,至少在你所在的国家/地区如此 NewPipe 无法流式传输或下载它。 此内容在你所在的国家/地区不可用。 - 这个视频有年龄限制\\n由于 YouTube 新的针对此类视频的政策,NewPipe 无法访问其任何视频流,因此无法播放该视频 + 这个视频有年龄限制。 +\n由于 YouTube 针对此类视频的新政策,NewPipe 无法访问其任何视频流,因此无法播放该视频。 处理 电台 精选 diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index 51430f854b5..aeec3cc43c8 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -320,7 +320,7 @@ হয়েছে ইভেন্টগুলো আপডেট - কোনটি না + কোনোটি না স্বীকার করো অস্বীকার করো ক্যাপশন diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index ed4bbe8fcd2..045ef222f6f 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -222,8 +222,8 @@ ইভেন্টগুলো ট্র্যাক ভিডিও গুলি - প্লেলিস্ট - প্লেলিস্ট + চালু তালিকা + চালু তালিকা চ্যানেলগুলো চ্যানেল সবগুলি @@ -231,7 +231,7 @@ ডাউনলোডগুলি ডাউনলোডগুলি লাইভ - YouTube নিষিদ্ধ মোড + YouTube \"নিষিদ্ধ মোড\" চালু করুন বয়স সীমাবদ্ধ কন্টেন্ট দেখাও কন্টেন্ট পপআপ মোডে চলছে @@ -299,40 +299,40 @@ প্রথম ক্রিয়া বোতাম থাম্বনেলে ১:১ অনুপাতে করো Kodi মিডিয়া সেন্টারে এর মাধ্যমে ভিডিও প্লে করার জন্য একটি বিকল্প প্রদর্শন কর - দেখাও \"Kodi এর মাধ্যমে চালাও \" বিকল্প + \"Kodi দ্বারা চালান\" বিকল্পটি প্রদর্শন কর হারানো কোর ইনস্টল করবেন\? - Kodi এর মাধ্যমে চালাও + Kodi দ্বারা চালাও শুধুমাত্র কিছু ডিভাইস 2K/4K ভিডিও চালাতে পারে - উচ্চ রেজোল্যুশন দেখাও - ডিফল্ট পপআপ রেজোল্যুশন + উচ্চতর রেজুলেশন প্রদর্শন করা হবে + ডিফল্ট পপ-আপ রেজোল্যুশন ডিফল্ট রেজোল্যুশন - স্বয়ংক্রিয়ভাবে একটি ভিডিও প্লে করো যখন NewPipe অন্য অ্যাপ্লিকেশন থেকে চালু করা হয় - স্বয়ংক্রিয়ভাবে প্লে করো যখন অন্য অ্যাপ্লিকেশন থেকে চালু করা হয় + স্বয়ংক্রিয়ভাবে একটি ভিডিও প্লে করে যখন NewPipe অন্য অ্যাপ্লিকেশন থেকে চালু করা হয় + স্বয়ংক্রিয় চালু প্রভাব দৃশ্যমান করার জন্য ডাউনলোড ফোল্ডার পরিবর্তন করুন অডিও ফাইলগুলির জন্য ডাউনলোডের ফোল্ডার নির্বাচন করুন - ডাউনলোড করা অডিও এখানে রাখা হয় + ডাউনলোড করা অডিও ফাইলগুলি এখানে সঞ্চিত থাকে অডিও ডাউনলোড ফোল্ডার - ভিডিওগুলির জন্য ডাউনলোডের পাথ নির্বাচন কর + ভিডিওগুলি ডাউনলোডের জন্য ফোল্ডার নির্বাচন করুন ডাউনলোড করা ভিডিওগুলো এখানে থাকে ভিডিও ডাউনলোড করার ফোল্ডার যুক্ত করুন - পপআপ + পপ-আপ ব্যাকগ্রাউন্ড ট্যাব পছন্দ করুন নতুন ট্যাব - বুকমার্ককৃত প্লেলিস্টসমূহ - সাবস্ক্রিপশন + বুকমার্ক করা প্লেলিস্টসমূহ + সদস্যতা প্রধান তথ্য দেখুন - সাবস্ক্রিপশন আপডেটে ব্যার্থ - সাবস্ক্রিপশন পরিবর্তন করা যায়নি + সদস্যতা হালনাগাদে ব্যর্থ + সদস্যতা পরিবর্তন করা যায়নি চ্যানেল থেকে আনসাবস্ক্রাইব্ড আনসাবস্ক্রাইব সাবস্ক্রাইব করা আছে সাবস্ক্রাইব - পপআপ মোড + পপ-আপ মোড বহির্গত অডিও প্লেয়ার ব্যবহার করুন - কিছু কিছু রেজোলিউশনে অডিও বন্ধ করে দেয় + কিছু রেজোলিউশনে অডিও অপসারণ করে দেয় বাইরের ভিডিও প্লেয়ার ব্যবহার করুন ঘূর্ণন ব্রাউজার বাছাই করুন @@ -351,7 +351,7 @@ কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি (প্লে করতে VLC ইন্সটল করতে পারেন). কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চাও\? প্রকাশকাল %1$s - %1$s জন দেখছে + %1$s জন দেখেছে \"অনুসন্ধান\" এ চাপ দিয়ে শুরু করুন \n বাফারিং @@ -390,20 +390,20 @@ বিজ্ঞপ্তি বাধার পর প্লে চালিয়ে যাও (উদাহরণস্বরূপ ফোনকল) সদস্যতা রপ্তানি করা যায়নি - সদস্যতা/সাবস্ক্রিপশন আমদানি করা যায়নি + সদস্যতা আমদানি করা যায়নি স্বয়ংক্রিয়ভাবে উৎপাদিত (কোনও আপলোডার পাওয়া যায়নি) পছন্দ-তালিকা মুছে ফেলা যায়নি। প্লে-তালিকা থাম্বনেইল হিসেবে সেট করো কোনও বৈধ জিপ ফাইল নেই এখনো কোন প্লে-তালিকা বুকমার্ক নেই - এখনও কোনও চ্যানেল সাবস্ক্রিপশন নেই + এখনও কোনও চ্যানেল সদস্যতা নেই মূল পৃষ্ঠার বিষয়বস্তু ফাইলের নামে অনুমোদিত অক্ষরসমূহ সমাধান হয়ে গেলে \"সম্পন্ন\" টিপো কেউ শুনছে না কেউ দেখছে না সেবাটি পরিবর্তন করো, বর্তমানে নির্বাচিত: - এখানে ঝিঝিপোকা ছাড়া আর কিছু নেই + ঝিঝিপোকা ছাড়া কিছুই নেই এখানে এই ধরনের কোন ফাইল/বিষয়বস্তুর উৎস নেই অপুনরুদ্ধারযোগ্য প্লেয়ার ত্রুটি ঘটেছে পপআপ প্লেয়ারে সারিবদ্ধ @@ -417,7 +417,7 @@ একটি পপ-আপে প্লে শুরু করো পটভূমিতে প্লে শুরু করো অ্যান্ড্রয়েডে মুক্তভাবে ও সহজে প্রচার দেখার অ্যাপ। - ইতিহাস, সদস্যতা এবং পছন্দ-তালিকা রপ্তানি করো + ইতিহাস, সদস্যতা, চালুতালিকা এবং পছন্দসমূহ রপ্তানি করুন \"সংযোজন করতে ধরে রাখো\" পরামর্শ দেখাও উপলব্ধ হলে আলাদা ফিড থেকে এনো সার্ভার ডেটা পাঠায় না @@ -502,16 +502,16 @@ %d নির্বাচিত %d সমূহ নির্বাচিত - সাবস্ক্রিপশন নির্বাচন করো + সদস্যতা নির্বাচন করো ফিড প্রক্রিয়া করা হচ্ছে… চ্যানেল গ্রুপ অধ্যায় মতামত বর্ণনা - দিয়ে খুলো + দিয়ে খুলুন ফিড হালনাগাদ সীমা খালি গ্রুপ নাম - কোনো সাবস্ক্রিপশন নির্বাচিত হয়নি + কোনো সদস্যতা নির্বাচিত হয়নি %d: লোড হয়নি দেখা ভিডিওগুলো সরাও\? একটি ইন্সট্যান্স নাও @@ -535,7 +535,7 @@ সাজাতে টানো প্রতিবেদন অনুলিপি করো শুধুমাত্র অদলবদ্ধ সদস্যতা দেখাও - ফিড শেষে হালনাগাদ করা হয়েছে: %s + ফিড শেষ হালনাগাদ করা হয়েছে: %s কোথায় ডাইনলোড করবো জিজ্ঞেস করো পরিমাপকৃত নেটওয়ার্কে বাধা দাও এই ডাউনলোড উদ্ধার করা যাচ্ছে না @@ -587,5 +587,21 @@ পছন্দসমূহ কি আমদানি করতে চাও\? অবৈধ অক্ষরগুলো এই মান দ্বারা প্রতিস্থাপিত অন্য অ্যাপের উপরে দেখাতে অনুমতি দাও - %s-এ তোমার পছন্দের ইন্সট্যান্স খুঁজো + %s-এ আপনার পছন্দের ইন্সট্যান্স খুঁজুন + প্লে করা স্ট্রিমের ইতিহাস এবং প্লেব্যাক অবস্থানগুলি মুছে দেয় + এই ভিডিওটি বয়সসীমাবদ্ধ । +\n +\nআপনি এটি দেখতে চাইলে সেটটিংসে \"%1$s\" চালু করুন । + Youtube একটি \"সীমাবদ্ধ মোড\" সরবরাহ করে যা সম্ভাব্য বয়সসীমাবদ্ধ বিষয়গুলি গুপ্ত রাখে + শিশুদের জন্যে সম্ভবত অনুপযুক্ত বিষয়গুলোও দেখান যেগুলির একটি বয়সসীমা রয়েছে (যেমন ১৮+ বিষয়সমূহ) + ইউআরএলটি চিন্থিত করা যায়নি | অন্য এপ্লিকেশন এ খুলতে চান \? + এই ফাইলে কাজ করার সময় নিউপাইপ বন্ধ করা হয়েছে + এই নামের একটি ডাউনলোড প্রক্রিয়ারত + সংরক্ষিত ট্যাব পড়া যায় নি, তাই সহজাতটি ব্যবহার করা হচ্ছে + তোমার ইতিহাস, সদস্যতা, চালুতালিকা আর (ঐচ্ছিকভাবে) পছন্দসমূহ উপেক্ষা করো + তোমার পছন্দের অন্ধকার রঙ নির্বাচন করো + তোমার দেশে এটি অনুপলুব্ধ। + তোমার ডিভাইসের কোনো অ্যাপ এটি খুলতে পারে না + একটি ডাউনলোড একই সময়ে চলতে পারবে + ডাউনলোড বাতিল করার আগে সর্বোচ্চ চেষ্টা \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9841b787a54..8fb016913cc 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -681,4 +681,5 @@ Selecciona tu tema nocturno favorito — %s Automático (tema del dispositivo) Mostrar detalles del canal + Destacado \ No newline at end of file diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 0e8defb7e33..171b0d04423 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -1,6 +1,6 @@ - Alustamiseks toksa \"Otsi\" + Alustamiseks toksa \"Luubi ikooni\" \n %1$s vaatamist Avaldatud %1$s @@ -314,8 +314,8 @@ Kustuta Nimeta ümber Nimi - Lisa pleilisti - Määra pleilisti pisipildiks + Lisa esitusloendisse + Määra esitusloendi pisipildiks Lisa pleilist järjehoidjaks Eemalda järjehoidja Kas kustutada see pleilist? @@ -498,4 +498,96 @@ Skaleeri teavituses kuvatav video pisipilt 16:9 külgede suhtest 1:1 suhtesse (võib põhjustada häireid) Skaleeri pisipilt 1:1 küljesuhtesse Vaheta alla laadimise kaust, et muudatused rakendada + Arvutan räsi + Hiljutised + Kirjeldus + Peatükid + Ükski sinu seadme rakendus ei saa seda avada + Jooksuta rakendus kokku + See sisu ei ole sinu riigis saadaval. + Vähemalt sinu riigis on see SoundCloud Go+ teenuse lugu, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida. + See sisu on privaatne, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida. + See video on saadaval ainult YouTube Music Premium teenuse tellijatele, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida. + See sisu on kättesaadav ainult tasulise teenuse kasutajatele, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida. + Lahenda + Esiletõstetud + Raadio + Automaatne (seadme teema) + Vali eelistatud teema öiseks kasutuseks — %s + Järgnevalt saad sa valida sobiva teema öiseks kasutuseks + Allalaadimine algas + Sarnane meedia + Näita kanali lisateavet + Luba rakendust kuvada teiste rakenduste peal + Teata sellest GitHub\'is + Kommentaarid + Mitte keegi hetkel seda videot ei vaata + + %s vaataja + %s vaatajat + + Mitte keegi hetkel seda pala ei kuula + + %s kuulaja + %s kuulajat + + Teavitused video räsimise edenemise kohta + Võta kasutusele YouTube\'i „Piiratud režiim“ + Faili asukoht on muutunud või on ta kustutatud + Taasesituste asukohad on kustutatud. + Abiteave + Kas kustutame kõik taasesituste asukohad\? + Kustutab kõik taasesituse käigus salvestatud asukohad + Kustuta taasesituste asukohad + Kustuta küpsised, mille NewPipe on reCAPTCHA vastamise ajal salvestanud + reCAPTCHA küpsised on kustutatud + Kustuta reCAPTCHA küpsised + Teavitus video räsi kohta + Esitajad + Albumid + Laulud + Videod + Sellel videol on vanusepiirang. +\nVastavalt YouTube uuetele reeglitele, mis käitlevad vanusepiirangutega materjali, NewPipe ei saa seda kätte ning vastavalt ei suuda seda ka esitada. + Sellel videol on vanusepiirang. +\n +\nKui sa soovid seda näha, siis lülita seadistustest „%1$s“ sisse. + YouTube\'is leiduv „Piiratud režiim“ peidab võimaliku täiskasvanutele mõeldud sisu + Näita sisu, mis vanusepiirangu tõttu ilmselt ei sobi lastele (näiteks 18+) + Teavitus + Sa saad kasutada vaid HTTPS-urle + Öine teema + Ei iialgi + Vaid Wi-Fi võrgus + Alusta esitamist automaatselt — %s + Näita mälulekkeid + Automaatselt loodud (üleslaadita ei leidu) + Lõpeta summutamine + Summuta + Esitusjärjekorda lisatud + Enim meeldimisi + Esitusjärjekord + Lisa esitusjärjekorda + Hiljuti lisatud + Kohalikud + Keele muutus jõustub rakenduse uuesti käivitamisel. + Kommentaaride laadimine ei õnnestunud + Esitusloendi järjehoidjaid veel pole + Vali esitusloend + Vaikimisi seadistatud kiosk + Valmis + Kui oled lõpetanud, siis vajuta „Valmis“ nuppu + Kommentaare pole + ∞ videot + 100+ videot + Sulge + Kustutasin %1$d allalaaditud faili + Kustuta allalaaditud failid + Kas sa soovid kustutada allalaadimiste ajaloo või allalaaditud failid\? + Kustuta allalaadimiste ajalugu + Seda allalaadimist ei saa uuesti alustada + Ühendus aegus + Seadmes pole enam ruumi + Sellise nimega allalaadimine on juba pooleli + faili asendamine ei õnnestu \ No newline at end of file diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index faa73f1c2a9..583a74513c4 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -2,29 +2,29 @@ %1$s व्यूज %1$s को प्रकाशित हुआ - कोई स्ट्रीम प्लेयर नहीं मिला। क्या आप VLC इंस्टॉल करना चाहेंगे\? + स्ट्रीमिंग के लिए प्लेयर नहीं मिला। क्या आप VLC इंस्टॉल करना चाहेंगे\? इंस्टॉल करें ब्राउज़र में खोलें पॉपअप मोड में खोलें शेयर करें - डाउनलोड + डाउनलोड करे सर्च करे सेटिंग्स ब्राउज़र चुनें स्क्रीन रोटेशन - पॉपअप mode + पॉपअप मोड सब्सक्राइब करें - Subscribed - Channel unsubscribed - सदस्यता - पीछे + सब्सक्राइबड + चैनल अनसब्सक्राइब हुआ + सब्सक्रिप्शनस + बैकग्राउंड पॉपअप ऑटोप्‍ले करें ऑडियो - हलका - काली - देखे हुए वीडियो की सूची - डाउनलोड + लाइट + ब्लैक + देखे हुए विडियोज का इतिहास + डाउनलोड करे वीडियो और ऑडियो History and cache बैकग्राउंड में चल रहा है @@ -55,48 +55,48 @@ \n कैंसल करे क्या आप का मतलब \"%1$s\" था\? - किस से शेयर करे - कोई दूसरा विडियो प्लेयर उपयोग करें + के साथ शेयर करे + कोई दूसरा विडियो प्लेयर इस्तेमाल करें कुछ विडियो रिजॉल्यूशनस पर ऑडियो हट सकती है कोई दूसरा ऑडियो प्लेयर उपयोग करें मुख्य - Subscription बदला नहीं जा सका - सदस्यता का अद्यतन नहीं हो सका + सब्सक्रिप्शन बदला नहीं जा सका + सब्सक्रिप्शन अपडेट नहीं किया जा सका देखे की क्या नया है - वीडियो डाउनलोड फ़ोल्डर + वीडियो डाउनलोड का फ़ोल्डर डाउनलोड की गई वीडियो फ़ाइलें यहां संग्रहीत हैं वीडियो फ़ाइलों के लिए डाउनलोड फ़ोल्डर चुनें ऑडियो डाउनलोड फ़ोल्डर - डाउनलोड की गई वीडियो फ़ाइलें यहां संग्रहीत हैं + डाउनलोड की गई ऑडियो फ़ाइलें यहां संग्रहीत हैं ऑडियो फ़ाइलों के लिए डाउनलोड फ़ोल्डर चुनें - अन्य अप्प के द्वारा NewPipe के आह्वान पर वीडियो तुरंत चले - वीडियो का डिफ़ॉल्ट रिज़ॉल्यूशन - विडियो पॉपअप का डिफ़ॉल्ट रिज़ॉल्यूशन - उच्च रिज़ॉल्यूशन दिखाएं - केवल कुछ ही यंत्र है जो 2K/4K विडियो चला सकते हैं + दूसरे ऐप द्वारा न्यूपाइप को बुलाने पर तुरंत वीडियो चलाएं + डिफ़ॉल्ट रिज़ॉल्यूशन + पॉपअप का डिफ़ॉल्ट रिज़ॉल्यूशन + उच्च रिज़ॉल्यूशनस दिखाएं + केवल कुछ ही डिवाइस 2K/4K मे विडियो चला सकते हैं Kodi से चलायें - Kore एप्प नहीं मिली, इसे इनस्टॉल करें\? + Kore ऐप नहीं मिली, इसे इनस्टॉल करें\? \"Kodi से चलायें\" वाला विकल्प दिखाएँ - कोडी मीडिया सेंटर के माध्यम से वीडियो चलाने के लिए एक विकल्प प्रदर्शित करें - डिफ़ॉल्ट ऑडियो का फॉर्मेट - डिफ़ॉल्ट विडियो का फॉर्मेट - एप्प का नया रूप - काला - विडियो पॉपअप की आकर और उसकी स्थति को याद रखे - विडियो पॉपअप के पहले वाली आकर और उसकी स्थिति को याद रखे - प्लेयर इशारा नियंत्रण - प्लेयर की ब्राइटनेस और ध्वनी को नियंत्रण के लिए फ़ोन में इशारो का प्रयोग करे - खोज के सुझाव देखे - जब कुछ ढूंड रहे हो तो सुझाव दिखाये - खोज के इतिहास को देखे - खोज के query को फ़ोन की मेमोरी में ही रखे - देखे हुए विडियो की सूची रखे - वीडियो ज़ारी रखें + Kodi मीडिया सेंटर से विडियो चलाने के लिए विकल्प प्रदर्शित करें + डिफ़ॉल्ट ऑडियो फॉर्मेट + डिफ़ॉल्ट विडियो फॉर्मेट + ऐप थीम + डार्क + विडियो पॉपअप का आकर और उसकी स्थति को याद रखे + विडियो पॉपअप की आखिरी स्थिति और आकर को याद रखे + प्लेयर के गेस्चर कंट्रोल + प्लेयर की चमक और आवाज को नियंत्रित करने के लिए गेस्चर्स का इस्तेमाल करे + खोज के सुझाव + खोज के दौरान सुझाव दिखाये + खोज का इतिहास + खोज के डेटा को सिर्फ डिवाइस मेमोरी में रखे + देखे गए विडियोज की सूची रखे + वीडियो रूकावटे खत्म होने के बाद विडियो प्ले करे (जैसे - फ़ोन कॉल) - \'अगला\' और \'पहले समान\' वीडियो दिखाए + \'अगला\' और \'समान\' वीडियो दिखाए \"जोड़ने के लिए पकड़ें रहे\" दिखाए जब बैकग्राउंड और पॉपअप बटन विडियो के विवरण पन्ने में दबाई जाए तो tip को दिखाए - ये वाला URL इसमें नहीं चलेगा + असमर्थित URL डिफ़ॉल्ट विषय की भाषा प्लेयर चाल चलन @@ -235,8 +235,8 @@ यंहा से चलाना शुरू करे पृष्टभूमि में चलाना शुरू करे पॉपअप में चलाना शुरू करे - स्ट्रीम करने के लिए प्लेयर उपलब्ध नहीं है (आप इसे चलाने के लिए VLC प्लेयर इंस्टॉल कर सकते हैं)। - स्ट्रीम डाउनलोड करें + स्ट्रीमिंग करने के लिए कोई प्लेयर उपलब्ध नहीं है (आप इसे चलाने के लिए VLC प्लेयर इंस्टॉल कर सकते हैं)। + स्ट्रीम फाइल डाउनलोड करें जानकारी दिखाएं बुकमार्क किये गए प्लेलिस्टस में जोड़े @@ -306,15 +306,15 @@ ऑटो-जनरेटेड हीप डंप करने के दौरान मेमोरी लीक मॉनिटरिंग ऐप को अनुत्तरदायी बना सकता है Out-of-Lifecycle त्रुटियों की रिपोर्ट करें - छायाप्रारुप लोड करें - तेजी से अचूक तलाश का प्रयोग करें - अचूक खोज प्लेयर को कम परिशुद्धता के साथ तेजी से पदों की तलाश करने की अनुमति देता है| + थंबनेल लोड करें + तेज और अनिश्चित तलाश का प्रयोग करें + अनिश्चित खोज के कारण वीडियो प्लेयर कम सटीकता से लेकिन तेजी से वीडियो पोजीशन्स की तलाश कर सकता है। 5,15 या 25 सेकंड की तलाश में यह काम नहीं करता। थंबनेल लोड करने, डेटा और मेमोरी उपयोग को रोकने के लिए बंद करें। इन-मेमोरी और ऑन-डिस्क छवि कैश दोनों को बदलता है| - छवि कैश मिटा दिया - कैश मेटाडेटा वाइप करें - सभी कैश किए गए वेबपृष्ठ डेटा हटाएं - मेटाडाटा कैश मिटा दिया गया - अगली स्ट्रीम को स्वचालित रूप से जोड़ें + इमेज कैश मिटाया गया + कैश मेटाडेटा मिटाएं + कैश किए गए सभी वेबपेज का डेटा हटाएं + मेटाडाटा कैश मिटाया गया + अगली स्ट्रीम को ऑटोमैटिकली जोड़ें गैर-दोहराने वाली कतार में अंतिम स्ट्रीम चलाते समय संबंधित स्ट्रीम को स्वतः संलग्न करें फाइल चेनल्स @@ -382,14 +382,14 @@ पृष्ठभूमि प्लेयर में बदले पॉप अप प्लेयर में बदले न्यूपाइप एक काॅपीलेफ़्ट फ़्री साॅफ़्टवेर है: इसे आप अपनी इच्छा के अनुसार इस्तेमाल, जाँच, बाँट तथा और बेहतर बना सकते है। खास तौर पर आप इसे फ़्री साॅफ़्टवेर फ़ाउंडेशन के द्वारा जारी जीएनयू जनरल पब्लिक लाइसेंस के तीसरे या उसके बाद आने वाले कोई भी वर्णन के शर्तों के मुताबिक फिर से बाँट या बदल सकते हैं। - सदस्यता वापस ले ली - नया टॅब - टॅब चुने - वॉल्यूम नियंत्रण + अनसब्सक्राइब करे + नया टैब + टैब चुने + गेस्चर वॉल्यूम नियंत्रण कतार वीडियो प्लेयर की आवाज नियंत्रित करने के लिए गेस्चरस का इस्तेमाल करे - चमक बदलने का इशारा - वीडियो प्लेयर की चमक नियंत्रित करने के लिए गेस्चरस का इस्तेमाल करें + गेस्चर से चमक कंट्रोल करे + वीडियो प्लेयर की चमक को नियंत्रित करने के लिए गेस्चरस का इस्तेमाल करें अपडेट फाइल मिटा दी गयी अप्प अपडेट अधिसूचना @@ -435,16 +435,16 @@ मोबाइल डाटा का इस्तेमाल करते समय उपयोगी है, परन्तु कुछ डौन्लोडस रोके नहीं जा सकते है घटनायें सम्मेलनों - टिप्पणियाँ दिखाएं - टिप्पणियाँ छिपाने के लिए इसे बंद करे - ऑटोप्ले + कॉमेंट्स दिखाएं + कॉमेंट्स छिपाने के लिए इसे बंद करे + ऑटोप्ले करे कोई टिपण्णी नहीं टिप्पणियाँ लोड नहीं कर सका बंद करे - फिर से शुरू करे - आखरी प्लेबैक स्थान पर लौटे + प्लेबैक वापस चालू करें + आखिरी प्लेबैक पोजिशन पर वापस लौटे सूचियों में स्थान - प्लेबैक स्थान निशान सूचियों में दिखाए + प्लेबैक पोजिशन के निशान सूचियों में दिखाए डाटा मिटायें प्लेबैक स्थान मिटा दिए गए| फाइल की जगह बदली गयी या फिर फाइल मिटा दी गयी @@ -520,7 +520,7 @@ %s के द्वारा %s के द्वारा बनाया गया प्लेलिस्ट पृष्ठ - परिणाम दिखा रहे हैं : %s + %s : के लिए परिणाम दिखया जा रहा है हो गया कलाकार गाने @@ -538,25 +538,25 @@ बच्चों के लिए अनुपयुक्त सामग्री दिखाएं क्योंकि इसकी आयु सीमा है (जैसे 18) अधिसूचना केवल HTTPS यूआरएल ही समर्थित हैं - यूआरएल को नहीं पहचान पाये। दूसरे ऐप से खोलें\? - ऑटोमैटिक कतार करे - कतार को साफ़ करने से पहले पुष्टि के लिए पूछें - फास्ट-फ़ॉरवर्ड /- रिवाइंड अवधि की तलाश करें + URL की पहचान नहीं हो सकी। दूसरे ऐप से खोलें\? + ऑटोमैटिकली कतार करे + कतार को मिटाने से पहले सत्यापन के लिए पूछें + तलाश अवधि फास्ट-फ़ॉरवर्ड /- रिवाइंड करे एंड्रॉइड को थंबनेल में मुख्य रंग के अनुसार अधिसूचना के रंग को अनुकूलित करने दें (ध्यान दें कि यह सभी फोन पर उपलब्ध नहीं है) - अधिसूचना को रंग दें + नोटीफिकेशन को रंगीन करें कुछ नहीं बफरिंग Shuffle करे दोहराएं - कॉम्पैक्ट अधिसूचना में दिखाने के लिए आप अधिकतम तीन क्रियाओं का चयन कर सकते हैं! - इस पर टैप करके नीचे दी गई प्रत्येक सूचना को संपादित करें। दाईं ओर चेकबॉक्स का उपयोग करके कॉम्पैक्ट अधिसूचना में दिखाए जाने के लिए उनमें से तीन तक का चयन करें। + आप कॉम्पैक्ट नोटिफिकेशन में दिखाए जाने वाले ऑप्शन्स में से अधिकतम 3 को चुन सकते है ! + प्रत्येक नोटिफिकेशन को संपादित करने के लिए उस पर क्लिक करें। दाईं तरफ के चेकबॉक्स का इस्तेमाल करके नोटिफिकेशन में दिखाए जाने वाले अधिकतम 3 ऑप्शंस को चुना जा सकता है। पांचवा एक्शन बटन चौथा एक्शन बटन तीसरा एक्शन बटन दूसरा एक्शन बटन पहला एक्शन बटन - अधिसूचना में दिखाए गए वीडियो थंबनेल को 16: 9 से 1: 1 के अनुपात में दिखाया गया है (विकृतियों का परिचय दे सकता है) - वीडियो छवि को 1:1 के आस्पेक्ट अनुपात मैं देखें + नोटिफिकेशन में दिखाए गए वीडियो थंबनेल को 16: 9 के बजाय 1: 1 के अनुपात में दिखाए (इस कारण कुछ परेशानियां हो सकती हैं) + थंबनेल को 1:1 के अनुपात मैं दिखाएं %dघंटा %dघंटे @@ -594,11 +594,11 @@ वीडियो हैश अधिसूचना स्ट्रीम निर्माता, स्ट्रीम विषय सूची या खोज अनुरोध के बारे में अतिरिक्त जानकारी के साथ मेटा जानकारी बक्से को छिपाने के लिए बंद करें. मेटा जानकारी दिखाएँ - वीडियो विवरण और अतिरिक्त जानकारी छिपाने के लिए इसे बंद करें + वीडियो का विवरण और अतिरिक्त जानकारी छिपाने के लिए इसे बंद करें विवरण दिखाएं सक्रिय प्लेअर की क़तार बदल दी जाएगी एक प्लेअर से दूसरे प्लेअर में जाने से आपकी कतार बदल सकती है - के साथ खोलें + मे खोलें थंबनेल दिखाएं लॉक स्क्रीन और नोटिफिकेशन दोनों के लिए थंबनेल का इस्तेमाल करे पाठ diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 1e2b6bf172b..0ad1eb4aa42 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -32,7 +32,7 @@ Pozadina Skočni prozor Mapa za preuzimanje videozapisa - Preuzete video datoteke se spremaju ovdje + Ovdje se spremaju preuzete video datoteke Odaberi mapu za preuzimanje video datoteka Mapa za preuzimanje zvuka Preuzete audio datoteke se spremaju ovdje @@ -287,8 +287,8 @@ Prijeđi na pozadinu Prijeđi na skočni prozor Prijeđi na glavni - Uvoz baze podataka - Izvoz baze podataka + Uvezi bazu podataka + Izvezi bazu podataka Poništava vašu trenutačnu povijest, pretplate, playliste i (opcionalno) postavke Izvezi povijest, pretplate, playliste i postavke Izbriši povijest gledanja @@ -318,8 +318,8 @@ Jeste li sigurni da želite izbrisati sve stavke iz povijesti? Zadnje svirano Najviše svirano - Izvoz završen - Uvoz završen + Izvezeno + Uvezeno Nema važeće ZIP datoteke Upozorenje: Nije moguće uvesti sve datoteke. Ovo će poništiti vaše trenutne postavke. @@ -331,9 +331,9 @@ Uvoz… Izvoz… Uvoz datoteke - Prethodni izvozi - Nije moguće uvesti pretplatnike - Nije moguće izvesti pretplatnike + Prethodni izvoz + Nije bilo moguće uvesti pretplate + Nije bilo moguće izvesti pretplate Uvezite YouTube pretplatnike preuzimanjem izvozne datoteke Google-a: \n \n1. Idite na ovaj URL: %1$s @@ -390,7 +390,7 @@ Zadana zemlja sadržaja Otkrivanje grešaka Obavijest o ažuriranju aplikacije - Uključite ili isključite orijentaciju + Uklj/isklj orijentaciju Preuzimanje na vanjsku SD karticu nije moguće. Ponovo postaviti lokaciju mape za preuzimanje\? Vanjski playeri ne podržavaju ove vrste veza Nije pronađen nijedan videozapis @@ -440,7 +440,7 @@ Preuzeta datoteka s tim nazivom već postoji Datoteka s ovim nazivom se već preuzima Kod - Odredišna mapa se ne može stvoriti + Nije moguće stvoriti odredišnu mapu Datoteka se ne može stvoriti Sustav je odbio dozvolu Nije moguće uspostaviti sigurnu vezu @@ -612,7 +612,7 @@ Uklj/Isklj uslugu, trenutačno odabrana: Kopiraj formatirani izveštaj - Izbriši riješene reCAPTCHA kolačiće koje NewPipe sprema + Izbriši kolačiće koje NewPipe sprema nakon rješavanja reCAPTCHA reCAPTCHA kolačići su izbrisani Izbriši reCAPTCHA kolačiće Ovaj video je dobno ograničen. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 87e56a4d1f6..20ef2ae0039 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -46,18 +46,18 @@ Tetszik Nem tetszik Előnézeti kép - Előnézeti kép + Vidó lejátszása, időtartam: Fetöltő profilképe Nem lehet létrehozni a letöltési mappát \'%1$s\' Letöltés mappa létrehozása \'%1$s\' Tartalom - Korhatáros tartalom + Korhatáros tartalom megjelenítése Hiba A tartalom nem elérhető - Ez egy élő közvetítés, amely még nem támogatott. + Élő közvetítések még nem támogatottak Automatikus lejátszás Videók automatikus lejátszása, ha a NewPipe egy másik alkalmazásból lett indítva - ÉLŐ + Élő Jelentés Információ: Ez történt: @@ -65,11 +65,11 @@ Részletek: Sajnos hiba történt. Elnézést, ennek nem kellett volna megtörténnie. - Hibajelentés e-mailben + Hiba bejelentése e-mailben A stream nem elérhető Nem sikerült a letöltés menü beállítása Nem sikerült a videó URL aláírás azonosítása - Háttértárhoz való hozzáférés megtagadva + Előbb adj hozzáférést a tárhelyhez Újra Hibajelentés Felhasználói jelentés @@ -98,7 +98,7 @@ Katt a részletekért Kérlek várj… Vágólapra másolva - Kérlek válassz egy létező könyvtárat a letöltésekhez. + Kérlek adj meg egy letöltés könyvtárat a beállításokban Nem támogatott szerver Új küldetés Csatornáról leiratkozva @@ -156,8 +156,8 @@ [Ismeretlen] Adatbázis importálása Adatbázis exportálása - Felülírja a jelenlegi előzményeket és feliratkozásokat - Előzmények, feliratkozások és lejátszási listák exportálása + Felülírja a jelenlegi előzményeket, feliratkozásokat, lejátszási listákat és (opcionálisan) a beállításokat + Előzmények, feliratkozások, lejátszási listák és beállítások exportálása Kép betöltése sikertelen Alkalmazás/Kezelő felület összeomlott Videó lejátszása sikertelen @@ -188,7 +188,7 @@ Folytatás a háttérben Folytatás felugró ablakban Megtekintési előzmények törlése - Eltávolítja a megtekintési előzményeket + Eltávolítja a megtekintési előzményeket és a visszajátszás helyét Törlöd az összes megtekintési előzményt\? Megtekintési előzmények törölve. Keresési előzmények törlése @@ -197,13 +197,13 @@ Keresési előzmények törölve. Lejátszási hiba történt Lejátszási hiba helyreállítása - Érvénytelen könyvtár - Érvénytelen fájl vagy tartalom forrás - A fájl nem létezik vagy jogosultsági hiba lépett fel + Nincs ilyen mappa + Nincs ilyen fájl vagy tartalom forrás + A fájl nem létezik vagy jogosultság az olvasáshoz és íráshoz hiányzik A fájl neve nem lehet üres Hiba történt: %1$s Nincs letölthető adatforrás - Itt nincs semmi + Nincs itt semmi pár tücskön kívül Húzza az átrendezéshez e M @@ -251,7 +251,7 @@ Legyen ötleted a fordítással, a megjelenéssel, a forrás kód tisztításával vagy komolyabb átszervezésével kapcsolatban, bármilyen segítséget szívesen fogadunk. Járulj hozzá az alkalmazás fejlesztéséhez! Megtekintés GitHubon Adományozás - A NewPipe alkalmazást önkéntesek fejlesztik szabadidejükben, hogy a lehető legjobb élményt hozzák el neked. Járulj hozzá a fejlesztők kávéjához, hogy tovább dolgozhassanak az alkalmazáson! + A NewPipe alkalmazást önkéntesek fejlesztik az ő szabadidejükben, hogy a lehető legjobb felhasználói élményt hozzák el neked. Járulj hozzá, hogy segítsd a fejlesztőket amíg ők egy csésze kávét szürcsölnek, hogy még jobbá tehessük a NewPipe-ot. Hozzájárulás Honlap Látogasd meg a NewPipe honlapját további információkért és hírekért! @@ -283,8 +283,8 @@ Csatorna választása Még nincs csatorna feliratkozás Újságárus választása - Sikeres export - Sikeres import + Exportálva + Importálva Nem érvényes ZIP fájl Figyelmeztetés: nem sikerült az összes fájl importálása. Ez felül fogja írni a jelenlegi beállításokat. @@ -304,18 +304,18 @@ Mindig kérdezz rá Információk gyűjtése… Kért tartalom betöltése - Új lejátszási lista létrehozása - Lejátszási lista törlése - Lejátszási lista átnevezése + Új lejátszási lista + Törlés + Átnevezés Név Lejátszási listához adás - Beállítás lejátszási lista előképeként + Beállítás lejátszási lista indexképeként Könyvjelző törlése - Kívánja törölni ezt a lejátszási listát\? + Törlődjön ez a lejátszási lista\? Lejátszási listsa létrehozva - Lejátszási listához hozzáadva - Lejátszási lista előképe megváltozott - Nem sikerült a lejátszási lista törlése + Hozzáadva lejátszási listához + Lejátszási lista előképe megváltozott. + Lejátszási lista törlése nem sikerült. Felirat kikapcsolva Illeszkedés Kitöltés @@ -361,7 +361,7 @@ Ne tegyen semmit Lejátszás folytatása a háttérben Lejátszás folytatása felugró ablakban - Lejátszás folytatása a fókusz visszaszerzésekor + Lejátszás folytatása Mutassa a \"Tartsa lenyomva a hozzáadáshoz\" tippet Várólistához adva a háttérben Elforgatás @@ -608,4 +608,31 @@ Lejátszás a háttérben Sorhoz hozzáadva Sorhoz adás + Mentett fülek olvasása sikertelen, alapértelmezettek használata + Értesítések a videó hashelési folyamathoz + Videó hash értesítés + YouTube biztosít egy \"Korlátozott Módot\" ami elrejti a lehetséges felnőtteknek szóló tartalmat + YouTube \"Korlátozott Mód\"-jának bekapcsolása + A példány már létezik + Pédány érvényesítése nem sikerült + Példány URL megadása + Példány hozzáadása + A neked tetsző példányokat megtalálhatod itt: %s + Válaszd ki a kedvenc PeerTube példányaidat + PeerTube példányok + Lejátszó gesztus vezérlői + Életciklusából kifutott hibák jelentése + Preferált \'nyitási\' cselekedet + Fiók bezárása + Fiók megnyitása + Csatorna részleteinek megjelenítése + Tartsd hogy sorba állítsd + Alap Kiosk + Kiválasztás + A NewPipe egy copyleft szabad szoftver: Felhasználhatod, tanulmányozhatod, megoszthatod és fejlesztheted akaratod szerint. Konkrétan továbbadhatod és/vagy módosíthatod a GNU General Public License feltételei alatt ami a Free Software Foundation álltal lett publikálva, vagy a 3. verzióját a licensznek, vagy (a saját opciód szerint), bármelyik későbbi verzióját. + Megoldás + Nyomj a \"Kész\"-re amikor meg van oldva + Hash számítása + Összefüggő elemek + Kérlek ellenőrizd, hogy egy hiba, ami az összeomlásodat írja le, létezik-e már. Ha duplikált jegyet adsz be, időt veszel el tőlünk amit arra tudnánk fordítani, hogy kijavítsuk magát a bugot. \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 8a43a4f9081..5fd430d329c 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -10,7 +10,7 @@ Bagikan Unduh Telusuri - Setelan + Pengaturan Bagikan dengan Pilih browser Gunakan pemutar video eksternal @@ -159,8 +159,8 @@ Terlepas apakah Anda memiliki ide untuk; terjemahan, perubahan desain, pembersihan kode, atau perubahan kode yang signifikan, segala bantuan akan selalu diterima. Semakin banyak akan semakin baik jadinya! Baca lisensi Kontribusi - Melanggan - Berlanggan + Berlangganan + Disubscribe Apa Yang Baru Lanjutkan pemutaran Melanjutkan pemutaran setelah interupsi (mis. panggilan telepon) @@ -322,7 +322,7 @@ Putar otomatis streaming berikutnya Berhenti berlanggan channel Tidak bisa memperbarui langganan - Langganan + Subscription Gunakan tinjau cepat tak pasti Memungkinkan pengguna memilih posisi waktu video dengan cepat tetapi dengan tingkat presisi yang rendah. Mencari 5, 15 atau 25 detik tidak berhasil dengan ini. NewPipe adalah perangkat lunak libre copyleft: Anda bisa menggunakannya, mempelajarinya, berbagi, dan meningkatkannya. Secara khusus Anda bisa mendistribusikan ulang dan/atau memodifikasinya dibawah syarat Lisensi Publik Umum GNU yang diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi, atau (sesuai pilihan Anda) versi yang lebih baru. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a6894cdbca5..68677107f98 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -59,7 +59,7 @@ I contenuti in diretta non sono ancora supportati Contenuti Mostra contenuti con restrizioni di età - Tocca \"Cerca\" per iniziare + Tocca la lente d\'ingrandimento per iniziare \n Riproduzione automatica Riproduci i video quando NewPipe viene aperto da un\'altra app diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml new file mode 100644 index 00000000000..8c33a60bfbe --- /dev/null +++ b/app/src/main/res/values-mr/strings.xml @@ -0,0 +1,55 @@ + + + पहिले गेले + ऑटो प्ले + ऑडिओ फाईल साठी डाउनलोड फोल्डर निवडा + डाउनलोड केलेल्या ऑडियो फाईल येथे साठवल्या जातात + ऑडिओ डाउनलोड फोल्डर + व्हिडिओ फाईल डाऊनलोड करण्याचे फोल्डर निवडा + डाउनलोड केलेल्या फाईल येथे साठवल्या जातात + व्हिडिओ डाउनलोड फोल्डर + पॉप अप + पार्श्वभाग + टॅब निवडा + नवीन टॅब + बुकमार्क केलेली प्लेलिस्ट + सबस्क्रिप्शन + मुख्य + माहिती दाखवा + सबस्क्रिप्शन अद्यतनित करू शकले नाही + सबस्क्रिप्शन मध्ये बदल करू शकलो नाही + चॅनलचे सबस्क्राईब काढले + सबस्क्राईब काढा + सबस्क्राईब केले + सबस्क्राईब + पॉप अप मोड + बाहेरील ऑडियो प्लेअर वापरा + बाहेरील व्हिडिओ प्लेअर वापरा + फिरविणे + ब्राऊझर निवडा + शेअर करा + यासाठी रिझल्ट दाखवत आहे: + तुम्हाला असे म्हणायचे आहे का \? + सेटिंग + शोधा + फाईल डाउनलोड + डाउनलोड + शेअर + याचा वापर करून उघडा + पॉप अप मोड मध्ये उघडा + हा मेन्यू नमुना व्हिडिओ किंवा ऑडियो वेब ब्राउजर मध्ये चालवू शकतो + रद्द करा + इंस्टॉल + प्लेअर सापडले नाही (तुम्ही VLC player वापरून फाईल चालवू शकता). + प्लेअर सापडले नाही. VLC प्लेअर इंस्टॉल करू इच्छिता का\? + प्रकाशित केले गेले + सुरू करण्यासाठी \"शोधा\" दाबा +\n + कोडी वापरून चालवा + फक्त काही उपकरणे 2k/4k व्हिडिओ चालवू शकतात + वरचे रेसॉल्युशन दाखवा + डिफॉल्ट पॉप अप रेसिल्युशन + डीफॉल्ट रेसोल्युशन निवडा + Newpipe इतर ॲप मधून चालल्यास व्हिडिओ चालवा + मध्ये टाका + \ No newline at end of file diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 3f13a0628fe..b7b612f15e3 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -605,7 +605,7 @@ \n \nValget koker ned til det du foretrekker: hastighet eller presis info. Originaltekster fra tjenester vil vises for elementer i strømmen - Sjekk om det allerede eksisterer et problem som diskuterer krasj. Når du oppretter duplikatbilletter, tar du deg tid fra oss som vi kan bruke på å fikse den faktiske feilen. + Sjekk om det allerede eksisterer et problem som diskuterer ditt krasj. Når du oppretter duplikatbilletter, tar du tid fra oss som vi kan bruke på å fikse den faktiske feilen. Du kan maksimalt velge tre handlinger som skal vises i kompaktvarselet! Rediger hver varslingshandling nedenfor ved å trykke på den. Velg opptil tre av dem som skal vises i det kompakte varselet ved å bruke avmerkingsboksene til høyre. Skaler videominiatyrbildet som vises i varselet fra 16:9 til 1:1 sideforhold (kan føre til forvrengninger) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 1109f7b6dbe..92533dea03f 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -73,7 +73,7 @@ Áudio Tentar novamente Deve conceder acesso ao armazenamento - Toque \"Pesquisar\" para iniciar + Toque na \"lupa\" para começar \n Reprodução automática Reproduzir vídeo se NewPipe for invocado por outra aplicação @@ -123,7 +123,7 @@ Desativado Resolução padrão para janela popup Mostrar resoluções mais altas - Apenas alguns dispositivos conseguem reproduzir vídeos em 2K/4K + Apenas alguns aparelhos conseguem reproduzir vídeos em 2K/4K Popup Lembrar propriedades de popup Popup @@ -332,7 +332,7 @@ \n6. A partir do zip descarregado extraia o ficheiro .json (normalmente em \"YouTube e YouTube Music/subscriptions/subscriptions.json\") e importe-o aqui. Importe o seu perfil SoundCloud digitando o URL ou a ID.: \n -\n1. Ative o modo desktop do seu navegador web (o site não está disponível para dispositivos móveis) +\n1. Ative o modo desktop do seu navegador web (o site não está disponível para aparelhos móveis) \n2. Aceda a este URL: %1$s \n3. Inicie a sessão \n4. Copie o URL do seu perfil. @@ -359,7 +359,7 @@ NewPipe é desenvolvido por voluntários que utilizam o seu tempo livre para nos proporcionar a melhor experiência. Retribua para ajudar os programadores a tornarem NewPipe ainda melhor. Contribuir Política de privacidade do NewPipe - O projeto NewPipe leva a sua privacidade muito a sério. Sendo assim, não recolhe quaisquer dados sem o seu consentimento. + O projeto NewPipe leva a sua privacidade muito a sério. Por isso, não recolhe nenhum dado sem o seu consentimento. \nA polícia de privacidade do NewPipe explica, em detalhe, os tipos de dados enviados sempre que submete um relatório de erro. Ver política de privacidade Colocar vídeo seguinte na fila @@ -473,7 +473,7 @@ não é possível sobrescrever o ficheiro Existe uma descarga pendente com este nome NewPipe foi fechado enquanto trabalhava no ficheiro - Não há espaço livre no dispositivo + Não há espaço livre no aparelho Progresso perdido, o ficheiro foi eliminado Ligação expirada Deseja limpar o histórico de descargas ou remover todos os ficheiros descarregados\? @@ -644,7 +644,7 @@ Limpar cookies reCAPTCHA O YouTube fornece um \"Modo restrito\" que oculta o conteúdo destinado a adultos Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+) - Fazer com que o Android personalize a cor da notificação de acordo com a cor principal na miniatura (esta opção não está disponível em todos os dispositivos) + Fazer com que o Android personalize a cor da notificação conforme a cor principal na miniatura (esta opção não está disponível em todos os aparelhos) Colorir notificação Usar miniaturas no fundo do ecrã de bloqueio e em notificações Mostrar miniatura diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5669f07c3df..32a1f5022f2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -47,7 +47,7 @@ Папка для скачанного аудио Папка для скачанного аудио Введите путь к папке для скачивания аудио - Нажмите \"Поиск\", чтобы начать + Нажмите на \"лупу\", чтобы начать \n Подождите… Файл уже существует diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 2080f4d3442..b3dbd866892 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -1,32 +1,32 @@ - %1$s приказа + прегледа: %1$s Објављен %1$s - Нема плејера токова. Желите ли да инсталирате ВЛЦ\? + Нема плејера токова. Инсталирати ВЛЦ\? Инсталирај - Одустани + Откажи Отвори у прегледачу - Дели - Преузми + Подели + Преузимање Тражи Поставке - Да ли сте мислили: \"%1$s\"\? + Да ли сте мислили: „%1$s“\? Подели помоћу - Отвори помоћу + Изабери претраживач ротација - Фасцикла за преузимање снимака - Преузети снимци се чувају овде - Изаберите фасциклу за преузимање видео снимака + Фасцикла за видео + Преузети видео записи се чувају овде + Избор фасцикле за преузимање видеа Подразумевана резолуција Пусти помоћу Кодија - Да инсталирам недостајућу апликација Кор (Kore)\? + Инсталирати даљински за Коди\? Прикажи „Пусти помоћу Кодија“ Приказ опције за пуштање видеа у Коди медија центру Аудио Подразумевани формат звука Преузми УРЛ није подржан - Прикажи \'следећи\' и \'слични\' видео + Прикажи „следећи“ и „слични“ видео Подразумевани језик садржаја Видео и аудио Остало @@ -41,15 +41,15 @@ Користи Тор (Експериментално) Принудно преусмерење саобраћаја кроз Тор за доданту приватност (токови још нису подржани). Тема - Тамна - Светла + тамна + светла Изглед Грешка мреже - Фолдер преузимања за аудио - Изаберите фасциклу за преузимање аудио фајлова - Овде се чувају преузети аудио-снимци + Фасцикла за аудио + Избор фасцикле за аудио фајлове + Преузети аудио записи се чувају овде Направљен директоријум за преузимање „%1$s“ - Не могу да направим директоријум за преузимање„ %1$s“ + Не могу да направим директоријум за преузимање „%1$s“ Грешка Не могох да учитам све сличице Не могу да дешифрујем потпис видео урл-а @@ -76,10 +76,10 @@ Пријавите грешку Извештај корисника Уживо - Додирните \"Претражи\" да бисте започели + тапните на лупу да започнете \n Аутопуштање - Пушта видео по позиву друге апликације + Пушта видео по позиву из друге апликације Почни Паузирај Пусти @@ -93,11 +93,11 @@ Неподржани сервер Датотека већ постоји Неисправан УРЛ или нема интернета - Њупајп преузимање + Њупајп преузима Тапните за детаље Сачекајте… Копирано у привремену меморију - Молимо Вас да дефинишите фасциклу за преузимање касније у подешавањима + Одредите фасциклу за преузимање касније у поставкама Преузимања Преузимања Извештај о грешци @@ -106,7 +106,7 @@ Шта:\\nЗахтев:\\nЈезик садржаја:\\nЗемља садржаја:\\nЈезик апликације:\\nУслуга:\\nГМТ време:\\nПакет:\\nИздање:\\nИздање ОС-а: reCAPTCHA стопка Решите reCAPTCHA задатак - Црна + црна Сви Канал хиљ @@ -120,9 +120,9 @@ Режим прозорчета Пуштање у режиму прозорчета Искључено - Пожељни формат видеа + Подразумевани формат видеа Резолуција искачућег прозора - Прикажи више резолуције + Прикажи веће резолуције Само неки уређаји могу да пуштају 2K/4K видео Филтер Освежи @@ -130,15 +130,15 @@ Позадина Прозорче Уклања звук на неким резолуцијама - Упамти величину и позицију искачућег прозора - Памти последњу величину и позицију искачућег прозорчета + Упамти својства искачућег прозора + памти последњу величину и позицију искачућег прозора Контроле прејера потезом Користите покрете како би контролисали осветљеност и јачину звука плејера Предлози у претрази Приказује предлоге током претраге Искачући прозор - Претплаћен - Претплати + Прати се + Прати Главно Претплате Шта је ново @@ -148,7 +148,7 @@ Чувај историјат гледања Настави са репродукцијом Најбоља резолуција - Преузми + Преузимање О програму Поставке О програму @@ -173,8 +173,8 @@ © %1$s од %2$s под %3$s Не могу да учитам лиценцу Одјављен са канала - Није могуће променити претплату - Није могуће ажурирати претплату + Не могу да променим претплату + Не могу да ажурирам претплату Плејер Понашање Историја и кеш меморија @@ -236,8 +236,8 @@ Нема плејера тока (можете инсталирати ВЛЦ). Преузимање фајла тока Прикажи податке - Сачуване плејлисте - Додај у + Обележене листе + Додај на Подразумевана држава за садржај Услуга Исправљање грешака @@ -252,18 +252,18 @@ За више информација и новости посетите ЊуПајпов вебсајт. Задржи за стављање у ред Пусти одавде - Користи брзо, али непрецизно премотавање + Користи брзо, непрецизно премотавање Непрецизно премотавање омогућава плејеру да брже долази до позиције уз смањену прецизност. Премотавање за 5, 15 или 25 секунди са овом опцијом не ради. - Учитавање слика - Искључите како се не би преузимале слике, чиме ћете смањити количину пренетог саобраћаја и потрошњу меморије. Промена ове опције ће уклонити слике из радне и трајне меморије. + Учитај сличице + Искључите да спречите преузимање сличица, смањујући утрошак преноса података и меморије. Изменом ће се очистити и меморијски и диск кеш. Очишћен кеш са сликама Уклони кеширане метаподатке Уклони све податке о кешираним веб-странама - Откажи претплату - Нова картица - Одабери картицу - Приказивање коментара - Искључите да би сте сакрили коментаре + Откажи праћење + Нови језичак + Изаберите језичак + Приказ коментара + искључите за сакривање коментара Због ограничења ExoPlayer трајање тражења је постављено на %d секунди Да, и делимично гледани видео снимци Видео записи који су гледани пре и након додавања на листу песама биће уклоњени. @@ -290,18 +290,18 @@ Максималан број покушаја пре отказивања преузимања Максималан број поновљених покушаја Зауставити - Избрисан %1$d преузимања - Избришите преузете датотеке + Обрисано %1$d преузимања + Избриши преузете фајлове Да ли желите да обришете историју преузимања или избришете све преузете датотеке\? Обриши историју преузимања - Није могуће опоравити ово преузимање + Не могу да опоравим ово преузимање Временско ограничење везе Напредак је изгубљен јер је датотека избрисана Недовољно меморије на уређају ЊуПајп је затворен док је радио на датотеци Накнадна обрада није успела Није пронађено - Сервер не прихвата преузимања са више нити, покушајте поново са @string/msg_threads = 1 + Сервер не прихвата преузимања са више нити. Покушајте са @string/msg_threads = 1 Сервер не шаље податке Не могу да се повежем са сервером Није могуће пронаћи сервер @@ -311,15 +311,15 @@ Датотека се не може створити Код Прикажи грешку - Постоји преузимање са овим именом - У току је преузимање са овим именом + Преузимање са овим називом чека на ред + У току је преузимање са овим називом не може преписати датотеку - Преузета датотека са овим именом већ постоји + Преузет фајл са овим називом већ постоји Датотека са овим именом већ постоји Препиши Генериши јединствено име %s преузимања завршена - Преузимање је завршено + Преузимање завршено Преузимање неуспешно Систем одбија радњу Ред чекања @@ -369,7 +369,7 @@ \n2. Идите на ову УРЛ адресу: %1$s \n3. Пријавите се када вас питају \n4. Копирајте УРЛ профила на који сте преусмерени. - Увезите Јутјуб претплате са Google takeout-а: + Увезите Јутјуб претплате са Гугл тејкаута: \n \n1. Идите на ову УРЛ адресу: %1$s \n2. Пријавите се када вас питају @@ -409,10 +409,10 @@ Желите ли да избришете ову плејлисту\? Обележи плејлисту Уклоните обележивач - Постави као сличицу плејлисте + Постави као сличицу листе Упали звук Угаси звук - Додај на плејлисту + Додај на листу Име Преименуј Избриши @@ -576,39 +576,39 @@ Наставите репродукцију Користите покрете за контролу осветљености плејера Контрола геста осветљености - Користите покрете за контролу јачине звука играча - Контрола кретања јачине звука + Користите потезе за контролу јачине звука плејера + Контрола јачине звука потезом Аутоматски ред Наставите да завршавате (не понављајући) ред репродукције додавањем повезаног стрима - Следећи стрим аутоматски ставља у ред + Аутоматски стави у ред следећи ток Кеш метаподатака обрисан - Искључите да бисте сакрили оквире са мета подацима са додатним информацијама о творцу стрима, садржају стрима или захтеву за претрагу. - Прикажи мета информације - Искључите да бисте сакрили опис видеа и додатне информације + Искључите за сакривање поља мета-података са додатним информацијама о творцу тока, садржају или захтеву за претрагу. + Прикажи мета-податке + Искључите за сакривање описа видеа и додатних информација Прикажи опис - Ред активног играча ће бити замењен - Пребацивање са једног играча на другог може заменити ваш ред - Питај за потврду пре него што очистите ред - Брзо мотање-напред/-назад тражење трајања - Ноћна тема - Нека Андроид прилагоди боју обавештења према главној боји на сличици (имајте на уму да ово није доступно на свим уређајима) + Редослед активног плејера биће замењен + Пребацивање на други плејер може променити ваш редослед + Питај за потврду пре пражњења редоследа + Време за премотавања напред/назад + ноћна тема + Андроид ће прилагодити боју обавештења према главној боји на сличици (није доступно на свим уређајима) Обоји обавештења Ништа Учитавање Мешање Понављање Можете да изаберете највише три радње за приказ у компактном обавештењу! - Уредите сваку радњу обавештења у наставку тапкајући је. Означите до три од њих која ће се приказивати у компактном обавештењу помоћу поља за потврду с десне стране. - Пето акционо дугме - Четврто акционо дугме - Треће акционо дугме - Дугме друге акције - Дугме прве акције - Смањите сличице видео записа приказаног у обавештењу са односа 16: 9 на 1: 1 (може довести до изобличења) + Уредите сваку радњу обавештења додиром на њу. Означите до три радње које ће се приказивати у компактном обавештењу помоћу кућица са десне стране. + Дугме пете радње + Дугме четврте радње + Дугме треће радње + Дугме друге радње + Дугме прве радње + мења размеру сличице видеа у обавештењима са 16:9 на 1:1 (може довести до изобличења) Промените фасцикле за преузимање да би дејствовало - Смањите сличице на 1: 1 размеру - Приказивање резултата за :%s - Отвори са + Смањите сличице на 1:1 размеру + Приказ резултата за: %s + Отвори помоћу Преузимање је започело Испод можете одабрати своју омиљену ноћну тему Изаберите своју омиљену ноћну тему — %s @@ -688,5 +688,5 @@ %d секунди Прикажи детаље о каналу - Повезани предмети - + Слични записи + \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 84b4073c43e..c7ec3cb2b61 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,6 +1,6 @@ - Başlamak için \"Ara\" bölümüne dokun + Başlamak için \"büyüteç\" simgesine dokunun \n %1$s görüntüleme Yayınlanma: %1$s diff --git a/app/src/main/res/values-tzm/strings.xml b/app/src/main/res/values-tzm/strings.xml index cc856f58680..54f4464198d 100644 --- a/app/src/main/res/values-tzm/strings.xml +++ b/app/src/main/res/values-tzm/strings.xml @@ -198,4 +198,15 @@ Sisem Sbedd [Arussin] + Aglam + Rnu ɣer telgamt n tɣuri + Ittwaẓeṛ + Turagin + Ttu + Ser + Ilbumen + Tilgamin n tɣuri + Talgamt n tɣuri + Taɣuri tawurmant + Taɣuri tawurmant \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 925953a29b6..1989beeb534 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -23,14 +23,14 @@ Тека для завантаження аудіо Завантажені аудіофайли зберігаються тут Самовідтворення - Програє відео коли NewPipe викликано з іншого застосунку + Відтворює відео коли NewPipe викликано з іншої програми Типова роздільна здатність Програти в Kodi Встановити відсутній застосунок Kore\? Показати опцію „Програти в Kodi“ Показати опцію програвання відео в Kodi Аудіо - Типовий звуковий формат + Типовий формат звуку Тема Темна Світла @@ -58,11 +58,11 @@ Не вдалося отримати жодного потоку Шкода, цього не мало статися. Надіслати звіт про помилки по e-mail - На жаль, трапились деякі помилки. + Вибачте, щось пішло не так. Звіт Інформація: Що сталося: - Натисніть „Пошук“ для початку + Натисніть на „збільш. скло“, щоб почати \n Чорна Завантаження @@ -118,10 +118,10 @@ Головна Підписки Новинки - У тлі + На тлі У вікні Типова роздільна здатність вікна - Лише деякі пристрої можуть відтворювати 2K/4K-відео + Не всі пристрої можуть відтворювати 2K/4K-відео Показувати вищі роздільні здатності Типовий формат відео Памʼятати розмір і позицію вікна @@ -139,7 +139,7 @@ Очистити дані Вести облік перегляду відеозаписів Історія переглядів - Відновити програвання + Відновлювати відтворення Продовжувати відтворення після переривань (напр. телефонних дзвінків) Показати пораду „Утримуй, щоб додати“ Типова країна вмісту @@ -168,8 +168,8 @@ Перемкнути на головну Імпортувати базу даних Експортувати базу даних - Перезапише вашу поточну історію та підписки - Експортувати історію, підписки та списки відтворення + Поточні підписки, списки відтворення, історія і (за бажанням) налаштування буде замінено + Експорт підписок, списків відтворення, історії та налаштувань Не вдалося програти цей потік Відновлення після помилки програвача Недійсний URL @@ -182,9 +182,9 @@ Цей дозвіл потрібен для перегляду \nу віконному режимі Завантаження - Допустимі символи у іменах файлів - Недопустимі символи замінити на цей - Символ для заміни + Допустимі символи в назвах файлів + Недопустимі символи замінюватимуться цим значенням + Замінні символи Літери та цифри Більшість спеціальних символів Про NewPipe @@ -201,7 +201,7 @@ Експортовано Імпортовано Топ 50 - Нове і гаряче + Нове та гаряче Деталі Налаштування аудіо Відеопрогравач @@ -272,7 +272,7 @@ Дійсно видалити всі елементи з історії\? Програвалося останнім Програвалося найбільше - Контент на головній сторінці + Вміст на головній сторінці Порожня сторінка Кіоск-сторінка Підписки @@ -290,7 +290,7 @@ Утримуйте, щоб додати в чергу Розпочати програвання звідси Розпочати програвання на фоні - Розпочати програванні у вікні + Почати відтворення у вікні Відкрити бічну панель Закрити бічну панель Незабаром тут щось з\'явиться ;D @@ -318,8 +318,8 @@ Примусове звітування про неможливість доставлення Rx-винятків, які відбуваються за межами фрагменту або діяльності життєвого циклу після усунення Викор. швидкий неточний пошук Неточний пошук дозволяє програвачеві рухатися позиціями швидше, проте з меншою точністю. - Автоматично додавати в чергу наступний запис - Продовжити завершення (не повторюваної) черги, додавши повʼязаний потік + Авто-додавати в чергу наступний запис + Продовжити при завершені (не повторюваної) черги, додавши повʼязаний запис Файл Такої теки не існує Такого джерела файлу/контенту не існує @@ -336,11 +336,14 @@ Попереднє експортування Не вдалося імпортувати підписки Не вдалося експортувати підписки - Виберіть експортований файл підписок YouTube. -\n -\nДля експорту ваших підписок з YouTube. -\n1. Перейдіть за посиланням %1$s -\n2. Авторизуйтесь, якщо буде потрібно. + Щоб імпортувати підписки з YouTube завантаживши файл-список: +\n1. Перейдіть за цим посиланням: %1$s +\n2. В разі необхідності пройдіть процедуру входу +\n3. Повинно початися завантаження експортованого списку (у вигляді файлу) +\n +\nДля експорту ваших підписок з YouTube. +\n1. Перейдіть за посиланням %1$s +\n2. Авторизуйтесь, якщо буде потрібно. \n3. Виберіть файл підписок (subscription_manager) в папці завантажень Імпортуйте профіль SoundCloud, вписавши або URL, або ваш ID: \n @@ -363,7 +366,7 @@ Тон Від\'єднати (може спричинити спотворення) Відсутні потоки, доступні для завантаження - Бажана дія при відкритті + Бажана дія при відкриванні Типова дія під час відкриття вмісту — %s Субтитри Зміна висоти тексту субтитрів та стилів тла. Потребує перезапуску застосунку. @@ -373,7 +376,7 @@ Видалити всю історію переглядів\? Історію переглядів видалено. Очистити історію пошуку - Видаляє історію пошукових ключових слів + Видаляє історію пошукових запитів Видалити всю історію пошуку\? Історію пошуку видалено. Видалено 1 елемент. @@ -381,19 +384,19 @@ Імпортувати разом з налаштуваннями\? Політика приватності NewPipe Проект NewPipe дуже серйозно ставиться до вашої приватності. Тому застосунок не збирає ніяких даних без вашої згоди. -\nПолітика приватності NewPipe пояснює у деталях, які дані відсилаються та зберігаються, коли ви надсилаєте звіт про падіння застосунку. +\nПолітика приватності NewPipe пояснює в деталях, які дані відсилаються і зберігаються при надсиланні звіту про збій програми. Читати політику приватності З метою дотримання Загального регламенту про захист даних ЄС (General Data Protection Regulation, GDPR) ми звертаємо вашу увагу на політику приватності NewPipe. Будь ласка, прочитайте уважно. \nВи маєте прийняти її, аби надіслати нам звіт про помилку. Прийняти Відхилити Без обмежень - Обмежити роздільну здатність при використанні мобільного трафіку + Обмежити розд. зд. при використ. мобільних даних Пропускати тихі проміжки Крок Скинути - Зменшити при перемкненні застосунку - Дія при перемиканні до іншого застосунку з головного відеопрогравача — %s + Зменшити при перемиканні програм + Дія при перемиканні до інших програм від головного відеопрогравача — %s Нічого Зменшити до програвача у тлі Зменшити до програвача у вікні @@ -414,7 +417,7 @@ Оновлення Події Файл видалено - Сповіщення про оновлення застосунку + Сповіщення про оновлення застосунка Сповіщення про нову версію NewPipe Зовнішнє сховище недоступне Відновити типові налаштування @@ -477,7 +480,7 @@ На пристрої не залишилося вільного місця Прогрес втрачено через видалення файлу Час очікування з\'єднання вичерпано - Очистити історію завантажень, чи завантажені файли\? + Очистити історію завантажень чи завантажені файли\? Обмежити чергу завантажень В кожен момент часу виконуватиметься одне завантаження Почати завантаження @@ -492,7 +495,7 @@ Видалити запам\'ятовані позиції Видаляє всі запамʼятовані позиції Видалити всі запамʼятовані позиції\? - Для ефективності змініть теки завантаження + Для дієвості змініть теки завантаження Перемкнути службу, наразі обрано: Кіоск за замовчуванням Немає переглядів @@ -513,9 +516,9 @@ Виберіть сервер PeerTube Каталог серверів: %s Додати екземпляр - Введіть посилання на сервер - Підтримуються лише HTTP-посилання - Сервер уже додано + Введіть URL екземпляра + Підтримуються лише HTTPS-посилання + Екземпляр уже існує Недавно додані Найбільш вподобані відновлюється @@ -610,12 +613,12 @@ Видалено %1$d завантажень Ескіз аватара каналу Оригінальні тексти сервісів будуть видимі в потокових елементах - Режим обмеженого доступу YouTube + Увімкнути \"Обмежений режим\" YouTube Результати для: %s Створено %s Показати лише незгруповані підписки Скопіювати відформатований звіт - Повідомити про помилку на GitBub + Повідомити на GitHub Перевірте, будь ласка, чи проблема що спричинила збій вже відома спільноті та розробникам. Дублюючи запити на вирішення помилок Ви забираєте час розробників який можна було б так на вирішення існуючих проблем. Вибрати плейліст Жоден плейліст ще не додано @@ -643,7 +646,7 @@ Показувати ескіз Ніколи Лише через Wi-Fi - Запускати відтворення автоматично — %s + Починати відтворення автоматично — %s Показувати витоки памʼяті Показати деталі каналу Грати чергу @@ -663,4 +666,29 @@ Це відео доступне лише для користувачів YouTube Music Premium, тому його не можна передавати потоково або завантажувати через NewPipe. Цей вміст доступний лише користувачам, які заплатили, тому його не можна передавати потоково або завантажувати через NewPipe. Ви можете вибрати нічну тему нижче + Рекомендовані + Збій застосунку + Початковий час оприлюднення + Додано в чергу + Додати в чергу + Вирішити + Обчислення гешу + Очистити збережені під час вирішення reCAPTCHA реп\'яшки (cookies) + Реп\'яшки (cookies) reCAPTCHA видалено + Очистити реп\'яшки (cookies) reCAPTCHA + Сповіщення про перебіг відеогешування + Сповіщення про відеогешування + Це відео має вікові обмеження. +\nЗгідно з новою політикою YouTube щодо відео з віковими обмеженнями NewPipe не може мати доступ до жодного потоку цього відео і, таким чином, не має можливості відтворити його. + Показувати вміст, який, можливо, не підходить для дітей, бо має вікове обмеження (наприклад, 18+) + Вимкніть, щоб приховати поля метаданих (автор потоку, вміст потоку або пошуковий запит). + Вимкніть, щоб приховати опис відео та додаткові відомості + Черга активного програвача буде замінена + Перехід від одного програвача до іншого може замінити вашу чергу + Підтверджувати очищення черги + Кольорувати повідомлення основним кольором мініатюри. Підтримується не всіма пристроями + Кольорове сповіщення + У компактному сповіщенні є не більше трьох дій! + Дії можна змінити, натиснувши на них. Відзначте не більше трьох для показу в місткому сповіщенні. + Масштабувати мініатюру відео 16: 9 до 1:1 (можливі спотворення) \ No newline at end of file diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c30f4e0e192..d58f6233ac8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -50,7 +50,7 @@ 選擇音訊檔的下載資料夾 無法建立下載目錄「%1$s」 已建立下載目錄「%1$s」 - 輕觸「搜尋」按鈕開始使用 + 輕觸「放大鏡」以開始使用 \n 以懸浮視窗開啟 移除某些解析度的音訊 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4ea0fe0e00e..943e934516c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ - Tap \"Search\" to get started + Tap the \"magnifying glass\" to get started \n %1$s views Published on %1$s diff --git a/fastlane/metadata/android/bn/changelogs/770.txt b/fastlane/metadata/android/bn/changelogs/770.txt new file mode 100644 index 00000000000..0c853ea745b --- /dev/null +++ b/fastlane/metadata/android/bn/changelogs/770.txt @@ -0,0 +1,4 @@ +০.১৭.২ এ পরিবর্তনসূচী + +ঠিককরণ +• কোনো ভিডিও নেই সমস্যা ঠিক করা হয়েছে diff --git a/fastlane/metadata/android/de/changelogs/967.txt b/fastlane/metadata/android/de/changelogs/967.txt new file mode 100644 index 00000000000..c1dd01e33de --- /dev/null +++ b/fastlane/metadata/android/de/changelogs/967.txt @@ -0,0 +1 @@ +Problem behoben, bei dem YouTube in der EU nicht richtig funktionierte. Dies wurde durch ein neues Cookie- und Datenschutz-Einwilligungssystem verursacht, welches ein CONSENT-Cookie von NewPipe erfordert. diff --git a/fastlane/metadata/android/es/changelogs/64.txt b/fastlane/metadata/android/es/changelogs/64.txt new file mode 100644 index 00000000000..79aa345a236 --- /dev/null +++ b/fastlane/metadata/android/es/changelogs/64.txt @@ -0,0 +1,8 @@ +### Mejoras +- Capacidad para limitar la calidad de video si se están usando datos móviles. #1339 +- Recordar brillo para la sesión #1442 +- Mejorado el rendimiento de descarga en procesadores débiles #1431 +- Agregado soporte para sesiones multimedia #1433 + +### Arreglos +- Arreglado crasheo al abrir descargas #1441 diff --git a/fastlane/metadata/android/es/changelogs/850.txt b/fastlane/metadata/android/es/changelogs/850.txt new file mode 100644 index 00000000000..d6df56bb237 --- /dev/null +++ b/fastlane/metadata/android/es/changelogs/850.txt @@ -0,0 +1 @@ +En esta versión, el sitio web de Youtube fue actualizado. La antigua versión será descontinuada en marzo y será necesario actualizar NewPipe. diff --git a/fastlane/metadata/android/et/changelogs/967.txt b/fastlane/metadata/android/et/changelogs/967.txt new file mode 100644 index 00000000000..d0786d62c26 --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/967.txt @@ -0,0 +1 @@ +Taastasime olukorra, et YouTube töötaks Euroopa Liidus. Põhjuseks oli uus küpsis ja privaatsusnõusolek, mille tõttu NewPipe salvestab nüüd CONSENT-küpsise. diff --git a/fastlane/metadata/android/et/short_description.txt b/fastlane/metadata/android/et/short_description.txt index a814b02a37d..5d0d820e2de 100644 --- a/fastlane/metadata/android/et/short_description.txt +++ b/fastlane/metadata/android/et/short_description.txt @@ -1 +1 @@ -Tasuta väikesemahuline YouTube-i esiots. +Tasuta ja lihtne rakendus YouTube vaatamiseks. diff --git a/fastlane/metadata/android/id/short_description.txt b/fastlane/metadata/android/id/short_description.txt index 8f2392268f2..b378a4b93f7 100644 --- a/fastlane/metadata/android/id/short_description.txt +++ b/fastlane/metadata/android/id/short_description.txt @@ -1 +1 @@ -Sebuah klien YouTube gratis dan ringan untuk android. +Sebuah klien YouTube gratis dan ringan untuk Android. diff --git a/fastlane/metadata/android/it/changelogs/63.txt b/fastlane/metadata/android/it/changelogs/63.txt new file mode 100644 index 00000000000..dd8f7324dc7 --- /dev/null +++ b/fastlane/metadata/android/it/changelogs/63.txt @@ -0,0 +1,8 @@ +### Miglioramenti +- Impostazioni di importazione / esportazione # 1333 +- Ridotto l'overdraw (miglioramento delle prestazioni) # 1371 +- Piccoli miglioramenti al codice # 1375 +- Aggiunto tutto ciò che riguarda il GDPR # 1420 + +### Risolto +- Downloader: risolto il crash durante il caricamento di download incompleti dai file .giga # 1407 diff --git a/fastlane/metadata/android/it/changelogs/64.txt b/fastlane/metadata/android/it/changelogs/64.txt new file mode 100644 index 00000000000..069c05c8b3c --- /dev/null +++ b/fastlane/metadata/android/it/changelogs/64.txt @@ -0,0 +1,8 @@ +### Miglioramenti +- Aggiunta la possibilità di limitare la qualità del video se si utilizzano dati mobili. # 1339 +- Ricorda la luminosità per la sessione # 1442 +- Migliorate le prestazioni di download per le CPU più deboli # 1431 +- Aggiunto il supporto (funzionante) per la sessione multimediale # 1433 + +### Correzioni +- Risolto il crash all'apertura dei download (correzione ora disponibile per le build di rilascio) # 1441 diff --git a/fastlane/metadata/android/pt/changelogs/958.txt b/fastlane/metadata/android/pt/changelogs/958.txt index d7616b944ec..fc2507f64f4 100644 --- a/fastlane/metadata/android/pt/changelogs/958.txt +++ b/fastlane/metadata/android/pt/changelogs/958.txt @@ -1,10 +1,10 @@ Novo e melhorado: -- Opção reajustada para esconder a miniatura na tela de bloqueio +- Opção reajustada para esconder a miniatura no ecrã de bloqueio - Puxar para atualizar o feed - Melhor desempenho na busca de listas locais Corrigido: -- Falha ao iniciar o NewPipe depois de ter sido removido da RAM +- Falha ao iniciar o NewPipe após ter sido removido da RAM - Falha na inicialização quando não há conexão à Internet - Respeitando as configurações de luminosidade e de volume - Listas de reprodução longas diff --git a/fastlane/metadata/android/pt/full_description.txt b/fastlane/metadata/android/pt/full_description.txt index 6a2c1147f89..af5b0f9118b 100644 --- a/fastlane/metadata/android/pt/full_description.txt +++ b/fastlane/metadata/android/pt/full_description.txt @@ -1 +1 @@ -NewPipe não utiliza qualquer biblioteca de estrutura do Google, nem a API do YouTube. Apenas analisa o site para obter as informações necessárias. Desta forma, esta aplicação pode ser utilizada em dispositivos que não tenham Google Services instalados. Não precisa de uma conta Youtube e, além disso, é uma aplicação FLOSS. +NewPipe não utiliza nenhuma biblioteca de estrutura do Google, nem a API do YouTube. Apenas analisa o site para obter as informações necessárias. Desta forma, esta aplicação pode ser utilizada em aparelhos que não tenham Google Services instalados. Não precisa de uma conta Youtube e, além disso, é uma aplicação FLOSS. diff --git a/fastlane/metadata/android/ro/changelogs/953.txt b/fastlane/metadata/android/ro/changelogs/953.txt index 85184e61836..fe5d488558e 100644 --- a/fastlane/metadata/android/ro/changelogs/953.txt +++ b/fastlane/metadata/android/ro/changelogs/953.txt @@ -1 +1 @@ -Sistemată extracția funcției de decriptare a YouTube. +Repară extracția funcției de decriptare a YouTube. diff --git a/fastlane/metadata/android/sr/changelogs/967.txt b/fastlane/metadata/android/sr/changelogs/967.txt new file mode 100644 index 00000000000..d6335e7ec45 --- /dev/null +++ b/fastlane/metadata/android/sr/changelogs/967.txt @@ -0,0 +1 @@ +Сређено што Јутјуб није исправно радио ЕУ. То је изазвано новим колачићем и системом за сагласност о приватности који је захтевао да ЊуПајп постави колачић „CONSENT“. diff --git a/fastlane/metadata/android/sr/changelogs/968.txt b/fastlane/metadata/android/sr/changelogs/968.txt new file mode 100644 index 00000000000..81a2957fea5 --- /dev/null +++ b/fastlane/metadata/android/sr/changelogs/968.txt @@ -0,0 +1,7 @@ +Додата опција за детаље канала на дуг притисак. +Додата могућност за промену назива листе пуштања из сучеља листе. +Могућост за паузирање док траје баферовање видеа. +Исполирана светла тема. +Сређено преклапање слова када се користе велики фонтови. +Сређена грешка „нема видеа“ на Формулер и Зефир уређајима. +Сређени разни падови. diff --git a/fastlane/metadata/android/sr/full_description.txt b/fastlane/metadata/android/sr/full_description.txt index 77f904dd68b..dd7b821a3ef 100644 --- a/fastlane/metadata/android/sr/full_description.txt +++ b/fastlane/metadata/android/sr/full_description.txt @@ -1 +1 @@ -ЊуПајп не користи ниједну Гугл библиотеку оквира нити Јутјуб АПИ. Само скида са Јутјуба оно што му је потребно. Стога се ова апликација може користити на уређајима без инсталираних Гугл услуга. Такође, није вам потребан Јутјуб налог да бисте користили ЊуПајп, и још је ФЛОСС. +ЊуПајп не користи ниједну библиотеку Гугл оквира нити Јутјуб АПИ. Само скида са Јутјуба оно што му је потребно. Стога се ова апликација може користити на уређајима без инсталираних Гугл услуга. Такође, није вам потребан Јутјуб налог да бисте користили ЊуПајп, и још је ФЛОСС. diff --git a/fastlane/metadata/android/sr/short_description.txt b/fastlane/metadata/android/sr/short_description.txt index 772d574aeb4..34168631b55 100644 --- a/fastlane/metadata/android/sr/short_description.txt +++ b/fastlane/metadata/android/sr/short_description.txt @@ -1 +1 @@ -Бесплатни лагани Јутјуб интерфејс за Андроид. +Бесплатна и лагана Јутјуб замена за Андроид. diff --git a/fastlane/metadata/android/tr/changelogs/63.txt b/fastlane/metadata/android/tr/changelogs/63.txt new file mode 100644 index 00000000000..b4ccdf68a82 --- /dev/null +++ b/fastlane/metadata/android/tr/changelogs/63.txt @@ -0,0 +1,8 @@ +### Geliştirmeler +- İçe/Dışa aktarma ayarları #1333 +- Aşmalar azaltıldı(performance iyileştirmeleri) #1371 +- Küçük kod iyileştirmeleri #1375 +- GPDR hakkında her şey eklendi #1420 + +### Düzeltildi +- İndirici: .giga dosyalarından bitmeyen indirmeler yüklenirken çökmeler düzeltildi #1407 diff --git a/fastlane/metadata/android/tr/changelogs/64.txt b/fastlane/metadata/android/tr/changelogs/64.txt new file mode 100644 index 00000000000..082c7d60834 --- /dev/null +++ b/fastlane/metadata/android/tr/changelogs/64.txt @@ -0,0 +1,8 @@ +### Geliştirmeler +- Mobil veri kullanıldığında video kalitesini sınırlandırma seçeneği eklendi #1339 +- O an açık oturum için parlaklığı hatırla #1442 +- eski CPU'larda indirme performansı iyileştirildi #1431 +- Medya oturumu için destek eklendi (çalışıyor) #1433 + +###Düzeltmeler +- İndirmeler açılırken çökme düzeltildi #1441 From fa1fdbf73e9e4fc77910594e4511505c082e2154 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Wed, 12 May 2021 16:25:19 +0200 Subject: [PATCH 20/47] Fix translations Fix outdated slovenian translation --- app/src/main/res/values-sv/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index eb2d9eacf69..9f9a81990d9 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -473,7 +473,7 @@ Låtar Denna video är åldersbegränsad. \n -\nOm du vill visa den aktiverar du \"Åldersbegränsat innehåll\" i inställningarna. +\nOm du vill visa den aktiverar du \"%1$s\" i inställningarna. Inga kommentarer Tryck på \"Klar\" när det är löst ∞ videos From 5eb1d498571354accf0c01fc6caebcaf68bb7ab3 Mon Sep 17 00:00:00 2001 From: mhmdanas <32234660+mhmdanas@users.noreply.github.com> Date: Wed, 12 May 2021 22:16:12 +0300 Subject: [PATCH 21/47] Remove extra newlines in strings --- app/src/main/res/values-ar/strings.xml | 3 +-- app/src/main/res/values-az/strings.xml | 3 +-- app/src/main/res/values-b+ast/strings.xml | 3 +-- app/src/main/res/values-b+uz+Latn/strings.xml | 3 +-- app/src/main/res/values-b+zh+HANS+CN/strings.xml | 3 +-- app/src/main/res/values-be/strings.xml | 3 +-- app/src/main/res/values-ber/strings.xml | 3 +-- app/src/main/res/values-bg/strings.xml | 3 +-- app/src/main/res/values-bn-rBD/strings.xml | 3 +-- app/src/main/res/values-bn-rIN/strings.xml | 3 +-- app/src/main/res/values-bn/strings.xml | 3 +-- app/src/main/res/values-ca/strings.xml | 3 +-- app/src/main/res/values-ckb/strings.xml | 3 +-- app/src/main/res/values-cs/strings.xml | 3 +-- app/src/main/res/values-de/strings.xml | 3 +-- app/src/main/res/values-el/strings.xml | 3 +-- app/src/main/res/values-en-rGB/strings.xml | 3 +-- app/src/main/res/values-eo/strings.xml | 3 +-- app/src/main/res/values-es/strings.xml | 3 +-- app/src/main/res/values-et/strings.xml | 3 +-- app/src/main/res/values-eu/strings.xml | 3 +-- app/src/main/res/values-fi/strings.xml | 3 +-- app/src/main/res/values-fil/strings.xml | 3 +-- app/src/main/res/values-fr/strings.xml | 3 +-- app/src/main/res/values-gl/strings.xml | 3 +-- app/src/main/res/values-he/strings.xml | 3 +-- app/src/main/res/values-hi/strings.xml | 3 +-- app/src/main/res/values-hr/strings.xml | 3 +-- app/src/main/res/values-hu/strings.xml | 3 +-- app/src/main/res/values-in/strings.xml | 3 +-- app/src/main/res/values-it/strings.xml | 3 +-- app/src/main/res/values-ja/strings.xml | 3 +-- app/src/main/res/values-kab/strings.xml | 3 +-- app/src/main/res/values-kmr/strings.xml | 5 ++--- app/src/main/res/values-ko/strings.xml | 3 +-- app/src/main/res/values-ku/strings.xml | 3 +-- app/src/main/res/values-la/strings.xml | 3 +-- app/src/main/res/values-lt/strings.xml | 3 +-- app/src/main/res/values-lv/strings.xml | 5 ++--- app/src/main/res/values-ml/strings.xml | 3 +-- app/src/main/res/values-mr/strings.xml | 3 +-- app/src/main/res/values-ms/strings.xml | 3 +-- app/src/main/res/values-nap/strings.xml | 3 +-- app/src/main/res/values-nb-rNO/strings.xml | 3 +-- app/src/main/res/values-nl-rBE/strings.xml | 3 +-- app/src/main/res/values-nl/strings.xml | 3 +-- app/src/main/res/values-pl/strings.xml | 3 +-- app/src/main/res/values-pt-rBR/strings.xml | 3 +-- app/src/main/res/values-pt-rPT/strings.xml | 3 +-- app/src/main/res/values-pt/strings.xml | 3 +-- app/src/main/res/values-ro/strings.xml | 3 +-- app/src/main/res/values-ru/strings.xml | 3 +-- app/src/main/res/values-sat/strings.xml | 3 +-- app/src/main/res/values-sc/strings.xml | 3 +-- app/src/main/res/values-sk/strings.xml | 3 +-- app/src/main/res/values-so/strings.xml | 3 +-- app/src/main/res/values-sq/strings.xml | 3 +-- app/src/main/res/values-sr/strings.xml | 3 +-- app/src/main/res/values-ta/strings.xml | 3 +-- app/src/main/res/values-th/strings.xml | 3 +-- app/src/main/res/values-tr/strings.xml | 3 +-- app/src/main/res/values-tzm/strings.xml | 3 +-- app/src/main/res/values-uk/strings.xml | 3 +-- app/src/main/res/values-ur/strings.xml | 3 +-- app/src/main/res/values-vi/strings.xml | 3 +-- app/src/main/res/values-zh-rHK/strings.xml | 3 +-- app/src/main/res/values-zh-rTW/strings.xml | 3 +-- app/src/main/res/values/strings.xml | 3 +-- 68 files changed, 70 insertions(+), 138 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 96f583049af..aabc14ae882 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -55,8 +55,7 @@ خطأ تعذر تحليل الموقع تعذر فك تشفير توقيع رابط الفيديو - اضغط على \"العدسة المكبرة\" للبدء -\n + اضغط على \"العدسة المكبرة\" للبدء اشتراك مشترك الرئيسية diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 32b93ecaa6e..c6805a36530 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -1,7 +1,6 @@ - Başlamaq üçün \"Axtarış\" bölməsinə toxunun -\n + Başlamaq üçün \"Axtarış\" bölməsinə toxunun %1$s baxış %1$s tarixində yayımlanıb Axın pleyeri tapılmadı. \"VLC\" yüklənilsin\? diff --git a/app/src/main/res/values-b+ast/strings.xml b/app/src/main/res/values-b+ast/strings.xml index d2db3037b4b..447de56768e 100644 --- a/app/src/main/res/values-b+ast/strings.xml +++ b/app/src/main/res/values-b+ast/strings.xml @@ -646,6 +646,5 @@ Abrir nel mou ventanu Instalar Nun s\'atopó nengún reproductor de fluxos. ¿Instalar VLC\? - Toca «Buscar» pa entamar -\n + Toca «Buscar» pa entamar \ No newline at end of file diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 6c87ce41c70..24002b0310a 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -19,8 +19,7 @@ Hech qanday translatsiya pleyeri topilmadi. VLC o\'rnatilsinmi\? %1$s tomonidan e‘lon qilingan %1$s marta ko‘rilgan - Boshlash uchun \"Izlash\" tugmasini bosing -\n + Boshlash uchun \"Izlash\" tugmasini bosing Player yorqinligini va ovoz balandligini boshqarish uchun imo-ishoralardan foydalanish Player imo-ishoralarini boshqarish Player tovushini boshqarish uchun imo-ishoralardan foydalanish diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index f47422d5a13..36fee48356f 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -1,7 +1,6 @@ - 点击“搜索”开始使用 -\n + 点击“搜索”开始使用 %1$s 次观看 发布于 %1$s 在浏览器中打开 diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index a52b1bc515b..7af3bc5f950 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -1,7 +1,6 @@ - Націсніце \"Пошук\", каб пачаць -\n + Націсніце \"Пошук\", каб пачаць %1$s праглядаў Апублікавана %1$s Патокавы плэер не знойдзены. Усталяваць VLC? diff --git a/app/src/main/res/values-ber/strings.xml b/app/src/main/res/values-ber/strings.xml index 96d293d0a00..731da93a9f5 100644 --- a/app/src/main/res/values-ber/strings.xml +++ b/app/src/main/res/values-ber/strings.xml @@ -126,8 +126,7 @@ ⴰⵙⵎⴰⵍ ⵏ ⵜⴰⵢⴰⴼⵓⵜ ⵉ: %s ⵎⵉⵏ ⵜⵅⵙⴷ ⴰⴷ ⵜⵉⵏⵉⴷ:\"%1$s\"\? %1$s ⵏ ⵜⴰⵏⵏⴰⵢⵉⵏ - ⴰⴷⵔ ⵅ \"ⵔⵣⵓ\"ⴰⴼⴰⴷ ⴰⴷ ⵜⵜⴰⵡⵍⴷ -\n + ⴰⴷⵔ ⵅ \"ⵔⵣⵓ\"ⴰⴼⴰⴷ ⴰⴷ ⵜⵜⴰⵡⵍⴷ ⵙⴽⵏ ⵉⵅⴼⴰⵡⴰⵍⵏ ⴰⵙⴳⵓⵎ \ No newline at end of file diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index ba78c1ea1ff..2c90796075a 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -1,7 +1,6 @@ - Докоснете търсачката, за да започнете -\n + Докоснете търсачката, за да започнете %1$s гледания Публикувано на %1$s Не е намерен стрийм плейър. Желаете ли да инсталирате VLC? diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index aeec3cc43c8..307d036106e 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -1,7 +1,6 @@ - অনুসন্ধান এ চাপ দিয়ে শুরু করুন -\n + অনুসন্ধান এ চাপ দিয়ে শুরু করুন %1$s জন দেখছে প্রকাশকাল %1$s কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চাও\? diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index 5760947d724..3ef9481875a 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -178,8 +178,7 @@ কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চান\? প্রকাশকাল %1$s %1$s জন দেখেছে - অনুসন্ধান এ চাপ দিয়ে শুরু করুন -\n + অনুসন্ধান এ চাপ দিয়ে শুরু করুন নতুন নতুন কি অ্যাপ এর ভাষা diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 045ef222f6f..ab5ad73f1e1 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -352,8 +352,7 @@ কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চাও\? প্রকাশকাল %1$s %1$s জন দেখেছে - \"অনুসন্ধান\" এ চাপ দিয়ে শুরু করুন -\n + \"অনুসন্ধান\" এ চাপ দিয়ে শুরু করুন বাফারিং সাফল পঞ্চম অ্যাকশন বাটন diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 248672b7e18..d84c1421507 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -267,8 +267,7 @@ Controls de la velocitat de reproducció Tempo To - Toca \"Cerca\" per començar -\n + Toca \"Cerca\" per començar Elimina l\'àudio en algunes resolucions Reproductor d\'àudio extern Desactiveu-ho per no generar miniatures i estalviar dades i memòria. Canviant aquesta opció, s\'eliminarà la memòria cau d\'imatges tant de la memòria com de l\'emmagatzematge. diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index 47f0f382865..fa4e7b3bbdd 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -497,8 +497,7 @@ خزمەتگوزاری چەسپاو، ئێستا هەڵبژێردراو: تەواوی گەڕانەکانت بسڕدرێنەوە؟ بەردەوام بوونی ڤیدیۆ لەدوای هەبوونی هەر بڕینێک (وەک پەیوەندی تەلەفۆنی) - کرته‌ له‌ \"گه‌ڕان\" بكه‌ بۆ ده‌ستپێكردن -\n + کرته‌ له‌ \"گه‌ڕان\" بكه‌ بۆ ده‌ستپێكردن کۆگای گەڕانی نێوخۆیی ڤیدیۆ وە دەنگ هاوبه‌شپێكردن diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 097f9f3a972..3e1ec583428 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -61,8 +61,7 @@ Zobrazit věkově omezený obsah Živě Nebylo možné kompletně analyzovat stránku - Začít klepnutím na \"Hledat\" -\n + Začít klepnutím na \"Hledat\" Zkopírováno do schránky Počkejte prosím… NewPipe stahuje diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index aca74891b81..774ca4d9157 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -81,8 +81,7 @@ Fehler melden Anwenderbericht Live - „Suchen“ antippen, um zu beginnen -\n + „Suchen“ antippen, um zu beginnen Downloads Downloads Fehlerbericht diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 9a838c1d940..31a0172f311 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -87,8 +87,7 @@ Ιστορικό Ιστορικό Εμφάνιση πληροφοριών - Πατήστε «Αναζήτηση» για να ξεκινήσετε -\n + Πατήστε «Αναζήτηση» για να ξεκινήσετε Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή). Λήψη του αρχείου ροής Αφαιρείται ο ήχος από κάποιες αναλύσεις diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 78ceffa3f86..2e0bef88e74 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -28,8 +28,7 @@ Show ‘Hold to append’ tip Show ‘Play with Kodi’ option Did you mean ‘%1$s’\? - Tap ‘Search’ to get started -\n + Tap ‘Search’ to get started Channel’s avatar thumbnail Time after last update before a subscription is considered outdated – %s Start playback automatically – %s diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 081d9afe503..b8b3c6d049e 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -65,8 +65,7 @@ Signali eraron Filmeto Reprovi - Premi \"Serĉi\" por komenci -\n + Premi \"Serĉi\" por komenci Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin). Malfermi en ŝprucfenestran modon Forigas aŭdon ĉe kelkaj rezolucioj diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 8fb016913cc..484033feb85 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -59,8 +59,7 @@ Las transmisiones en vivo no son soportadas aún Contenido Mostrar contenido con restricción de edad - Toca en «Buscar» para comenzar -\n + Toca en «Buscar» para comenzar Reproducción automática Reproducir un vídeo cuando NewPipe es llamado desde otra aplicación En directo diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 171b0d04423..87edd026314 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -1,7 +1,6 @@ - Alustamiseks toksa \"Luubi ikooni\" -\n + Alustamiseks toksa \"Luubi ikooni\" %1$s vaatamist Avaldatud %1$s Voogesituseks puudub pleier. Kas paigaldada VLC? diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 8766df16788..5102588fc03 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -39,8 +39,7 @@ Erabili kanpo bideo-erreproduzigailua Erabili kanpo audio-erreproduzigailua Atzeko planoan erreproduzitzen - Sakatu \"Bilatu\" hasteko -\n + Sakatu \"Bilatu\" hasteko Audioa deskargatzeko karpeta Aukeratu audio fitxategiak deskargatzeko karpeta Deskargatutako audio fitxategiak hemen gordetzen dira diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 9886a470ff1..4095bfb6e81 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1,7 +1,6 @@ - Napauta hakua aloittaaksesi -\n + Napauta hakua aloittaaksesi %1$s näyttökertaa Julkaistu %1$s Ei löytynyt suoratoistosoitinta. Asennetaanko VLC\? diff --git a/app/src/main/res/values-fil/strings.xml b/app/src/main/res/values-fil/strings.xml index 7e5c6875bd5..c85d38e0129 100644 --- a/app/src/main/res/values-fil/strings.xml +++ b/app/src/main/res/values-fil/strings.xml @@ -1,7 +1,6 @@ - Pindutin ang \'hanap\' upang magsimula -\n + Pindutin ang \'hanap\' upang magsimula %1$s view Nai-publish noong %1$s Walang nakitang stream player. Mag-install ng VLC\? diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1e528936fb5..9627b4a6006 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -75,8 +75,7 @@ Audio Réessayer Veuillez d’abord accorder l’accès au stockage - Appuyez sur la loupe pour commencer -\n + Appuyez sur la loupe pour commencer Lecture automatique Rapport utilisateur Signaler diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 23c59f049c8..f12e9fd2f1a 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -1,7 +1,6 @@ - Toque en \"Buscar\" para comezar -\n + Toque en \"Buscar\" para comezar %1$s visualizacións Publicado o día %1$s Non foi encontrado ningún reprodutor. Quere instalar o VLC\? diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 1a051ff81f9..1e72099a6c4 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -1,7 +1,6 @@ - יש לגעת ב־„חיפוש” כדי להתחיל -\n + יש לגעת ב־„חיפוש” כדי להתחיל %1$s צפיות פורסם ב־%1$s לא נמצאו נגני הזרמה, להתקין VLC\? diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 583a74513c4..c5b1f4fd361 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -51,8 +51,7 @@ Item हटा दिया गया है फ़िलहाल चर्चा में है ऑडियो सेटिंग - शुरू करने के लिए \"सर्च\" बटन दबाएं -\n + शुरू करने के लिए \"सर्च\" बटन दबाएं कैंसल करे क्या आप का मतलब \"%1$s\" था\? के साथ शेयर करे diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 0ad1eb4aa42..c8c618d2735 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -1,7 +1,6 @@ - Za početak dodirnite \"Pretraži\" -\n + Za početak dodirnite \"Pretraži\" %1$s pregleda Objavljeno %1$s Reproduktor za stream nije pronađen. Instalirati VLC\? diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 20ef2ae0039..a770d74ecad 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -75,8 +75,7 @@ Felhasználói jelentés Videó Audio - A kezdéshez koppints a \"Keresés\"-re -\n + A kezdéshez koppints a \"Keresés\"-re Nem sikerült az összes előnézeti kép betöltése Nem sikerült a weblap betöltése Nem sikerült a weblap teljes betöltése diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 5fd430d329c..ea3961adc29 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -1,7 +1,6 @@ - Ketuk \"Cari\" untuk memulai -\n + Ketuk \"Cari\" untuk memulai %1$s x ditonton Dipublikasikan pada tanggal %1$s Pasang diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 68677107f98..037db8e5cdb 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -59,8 +59,7 @@ I contenuti in diretta non sono ancora supportati Contenuti Mostra contenuti con restrizioni di età - Tocca la lente d\'ingrandimento per iniziare -\n + Tocca la lente d\'ingrandimento per iniziare Riproduzione automatica Riproduci i video quando NewPipe viene aperto da un\'altra app In diretta diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ef4564325c7..a676c926ed2 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -78,8 +78,7 @@ 不具合を報告 利用者レポートを送る 生放送 - 開始するには「検索」をタップ -\n + 開始するには「検索」をタップ 開始 一時停止 再生 diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index ca7e03436d1..16ab8cbd596 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -163,8 +163,7 @@ Ldi deg uminig %1$s n tmeẓriwin Yeffeɣ-d deg %1$s - Senned ɣef «Nadi» akken ad tebduḍ -\n + Senned ɣef «Nadi» akken ad tebduḍ Ula d yiwet n tmeẓriwt %s n tmeẓriwt diff --git a/app/src/main/res/values-kmr/strings.xml b/app/src/main/res/values-kmr/strings.xml index bdc7fe4066c..2f622459500 100644 --- a/app/src/main/res/values-kmr/strings.xml +++ b/app/src/main/res/values-kmr/strings.xml @@ -383,8 +383,7 @@ Lîstikvanek herikê nehat dîtin. VLC saz bikin\? Li ser hate weşandin %1$s %1$s dîtinan - Ji bo destpêkirinê \"Lêgerîn\" bitikînin -\n + Ji bo destpêkirinê \"Lêgerîn\" bitikînin Di hin karûbaran de heye, ew bi gelemperî pir zûtir e lê dibe ku hejmarek bi sînor a tiştan vegerîne û bi gelemperî agahdariya bêkêmasî vebigere (mînakî bê domdanî, celebek tişt, bê statûya zindî). Dema ku hebe ji xwarina fedakar bistînin Her dem nûve bikin @@ -663,4 +662,4 @@ Derbar Mîhengên Serlêdanê kilît bikin - + \ No newline at end of file diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 32da51da341..f29d4197ff4 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -50,8 +50,7 @@ (실험적) 향상된 프라이버시를 위해 다운로드 트래픽을 강제로 Tor를 통해 전송 (스트리밍 비디오는 아직 지원되지 않습니다). 다운로드 디렉토리를 만들 수 없습니다 \'%1$s\' 다운로드 디렉토리를 만들었습니다 \'%1$s\' - \"검색\" 버튼을 눌러서 시작하세요 -\n + \"검색\" 버튼을 눌러서 시작하세요 자동재생 NewPipe가 다른 앱에서 호출되었을 때 동영상을 재생합니다 컨텐츠 diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index 944f9b8c832..01aa0c99f28 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -1,7 +1,6 @@ - کرتە له‌ ”گه‌ڕان” بكه‌ بۆ ده‌ستپێكردن -\n + کرتە له‌ ”گه‌ڕان” بكه‌ بۆ ده‌ستپێكردن %1$s بینراو بڵاوكراوه‌ته‌وه‌ له‌ %1$s هیچ لێدەرێکی ڤیدیۆیی نه‌دۆزرایه‌وه‌. ده‌ته‌وێت VLC دابمەزرێنیت؟ diff --git a/app/src/main/res/values-la/strings.xml b/app/src/main/res/values-la/strings.xml index 5072864e757..44f96ccc0a3 100644 --- a/app/src/main/res/values-la/strings.xml +++ b/app/src/main/res/values-la/strings.xml @@ -47,8 +47,7 @@ Praecessi propter: %s Intendi \"%1$s\"\? Optiones - Tange \"Quaere\" ad initium -\n + Tange \"Quaere\" ad initium Quaere Scarica Condividi diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 470a3c032a2..48c3168ae31 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -1,7 +1,6 @@ - Palieskite „Ieškoti“, kad pradėtumėte -\n + Palieskite „Ieškoti“, kad pradėtumėte %1$s peržiūrų Publikuota %1$s Nerastas srauto grotuvas. Įdiegti VLC\? diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index e8a9cca299b..380a4eebfbd 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -615,8 +615,7 @@ Netika atrasts video atskaņotājs. Instalēt VLC\? Publicēts %1$s %1$s skatījumi - Nospiediet \"Meklēt\", lai sāktu -\n + Nospiediet \"Meklēt\", lai sāktu Iekrāsot notifikāciju Nekas Lādējas @@ -689,4 +688,4 @@ Šis video ir ierobežots ar vecumu. \nŅemot vērā jauno YouTube politiku ar vecuma ierobežotiem videoklipiem, Newpipe nevar piekļūt šim videoklipam. Nakts Motīvs - + \ No newline at end of file diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 7c221f20b70..57fe3485f6c 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -461,8 +461,7 @@ സ്ട്രീം പ്ലയർ കണ്ടെത്താനായില്ല. VLC ഇൻസ്റ്റാൾ ചെയ്യട്ടെ\? %1$s - ന് പ്രസിദ്ധീകരിച്ചു %1$s തവണ കാണപ്പെട്ടു - തുടങ്ങാൻ \"തിരയൽ\" അമർത്തുക -\n + തുടങ്ങാൻ \"തിരയൽ\" അമർത്തുക ഈ ഉള്ളടക്കത്തെ ഇതുവരെ ന്യൂ‌പൈപ്പ് പിന്തുണയ്‌ക്കുന്നില്ല. \n \nഭാവിയിലെ ഒരു പതിപ്പിൽ ഇത് പിന്തുണയ്‌ക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നു. diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml index 8c33a60bfbe..9b0fa77b07d 100644 --- a/app/src/main/res/values-mr/strings.xml +++ b/app/src/main/res/values-mr/strings.xml @@ -43,8 +43,7 @@ प्लेअर सापडले नाही (तुम्ही VLC player वापरून फाईल चालवू शकता). प्लेअर सापडले नाही. VLC प्लेअर इंस्टॉल करू इच्छिता का\? प्रकाशित केले गेले - सुरू करण्यासाठी \"शोधा\" दाबा -\n + सुरू करण्यासाठी \"शोधा\" दाबा कोडी वापरून चालवा फक्त काही उपकरणे 2k/4k व्हिडिओ चालवू शकतात वरचे रेसॉल्युशन दाखवा diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index d5de13aba9d..6493cfcb76c 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -1,7 +1,6 @@ - Tekan \"Cari\" untuk bermula -\n + Tekan \"Cari\" untuk bermula %1$s tontonan Diterbitkan pada %1$s Tiada pemain strim ditemui. Adakah anda mahu memasang VLC\? diff --git a/app/src/main/res/values-nap/strings.xml b/app/src/main/res/values-nap/strings.xml index 210eb817fb1..b0c12cc4c21 100644 --- a/app/src/main/res/values-nap/strings.xml +++ b/app/src/main/res/values-nap/strings.xml @@ -39,6 +39,5 @@ Condividi Nisciuno lettore truvato (può installà VLC p\' \'o reprodurre). Nisciuno lettore truvato. Vuo\' installà VLC\? - Priemme \"Truova\" p\'accummencià -\n + Priemme \"Truova\" p\'accummencià \ No newline at end of file diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index b7b612f15e3..1726bfe587a 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -50,8 +50,7 @@ (Eksperimentelt) Tving nedlasting av trafikk gjennom Tor for forbedret personvern (strømming av videoer støttes ikke enda). Kan ikke opprette nedlastingsmappe \'%1$s\' Opprettet nedlastingsmappen \'%1$s\' - Trykk «Søk» for å komme i gang -\n + Trykk «Søk» for å komme i gang Automatisk avspilling Spiller en video når NewPipe blir forespurt av et annet program Innhold diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index c2443fc53f5..c20fc874039 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -1,7 +1,6 @@ - Tik op \"Zoeken\" om te beginnen -\n + Tik op \"Zoeken\" om te beginnen %1$s keer bekeken Gepubliceerd op %1$s Er is geen stream videospeler gevonden. Wilt u VLC installeren\? diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 67845c3cf7b..6b33233f97c 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -72,8 +72,7 @@ Video Geluid Opnieuw proberen - Druk op \"zoeken\" om te beginnen -\n + Druk op \"zoeken\" om te beginnen Automatisch afspelen Speelt video’s af als NewPipe vanuit een andere app wordt geopend Live diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 0dfdc8c0875..32b185aa887 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,7 +1,6 @@ - Naciśnij „Szukaj”, aby zacząć -\n + Naciśnij „Szukaj”, aby zacząć Zainstaluj Anuluj Otwórz w przeglądarce diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index f61ba71da39..af9c12beb97 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -88,8 +88,7 @@ O site não pôde ser analisado totalmente Miniatura de visualização do vídeo Transmissões ao vivo ainda não são suportadas - Toque em \"Pesquisar\" para começar -\n + Toque em \"Pesquisar\" para começar Arquivo já existe Threads Link inválido ou internet indisponível diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 772c25aee99..2819539ecc8 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -7,8 +7,7 @@ Tenha em atenção de que esta operação pode sobrecarregar a sua rede. \n \nDeseja continuar\? - Toque \"Pesquisar\" para iniciar -\n + Toque \"Pesquisar\" para iniciar Continuar reprodução Processos Os carateres inválidos são substituídos por este valor diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 92533dea03f..a8b4e98b87e 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -73,8 +73,7 @@ Áudio Tentar novamente Deve conceder acesso ao armazenamento - Toque na \"lupa\" para começar -\n + Toque na \"lupa\" para começar Reprodução automática Reproduzir vídeo se NewPipe for invocado por outra aplicação Em direto diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 0c9a1d0bbbe..7ea8c1f20e0 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -59,8 +59,7 @@ Folosește Tor (Experimental) Forțează descărcarea traficului prin Tor pentru intimitate crescută (transmiterea în flux a videoclipurilor nu este deocamdată suportată). Nu s-a putut crea directorul de descărcare \'%1$s\' - Apăsați căutare pentru a începe -\n + Apăsați căutare pentru a începe Redare automată Redă un videoclip atunci când NewPipe este deschis din altă aplicație În direct diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 32a1f5022f2..9d18f94aaec 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -47,8 +47,7 @@ Папка для скачанного аудио Папка для скачанного аудио Введите путь к папке для скачивания аудио - Нажмите на \"лупу\", чтобы начать -\n + Нажмите на \"лупу\", чтобы начать Подождите… Файл уже существует Потоки diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 03c2d872017..21048e0bb42 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -11,8 +11,7 @@ ᱵᱟᱹᱰᱨᱟᱹ ᱵᱚᱦᱟᱞ %1$s ᱧᱮᱞᱠᱚ - ᱮᱦᱲᱵ ᱞᱟᱹᱜᱤᱫ \"ᱥᱮᱸᱫᱽᱨᱟ\" ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ -\n + ᱮᱦᱲᱵ ᱞᱟᱹᱜᱤᱫ \"ᱥᱮᱸᱫᱽᱨᱟ\" ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ ᱵᱟᱦᱨᱮ ᱣᱤᱰᱤᱭᱚ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱮᱵᱷᱟᱨ ᱢᱮ ᱛᱮᱞᱟ ᱫᱮᱠᱷᱟᱣᱜᱽ ᱠᱟᱱᱟᱺ%s ᱟᱢᱟᱜ ᱚᱨᱛᱷᱚ \"%1$s\" ᱥᱮ\? diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 292d5239b06..7e646541d70 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -610,8 +610,7 @@ Perunu riproduidore de flussos agatadu. Cheres installare VLC\? Publicadu su %1$s %1$s visualizatziones - Toca \"Chirca\" pro incumintzare -\n + Toca \"Chirca\" pro incumintzare Mai Cun su Wi-Fi ebbia Incumintza cun sa riprodutzione automaticamente — %s diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 2f574160212..a6d8f58b102 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -55,8 +55,7 @@ (Experimentálne) Vyžadovať preberanie cez Tor pre väčšie súkromie (streamovanie videa momentálne nie je podporované). Nemožno vytvoriť adresár na preberanie \'%1$s\' Zložka na preberanie bola vytvorená \'%1$s\' - Ťuknite na \"Vyhľadávanie\" -\n + Ťuknite na \"Vyhľadávanie\" Automatické prehrávanie Prehrá video pri zavolaní NewPipe inou aplikáciou Obsah diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index 946ce10658f..7f6fdc846eb 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -71,8 +71,7 @@ %1$s ayaa lafuray Wax fura lama helin shaygan. Ku shubo VLC\? Lasoo galiyay: %1$s - Ku dhufo \"Raadi\" 🔍 si aad u bilowdo -\n + Ku dhufo \"Raadi\" 🔍 si aad u bilowdo Shay magacan leh ayaa horay ujiray Ku badal Usamee magac gaar ah diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 98c1ec742f4..3aaae5bfa84 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -1,7 +1,6 @@ - Shtyp \"Kërko\" për të filluar -\n + Shtyp \"Kërko\" për të filluar %1$s shikime Publikuar më %1$s Instalo diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index b3dbd866892..ec8a97ec0fa 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -76,8 +76,7 @@ Пријавите грешку Извештај корисника Уживо - тапните на лупу да започнете -\n + тапните на лупу да започнете Аутопуштање Пушта видео по позиву из друге апликације Почни diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 44be9a6d502..bca50dc89f4 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -1,7 +1,6 @@ - தொடங்க \"தேடல்\" ஐ தட்டவும் -\n + தொடங்க \"தேடல்\" ஐ தட்டவும் %1$s பார்வைகள் %1$s அன்று வெளியிடப்பட்டது நிகழ்பட ஓட்டி கண்டறியப்படவில்லை. VLC நிறுவ வேண்டுமா\? diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index ee6ac9ed5d1..75cb5781ee6 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -1,7 +1,6 @@ - แตะที่ปุ่ม \"ค้นหา\" เพื่อเริ่มต้น -\n + แตะที่ปุ่ม \"ค้นหา\" เพื่อเริ่มต้น %1$s ครั้ง เผยแพร่เมื่อ %1$s ไม่พบแอปที่สามารถสตรีมสื่อวีดีโอได้ คุณต้องการติดตั้ง VLC หรือไม่\? diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index c7ec3cb2b61..7e750f8c409 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,7 +1,6 @@ - Başlamak için \"büyüteç\" simgesine dokunun -\n + Başlamak için \"büyüteç\" simgesine dokunun %1$s görüntüleme Yayınlanma: %1$s Akış oynatıcısı bulunamadı. VLC yüklensin mi\? diff --git a/app/src/main/res/values-tzm/strings.xml b/app/src/main/res/values-tzm/strings.xml index 54f4464198d..082e752de9f 100644 --- a/app/src/main/res/values-tzm/strings.xml +++ b/app/src/main/res/values-tzm/strings.xml @@ -160,8 +160,7 @@ Tanafut Agem Lteɣ - Add \"Rzu\" i usenti -\n + Add \"Rzu\" i usenti Ssemal tadɣert \"Γer s Kodi\" Dɣer asedaw n wagam n ifuyla n ividyuten Ssemres ameɣri n imsli abeṛṛani diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 1989beeb534..f4621bd01b1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -62,8 +62,7 @@ Звіт Інформація: Що сталося: - Натисніть на „збільш. скло“, щоб почати -\n + Натисніть на „збільш. скло“, щоб почати Чорна Завантаження Завантаження diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 3c98514528f..81da06a29e0 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -1,7 +1,6 @@ - شروع کرنے کے لیے \"تلاش\" پر ٹیپ کریں -\n + شروع کرنے کے لیے \"تلاش\" پر ٹیپ کریں %1$s ملاحظات %1$s کو شائع ہوا انسٹال diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 6b4a143d366..5a24d83f51f 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1,7 +1,6 @@ - Nhấn \"Tìm kiếm\" để bắt đầu -\n + Nhấn \"Tìm kiếm\" để bắt đầu %1$s lượt xem Đăng vào %1$s Không tìm thấy trình phát. Cài đặt VLC\? diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index cb72412eb54..7ce33853c1f 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -50,8 +50,7 @@ 選擇聲音檔案的下載路徑 未能建立下載路徑「%1$s」 已建立下載路徑「%1$s」 - 點擊 \"搜索\" 以開始使用 -\n + 點擊 \"搜索\" 以開始使用 自動撥放 當 NewPipe 被其他程式調用時播放視頻 內容 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d58f6233ac8..beacd9222e1 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -50,8 +50,7 @@ 選擇音訊檔的下載資料夾 無法建立下載目錄「%1$s」 已建立下載目錄「%1$s」 - 輕觸「放大鏡」以開始使用 -\n + 輕觸「放大鏡」以開始使用 以懸浮視窗開啟 移除某些解析度的音訊 懸浮視窗模式 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 943e934516c..247326b7a5e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,6 @@ - Tap the \"magnifying glass\" to get started -\n + Tap the \"magnifying glass\" to get started %1$s views Published on %1$s No stream player found. Install VLC? From 59594c6637cbd544736c1e1a5d951e80e670b66f Mon Sep 17 00:00:00 2001 From: TobiGr Date: Fri, 14 May 2021 00:03:07 +0200 Subject: [PATCH 22/47] Add changelog for 0.21.3 --- fastlane/metadata/android/en-US/changelogs/969.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/969.txt diff --git a/fastlane/metadata/android/en-US/changelogs/969.txt b/fastlane/metadata/android/en-US/changelogs/969.txt new file mode 100644 index 00000000000..8d81bacf8cf --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/969.txt @@ -0,0 +1,8 @@ +• Allow installation on external storage +• [Bandcamp] Added support for displaying the first three comments on a stream +• Only show 'download has started' toast when download is started +• Do not set reCaptcha cookie when there is no cookie stored +• [Player] Improve cache performance +• [Player] Fixed player not automatically playing +• Dismiss previous Snackbars when deleting downloads +• Fixed trying to delete object not in list \ No newline at end of file From 0ff675171bcadf73ef72817c5291061790718730 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Fri, 14 May 2021 09:23:50 +0200 Subject: [PATCH 23/47] Update extractor version --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index c9ca07b42b3..ab589733e1e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -183,7 +183,7 @@ dependencies { /** NewPipe libraries **/ // You can use a local version by uncommenting a few lines in settings.gradle implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.2' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:3a3ade20f48cf37526eb970a7df56ee2405125fc' /** Checkstyle **/ checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" From 1d43a2362cb8a5688c18af76acadb7554965adec Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 14 May 2021 12:05:52 +0200 Subject: [PATCH 24/47] Add debug option to disable media tunneling --- app/src/main/java/org/schabi/newpipe/player/Player.java | 6 +++++- app/src/main/res/values/settings_keys.xml | 1 + app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/debug_settings.xml | 7 +++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index ba6521b91c5..d319e99ad02 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -495,7 +495,11 @@ private void initPlayer(final boolean playOnReady) { simpleExoPlayer.addTextOutput(binding.subtitleView); // enable media tunneling - if (DeviceUtils.shouldSupportMediaTunneling()) { + if (DEBUG && PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(context.getString(R.string.disable_media_tunneling_key), false)) { + Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] " + + "media tunneling disabled in debug preferences"); + } else if (DeviceUtils.shouldSupportMediaTunneling()) { trackSelector.setParameters( trackSelector.buildUponParameters().setTunnelingEnabled(true)); } else if (DEBUG) { diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 9a1fcba7d40..6973a72f2dd 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -172,6 +172,7 @@ show_memory_leaks_key allow_disposed_exceptions_key show_original_time_ago_text_key + disable_media_tunneling_text_key crash_the_app_key diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 247326b7a5e..5acb83e40d0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -521,6 +521,8 @@ Force reporting of undeliverable Rx exceptions outside of fragment or activity lifecycle after disposal Show original time ago on items Original texts from services will be visible in stream items + Disable media tunneling + Disable media tunneling if you experience a black screen or stuttering on video playback Crash the app Import/export diff --git a/app/src/main/res/xml/debug_settings.xml b/app/src/main/res/xml/debug_settings.xml index 8dda516fe5c..d27d67aad40 100644 --- a/app/src/main/res/xml/debug_settings.xml +++ b/app/src/main/res/xml/debug_settings.xml @@ -30,6 +30,13 @@ android:title="@string/show_original_time_ago_title" app:iconSpaceReserved="false" /> + + Date: Fri, 14 May 2021 12:15:48 +0200 Subject: [PATCH 25/47] Fixed checkstyle --- app/src/main/java/org/schabi/newpipe/player/Player.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index d319e99ad02..03e061d1c9e 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -497,8 +497,8 @@ private void initPlayer(final boolean playOnReady) { // enable media tunneling if (DEBUG && PreferenceManager.getDefaultSharedPreferences(context) .getBoolean(context.getString(R.string.disable_media_tunneling_key), false)) { - Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] " + - "media tunneling disabled in debug preferences"); + Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] " + + "media tunneling disabled in debug preferences"); } else if (DeviceUtils.shouldSupportMediaTunneling()) { trackSelector.setParameters( trackSelector.buildUponParameters().setTunnelingEnabled(true)); From 4038617d59bf7fb41e58b9f7014e4457d70f0e64 Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 14 May 2021 12:25:07 +0200 Subject: [PATCH 26/47] removed _text_ from show_original_time_ago and disable_media_tunneling --- app/src/main/res/values/settings_keys.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 6973a72f2dd..fd6cc725140 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -171,8 +171,8 @@ allow_heap_dumping_key show_memory_leaks_key allow_disposed_exceptions_key - show_original_time_ago_text_key - disable_media_tunneling_text_key + show_original_time_ago_key + disable_media_tunneling_key crash_the_app_key From 95f61542b5affadfc9ddb648244c653c099ce847 Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 14 May 2021 14:47:53 +0200 Subject: [PATCH 27/47] TEST: Downgrade ExoPlayer to 2.12 --- app/build.gradle | 2 +- app/src/main/java/org/schabi/newpipe/player/Player.java | 4 ++-- .../org/schabi/newpipe/player/helper/AudioReactor.java | 2 +- .../org/schabi/newpipe/player/helper/LoadController.java | 9 ++++----- .../org/schabi/newpipe/player/helper/PlayerHelper.java | 4 ++-- .../newpipe/player/playback/CustomTrackSelector.java | 8 ++++---- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ab589733e1e..c6a420f0703 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -105,7 +105,7 @@ ext { androidxRoomVersion = '2.3.0-alpha03' icepickVersion = '3.2.0' - exoPlayerVersion = '2.13.3' + exoPlayerVersion = '2.12.3' googleAutoServiceVersion = '1.0-rc7' groupieVersion = '2.8.1' markwonVersion = '4.6.0' diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index 03e061d1c9e..46720213725 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -500,8 +500,8 @@ private void initPlayer(final boolean playOnReady) { Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] " + "media tunneling disabled in debug preferences"); } else if (DeviceUtils.shouldSupportMediaTunneling()) { - trackSelector.setParameters( - trackSelector.buildUponParameters().setTunnelingEnabled(true)); + trackSelector.setParameters(trackSelector.buildUponParameters() + .setTunnelingAudioSessionId(C.generateAudioSessionIdV21(context))); } else if (DEBUG) { Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] does not support media tunneling"); } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java b/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java index c4b21f203a1..45b59332840 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java @@ -148,7 +148,7 @@ public void onAnimationEnd(final Animator animation) { //////////////////////////////////////////////////////////////////////////*/ @Override - public void onAudioSessionIdChanged(final EventTime eventTime, final int audioSessionId) { + public void onAudioSessionId(final EventTime eventTime, final int audioSessionId) { if (!PlayerHelper.isUsingDSP()) { return; } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/LoadController.java b/app/src/main/java/org/schabi/newpipe/player/helper/LoadController.java index fe0233508fc..b04812a12a9 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/LoadController.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/LoadController.java @@ -4,7 +4,7 @@ import com.google.android.exoplayer2.LoadControl; import com.google.android.exoplayer2.Renderer; import com.google.android.exoplayer2.source.TrackGroupArray; -import com.google.android.exoplayer2.trackselection.ExoTrackSelection; +import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.upstream.Allocator; public class LoadController implements LoadControl { @@ -48,7 +48,7 @@ public void onPrepared() { @Override public void onTracksSelected(final Renderer[] renderers, final TrackGroupArray trackGroups, - final ExoTrackSelection[] trackSelections) { + final TrackSelectionArray trackSelections) { internalLoadControl.onTracksSelected(renderers, trackGroups, trackSelections); } @@ -92,12 +92,11 @@ public boolean shouldContinueLoading(final long playbackPositionUs, @Override public boolean shouldStartPlayback(final long bufferedDurationUs, final float playbackSpeed, - final boolean rebuffering, final long targetLiveOffsetUs) { + final boolean rebuffering) { final boolean isInitialPlaybackBufferFilled = bufferedDurationUs >= this.initialPlaybackBufferUs * playbackSpeed; final boolean isInternalStartingPlayback = internalLoadControl - .shouldStartPlayback(bufferedDurationUs, playbackSpeed, rebuffering, - targetLiveOffsetUs); + .shouldStartPlayback(bufferedDurationUs, playbackSpeed, rebuffering); return isInitialPlaybackBufferFilled || isInternalStartingPlayback; } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java index 59b2fed17e9..d60a14381e1 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java @@ -23,7 +23,7 @@ import com.google.android.exoplayer2.SeekParameters; import com.google.android.exoplayer2.text.CaptionStyleCompat; import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; -import com.google.android.exoplayer2.trackselection.ExoTrackSelection; +import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.ui.AspectRatioFrameLayout; import com.google.android.exoplayer2.ui.AspectRatioFrameLayout.ResizeMode; import com.google.android.exoplayer2.util.MimeTypes; @@ -323,7 +323,7 @@ public static int getPlaybackOptimalBufferMs() { return 60000; } - public static ExoTrackSelection.Factory getQualitySelector() { + public static TrackSelection.Factory getQualitySelector() { return new AdaptiveTrackSelection.Factory( 1000, AdaptiveTrackSelection.DEFAULT_MAX_DURATION_FOR_QUALITY_DECREASE_MS, diff --git a/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java b/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java index 389be70628e..d70707fdbf1 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java +++ b/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java @@ -13,7 +13,7 @@ import com.google.android.exoplayer2.source.TrackGroup; import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; -import com.google.android.exoplayer2.trackselection.ExoTrackSelection; +import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.util.Assertions; /** @@ -28,7 +28,7 @@ public class CustomTrackSelector extends DefaultTrackSelector { private String preferredTextLanguage; public CustomTrackSelector(final Context context, - final ExoTrackSelection.Factory adaptiveTrackSelectionFactory) { + final TrackSelection.Factory adaptiveTrackSelectionFactory) { super(context, adaptiveTrackSelectionFactory); } @@ -50,7 +50,7 @@ public void setPreferredTextLanguage(@NonNull final String label) { @Override @Nullable - protected Pair selectTextTrack( + protected Pair selectTextTrack( final TrackGroupArray groups, @NonNull final int[][] formatSupport, @NonNull final Parameters params, @@ -86,7 +86,7 @@ protected Pair selectTextTrack( } } return selectedGroup == null ? null - : Pair.create(new ExoTrackSelection.Definition(selectedGroup, selectedTrackIndex), + : Pair.create(new TrackSelection.Definition(selectedGroup, selectedTrackIndex), Assertions.checkNotNull(selectedTrackScore)); } } From 68fd7a031f694cc43c1a978444eed9ee96e5e04b Mon Sep 17 00:00:00 2001 From: iamthesenate1 <77978836+iamthesenate1@users.noreply.github.com> Date: Fri, 14 May 2021 19:58:43 +0300 Subject: [PATCH 28/47] Add No Login Required translation --- README.ro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.ro.md b/README.ro.md index 6fa76020f8a..fb5624630fe 100644 --- a/README.ro.md +++ b/README.ro.md @@ -45,6 +45,7 @@ NewPipe nu foloseşte nici-o bibliotecă Google framework sau API-ul Youtube. We ### Funcţii * Căutarea videoclipurilor +* Nu este necesară logarea * Afişarea informaţiilor generale despre videoclipuri * Urmărirea videoclipurilor Youtube * Ascultarea videoclipurilor Youtube From 514f92e6f283d9cbb83037ff89f0ef0ecd19b661 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 15 May 2021 09:40:58 +0200 Subject: [PATCH 29/47] Update translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Translated using Weblate (English) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Serbian) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Russian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Japanese) Currently translated at 99.5% (636 of 639 strings) Translated using Weblate (Italian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Slovenian) Currently translated at 82.7% (529 of 639 strings) Translated using Weblate (Slovenian) Currently translated at 82.7% (529 of 639 strings) Translated using Weblate (Greek) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Polish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (638 of 639 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Hebrew) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Estonian) Currently translated at 94.5% (604 of 639 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Hebrew) Currently translated at 46.0% (23 of 50 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/ Translated using Weblate (Serbian) Currently translated at 16.0% (8 of 50 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sr/ Translated using Weblate (Chinese (Simplified)) Currently translated at 98.0% (49 of 50 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/ Translated using Weblate (Estonian) Currently translated at 10.0% (5 of 50 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/et/ Translated using Weblate (German) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Greek) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Hebrew) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 99.6% (639 of 641 strings) Translated using Weblate (Ukrainian) Currently translated at 8.0% (4 of 50 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ --- app/src/main/res/values-ar/strings.xml | 2 +- .../main/res/values-b+zh+HANS+CN/strings.xml | 153 +++++++++--------- app/src/main/res/values-de/strings.xml | 4 +- app/src/main/res/values-el/strings.xml | 4 +- app/src/main/res/values-et/strings.xml | 42 ++++- app/src/main/res/values-he/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 10 +- app/src/main/res/values-nb-rNO/strings.xml | 4 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sl/strings.xml | 75 ++++----- app/src/main/res/values-sr/strings.xml | 46 +++--- app/src/main/res/values-tr/strings.xml | 4 +- app/src/main/res/values-uk/strings.xml | 2 + app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- .../metadata/android/et/changelogs/969.txt | 8 + .../metadata/android/he/changelogs/969.txt | 8 + .../metadata/android/sr/changelogs/969.txt | 8 + .../metadata/android/uk/changelogs/63.txt | 8 + .../metadata/android/uk/changelogs/64.txt | 8 + .../metadata/android/uk/full_description.txt | 1 + .../android/zh-Hans/changelogs/969.txt | 8 + 24 files changed, 262 insertions(+), 147 deletions(-) create mode 100644 fastlane/metadata/android/et/changelogs/969.txt create mode 100644 fastlane/metadata/android/he/changelogs/969.txt create mode 100644 fastlane/metadata/android/sr/changelogs/969.txt create mode 100644 fastlane/metadata/android/uk/changelogs/63.txt create mode 100644 fastlane/metadata/android/uk/changelogs/64.txt create mode 100644 fastlane/metadata/android/uk/full_description.txt create mode 100644 fastlane/metadata/android/zh-Hans/changelogs/969.txt diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index aabc14ae882..45c36968580 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -55,7 +55,7 @@ خطأ تعذر تحليل الموقع تعذر فك تشفير توقيع رابط الفيديو - اضغط على \"العدسة المكبرة\" للبدء + اضغط على العدسة المكبرة للبدء. اشتراك مشترك الرئيسية diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index 36fee48356f..2fe2643b6c1 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -1,6 +1,6 @@ - 点击“搜索”开始使用 + 点击放大镜开始使用。 %1$s 次观看 发布于 %1$s 在浏览器中打开 @@ -71,7 +71,7 @@ 无法得知订阅人数 发布新版本时,通知我升级应用 网格 - NewPipe可更新! + NewPipe 可更新! 服务器不接受多线程下载, 使用 @string/msg_threads = 1 重试 自动恢复上次播放 清空数据 @@ -128,7 +128,7 @@ 无人订阅 %s 人订阅 - + 无视频 拖动以重新排序 @@ -191,7 +191,7 @@ 信息: 发生了什么: 详情:\\n请求:\\n内容语言:\\n内容国家:\\n客户端语言:\\n服务:\\nGMT时间:\\n包名:\\n版本:\\n操作系统版本: - 您的附加说明(请用英文): + 您的附加说明(请用英文): 详细信息: 视频预览缩略图 播放视频,时长: @@ -232,7 +232,7 @@ 订阅 最新 自动恢复播放 - 在播放被打断(例如突然来电)后恢复播放 + 在播放被打断(例如突然来电)后恢复播放 记录搜索历史 Newpipe 将在本地存储搜索历史记录 Newpipe 将保留播放记录 @@ -264,7 +264,7 @@ 趋势 前 50 最新与热门 - 显示 \"长按添加\" 说明 + 显示“长按添加”说明 在视频详情页中,长按背景播放或悬浮窗播放按钮时显示提示 已加入后台播放播放列表 已加入悬浮窗播放列表 @@ -303,12 +303,12 @@ 正在加载请求的内容 导入数据库 导出数据库 - 覆盖您的当前播放历史、订阅、播放列表和设置(可选) + 覆盖您的当前播放历史、订阅、播放列表和设置(可选) 导出历史记录、订阅、播放列表和设置 导出成功 导入成功 没有有效的 ZIP 文件 - 警告: 无法导入所有文件 + 警告:无法导入所有文件 此操作会覆盖当前设置 显示信息 收藏 @@ -339,11 +339,11 @@ 自动生成 『内存泄漏监视』可能导致应用在『核心转储』时无响应 报告『提前结束Android生命周期』错误 - 强制报告处理后的未送达的Activity或Fragment生命周期之外的Rx异常 - 使用快速寻址(不精确) - 快速寻址定位允许播放器以较低精确度为代价换取更快的寻址定位速度\\n此功能不适用于以5、15或25秒为隔的寻址定位 + 强制报告处理后的未送达的 Activity 或 Fragment 生命周期之外的 Rx 异常 + 使用快速寻址(不精确) + 快速寻址定位允许播放器以较低精确度为代价换取更快的寻址定位速度。此功能不适用于以 5、15 或 25 秒为隔的寻址定位。 自动将“接下来”视频加入播放列表 - 播放完(非循环)列表中的最后一个视频后,自动将一个相关视频添加到当前播放列表 + 播放完(非循环)列表中的最后一个视频后,自动将一个相关视频添加到当前播放列表 没有该文件夹 无相似文件/内容源 文件不存在,或缺少读写文件权限 @@ -359,25 +359,25 @@ 先前的导出 无法导入订阅 无法导出订阅 - 从 Google takeout 导入YouTube 订阅: + 从 Google takeout 导入 YouTube 订阅: \n -\n1. 打开这个网页:%1$s; -\n2. 登录谷歌账号; -\n3.选择“YouTube 和 YouTube Music” ,然后点击“已包含所有YouTube数据”,然后取消全选,仅选择“订阅内容”,然后点击“确定” -\n4. 点击“下一步”,可以保持默认,然后点击“创建导出作业”; -\n5. 通过所指定的方式,下载takeout数据; -\n6. 从下载的takeout压缩包提取.json文件 (通常位于\"YouTube and YouTube Music/subscriptions/subscriptions.json\")然后在此导入 +\n1. 打开这个网页:%1$s; +\n2. 登录谷歌帐号; +\n3. 选择“YouTube 和 YouTube Music”,然后点击“已包含所有 YouTube 数据”,然后取消全选,仅选择“订阅内容”,然后点击“确定”; +\n4. 点击“下一步”,可以保持默认,然后点击“创建导出作业”; +\n5. 通过所指定的方式,下载 takeout 数据; +\n6. 从下载的 takeout 压缩包提取 .json 文件(通常位于“YouTube and YouTube Music/subscriptions/subscriptions.json”)然后在此导入。 通过输入网址或你的 ID 导入 SoundCloud 配置文件: \n -\n1. 在浏览器中启用\"电脑模式\" (该网站未适配移动设备) ; -\n2. 打开该网站: %1$s; -\n3. 登录(如果需要); -\n4. 复制得到的配置文件下载地址 - 你的 ID:soundcloud.com/[你的ID] +\n1. 在浏览器中启用“电脑模式“(该网站未适配移动设备); +\n2. 打开该网站:%1$s; +\n3. 登录(如果需要); +\n4. 复制得到的配置文件下载地址。 + 你的 ID:soundcloud.com/[你的ID] 该操作消耗大量流量, \n \n你想继续吗? - 关闭可禁止加载封面,节省流量和内存使用(现在更改该选项将清除内存与储存中全部缓存) + 关闭可禁止加载封面,节省流量和内存使用(现在更改该选项将清除内存与储存中全部缓存) 清空图像缓存成功 清空已缓存的元数据 清空已缓存的网页数据 @@ -385,32 +385,32 @@ 播放速度控制 节奏 音调 - 解除音视挂钩(可能导致失真) + 解除音视挂钩(可能导致失真) 首选“打开”操作 打开内容时的默认操作 - %s 没有可下载的串流 字幕 - 修改播放器字幕比例和背景样式, 重启应用生效 + 修改播放器字幕比例和背景样式。重启应用生效。 删除串流播放历史和播放痕迹记录 删除全部播放历史? 清空搜索历史 清空搜索历史关键词 是否删除全部搜索历史? 搜索历史已删除。 - NewPipe 是版权自由软件:您可以随时使用、研究共享和改进它。您可以根据自由软件基金会发布的 GNU 通用公共许可证GPLv3或(由您选择的)任何更高版本的许可证重新分发或修改该许可证。 + NewPipe 是版权自由软件:您可以随时使用、研究共享和改进它。您可以根据自由软件基金会发布的 GNU 通用公共许可证 GPLv3 或(由您选择的)任何更高版本的许可证重新分发或修改该许可证。 是否要导入设置? NewPipe 隐私政策 NewPipe 项目非常重视您的隐私。因此,未经您的同意,应用程序不会收集任何数据。 \nNewPipe 的隐私政策详细解释了发送崩溃报告时会发送和存储的数据。 阅读隐私政策 - 为了遵守欧盟的《通用数据保护条例 (GDPR)》,我们特此提醒您注意 NewPipe 的隐私政策,请您仔细阅读, -\n您必须在同意以后才能向我们发送错误报告! + 为了遵守欧盟的《通用数据保护条例 (GDPR)》,我们特此提醒您注意 NewPipe 的隐私政策,请您仔细阅读。 +\n您必须在同意以后才能向我们发送错误报告! 接受 拒绝 无限制 使用移动数据播放时降低分辨率 退出应用时最小化 - 从主播放器切换到其他应用时的操作 - %s + 从主播放器切换到其他应用时的操作 — %s 静音时快进 比例调整 重置 @@ -467,8 +467,8 @@ 在列表中,使用底端进度条显示某一视频上次播放时的播放位置 已删除播放痕迹历史。 文件已被移动或被删除 - 该名称的文件已经存在 - 命名冲突,已存在具有该名称的文件 + 同名文件已存在 + 同名的已下载文件已经存在 无法覆盖文件 已暂停下载包含此名称的任务 NewPipe 在处理文件时被关闭 @@ -482,11 +482,11 @@ 暂停下载 总是询问下载位置 系统将询问您将每次下载的保存位置 - 系统将询问您将每次下载的保存位置 -\n(如果要下载到外部 SD 卡,请选择 SAF) + 系统将询问您将每次下载的保存位置。 +\n如果要下载到外部 SD 卡,请选择 SAF 使用 SAF - 存储访问框架(SAF)允许下载文件到外部SD卡。 -\n一些设备不兼容SAF + 存储访问框架(SAF)允许下载文件到外部 SD 卡。 +\n部分设备不兼容 SAF 删除播放痕迹历史 删除所有播放痕迹历史 是否删除全部播放痕迹历史? @@ -506,82 +506,85 @@ 设置自定义 PeerTube 服务器 查找你需要的服务器 %s 添加服务器 - 输入服务器网址(URL) + 输入服务器网址(URL) 无法验证服务器 仅支持 HTTPS URL 该服务器已存在 本地 最近添加 最受欢迎 - 自动生成的(找不到上传者) + 自动生成的(找不到上传者) 正在恢复 无法恢复此下载 选择一个服务器 快进 / 快退的寻址定位时间间隔 清空下载记录 删除下载文件 - 已删除 %1$d 下载 + 已删除 %1$d 个下载 授予在其他应用上层显示的权限 - Newpipe应用语言 - [系统默认] + 应用语言 + 系统默认 完成后请点击“完成” 完成 视频 - %d秒 + %d 秒 + - 由于ExoPlayer的限制,寻址间隔置为%d秒 + 由于 ExoPlayer 的限制,寻址间隔置为 %d 秒 静音 取消静音 帮助 - %d分钟 + %d 分钟 + - %d小时 + %d 小时 + - %d天 + %d 天 + 频道组 - 订阅最后更新:%s - 未加载: %d - 正在加载feed… - 正在处理feed… + 订阅最后更新:%s + 未加载:%d + 正在加载 feed… + 正在处理 feed… 选择订阅 未选中任何订阅 - 已选中%d + 已选中 %d + 清空组名 您要删除该组吗? 新建 Feed - Feed更新阈值 - 上次更新后,订阅被视为过期的时间-%s + Feed 更新阈值 + 上次更新后,订阅被视为过期的时间 — %s 始终更新 - 可用时使用专用feed获取 - 仅在某些服务中可用,通常速度更快,但返回的视频数量可能有限,而且信息通常不完整(如,无视频持续时间,类型与没有直播状态) + 可用时使用专用 feed 获取 + 仅在某些服务中可用,通常速度更快,但返回的视频数量可能有限,而且信息通常不完整(如无视频时长、类型,无直播状态)。 启用快速模式 禁用快速模式 - 您是否觉得Feed加载太慢?如果是这样,请尝试启用快速加载(可在设置中修改,也可使用下面的按钮修改) + 您是否觉得 feed 加载太慢?如果是这样,请尝试启用快速加载(可在设置中修改,也可使用下面的按钮修改) \n \nNewPipe 提供两种 feed 加载策略: \n•获取整个订阅频道,很慢但是很完整。 \n•使用专用的服务端点,比较快但通常不完整 \n -\n两者之间的区别在于,后者通常缺少一些信息,如视频的持续时间或类型(无法区分直播视频和普通视频),并且可能返回更少的视频条目 -\n -\nYouTube 是一个通过其 RSS feed 提供此快速方法的服务示例。 +\n两者之间的区别在于,后者通常缺少一些信息,如视频的持续时间或类型(无法区分直播视频和普通视频),并且可能返回更少的视频条目。 \n -\n因此,选择哪种方式取决于您的偏好: -\n加载速度还是信息准确。 - NewPipe尚不支持该内容。 +\nYouTube 是一个通过其 RSS feed 提供这种快速方法的服务示例。 \n +\n因此,选择哪种方式取决于您的偏好:加载速度还是信息准确。 + NewPipe 尚不支持该内容。 \n \n也许未来版本会支持它。 ∞ 部视频 - 100+部视频 + 100+ 部视频 艺术家 专辑 歌曲 @@ -589,7 +592,7 @@ \n \n如果您想要观看,请在设置中启用“%1$s”。 由 %s - 由%s创建 + 由 %s 创建 频道的头像缩略图 是的,包括没看完的视频 已经看过且在之后被加入播放列表的视频将被删除。 @@ -608,7 +611,7 @@ 复制已整理的报告 显示结果:%s 从不 - 仅在Wi-Fi下 + 仅在 Wi-Fi 下 视频开始播放后,自动定位到上次播放时的位置 — %s 播放列表 无法识别此 URL。是否用其他应用打开\? @@ -620,8 +623,8 @@ 正在缓冲 随机播放 单曲循环 - 最多只能选择三个紧凑通知操作! - 点击编辑下面的每一个通知动作。使用右方的复选框选择在紧凑通知中显示的动作,最多可以选择三个。 + 最多可以选择三个操作显示在紧凑通知中! + 点击编辑下面的每一个通知操作。使用右方的复选框选择在紧凑通知中显示的动作,最多可以选择三个。 第五操作按钮 第四操作按钮 第三操作按钮 @@ -637,8 +640,8 @@ reCAPTCHA cookie 已被清空 清空 reCAPTCHA cookie YouTube提供了“受限模式”,可以隐藏潜在的成人内容 - 展示有年龄限制的、可能不适合儿童观看的内容(比如18+) - 让Android系统根据视频缩略图的主色彩自主决定通知颜色(注意,该特性仅在部分设备上可用) + 展示有年龄限制的、可能不适合儿童观看的内容(比如 18+) + 让 Android 系统根据视频缩略图的主色彩给通知着色(注意,该特性仅在部分设备上可用) 自动着色通知 锁屏背景和通知中使用缩略图 显示缩略图 @@ -657,20 +660,22 @@ 用…打开 设备上没有应用可以打开 让应用崩溃 - 此内容仅对已付费的用户可用,因此NewPipe 无法流式传输或下载该内容。 + 此内容仅对已付费的用户可用,因此 NewPipe 无法流式传输或下载该内容。 该视频仅供 YouTube Music Premium 会员使用,NewPipe 无法流式传输或下载该视频。 此内容是私有的,因此 NewPipe 无法流式传输或下载该内容。 - 这是 SoundCloud Go +曲目,至少在你所在的国家/地区如此 NewPipe 无法流式传输或下载它。 + 这是 SoundCloud Go +曲目,至少在你所在的国家/地区是这样,因此 NewPipe 无法流式传输或下载它。 此内容在你所在的国家/地区不可用。 这个视频有年龄限制。 \n由于 YouTube 针对此类视频的新政策,NewPipe 无法访问其任何视频流,因此无法播放该视频。 处理 电台 精选 - 自动(系统主题) + 自动(系统主题) 下载已开始 在此选择您最喜欢的夜间主题 - 选择你最喜欢的夜间主题 - %s + 选择你最喜欢的夜间主题 — %s 夜间主题 显示频道详情 + 如果遇到黑屏或视频播放卡顿的情况,请禁用媒体隧道 + 禁用媒体隧道 \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 774ca4d9157..1e3c8fc8af2 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -81,7 +81,7 @@ Fehler melden Anwenderbericht Live - „Suchen“ antippen, um zu beginnen + Tippe auf die Lupe, um zu beginnen. Downloads Downloads Fehlerbericht @@ -678,4 +678,6 @@ Automatisch (Gerätedesign) Nachtdesign Kanal-Details anzeigen + Deaktiviere das Media-Tunneling, wenn bei der Videowiedergabe ein schwarzer Bildschirm oder Stottern auftritt + Media-Tunneling deaktivieren \ No newline at end of file diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 31a0172f311..07fa633c798 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -87,7 +87,7 @@ Ιστορικό Ιστορικό Εμφάνιση πληροφοριών - Πατήστε «Αναζήτηση» για να ξεκινήσετε + Πατήστε το μεγενθυτικό φακό για να ξεκινήσετε. Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή). Λήψη του αρχείου ροής Αφαιρείται ο ήχος από κάποιες αναλύσεις @@ -678,4 +678,6 @@ Αυτόματο (θέμα συσκευής) Νυχτερινό θέμα Εμφάνιση λεπτομερειών καναλιού + Απενεργοποιήστε το media tunneling, αν εμφανίζεται μαύρη οθόνη ή διακοπτόμενος ήχος κατά την αναπαραγωγή βίντεο + Απενεργοποίηση media tunneling \ No newline at end of file diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 87edd026314..fd191d19b7e 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -1,6 +1,6 @@ - Alustamiseks toksa \"Luubi ikooni\" + Alustamiseks toksa suurendusklaasi ikooni. %1$s vaatamist Avaldatud %1$s Voogesituseks puudub pleier. Kas paigaldada VLC? @@ -589,4 +589,44 @@ Seadmes pole enam ruumi Sellise nimega allalaadimine on juba pooleli faili asendamine ei õnnestu + Uus + + %d valitud + %d valitud + + Sa pole tellimusi valinud + Vali tellimused + Töötlen andmevoogu… + Laadin andmevoogu… + Pole laaditud: %d + Andmevoo viimane uuendus: %s + Kanalite rühmad + + %d päev + %d päeva + + + %d tund + %d tundi + + + %d minut + %d minutit + + + %d sekund + %d sekundit + + Sellega eemaldame vaadatud videod ja esitusloendisse lisatud videod. +\nKas sa oled kindel\? Seda tegevuste ei saa hiljem tagasi pöörata! + Jah, sealhulgas videod, mille vaatmine jäi pooleli + Kas eemaldame vaadatud videod\? + Eemalda vaadatud videod + Kasuta süsteemi keelt + Rakenduse keel + Alati küsime kuhu kausta soovid faile alla laadida + Küsi allalaaditavate failide salvestamise kausta + Peata allalaadimised + Alusta allalaadimistega + Kopeeri vormindatud aruanne \ No newline at end of file diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 1e72099a6c4..276f868c2fb 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -1,6 +1,6 @@ - יש לגעת ב־„חיפוש” כדי להתחיל + יש לגעת בזכוכית המגדלת כדי להתחיל. %1$s צפיות פורסם ב־%1$s לא נמצאו נגני הזרמה, להתקין VLC\? @@ -698,4 +698,6 @@ לפתור ערכת עיצוב לילית להציג את פרטי הערוץ + כדאי להשבית תיעול מדיה אם הופיעה תופעה של מסך שחור או גמגום בנגינת וידאו + השבתת תיעול מדיה \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 037db8e5cdb..bf3b48c3522 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -59,7 +59,7 @@ I contenuti in diretta non sono ancora supportati Contenuti Mostra contenuti con restrizioni di età - Tocca la lente d\'ingrandimento per iniziare + Tocca la lente d\'ingrandimento per iniziare. Riproduzione automatica Riproduci i video quando NewPipe viene aperto da un\'altra app In diretta diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index a676c926ed2..0461b1aa7ef 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -78,7 +78,7 @@ 不具合を報告 利用者レポートを送る 生放送 - 開始するには「検索」をタップ + 虫眼鏡をタップして開始します。 開始 一時停止 再生 @@ -661,7 +661,13 @@ \n年齢制限付き動画を含む新しい YouTube ポリシーにより、NewPipe は動画ストリームにアクセスできないため再生できません。 以下からお好みの夜間テーマを選択できます 自動 (デバイスのテーマ) - %s + お好みの夜間テーマを選択 — %s 解決 夜間テーマ + ダウンロードを開始しました + チャンネルの詳細を表示 + ラジオ + おすすめ + ビデオ再生が止まったり出ない場合はメディアトンネリングを無効にしてください + マルチメディアトンネリングを無効にする \ No newline at end of file diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 1726bfe587a..913b76b311a 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -50,7 +50,7 @@ (Eksperimentelt) Tving nedlasting av trafikk gjennom Tor for forbedret personvern (strømming av videoer støttes ikke enda). Kan ikke opprette nedlastingsmappe \'%1$s\' Opprettet nedlastingsmappen \'%1$s\' - Trykk «Søk» for å komme i gang + Trykk forstørrelsesglasset for å begynne Automatisk avspilling Spiller en video når NewPipe blir forespurt av et annet program Innhold @@ -678,4 +678,6 @@ Løs Nattdrakt Vis kanaldetaljer + Skru av media-tunnelering hvis du opplever svart skjerm eller videohakking + Skru av media-tunnelering \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 32b185aa887..b81bd654ed1 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,6 +1,6 @@ - Naciśnij „Szukaj”, aby zacząć + Dotknij lupę, aby rozpocząć. Zainstaluj Anuluj Otwórz w przeglądarce diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9d18f94aaec..001ffddc621 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -47,7 +47,7 @@ Папка для скачанного аудио Папка для скачанного аудио Введите путь к папке для скачивания аудио - Нажмите на \"лупу\", чтобы начать + Нажмите на лупу, чтобы начать. Подождите… Файл уже существует Потоки diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 12500a528be..89595f283b0 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -2,15 +2,15 @@ %1$s pogledov Objavljeno %1$s - Predvajalnika pretoka ni mogoče najti. Ali želite namestiti program VLC? + Predvajalnika pretoka ni mogoče najti. Želite namestiti program VLC\? Namesti Prekliči Odpri v brskalniku Omogoči souporabo Prejmi - Poišči + Iskanje Nastavitve - Ali ste mislili: %1$s? + Ali ste mislili \"%1$s\"\? Omogoči souporabo z Izbor brskalnika usmerjenost @@ -18,20 +18,20 @@ Uporabi zunanji predvajalnik zvoka Mapa z prenesenimi videi Preneseni video so shranjeni tukaj - Vpis poti za prejem videa + Izberite mapo za prenos video datotek Privzeta ločljivost Predvajaj s Kodi - Programa Kore ni mogoče najti. Ali želite program namestiti? + Ali želite namestiti manjkajoči program Kore\? Pokaži možnost \"Predvajaj s Kodi\" Privzet zapis zvoka Zvok Prenesi Pokaži naslednje in podobne posnetke - Zapis naslova URL ni podprt. + Nepodprt URL Privzeti jezik vsebine - Video in Zvok + Video in zvok Sličica predogleda videa - Sličica predogleda videa + Predvajaj video, dolžina: Sličica objavitelja Pokaži možnost predvajanja videa preko predstavnega središča Kodi Všeč mi je @@ -45,26 +45,26 @@ Omrežna napaka Uporabi Tor (Preizkusno) Vsili prenos prejema preko sistema Tor za povečanje zasebnosti (pretakanje videa ni še podprto). - Pot do mape za prejem zvočnih datotek - Pot do mape, ki je določena za prejem zvočnih datotek - Vpis poti za prejem zvočnih datotek + Mapa prenesenih avdio datotek + Prenesene avdio datoteke so shranjene tukaj + Izberite mapo za prenos avdio datotek Ni mogoče ustvariti mape za prejem \'%1$s\' Ustvarjena je mapa za prejem \'%1$s\' Napaka Vseh sličic videov ni mogoče naložiti Ni mogoče odšifrirati podpisa naslova URL videa Ni mogoče razčleniti spletišča. - Vsebina ni na voljo. + Vsebina ni na voljo Ni mogoče nastaviti menija za prejem datotek. - Posnetek je pretok v živo. Ta vrsta prenosa še ni podprta. + Pretočno predvajanje v živo še ni podprto Vsebina Pokaži starostno omejeno vsebino Ni mogoče dokončno razčleniti spletišča. Ni mogoče pridobiti pretoka. Do te napake naj ne bi prišlo. - Pošlji poročilo napake prek elektronske pošte + Prijavite to napako po e-pošti Prišlo je do napak. - POROČILO + Poročilo Podrobnosti: Kaj se je zgodilo: Podrobnosi: @@ -72,10 +72,10 @@ Zvok Poskusi znova Opomba (v angleščini): - Dovoljenje za dostop do shrambe je zavrnjeno + Dovoli dostop do shrambe Samodejno predvajanje Predvaja vsebino, če je program zagnan iz drugega programa - Pošlji poročilo o napaki + Prijavi napako Poročilo uporabnika v živo Začnite z iskanjem @@ -87,14 +87,14 @@ Ime datoteke Nizi Napaka - Strežnik ni podprt + Nepodprt strežnik Datoteka že obstaja Napačno oblikovan naslov URL oziroma nedostopen internet Prejemanje Podrobnosti Počakajte … Kopirano v odložišče. - Izberite mapo za prejem. + Izberite mapo za prejem Nova naloga V redu Prejemi @@ -103,7 +103,7 @@ Slike ni mogoče naložiti Program se je sesul! Izziv reCAPTCHA - Zahteva izziva reCAPTCHA + Zahtevan izziv reCAPTCHA Predmet:\\nZahteva:\\nJezik vsebine:\\nStoritev:\\nČas v GMT:\\nPaket:\\nRazličica:\\nRazličica OS: Črna Vse @@ -114,15 +114,15 @@ Da Kasneje Odpri v pojavnem načinu - Dovoljenje je zahtevano za -odpiranje v pojavnem načinu - Pojavni način NewPipe + To dovoljenje je potrebno za odpiranje +\nv pojavnem načinu + Pojavni način Predvajanje v pojavnem načinu Onemogočeno Prednostni zapis video datoteke Privzeta ločljivost pojavnega okna Pokaži večje ločljivosti - Predvajanje posnetkov 2K/4K omogočajo le nekatere naprave. + Predvajanje posnetkov 2K/4K omogočajo le nekatere naprave Ozadje Pojavno okno Filter @@ -131,9 +131,9 @@ odpiranje v pojavnem načinu Zapomni si položaj in velikost pojavnega okna Zapomni si položaj in velikost pojavnega okna Pojavno okno - Pri nekaterih ločljivostih bo posnetek brez zvoka, če je ta možnost omogočena + Pri nekaterih ločljivostih bo posnetek brez zvoka Upravljanje predvajalnika s potezami - Uporabi poteze za nadzor svetlosti in glasnosti predvajalnika + Uporabi poteze za nadzor svetlosti in glasnosti Predlogi iskanja Pokaži predloge med iskanjem Najboljša ločljivost @@ -150,12 +150,12 @@ odpiranje v pojavnem načinu Pokaži na Github Dovoljenje NewPipe Preberi določila dovoljenja - Odprtokodni predvajalnik Youtube za Android. + Odprtokodni predvajalnik za Android. Naroči Naročeno Kanal ni naročen - Ni mogoče spremeniti naročnine - Ni mogoče posodobiti naročnine + Ni bilo mogoče spremeniti naročnine + Ni bilo mogoče posodobiti naročnine Glavno Naročnine Kaj je novega @@ -169,22 +169,22 @@ odpiranje v pojavnem načinu Iskalne poizvedbe shranjuj krajevno Zgodovina ogledov Sledi zgodovini predvajanih posnetkov - Nadaljuj po prekinitvi - Nadaljuj s predvajanjem po prekinitvi (na primer zaradi telefonskega klica) + Nadaljuj predvajanje + Nadaljuj s predvajanjem po prekinitvi (npr. po telefonskem klicu) Obvestila NewPipe Obvestila predvajalnika NewPipe Doprinos k projektu Zgodovina Preiskano Predvajano - Shranjevanje zgodovine je onemogočeno + Zgodovina je izklopljena Zgodovina Zgodovina je prazna! Zgodovina je počiščena Če imate odlične zamisli, predloge za prevode in oblikovne spremembe, izboljšave kode ali obvladate programiranje in bi želeli sodelovati, vedite, da je pomoč vedno dobrodošla! Predvajalnik Obnašanje - Zgodovina + Zgodovina in predpomnilnik Seznam predvajanja Razveljavi Ni rezultatov iskanja @@ -222,7 +222,7 @@ odpiranje v pojavnem načinu Stran kanalov Izbor kanala Najboljših 50 - Novo in vroče + Novo in priljubljeno Odstrani Podrobnosti Nastavitve zvoka @@ -230,7 +230,7 @@ odpiranje v pojavnem načinu Spletišče Storitev Neveljaven naslov URL - Prenesi datoteko pretoka. + Prenesi pretočno datoteko Pokaži podrobnosti Zaznamki Dodaj k @@ -339,7 +339,7 @@ odpiranje v pojavnem načinu Vsa zgodovina gledanja izbrisana. Izbrišem vso zgodovino gledanja\? Izbriši zgodovino gledanja - Izvozi zgodovino, naročnine in sezname predvajanja + Izvozi zgodovino, naročnine, sezname predvajanj in nastavitve Obvestila posodobitve aplikacije Datoteka Datoteka izbrisana @@ -534,4 +534,7 @@ odpiranje v pojavnem načinu Rešiti Izbrišite vse predpomnjene podatke spletnih strani Odpiranje z + Prikaži puščanje pomnilnika + Prikaži detajle kanala + Nočna tema \ No newline at end of file diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index ec8a97ec0fa..5ea31b26b10 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -24,7 +24,7 @@ Приказ опције за пуштање видеа у Коди медија центру Аудио Подразумевани формат звука - Преузми + Преузимање УРЛ није подржан Прикажи „следећи“ и „слични“ видео Подразумевани језик садржаја @@ -106,7 +106,7 @@ reCAPTCHA стопка Решите reCAPTCHA задатак црна - Сви + Све Канал хиљ мил @@ -131,8 +131,8 @@ Уклања звук на неким резолуцијама Упамти својства искачућег прозора памти последњу величину и позицију искачућег прозора - Контроле прејера потезом - Користите покрете како би контролисали осветљеност и јачину звука плејера + Контроле плејера потезом + Користите потезе за контролу осветљености и јачине звука у плејеру Предлози у претрази Приказује предлоге током претраге Искачући прозор @@ -176,11 +176,11 @@ Не могу да ажурирам претплату Плејер Понашање - Историја и кеш меморија + Историја и кеш Листа пуштања Врати - Обавештење - Обавештења за Њупајп у позадини и искачуће прозоре + Њупајп обавештење + Обавештења за Њупајп плејере у позадини и искачућем прозору Нема резултата Нема ничега овде осим цврчака Нема претплатника @@ -257,7 +257,7 @@ Искључите да спречите преузимање сличица, смањујући утрошак преноса података и меморије. Изменом ће се очистити и меморијски и диск кеш. Очишћен кеш са сликама Уклони кеширане метаподатке - Уклони све податке о кешираним веб-странама + Уклања све податке кешираних веб-страна Откажи праћење Нови језичак Изаберите језичак @@ -537,44 +537,44 @@ Обавештење о видео хешу Обавештења о новој верзији ЊуПајпа Обавештење о ажурирању апликације - Датотека - Датотека је избрисана - Уметници + Фајл + Фајл избрисан + Извођачи Албуми Песме Догађаји Корисници Нумере Видео - Плејлисте + Листе пуштања Канали Овај видео је старосно ограничен. -\nЗбог нових Јутјуб смерница са старосним видео записима, Њупајп не може да приступи ниједном од својих видео токова, па стога није у могућности да га репродукује. +\nЗбог нових Јутјуб смерница за такве видео записе, Њупајп не може да им приступи, па није у могућности да их репродукује. Овај видео је старосно ограничен. \n -\nУкључите „%1$s“ у подешавањима ако желите да га видите. - Јутјуб нуди „Ограничени режим“ који скрива потенцијални садржај за одрасле +\nУкључите „%1$s“ у поставкама ако желите да га видите. + Јутјуб омогућава „Ограничени режим“ који скрива потенцијални садржај за одрасле Укључите Јутјубов „Ограничени режим“ - Прикажите садржај који је можда неприкладан за децу јер има старосну границу (попут 18+) + Приказ садржаја који можда није прикладан за децу јер има старосну границу (попут 18+) Обавештење Ажурирања Инстанца већ постоји Подржане су само HTTPS УРЛ адресе - Није могуће потврдити инстанцу - Унесите УРЛ адресе инстанце + Не могу да потврдим инстанцу + Унесите УРЛ инстанце Додајте инстанцу Пронађите инстанце које вам се свиђају на %s PeerTube инстанца Изаберите своје омиљене инстанце PeerTube - УРЛ није препознат. Отворити помоћу друге апликације\? - Аутоматско покретање + УРЛ није препознат. Отворити другом апликацијом\? + Аутоматско пуштање Очисти податке Прикажите индикаторе положаја репродукције на листама Позиције на листама Вратите последњу позицију репродукције - Наставите репродукцију - Користите покрете за контролу осветљености плејера - Контрола геста осветљености + Наставак репродукције + Користите покрете за контролу осветљаја + Контрола осветљености потезом Користите потезе за контролу јачине звука плејера Контрола јачине звука потезом Аутоматски ред diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 7e750f8c409..508c2bbe71c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,6 +1,6 @@ - Başlamak için \"büyüteç\" simgesine dokunun + Başlamak için büyüteç simgesine dokunun. %1$s görüntüleme Yayınlanma: %1$s Akış oynatıcısı bulunamadı. VLC yüklensin mi\? @@ -678,4 +678,6 @@ Kendiliğinden (aygıt teması) Gece Teması Kanal ayrıntılarını göster + Ortam yürütümünde siyah ekran veya tutukluk yaşıyorsanız ortam tünellemeyi devre dışı bırakın + Ortam tünellemeyi devre dışı bırak \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index f4621bd01b1..509a09be428 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -690,4 +690,6 @@ У компактному сповіщенні є не більше трьох дій! Дії можна змінити, натиснувши на них. Відзначте не більше трьох для показу в місткому сповіщенні. Масштабувати мініатюру відео 16: 9 до 1:1 (можливі спотворення) + Вимкнення тунелювання медіаданих за наявності чорного екрана або гальмування під час відтворення відео + Вимкнути тунелювання медіа \ No newline at end of file diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index beacd9222e1..c217a346cf2 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -50,7 +50,7 @@ 選擇音訊檔的下載資料夾 無法建立下載目錄「%1$s」 已建立下載目錄「%1$s」 - 輕觸「放大鏡」以開始使用 + 輕觸放大鏡以開始使用。 以懸浮視窗開啟 移除某些解析度的音訊 懸浮視窗模式 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5acb83e40d0..b8ca33c8783 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ - Tap the \"magnifying glass\" to get started + Tap the magnifying glass to get started. %1$s views Published on %1$s No stream player found. Install VLC? diff --git a/fastlane/metadata/android/et/changelogs/969.txt b/fastlane/metadata/android/et/changelogs/969.txt new file mode 100644 index 00000000000..e615444730f --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/969.txt @@ -0,0 +1,8 @@ +• Luba paigaldust välisele andmekandjale +• [Bandcamp] Lisasime kolme esimese kommentaari kuvamise +• Allalaadimisel näitame vaid 'Allalaadimine on alanud' teadet +• Kui reCaptcha küpsist pole kasutusel, siis ära loo uut küpsist +• [Esitaja] Parandasime puhvri kasutust +• [Esitaja] Parandasime vea, kus automaatne esitamine ei toiminud +• Allalaadimiste kustutamisel ära arvesta eelmiseid teateid +• Parandasime olukorra, kus püüdsime kustutada kirjet, mis polnud loendis diff --git a/fastlane/metadata/android/he/changelogs/969.txt b/fastlane/metadata/android/he/changelogs/969.txt new file mode 100644 index 00000000000..e8a57abec18 --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/969.txt @@ -0,0 +1,8 @@ +• אפשר להתקין על אחסון חיצוני +• [Bandcamp] נוספה תמיכה להצגת שלוש התגובות הראשונות על תזרים +• להציג את המודעה ‚ההורדה החלה’ רק כאשר ההורדה אכן החלה +• לא להגדיר עוגיית מבחן טיורינג כשלא מאוחסנת עוגייה +• [נגן] ביצועי זיכרון המטמון שופרו +• [נגן] תוקנה בעיה בה הנגן לא החל לנגן אוטומטית +• להתעלם מחטיפים קודמים בעת מחיקת הורדות +• תוקן ניסיון למחוק פריטים שאינם ברשימה diff --git a/fastlane/metadata/android/sr/changelogs/969.txt b/fastlane/metadata/android/sr/changelogs/969.txt new file mode 100644 index 00000000000..81b96a7a656 --- /dev/null +++ b/fastlane/metadata/android/sr/changelogs/969.txt @@ -0,0 +1,8 @@ +• Могућност инсталације на спољашње складиште +• Додата могућност приказа само прва три коментара +• Прикажи само 'преузимање покренуто' поруку када преузимање започне +• Не поставља „reCaptcha“ колачић када нема сачуваних колачића +• [Плејер] Побољшано кеширање +• [Плејер] Сређено што плејер није аутоматски пуштао +• Одбацивање претходне Снектраке при брисању преузимања +• Сређен покушај брисања објекта који није на листи diff --git a/fastlane/metadata/android/uk/changelogs/63.txt b/fastlane/metadata/android/uk/changelogs/63.txt new file mode 100644 index 00000000000..2f25beb5e39 --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/63.txt @@ -0,0 +1,8 @@ +### Поліпшення +- Імпорт/експорт налаштувань #1333 +- Зменшене перемалювання (оптимізація продуктивності) #1371 +- Невеликі поліпшення коду #1375 +- Додано все про GDPR #1420 + +### Виправлено +- Завантажувач: виправлене вилітання під час продовження незавершених завантажень з форматом .giga #1407 diff --git a/fastlane/metadata/android/uk/changelogs/64.txt b/fastlane/metadata/android/uk/changelogs/64.txt new file mode 100644 index 00000000000..cd01f7aaa7c --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/64.txt @@ -0,0 +1,8 @@ +###Покращення +- Додана можливість обмежити якість відео при використанні мобільного інтернету #1339 +- Тепер яскравість запам'ятовується на час сесії #1442 +- Покращена продуктивність завантаження для слабших процесорів #1431 +- Додана (працює) підтримка для медіасесії #1433 + +### Виправлено +- Виправлене вилітання під час відкриття завантажень (доступне у випущених складаннях) #1433 diff --git a/fastlane/metadata/android/uk/full_description.txt b/fastlane/metadata/android/uk/full_description.txt new file mode 100644 index 00000000000..cde440526f2 --- /dev/null +++ b/fastlane/metadata/android/uk/full_description.txt @@ -0,0 +1 @@ +NewPipe не використовує бібліотеки фреймворка Google або API YouTube, взаємодіючи тільки з сайтом служби для отримання потрібних відомостей. NewPipe може працювати на пристроях без встановлених Служб Google і не вимагає облікового запису YouTube, є вільним програмним забезпеченням. diff --git a/fastlane/metadata/android/zh-Hans/changelogs/969.txt b/fastlane/metadata/android/zh-Hans/changelogs/969.txt new file mode 100644 index 00000000000..e4115ab5f44 --- /dev/null +++ b/fastlane/metadata/android/zh-Hans/changelogs/969.txt @@ -0,0 +1,8 @@ +- 新增 允许安装至外部存储 +- 变更 仅在下载开始时显示 "下载已开始 "的 Toast 提示 +- 变更 当未存储 Cookie 时不存储 reCaptcha Cookie +- 变更 删除下载文件后撤销先前的 Snackbar 提示 +- 修复 删除不在列表中的条目引起的异常 +- [播放器] 改进 缓存性能 +- [播放器] 修复 播放器未能如期自动续播 +- [Bandcamp] 新增 支持显示某音频前三个评论 From e7936e6c9a29aac7a018a5845bbbe38948993bd3 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 15 May 2021 09:57:24 +0200 Subject: [PATCH 30/47] Fix warnings for translations --- app/src/main/res/values-ne/strings.xml | 3 --- app/src/main/res/values-so/strings.xml | 1 - 2 files changed, 4 deletions(-) diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index e3d3122fdd3..3cd47f3df95 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -592,9 +592,6 @@ कलाकारहरू एल्बमहरू गित - यो भिडियो उमेर प्रतिबन्धित छ।… -\n… -\nएदी तपैंलाई हेर्न परेमा, सेटिंगमा गई “उमेर प्रतिबन्धित समाग्री” सक्षम गर्नुहोस्। यूट्यूब प्रतिबन्धित मोड %s द्वारा %s द्वारा सिर्जना गरिएको diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index 7f6fdc846eb..93d14b571e4 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -482,7 +482,6 @@ Kala badalka daareha waxay badali kartaa hormada sidaas darteed waydii in la xaqiijiyo intaan hormada la tirtirin Xaqiijinta tirtirka hormada Wakhtiga horay udhaafinta/dibucelinta - Dhaaf-dhaafinta dagdaga ah ee waxa daaran, 100% sax wax uma dhaafiso waxayna u sahashaa muuqaal daareha inuu u dhaaf dhaafiyo si dagdag ah. Nidaamkan 5, 15 ama 25 ilbiriqsi wax looma dhaafin karo. Mugdi Caddaan Dhagaysi From bfe3eff5ffcb4877fc90299c7a1dc217c7c37c16 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 15 May 2021 10:03:28 +0200 Subject: [PATCH 31/47] Fix warnings for translations --- app/src/main/res/values-ne/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 3cd47f3df95..f7f56f9297f 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -592,6 +592,9 @@ कलाकारहरू एल्बमहरू गित + यो भिडियो उमेर प्रतिबन्धित छ।… +\n… +\nएदी तपैंलाई हेर्न परेमा, सेटिंगमा गई “%1$s” सक्षम गर्नुहोस्। यूट्यूब प्रतिबन्धित मोड %s द्वारा %s द्वारा सिर्जना गरिएको From eb1cefe2fa4dfc9c4a1e5ea6813cc202519918d3 Mon Sep 17 00:00:00 2001 From: mhmdanas <32234660+mhmdanas@users.noreply.github.com> Date: Sat, 15 May 2021 18:48:16 +0300 Subject: [PATCH 32/47] Make some minor changes --- app/src/main/java/org/schabi/newpipe/ktx/Throwable.kt | 6 ++---- .../schabi/newpipe/local/subscription/item/HeaderItem.kt | 2 +- .../main/java/org/schabi/newpipe/streams/WebMWriter.java | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/ktx/Throwable.kt b/app/src/main/java/org/schabi/newpipe/ktx/Throwable.kt index b95f46fd409..63f1b2ab5fc 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/Throwable.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/Throwable.kt @@ -58,10 +58,8 @@ tailrec fun Throwable?.hasCause(checkSubtypes: Boolean, vararg causesToCheck: Cl if (causeClass.isAssignableFrom(this.javaClass)) { return true } - } else { - if (causeClass == this.javaClass) { - return true - } + } else if (causeClass == this.javaClass) { + return true } } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt index e0416457350..71c1e6116bb 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt @@ -15,7 +15,7 @@ class HeaderItem( override fun bind(viewBinding: HeaderItemBinding, position: Int) { viewBinding.headerTitle.text = title - val listener: OnClickListener? = if (onClickListener != null) OnClickListener { onClickListener.invoke() } else null + val listener = onClickListener?.let { OnClickListener { onClickListener.invoke() } } viewBinding.root.setOnClickListener(listener) } diff --git a/app/src/main/java/org/schabi/newpipe/streams/WebMWriter.java b/app/src/main/java/org/schabi/newpipe/streams/WebMWriter.java index 55792d09991..ebae3812ca0 100644 --- a/app/src/main/java/org/schabi/newpipe/streams/WebMWriter.java +++ b/app/src/main/java/org/schabi/newpipe/streams/WebMWriter.java @@ -712,7 +712,7 @@ private int selectTrackForCue() { return 0; } - // TODO: in the adove code, find and select the shortest track for the desired kind + // TODO: in the above code, find and select the shortest track for the desired kind for (i = 0; i < infoTracks.length; i++) { if (kind == infoTracks[i].trackType) { return i; From 2d4a3c2554d3b4109f22ee4896be7a6aa16e55c2 Mon Sep 17 00:00:00 2001 From: yashpalgoyal1304 Date: Sat, 15 May 2021 23:04:24 +0530 Subject: [PATCH 33/47] Generalised/tense-corrected the example (#6302) Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 462e5757b11..8ccaad64b38 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ You can install NewPipe using one of the following methods: We recommend method 1 for most users. APKs installed using method 1 or 2 are compatible with each other, but not with those installed using method 3. This is due to the same signing key (ours) being used for 1 and 2, but a different signing key (F-Droid's) being used for 3. Building a debug APK using method 4 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. -In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality was broken and F-Droid doesn't have the update yet), we recommend following this procedure: +In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality breaks and F-Droid doesn't have the latest update yet), we recommend following this procedure: 1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists 2. Uninstall NewPipe 3. Download the APK from the new source and install it From c808beec300f1d3f36a7f77df682495c098f99bc Mon Sep 17 00:00:00 2001 From: Alireza Tofighi Date: Sun, 16 May 2021 02:19:52 +0430 Subject: [PATCH 34/47] Fix ErrorActivity actionbar back button not working The issue is because of R.id.home != android.R.id.home --- app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java b/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java index 1bcd28d2ed7..106a86cfad3 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java @@ -191,7 +191,7 @@ public boolean onCreateOptionsMenu(final Menu menu) { @Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { - case R.id.home: + case android.R.id.home: onBackPressed(); return true; case R.id.menu_item_share_error: From c7660b8c2df49167be15f99efbc5ff44cedb98e3 Mon Sep 17 00:00:00 2001 From: David BrazSan <60136669+DavidBrazSan@users.noreply.github.com> Date: Mon, 17 May 2021 11:59:48 -0300 Subject: [PATCH 35/47] Excluding forgotten parts of the original raw (#6317) --- README.pt_BR.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.pt_BR.md b/README.pt_BR.md index d0020fc54f7..e32da820669 100644 --- a/README.pt_BR.md +++ b/README.pt_BR.md @@ -93,7 +93,7 @@ Quando uma alteração no código NewPipe (devido à adição de recursos ou fix Recomendamos o método 2 para a maioria dos usuários. Os APKs instalados usando o método 2 ou 3 são compatíveis entre si, mas não com aqueles instalados usando o método 4. Isso se deve à mesma chave de assinatura (nossa) sendo usada para 2 e 3, mas uma chave de assinatura diferente (F-Droid's) está sendo usada para 4. Construir um APK depuração usando o método 1 exclui totalmente uma chave. Assinar chaves ajudam a garantir que um usuário não seja enganado para instalar uma atualização maliciosa em um aplicativo. Enquanto isso, se você quiser trocar de fontes por algum motivo (por exemplo, a funcionalidade principal do NewPipe foi quebrada e o F-Droid ainda não tem a atualização), recomendamos seguir este procedimento: -1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlistsFaça backup de seus dados através de Configurações > Conteúdo > Exportar Base de Dados para que você mantenha seu histórico, inscrições e playlists +1. Faça backup de seus dados através de Configurações > Conteúdo > Exportar Base de Dados para que você mantenha seu histórico, inscrições e playlists 2. Desinstale o NewPipe 3. Baixe o APK da nova fonte e instale-o 4. Importe os dados da etapa 1 via Configurações > Conteúdo > Inportar Banco de Dados From 82f43ac6a64c1754e023aed6c5cd7a117f1a99dc Mon Sep 17 00:00:00 2001 From: Alireza Tofighi Date: Mon, 17 May 2021 21:57:27 +0430 Subject: [PATCH 36/47] Save backup import/export location for feature import/exports --- .../settings/ContentSettingsFragment.java | 39 ++++++++++++++++++- app/src/main/res/values/settings_keys.xml | 1 + 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index 3fd44c4d521..e4850d7fa8e 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -41,6 +41,8 @@ public class ContentSettingsFragment extends BasePreferenceFragment { private ContentSettingsManager manager; + private String importExportDataPathKey; + private String thumbnailLoadToggleKey; private String youtubeRestrictedModeEnabledKey; @@ -56,6 +58,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro addPreferencesFromResource(R.xml.content_settings); + importExportDataPathKey = getString(R.string.import_export_data_path); final Preference importDataPreference = findPreference(getString(R.string.import_data)); importDataPreference.setOnPreferenceClickListener(p -> { final Intent i = new Intent(getActivity(), FilePickerActivityHelper.class) @@ -63,6 +66,10 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro .putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, false) .putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_FILE); + final String path = defaultPreferences.getString(importExportDataPathKey, ""); + if (isValidPath(path)) { + i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); + } startActivityForResult(i, REQUEST_IMPORT_PATH); return true; }); @@ -74,6 +81,10 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro .putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, true) .putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_DIR); + final String path = defaultPreferences.getString(importExportDataPathKey, ""); + if (isValidPath(path)) { + i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); + } startActivityForResult(i, REQUEST_EXPORT_PATH); return true; }); @@ -164,7 +175,10 @@ public void onActivityResult(final int requestCode, final int resultCode, if ((requestCode == REQUEST_IMPORT_PATH || requestCode == REQUEST_EXPORT_PATH) && resultCode == Activity.RESULT_OK && data.getData() != null) { - final String path = Utils.getFileForUri(data.getData()).getAbsolutePath(); + final File file = Utils.getFileForUri(data.getData()); + final String path = file.getAbsolutePath(); + setImportExportDataPath(file); + if (requestCode == REQUEST_EXPORT_PATH) { final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US); exportDatabase(path + "/NewPipeData-" + sdf.format(new Date()) + ".zip"); @@ -239,4 +253,27 @@ private void importDatabase(final String filePath) { ErrorActivity.reportUiErrorInSnackbar(this, "Importing database", e); } } + + private boolean isValidPath(final String path) { + if (path == null || path.isEmpty()) { + return false; + } + final File file = new File(path); + return file.exists() && file.isDirectory(); + } + + private void setImportExportDataPath(final File file) { + final String directoryPath; + if (!file.isDirectory()) { + final File parentFile = file.getParentFile(); + if (parentFile != null) { + directoryPath = parentFile.getAbsolutePath(); + } else { + directoryPath = ""; + } + } else { + directoryPath = file.getAbsolutePath(); + } + defaultPreferences.edit().putString(importExportDataPathKey, directoryPath).apply(); + } } diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index fd6cc725140..c23e81fbe22 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -265,6 +265,7 @@ feed_use_dedicated_fetch_method + import_export_data_path import_data export_data From fa2b11b7685d989d1e28e62f65ff1f80d890a9d1 Mon Sep 17 00:00:00 2001 From: Alireza Tofighi Date: Fri, 21 May 2021 20:21:58 +0430 Subject: [PATCH 37/47] Move ContentSettingsFragment.isValidPath to helpers and add unit test for it. --- .../settings/ContentSettingsFragment.java | 13 ++------ .../schabi/newpipe/util/FilePathUtils.java | 22 +++++++++++++ .../newpipe/util/FilePathHelperTest.java | 32 +++++++++++++++++++ 3 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java create mode 100644 app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index e4850d7fa8e..3464f108111 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -26,6 +26,7 @@ import org.schabi.newpipe.extractor.localization.ContentCountry; import org.schabi.newpipe.extractor.localization.Localization; import org.schabi.newpipe.util.FilePickerActivityHelper; +import org.schabi.newpipe.util.FilePathUtils; import org.schabi.newpipe.util.ZipHelper; import java.io.File; @@ -67,7 +68,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro .putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_FILE); final String path = defaultPreferences.getString(importExportDataPathKey, ""); - if (isValidPath(path)) { + if (FilePathUtils.isValidDirectoryPath(path)) { i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); } startActivityForResult(i, REQUEST_IMPORT_PATH); @@ -82,7 +83,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro .putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_DIR); final String path = defaultPreferences.getString(importExportDataPathKey, ""); - if (isValidPath(path)) { + if (FilePathUtils.isValidDirectoryPath(path)) { i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); } startActivityForResult(i, REQUEST_EXPORT_PATH); @@ -254,14 +255,6 @@ private void importDatabase(final String filePath) { } } - private boolean isValidPath(final String path) { - if (path == null || path.isEmpty()) { - return false; - } - final File file = new File(path); - return file.exists() && file.isDirectory(); - } - private void setImportExportDataPath(final File file) { final String directoryPath; if (!file.isDirectory()) { diff --git a/app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java b/app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java new file mode 100644 index 00000000000..4162e563af5 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java @@ -0,0 +1,22 @@ +package org.schabi.newpipe.util; + +import java.io.File; + +public final class FilePathUtils { + private FilePathUtils() { } + + + /** + * Check that the path is a valid directory path and it exists. + * + * @param path full path of directory, + * @return is path valid or not + */ + public static boolean isValidDirectoryPath(final String path) { + if (path == null || path.isEmpty()) { + return false; + } + final File file = new File(path); + return file.exists() && file.isDirectory(); + } +} diff --git a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java new file mode 100644 index 00000000000..7cdc5f8552b --- /dev/null +++ b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java @@ -0,0 +1,32 @@ +package org.schabi.newpipe.util; + +import org.junit.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class FilePathHelperTest { + @Test + public void testIsValidDirectoryPath() throws IOException { + // path that exists + final File dir1 = Files.createTempDirectory("dir1").toFile(); + assertTrue(FilePathUtils.isValidDirectoryPath(dir1.getAbsolutePath())); + + // a directory in above path that exists + final File subDir = Files.createDirectory(dir1.toPath().resolve("subdir")).toFile(); + assertTrue(FilePathUtils.isValidDirectoryPath(subDir.getAbsolutePath())); + + // a directory in above path that doesn't exist + assertFalse(FilePathUtils.isValidDirectoryPath(dir1.toPath().resolve("not-exists-subdir"). + toFile().getAbsolutePath())); + + // file is not a valid direcotry path + final File tempFile = Files.createFile(dir1.toPath().resolve("simple_file")).toFile(); + assertFalse(FilePathUtils.isValidDirectoryPath(tempFile.getAbsolutePath())); + } + +} From 92ab9cae27620337d21e4f634b918a919aa5d830 Mon Sep 17 00:00:00 2001 From: Alireza Tofighi Date: Fri, 21 May 2021 20:24:57 +0430 Subject: [PATCH 38/47] Invert if condition in ContentSettingsFragment.setImportExportDataPath for better readability --- .../schabi/newpipe/settings/ContentSettingsFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index 3464f108111..ab6ff7414bb 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -257,15 +257,15 @@ private void importDatabase(final String filePath) { private void setImportExportDataPath(final File file) { final String directoryPath; - if (!file.isDirectory()) { + if (file.isDirectory()) { + directoryPath = file.getAbsolutePath(); + } else { final File parentFile = file.getParentFile(); if (parentFile != null) { directoryPath = parentFile.getAbsolutePath(); } else { directoryPath = ""; } - } else { - directoryPath = file.getAbsolutePath(); } defaultPreferences.edit().putString(importExportDataPathKey, directoryPath).apply(); } From 067528211f0274922a92a3940155f67e71c66776 Mon Sep 17 00:00:00 2001 From: Alireza Tofighi Date: Fri, 21 May 2021 20:28:42 +0430 Subject: [PATCH 39/47] Add more tests for FilePathUtils.isValidDirectoryPath for better coverage --- .../java/org/schabi/newpipe/util/FilePathHelperTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java index 7cdc5f8552b..b81a06e3020 100644 --- a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java +++ b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java @@ -12,6 +12,12 @@ public class FilePathHelperTest { @Test public void testIsValidDirectoryPath() throws IOException { + // empty path is not valid + assertFalse(FilePathUtils.isValidDirectoryPath("")); + + // null path is not valid + assertFalse(FilePathUtils.isValidDirectoryPath(null)); + // path that exists final File dir1 = Files.createTempDirectory("dir1").toFile(); assertTrue(FilePathUtils.isValidDirectoryPath(dir1.getAbsolutePath())); From e8ad947d37dbbd6b0ba0de0f9df40e90d2321b8e Mon Sep 17 00:00:00 2001 From: Alireza Tofighi Date: Fri, 21 May 2021 22:44:38 +0430 Subject: [PATCH 40/47] Split up FilePathHelperTest tests in simpler methods --- .../newpipe/util/FilePathHelperTest.java | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java index b81a06e3020..1e6761603c5 100644 --- a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java +++ b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java @@ -1,5 +1,6 @@ package org.schabi.newpipe.util; +import org.junit.Before; import org.junit.Test; import java.io.File; @@ -10,28 +11,44 @@ import static org.junit.Assert.assertTrue; public class FilePathHelperTest { + + private File dir; + + @Before + public void setUp() throws IOException { + dir = Files.createTempDirectory("dir1").toFile(); + } + @Test - public void testIsValidDirectoryPath() throws IOException { - // empty path is not valid + public void testIsValidDirectoryPathWithEmptyString() { assertFalse(FilePathUtils.isValidDirectoryPath("")); + } - // null path is not valid + @Test + public void testIsValidDirectoryPathWithNullString() { assertFalse(FilePathUtils.isValidDirectoryPath(null)); + } - // path that exists - final File dir1 = Files.createTempDirectory("dir1").toFile(); - assertTrue(FilePathUtils.isValidDirectoryPath(dir1.getAbsolutePath())); + @Test + public void testIsValidDirectoryPathWithValidPath() { + assertTrue(FilePathUtils.isValidDirectoryPath(dir.getAbsolutePath())); + } - // a directory in above path that exists - final File subDir = Files.createDirectory(dir1.toPath().resolve("subdir")).toFile(); + @Test + public void testIsValidDirectoryPathWithDeepValidDirectory() throws IOException { + final File subDir = Files.createDirectory(dir.toPath().resolve("subdir")).toFile(); assertTrue(FilePathUtils.isValidDirectoryPath(subDir.getAbsolutePath())); + } - // a directory in above path that doesn't exist - assertFalse(FilePathUtils.isValidDirectoryPath(dir1.toPath().resolve("not-exists-subdir"). + @Test + public void testIsValidDirectoryPathWithNotExistDirectory() { + assertFalse(FilePathUtils.isValidDirectoryPath(dir.toPath().resolve("not-exists-subdir"). toFile().getAbsolutePath())); + } - // file is not a valid direcotry path - final File tempFile = Files.createFile(dir1.toPath().resolve("simple_file")).toFile(); + @Test + public void testIsValidDirectoryPathWithFile() throws IOException { + final File tempFile = Files.createFile(dir.toPath().resolve("simple_file")).toFile(); assertFalse(FilePathUtils.isValidDirectoryPath(tempFile.getAbsolutePath())); } From 376e5c1546641a10c654475d303b8d298461430a Mon Sep 17 00:00:00 2001 From: XiangRongLin <41164160+XiangRongLin@users.noreply.github.com> Date: Fri, 21 May 2021 20:24:11 +0200 Subject: [PATCH 41/47] Remove unnecessary conversion between file and path --- .../schabi/newpipe/util/FilePathHelperTest.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java index 1e6761603c5..3c9f127202a 100644 --- a/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java +++ b/app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java @@ -6,17 +6,18 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class FilePathHelperTest { - private File dir; + private Path dir; @Before public void setUp() throws IOException { - dir = Files.createTempDirectory("dir1").toFile(); + dir = Files.createTempDirectory("dir1"); } @Test @@ -31,24 +32,24 @@ public void testIsValidDirectoryPathWithNullString() { @Test public void testIsValidDirectoryPathWithValidPath() { - assertTrue(FilePathUtils.isValidDirectoryPath(dir.getAbsolutePath())); + assertTrue(FilePathUtils.isValidDirectoryPath(dir.toAbsolutePath().toString())); } @Test public void testIsValidDirectoryPathWithDeepValidDirectory() throws IOException { - final File subDir = Files.createDirectory(dir.toPath().resolve("subdir")).toFile(); + final File subDir = Files.createDirectory(dir.resolve("subdir")).toFile(); assertTrue(FilePathUtils.isValidDirectoryPath(subDir.getAbsolutePath())); } @Test public void testIsValidDirectoryPathWithNotExistDirectory() { - assertFalse(FilePathUtils.isValidDirectoryPath(dir.toPath().resolve("not-exists-subdir"). - toFile().getAbsolutePath())); + assertFalse(FilePathUtils.isValidDirectoryPath(dir.resolve("not-exists-subdir"). + toFile().getAbsolutePath())); } @Test public void testIsValidDirectoryPathWithFile() throws IOException { - final File tempFile = Files.createFile(dir.toPath().resolve("simple_file")).toFile(); + final File tempFile = Files.createFile(dir.resolve("simple_file")).toFile(); assertFalse(FilePathUtils.isValidDirectoryPath(tempFile.getAbsolutePath())); } From 87d2f33e550f9e59fc6f528be06bd26eedbcb261 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 23 May 2021 11:53:28 +0200 Subject: [PATCH 42/47] Add support for PeerTube HLS streams --- app/build.gradle | 2 +- .../java/org/schabi/newpipe/player/Player.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c6a420f0703..e4fad9b9f76 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -183,7 +183,7 @@ dependencies { /** NewPipe libraries **/ // You can use a local version by uncommenting a few lines in settings.gradle implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.TeamNewPipe:NewPipeExtractor:3a3ade20f48cf37526eb970a7df56ee2405125fc' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:636e27333b5dbd9bc3c54ef3a4c21a87e97253ee' /** Checkstyle **/ checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index 46720213725..44d10df37cb 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -91,6 +91,7 @@ import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.extractor.stream.StreamSegment; +import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.extractor.stream.VideoStream; import org.schabi.newpipe.fragments.OnScrollBelowItemsListener; import org.schabi.newpipe.fragments.detail.VideoDetailFragment; @@ -1632,9 +1633,22 @@ private void triggerProgressUpdate() { if (exoPlayerIsNull()) { return; } + // Use duration of currentItem for non-live streams, + // because HLS streams are fragmented + // and thus the whole duration is not available to the player + // TODO: revert #6307 when introducing proper HLS support + final int duration; + if (currentItem != null + && currentItem.getStreamType() != StreamType.AUDIO_LIVE_STREAM + && currentItem.getStreamType() != StreamType.LIVE_STREAM) { + // convert seconds to milliseconds + duration = (int) (currentItem.getDuration() * 1000); + } else { + duration = (int) simpleExoPlayer.getDuration(); + } onUpdateProgress( Math.max((int) simpleExoPlayer.getCurrentPosition(), 0), - (int) simpleExoPlayer.getDuration(), + duration, simpleExoPlayer.getBufferedPercentage() ); } From 753ca7cb53478f6c9a35384c6cd748046e711ac0 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 23 May 2021 11:55:12 +0200 Subject: [PATCH 43/47] Update translations Translated using Weblate (French) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Russian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Arabic) Currently translated at 99.6% (639 of 641 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Dutch (Belgium)) Currently translated at 97.5% (625 of 641 strings) Translated using Weblate (Sardinian) Currently translated at 99.6% (639 of 641 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 13.5% (87 of 641 strings) Translated using Weblate (Italian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Dutch) Currently translated at 99.6% (639 of 641 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Italian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Polish) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Estonian) Currently translated at 95.9% (615 of 641 strings) Translated using Weblate (Bengali) Currently translated at 93.7% (601 of 641 strings) Translated using Weblate (French) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Lithuanian) Currently translated at 69.5% (446 of 641 strings) Translated using Weblate (Spanish) Currently translated at 99.6% (639 of 641 strings) Translated using Weblate (Basque) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Czech) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Croatian) Currently translated at 100.0% (641 of 641 strings) Translated using Weblate (Sardinian) Currently translated at 100.0% (641 of 641 strings) --- app/src/main/res/values-ar/strings.xml | 2 + app/src/main/res/values-bn/strings.xml | 16 + app/src/main/res/values-cs/strings.xml | 4 +- app/src/main/res/values-en-rGB/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-et/strings.xml | 11 + app/src/main/res/values-eu/strings.xml | 4 +- app/src/main/res/values-fr/strings.xml | 8 +- app/src/main/res/values-hr/strings.xml | 10 +- app/src/main/res/values-in/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values-lt/strings.xml | 400 +++++++++++++++++++- app/src/main/res/values-nl-rBE/strings.xml | 14 +- app/src/main/res/values-nl/strings.xml | 16 +- app/src/main/res/values-pl/strings.xml | 2 + app/src/main/res/values-pt-rBR/strings.xml | 6 +- app/src/main/res/values-pt-rPT/strings.xml | 6 +- app/src/main/res/values-pt/strings.xml | 8 +- app/src/main/res/values-ru/strings.xml | 2 + app/src/main/res/values-sc/strings.xml | 4 +- app/src/main/res/values-sk/strings.xml | 4 +- app/src/main/res/values-sr/strings.xml | 406 +++++++++++---------- app/src/main/res/values-vi/strings.xml | 4 +- app/src/main/res/values-zh-rTW/strings.xml | 2 + 24 files changed, 692 insertions(+), 247 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 45c36968580..82ee9efae34 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -718,4 +718,6 @@ تلقائي (سمة الجهاز) الثيم الليلي إظهار تفاصيل القناة + تعطيل نفق الوسائط إذا واجهت شاشة سوداء أو التقطيع في تشغيل الفيديو + تعطيل نفق الوسائط \ No newline at end of file diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index ab5ad73f1e1..72c113deb56 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -603,4 +603,20 @@ তোমার ডিভাইসের কোনো অ্যাপ এটি খুলতে পারে না একটি ডাউনলোড একই সময়ে চলতে পারবে ডাউনলোড বাতিল করার আগে সর্বোচ্চ চেষ্টা + এই তথ্যটি ব্যক্তিগত, তাই নিউপাইপ এটির ধারাপ্রচার বা ডাউনলোড করতে পারবে না। + ইতিহাসের সব ভুক্তি কি আসলেই মুছতে চাও\? + এসডি কার্ডে নামানো যাচ্ছে না। ডাউনলোড স্থান ফিরাবে বা পাল্টাবে\? + বন্ধ পর্দার পটভূমি ও বিজ্ঞপ্তির পটভূমি উভয় জায়গায় এই প্রতিচ্ছবি ব্যবহার করো + কোথায় প্রত্যেক ডাউনলোড সংরক্ষণ করা হবে তা জিজ্ঞেস করা হবে। +\nএসডি কার্ডে নামাতে চাইলে স্যাফ(SAF) নির্বাচন করো + নিউপাইপ প্রকল্প তোমার গোপনীয়তা গুরুত্বের সাথে নেয়। তাই এই অ্যাপ তোমার অনুমতি ছাড়া কোনো তথ্য পাঠায় না। +\nনিউপাইপের গোপনীয়তা নীতিমালা কোন তথ্য পাঠানো হয় ও সংরক্ষণ হয় তা ব্যাখ্যা করে। + রিক্যাপচা পূরণ করলে নিউপাইপ যেসব কুকি রাখে তা মুছো + ধারা ভুক্তিতে সেবাগুলোর মূল লেখা দৃশ্যমান হবে + দেখার ইতিহাস থেকে এই ভুক্তিটি মুছবে\? + অনুসন্ধান ইতিহাস থেকে এই ভুক্তিটি মুছবে\? + প্রত্যেক ডাউনলোড কোথায় রাখা হবে তা জিজ্ঞেস করা হবে + এই নামের একটি ডাউনলোড চলমান + অ্যাপ আবার শুরু হলে ভাষা পাল্টাবে। + মিডিয়া সুরঙ্গকরণ অক্ষম \ No newline at end of file diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 3e1ec583428..5adc0822f79 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -61,7 +61,7 @@ Zobrazit věkově omezený obsah Živě Nebylo možné kompletně analyzovat stránku - Začít klepnutím na \"Hledat\" + Začněte klepnutím na lupu. Zkopírováno do schránky Počkejte prosím… NewPipe stahuje @@ -688,4 +688,6 @@ Toto video je věkově omezeno. \nKvůli novým pravidlům YouTube ohledně věkově omezených videí nemůže NewPipe získat přístup na streamy videa, a tak je nemůže přehrát. Noční motiv + Vypněte media-tunelling, pokud zaznamenáte temnou obrazovku nebo zadrhávání během playbacku + Vypnout media-tunelling \ No newline at end of file diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 2e0bef88e74..e89c8f898bf 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -28,7 +28,7 @@ Show ‘Hold to append’ tip Show ‘Play with Kodi’ option Did you mean ‘%1$s’\? - Tap ‘Search’ to get started + Tap the magnifying glass to get started. Channel’s avatar thumbnail Time after last update before a subscription is considered outdated – %s Start playback automatically – %s diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 484033feb85..2e52916f44e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -59,7 +59,7 @@ Las transmisiones en vivo no son soportadas aún Contenido Mostrar contenido con restricción de edad - Toca en «Buscar» para comenzar + Toca en «Buscar» para comenzar. Reproducción automática Reproducir un vídeo cuando NewPipe es llamado desde otra aplicación En directo diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index fd191d19b7e..003a7f0f828 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -629,4 +629,15 @@ Peata allalaadimised Alusta allalaadimistega Kopeeri vormindatud aruanne + Näita vaid rühmitamata tellimus + Kas sa soovid selle kanalite rühma kustutada\? + Rühmal puudub nimi + ExoPlayer\'i piirangute tõttu seadistasime otsingusammu %d sekundile + Luba korraga vaid üks allalaadimine + Piira allalaadimiste järjekorda + Faili kustutamisega läks ka tööjärg kautsi + Faili töötlemisel NewPipe lõpetas töö + Lülita meedia tunneldamine välja juhul, kui esitamisel tekib must ekraan või pildi kuvamine on katkendlik + Lülita meedia tunneldamine välja + Vaheta teenust, hetkel on kasutusel: \ No newline at end of file diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 5102588fc03..c84a3bf1b78 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -39,7 +39,7 @@ Erabili kanpo bideo-erreproduzigailua Erabili kanpo audio-erreproduzigailua Atzeko planoan erreproduzitzen - Sakatu \"Bilatu\" hasteko + Sakatu «bilatu» atalean hasteko. Audioa deskargatzeko karpeta Aukeratu audio fitxategiak deskargatzeko karpeta Deskargatutako audio fitxategiak hemen gordetzen dira @@ -678,4 +678,6 @@ Automatikoa (gailuaren gaia) Gau Gaia kanalaren xehetasunak erakutsi + Desaktibatu hedabideen tunela bideo-erreprodukzioan pantaila beltz bat edo totelka ari bada + Hedabideen tunela desaktibatu \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9627b4a6006..dd8c07fd3f1 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -75,7 +75,7 @@ Audio Réessayer Veuillez d’abord accorder l’accès au stockage - Appuyez sur la loupe pour commencer + Appuyez sur la loupe pour commencer. Lecture automatique Rapport utilisateur Signaler @@ -97,7 +97,7 @@ Serveur non pris en charge Fichier déjà existant Lien malformé ou accès à Internet indisponible - NewPipe télécharge … + NewPipe télécharge... Appuyer pour plus de détails Veuillez patienter… Copié dans le presse-papiers @@ -114,7 +114,7 @@ Oui Plus tard Désactivés - Quoi :\\nRequête :\\nLangue du contenu :\\nPays du contenu :\\nLangue de l’application :\\nService :\\nDate UTC :\\nPaquet :\\nVersion :\\nVersion du système d’exploitation : + Quoi :\\nRequest :\\nContent Language :\\nContent Country :\\nApp Language :\\nService :\\nGMT Time :\\nPackage :\\nVersion :\\nOS version : k M Cette autorisation est nécessaire pour @@ -680,4 +680,6 @@ Vous pouvez choisir votre thème nuit favori Le téléchargement a démarré Afficher les détails de la chaîne + Désactivez le tunnelage multimédia si vous constatez un écran noir ou un bégaiement lors de la lecture d\'une vidéo + Désactiver le tunnelage média \ No newline at end of file diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index c8c618d2735..02539969325 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -1,6 +1,6 @@ - Za početak dodirnite \"Pretraži\" + Za početak dodirnite \"Lupo\" %1$s pregleda Objavljeno %1$s Reproduktor za stream nije pronađen. Instalirati VLC\? @@ -262,8 +262,8 @@ Dodano kao playlistu Minijatura playliste se promijenila. Greška prilikom brisanja playliste. - Bez naslova - Podesno + Bez titlova + Popuni Ispuniti Povećaj Auto generirano @@ -407,7 +407,7 @@ Konferencije Preferirana \'otvori\' akcija Zadana radnja pri otvaranju sadržaja — %s - Podnaslovi + Titlovi Izmijenite skalu teksta naslova player-a i pozadinske stilove. Potrebno je ponovno pokretanje aplikacije kako bi stupilo na snagu. Prisilno izvješćivanje o greškama Rx-a koje se ne mogu isporučiti izvan \'fragmenta\' ili životnog ciklusa aktivnosti nakon odlaganja Uvezite SoundCloud profil tako da upišete URL ili svoj ID: @@ -688,4 +688,6 @@ Riješi Noćna tema Prikaži detalje kanala + Iskljuci medija tuneling ako dobivate crni ekran kada gledate video + Iskljuci medija tuneling \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index ea3961adc29..98ea1a5c92d 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -1,6 +1,6 @@ - Ketuk \"Cari\" untuk memulai + Ketuk kaca pembesar untuk segera memulai. %1$s x ditonton Dipublikasikan pada tanggal %1$s Pasang @@ -668,4 +668,6 @@ Tema malam Pengunduhan dimulai Tampilkan rincian channel + Nonaktifkan terowongan media (tunnel) jiaka anda mengalami sebuah layar hitam atau kerusakan dalam memutar video + Nonaktifkan terowongan media (tunnel) \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index bf3b48c3522..42cff5ed1b2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -678,4 +678,6 @@ Automatico (tema del dispositivo) Tema notturno Mostra dettagli canale + Disattiva il tunneling multimediale se durante la riproduzione dei video si verificano schermate nere o irregolarità nell\'audio + Disattiva tunneling multimediale \ No newline at end of file diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 48c3168ae31..b8702f146e5 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -1,6 +1,6 @@ - Palieskite „Ieškoti“, kad pradėtumėte + Norėdami pradėti paspauskite padidinimo stiklą. %1$s peržiūrų Publikuota %1$s Nerastas srauto grotuvas. Įdiegti VLC\? @@ -84,13 +84,13 @@ Negalima visiškai apdoroti tinklapio Turinys neprieinamas Negalima sutvarkyti atsisiuntimų meniu - Tiesioginės translecijos yra nepalaikomos + Tiesioginės transliacijos kolkas nepalaikomos Negalima gauti jokio srauto Negalima įkelti jokio paveikslėlio Programėlė/ vartotojo sąsaja nulūžo Atsiprašome, taip neturėjo įvykti. Pranešti apie šią klaidą el. paštu - Atsiprašome, ištiko keletas klaidų. + Atsiprašome, kažkas ne taip. Ataskaita Informacija: Kas nutiko: @@ -157,10 +157,10 @@ Paleisti Tęsti grojimą po pertraukčių (pvz. skambučių) Rodyti “laikyti kad pakeisti„ patarimą - Rodyti patarimą, kai foninis arba langelio rėžimo mygtukas paspaudžiamas vaizdo įrašų detalių puslapyje + Paspaudus \"Išsamiau:\" fono ar iššokančio lango mygtuke rodyti patarimą Grotuvas Elgsena - Istorija ir laikmena + Istorija ir podėlis Foninio grotuvo eilėje Įtraukta į langelio rėžimo grojimo eilę Grojaraštis @@ -169,7 +169,7 @@ NewPipe pranešimai Foninio ir langelio rėžimo grotuvų pranešimai [Nežinoma] - Nepavyko groti šio srauto + Srauto atkurti nepavyko Įvyko nepataisoma grotuvo klaida Atstatoma po grotuvo klaidos Nėra rezultatų @@ -203,12 +203,12 @@ Apie Pagalbininkai Leidimai - Nemokama, atviro kodo Youtube peržiūros programėlė Android sistemai. + Laisvas transliavimas ant Android. Prisidėti Jei turite idėjų dėl- vertimų, išvaizdos pakeitimų, kodo supaprastinimo, arba rimtų kodo pakeitimų- pagalba visada laukiama! Peržiūrėti per GitHub Paremti - NewPipe yra vystoma savanorių, kurie praleidžia savo laisvą laiką, kad sukurtų geriausią patirtį Jums. Dabar yra laikas paremti juos, kad kūrėjai galėtų NewPipe paversti dar geresne programėle! + NewPipe yra vystoma savanorių, kurie praleidžia savo laisvą laiką, kad sukurtų geriausią patirtį Jums. Dabar yra laikas paremti juos, kad kūrėjai galėtų NewPipe paversti dar geresne programėle. Duokite grąžos Interneto puslapis Kad sužinotumėte daugiau apie NewPipe apsilankykite mūsų interneto puslapyje. @@ -259,8 +259,8 @@ Perjungti į pagrindinį Importuoti duomenų bazę Eksportuoti duomenų bazę - Bus perrašyta dabartinė istorija ir prenumeratos - Eksportuoti istoriją, prenumeratas ir grojaraščius. + Bus perrašyta jūsų dabartinė istorija, prenumeratos, grojaraščiai ir (pasirinktinai) nustatymai + Eksportuoti istoriją, prenumeratas, grojaraščius ir nustatymus Išorinis grotuvas nepalaiko tokių nuorodų Negalimas URL Nerasta video srautų @@ -294,14 +294,14 @@ Pervadinti Pavadinimas Pridėti į grojaraštį - Nustatyti kaip grojaraščio paveikslėlį + Nustatyti kaip grojaraščio miniatiūrą Pridėti grojaraštį į žymes Pašalinti žymes Ištrinti šį grojaraštį\? Grojaraštis sukurtas Pridėta į grojaraštį Grojaraščio paveikslėlis pakeistas. - Nepavyko ištrinti grojaraščio + Nepavyko ištrinti grojaraščio. Nėra antraštės Pritaikyti Užpildyti @@ -309,13 +309,385 @@ Automatiškai sugeneruotas Atminties nutekėjimo stebėjimas gali padaryti programėlę nestabilią Pranešti apie Out-of-Lifecycle klaidas - Priverstinai pranešti apie \"undeliverable Rx exceptions occurring outside of fragment or activity lifecycle after dispose\" + Priverstinai pranešti apie \"undeliverable Rx exceptions outside of fragment or activity lifecycle after disposal\" Išjungti, kad paslėpti komentarus Rodyti komentarus Pasirinkti skirtuką - Naujas skirtukas + Nauja kortelė Atsisakyti prenumeratos Rodomi rezultatai užklausai: %s Atverti su Pakartoti + 1 elementas pašalintas. + Skaičiuojama maišos suma + Komentarų nėra + ∞ vaizdo įrašų + 100+ vaizdo įrašų + + %s klausytojas + %s klausytojai + %s klausytojų + + Niekas neklauso + + %s žiūri + %s žiūri + %s žiūri + + Niekas nežiūri + Sekėjų skaičius neprieinamas + Perjungti paslaugą, dabar pasirinkta: + Aprašymas + Susiję įrašai + Komentarai + Pranešti per GitHub + Kopijuoti formatuotą pranešimą + Suteikti leidimą rodyti virš kitų programų + Ar norite atstatyti numatytuosius\? + Atstatyti numatytuosius + Įkelti išsaugotų kortelių nepavyko, naudojamos numatytosios + Nėra srautų parsiuntimui + Įvyko klaida: %1$s + Failo vardas negali būti tuščias + Tokio failo nėra arba nesuteiktas leidimas jį pasiekti + Tokio failo/turinio šaltinio nėra + Tokio aplanko nėra + Failas perkeltas ar ištrintas + Įrašyti į išorinę SD kortelę nepavyko. Atstatyti atsisiuntimo aplanką\? + Išorinė saugykla neprieinama + Žinynas + Paieškos istorija pašalinta. + Išvalyti visą paieškos istoriją\? + Išvalo paieškos istoriją + Išvalyti paieško istoriją + Pašalina visas atkūrimo vietas + Pašalinti atkūrimo vietas + Žiūrėjimo istorija pašalinta. + Išvalyti visą žiūrėjimo istoriją\? + Išvalo atkurtų srautų ir atkūrimo vietos istoriją + Išvalyti žiūrėjimo istoriją + Išvalyti slapukus kuriuos NewPipe išsaugojo kai vedėte reCAPTCHA + reCAPTCHA slapukai išvalyti + Išvalyti reCAPTCHA slapukus + Pranešimas apie video maišos progresą + Video maišos pranešimas + Pranešimas apie naują NewPipe versija + Programos atnaujinimo pranešimas + Failas + Failas pašalintas + Atlikėjai + Albumai + Dainos + Įvykiai + Naudotojai + Takeliai + Vaizdo įrašai + Grojaraščiai + Kanalai + Šiam video taikomas amžiaus apribojimas. +\nDėl naujų YouTube amžiaus ribojimų NewPipe negali pasiekti ir atkurti šių video srautų. + Šiam video taikomas amžiaus apribojimas +\n +\nĮjunkite \"%1$s\" norėdami peržiūrėti. + Youtube turi \"apribotą režimą\" kuriame slepiamas galimai suaugusiems skirtas turinys + Įjungti YouTube \"apribotą režimą\" + Rodyti turinį kuris gali būti netinkamas vaikams (18+) + Pranešimai + Atnaujinimai + Kopija jau yra + Palaikomi tik HTTPS adresai + Pridėti kopiją + Pasirinkite patikusias kopijas %s + Pasirinkite mėgiamiausias PeerTube kopijas + PeerTube kopijos + URL neatpažintas. Atverti kita programa\? + Auto atkūrimas + Išvalyti duomenis + Sąraše rodyti atkūrimo vietos indikatorių + Vietos sąraše + Naudoti gestus ryškumo valdymui + Ryškumo valdymo gestai + Naudoti gestus garsumo valdymui + Garsumo gesto valdymas + Auto eilė + Tęsti atkūrimą į eilę pridedant susijusius srautus + Automatiškai pridėti sekantį į eilę + Metaduomenų saugykla išvalyta + Pašalinti visus išsaugotus puslapio duomenis + Išvalyti išsaugotus metaduomenis + Paveikslėlių saugykla išvalyta + Norėdami paslėpti meta duomenis info langeliuose su papildoma informacija apie srauto autorius ir turinį išjunkite. + Rodyti meta duomenis + Išjunkite norėdami paslėpti video aprašymą ir papildomą informaciją + Naudoti greitą netikslų prasukimą + Naktinė tema + Leisti Android priderinti pranešimo spalvą prie pagrindinės miniatiūros spalvos (prieinama ne visuose įrenginiuose) + Spalvoti pranešimą + Nieko + Kraunama + Maišyti + Galite pasirinkit iki trijų veiksmų kompaktiškame pranešime! + Norėdami pakeisti kiekvieną pranešimo veiksmą paspauskite ant jo. Pasirinkite iki trijų norėdami kompaktiškos peržiūros. + Penktas veiksmo mygtukas + Ketvirtas veiksmo mygtukas + Trečias veiksmo mygtukas + Antras veiksmo mygtukas + Pirmas veiksmo mygtukas + Pakeisti video miniatiūrų rodomų pranešime kraštinių santykį iš 16:9 į 1:1 (gali būti iškraipoma) + Pakeisti miniatiūrų dydi 1:1 santykiu + Pakeiskite parsiuntimo aplankus + Atkūrimo vietos pašalintos. + Pašalinti visas atkūrimo vietas\? + Netinkama kopija + Įveskite kopijos URL + Atstatyti paskutinį atkūrimo laiką + Tęsti atkūrimą + Rodyti aprašymą + Norėdami taupyti duomenų srautą ir atminties naudojimą išjunkite. Pakeitimai išvalys duomenis atmintyje ir diske. + Įkelti miniatiūras + Aktyvaus grotuvo eilė bus pakeista + Perjungiant iš vieno grotuvo į kitą gali pakeisti jūsų eilę + Prieš išvalant eilę prašyti patvirtinimo + Greito prasukimo trukmė + Netikslus prasukimas leidžia grotuvui greitai peršokti į kitą vietą su sumažintu tikslumu. 5,10 ar 25 sekundės to nenaudoja. + Importuokite \"YouTube\" prenumeratas iš \"Google Takeout\": +\n +\n1. Eikite į šį URL adresą: %1$s +\n2. Prisijunkite, kai būsite paprašyti +\n3. Spustelėkite \"All data included\" (įtraukti visus duomenis), tada \"Deselect all\" (panaikinti visų duomenų pasirinkimą), tada pasirinkite tik \"Subscriptions\" (prenumeratos) ir spustelėkite \"OK\" (gerai). +\n4. Spustelėkite \"Next step\" (kitas žingsnis), tada \"Create export\" (sukurti eksportą). +\n5. Pasirodžius mygtukui \"Download\" (Atsisiųsti), spustelėkite jį ir +\n6. Iš atsisiųsto išėmimo zip išskleiskite .json failą (paprastai po \"YouTube and YouTube Music/subscriptions/subscriptions.json\") ir importuokite jį čia. + \"NewPipe\" yra \"copyleft libre\" programinė įranga: galite ją naudoti, studijuoti, dalytis ja ir tobulinti savo nuožiūra. Konkrečiai, galite ją platinti ir (arba) keisti pagal GNU bendrosios viešosios licencijos, kurią paskelbė Laisvosios programinės įrangos fondas, 3 licencijos versiją arba (savo nuožiūra) bet kurią vėlesnę versiją, sąlygas. + Importuokite \"SoundCloud\" profilį įvesdami URL arba savo ID: +\n +\n1. Interneto naršyklėje įjunkite darbalaukio režimą (svetainė neprieinama mobiliesiems įrenginiams). +\n2. Eikite šiuo adresu: %1$s +\n3. Prisijunkite, kai būsite paprašyti +\n4. Nukopijuokite profilio URL, į kurį buvote nukreipti. + Šis turinys prieinamas tik sumokėjusiems naudotojams, todėl \"NewPipe\" negali jo transliuoti ar atsisiųsti. + Šis vaizdo įrašas prieinamas tik \"YouTube Music Premium\" nariams, todėl \"NewPipe\" negali jo transliuoti ar atsisiųsti. + Išjunkite medijos tuneliavimą, jei vaizdo įrašo atkūrimo metu atsiranda juodas ekranas arba užstrigimas + Pakeiskite grotuvo antraštės teksto mastelį ir fono stilių. Pakeitimai įsigalios iš naujo paleidus programą. + Šis turinys yra privatus, todėl \"NewPipe\" jo negali transliuoti ar atsisiųsti. + Ar norite išvalyti atsisiuntimų istoriją ar ištrinti visus atsisiųstus failus\? + Laikas po paskutinio atnaujinimo, po kurio prenumerata laikoma pasenusia — %s + Serveris nepriima daugiasrautinių atsisiuntimų, pakartokite bandymą su @string/msg_threads = 1 + Naudoti miniatiūrą užrakinimo ekrano fonui ir pranešimams + Šiuo metu vyksta atsisiuntimas su šiuo pavadinimu + Šis turinys nėra prieinamas jūsų šalyje. + Jokia programa jūsų įrenginyje negali atidaryti šio + Vienu metu bus vykdomas tik vienas atsisiuntimas + NewPipe buvo uždaryta kol dirbo su failu + Serveris nesiunčia duomenų + Užmegzti saugaus ryšio nepavyko + Naudojant mobilius duomenis riboti raišką + Automatiškai atkurti — %s + Taip ir iš dalies žiūrėtus vaizdo įrašus + Atstatyti parsiuntimo nepavyko + Pertraukti matuojamuose tinkluose + Sumažinti iki iššokančio lango grotuvo + Sumažinti į fono grotuvą + Prenumeratų importuoti nepavyko + Išjungti media tuneliavimą + Rodyti per didelį atminties naudojimą + Tik per Wi-Fi + Kanalo avataro miniatiūra + Išjungti greitą režimą + Neįkelta: %d + Išvalyti parsiuntimų istoriją + Generuoti unikalų vardą + Atkūrimo greičio valdymas + Rodyti miniatiūrą + Kanalo grupės + + %d diena + %d dienos + %d dienų + + + %d minutes + %d minutės + %d minučių + + + %d sekundė + %d sekundės + %d sekundžių + + Sistemos numatytoji + Kalba + Naudoti SAF + Sustabdyti siuntimus + Nerasta + Parsiųsta + Perjungti rodinį + Radijo + Siūloma + Skyriai + Paskutiniai + Niekada + Kanalas + Naujas + atstatoma + Užverti + Sustabdyti + Kodas + Perrašyti + Eilė + apdorojama + eilėje + sustabdyta + Laukiama + Baigta + Auto + Tinklelis + Sąrašas + Atnaujinimai + Atstatyti + Žingsnis + Nieko + Atmesti + Priimti + Pikas + Tempas + Eksportuojama… + Importuojama… + Importuoti + Importuoti/Eksportuoti + Subtitrai + Automatiškai sugeneruota (įkėlėjas nerastas) + Įjungti garsą + Nutildyti + Numatytasis veiksmas atveriant turinį — %s + Numatytasis \"atverti\" veiksmas + Pridėta į eilę + Pridėti į eilę + Rodyti kanalo detales + Groti eilę + Konferencijos + Labiausiai patikę + Nesenai pridėta + Vietinė + Kalba pasikeis paleidus programą iš naujo. + Komentarų įkelti nepavyko + Ar norite importuoti nustatymus\? + Kol kas nėra grojaraščio žymų + Pasirinkite grojaraštį + Numatytasis režimas + Pasirinkimas + Kokios kortelės rodomos pagrindiniame puslapyje + Skaityti privatumo politiką + NewPipe į jūsų privatumą žiūri labai rimtai. Programa be jūsų sutikimo nerenka jokių duomenų. +\nNewPipe privatumo politika išsamiai parodo kokie duomenys siunčiami ir saugomi pranešant apie problemą. + NewPipe privatumo politika + Šio failo atkūrimui nėra įdiegtos programos + Atlikta + Išspręsta + Paspauskite \"atlikta\" kai išspręsta + Patikrinkite ar apie problemą su kuria susidūrėte dar nėra pranešta. Sukurdami kelis pranešimus apie tą pačią problemą atimate iš mūsų laiką kurį galėtume skirti klaidų taisymui. + Ar manote, kad kanalas kraunamas per lėtai\? Jei taip, pabandykite įjungti greitąjį įkrovimą (tai galite pakeisti nustatymuose arba paspaudę toliau esantį mygtuką). +\n +\n\"NewPipe\" siūlo dvi kanalo įkėlimo strategijas: +\n- Visos prenumeratos kanalo atsisiuntimas, kuris yra lėtas, bet išsamus. +\n- Naudojant specialų paslaugos galinį tašką, kuris yra greitas, bet paprastai neišsamus. +\n +\nSkirtumas tarp šių dviejų būdų yra tas, kad greitasis būdas paprastai neturi tam tikros informacijos, pavyzdžiui, elemento trukmės ar tipo (negalima atskirti tiesioginių ir įprastų vaizdo įrašų), ir gali grąžinti mažiau elementų. +\n +\n\"YouTube\" yra pavyzdys paslaugos, kuris siūlo šį greitąjį metodą su savo RSS kanalu. +\n +\nTaigi pasirinkimas priklauso nuo to, ko labiau norite: greičio ar tikslios informacijos. + Siekdami laikytis Europos bendrojo duomenų apsaugos reglamento (GDPR), atkreipiame jūsų dėmesį į \"NewPipe\" privatumo politiką. Prašome atidžiai ją perskaityti. +\nNorėdami išsiųsti mums pranešimą apie klaidą, turite su ja sutikti. + Prieinama kai kuriose tarnybose, paprastai yra daug greitesnė, tačiau gali grąžinti ribotą kiekį elementų ir dažnai neišsamią informaciją (pvz., nėra trukmės, elemento tipo, nėra tiesioginės būsenos). + Vaizdo įrašai, kurie buvo peržiūrėti prieš juos įtraukiant į grojaraštį ir po to, kai jie buvo įtraukti į grojaraštį, bus pašalinti. +\nAr tikrai\? To negalima atšaukti! + Jūsų bus paklausta, kur išsaugoti kiekvieną atsisiuntimą. +\nPasirinkite SAF, jei norite atsisiųsti į išorinę SD kortelę + Tai \"SoundCloud Go+\" kūrinys, bent jau jūsų šalyje, todėl jo negalima transliuoti ar atsisiųsti per \"NewPipe\". + Šio turinio \"NewPipe\" dar nepalaiko. +\n +\nTikimės, kad jis bus palaikomas būsimoje versijoje. + \"Storage Access Framework\" leidžia atsisiųsti duomenis į išorinę SD kortelę. +\nKai kurie įrenginiai yra nesuderinami + Atminkite, kad ši operacija gali brangiai kainuoti tinkle. +\n +\nAr norite tęsti\? + Rodyti pranešimą, kuriame raginama atnaujinti programą, kai yra nauja versija + Dėl ExoPlayer apribojimų prasukimo trukmė buvo nustatyta %d sekundės + Naudinga pereinant prie mobiliųjų duomenų, nors kai kurių atsisiuntimų sustabdyti negalima + Veiksmas, kai iš pagrindinio vaizdo įrašų grotuvo pereinama į kitą programą — %s + Srauto elementuose bus matomi orginalūs tekstai iš paslaugų + Jūsų bus paklausta, kur išsaugoti kiekvieną atsisiuntimą + Žemiau galite pasirinkti mėgstamą nakties temą + Šiuo pavadinimu yra laukiama atsisiuntimo + Atsisiųstas failas su šiuo pavadinimu jau egzistuoja + Didžiausias bandymų skaičius prieš atšaukiant atsisiuntimą + Pasirinkite mėgstamiausią nakties temą — %s + Ar norite panaikinti šią grupę\? + Eiga prarasta, nes failas buvo panaikintas + Failas šiuo pavadinimu jau egzistuoja + Nepavyko sukurti paskirties aplanko + Kai įmanoma gauti iš atskiro kanalo + Elementams rodyti orginalų \"prieš\" laiką + Nepavyksta prisijungti prie serverio + Failo sukurti nepavyko + Įrenginyje nebėra vietos + Nepavyko rasti serverio + Sistema nedavė leidimo + Sistema uždraudė veiksmą + Rodyti tik negrupuotas prenumeratas + Paskutinis atnaujinimas: %s + Klausti kur parsiųsti + failo perrašyti nepavyko + Prieinamas NewPipe atnaujinimas! + Perjungiant programą sumažinti + Atkabinti (gali iškraipyti) + Nepavyko eksportuoti prenumeratų + Parsiunčiama + Automatinis (įrenginio tema) + Programa nulūžo + Sukūrė %s + Pašalinti žiūrėtus video\? + Įjungti greitą režimą + Kanalo atnaujinimo slenkstis + Tuščias grupės pavadinimas + Nepasirinkta jokia prenumerata + Pašalinta %1$d parsiuntimai + Pašalinti parsiųstus failus + Pasirinkite kopiją + Riboti parsiuntimų eilę + %s parsiuntimai baigti + Paspauskite parsiuntimui + Sąrašo rodinio režimas + Prasukti kai nieko negroja + Grojaraščio puslapis + %s + Pašalinti žiūrėtus + Visada atnaujinti + + %d pasirinktas + %d pasirinkti + %d pasirinkta + + Pasirinkite prenumeratas + Apdorojamas srautas… + Įkeliamas srautas… + + %d valanda + %d valandos + %d valandų + + Pradėti siuntimus + Prisijungimo laikas baigėsi + Daugiausiai bandymų + Apdorojimas nepavyko + Rodyti klaidą + Parsiųsti nepavyko + Be limito + jūsųID, soundcloud.com/jūsųid + Ankstesnis ekportavimas + Importuoti failą + Eksportuoti į + Importuoti iš \ No newline at end of file diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index c20fc874039..a0f111be0e9 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -1,6 +1,6 @@ - Tik op \"Zoeken\" om te beginnen + Tik op het loepje om te beginnen. %1$s keer bekeken Gepubliceerd op %1$s Er is geen stream videospeler gevonden. Wilt u VLC installeren\? @@ -653,4 +653,16 @@ Video Hash Melding Zet uit om metadata pop-ups te verbergen met extra informatie over de stream auteur, stream inhoud of een zoekaanvraag. Toon metadata + Media vertunneling uitschakelen + Toon kanaal details + Los op + Beschrijving + Gerelateerde items + Reacties + Deze video heeft een leeftijdsbeperking. +\nAls gevolg van het nieuwe YouTube-beleid met video\'s met leeftijdsbeperkingen heeft NewPipe geen toegang tot deze videostreams en kan deze dus niet afspelen. + Zet uit om videobeschrijving en extra informatie te verbergen + Toon beschrijving + Nacht Thema + Open met \ No newline at end of file diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6b33233f97c..8bf1b8796ec 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -72,7 +72,7 @@ Video Geluid Opnieuw proberen - Druk op \"zoeken\" om te beginnen + Druk op \"zoeken\" om te beginnen. Automatisch afspelen Speelt video’s af als NewPipe vanuit een andere app wordt geopend Live @@ -262,8 +262,8 @@ Bezig met laden van gevraagde inhoud Databank importeren Databank exporteren - Dit overschrijft je huidige geschiedenis, abonnementen, afspeellijsten en (optionele) settings - Exporteer geschiedenis, abonnementen, afspeellijsten en instellingen + Dit overschrijft je huidige geschiedenis, abonnementen, playlists en instellingen + Exporteer geschiedenis, abonnementen, playlists en instellingen Geëxporteerd Geïmporteerd Geen geldig ZIP-bestand @@ -641,11 +641,11 @@ Verwijder cookies die NewPipe opslaat wanneer u een reCAPTCHA oplost reCAPTCHA cookies zijn verwijderd Verwijder reCAPTCHA cookies - YouTube biedt een \"beperkte modes\" aan, dit verbergt mogelijk materiaal voor volwassenen + YouTube biedt een \"beperkte modus\" aan; dit verbergt mogelijk materiaal voor volwassenen Toon inhoud die mogelijk niet geschikt is voor kinderen omwille van een leeftijdslimiet (zoals 18+) Laat Android de kleur van de notificatie aanpassen, op basis van de meest voorkomende kleur in de thumbnail (let op: niet beschikbaar op elk apparaat) Notificatie kleur aanpassen - Toon miniatuurafbeelding op het vergrendelscherm als achtergrond en binnen meldingen + Toon miniatuurafbeelding op het vergrendelscherm als achtergrond en in de meldingen Toon miniatuurafbeelding Recent Hash berekenen @@ -653,14 +653,14 @@ Video Hash Melding Schakel dit uit om metainformatie vakken te verbergen met aanvullende informatie over de maker van de stream, streaminhoud of een zoekopdracht. Toon meta informatie - Omschrijving + Beschrijving Toon beschrijving Geen app op je apparaat kan dit openen Hoofdstukken Gerelateerde streams - Commentaar + Reacties Schakel dit uit om video beschrijvingen en additionele informatie te verbergen - Openen met + Open met Radio Uitgelicht Deze inhoud is alleen beschikbaar voor gebruikers die hebben betaald, dus het kan niet worden gestreamd of gedownload door NewPipe. diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b81bd654ed1..716a96f85ad 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -688,4 +688,6 @@ Automatyczny (motyw urządzenia) Motyw nocny Pokaż szczegóły kanału + Wyłącz tunelowanie multimediów jeśli zaobserwowałeś czarny ekran bądź brak płynności odtwarzania wideo + Wyłącz tunelowanie multimediów \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index af9c12beb97..218bfd84419 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -88,7 +88,7 @@ O site não pôde ser analisado totalmente Miniatura de visualização do vídeo Transmissões ao vivo ainda não são suportadas - Toque em \"Pesquisar\" para começar + Toque na lupa para começar. Arquivo já existe Threads Link inválido ou internet indisponível @@ -105,7 +105,7 @@ Usar Tor Relatório do usuário Mostrar \"Reproduzir com Kodi\" - Ocorrido:\\nPedido:\\nIdioma do conteúdo:\\nPaís do conteúdo:\\nIdioma do app:\\nServiço:\\nHora GMT:\\nPacote:\\nVersão:\\nVersão da SO: + Ocorrido:\\nPedido:\\nIdioma do conteúdo:\\nPaís do conteúdo:\\nIdioma do app:\\nServiço:\\nHora GMT:\\nPacote:\\nVersão:\\nVersão do Sistema Operacional: Abrir no modo popup Resolução padrão do popup Mostrar resoluções maiores @@ -678,4 +678,6 @@ Automático (tema do dispositivo) Tema Noturno Mostrar detalhes do canal + Desative o túnel de mídia se você tiver uma tela preta ou a reprodução do vídeo estiver engasgando + Desativar túnel de mídia \ No newline at end of file diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 2819539ecc8..cda5c24f2ea 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -7,7 +7,7 @@ Tenha em atenção de que esta operação pode sobrecarregar a sua rede. \n \nDeseja continuar\? - Toque \"Pesquisar\" para iniciar + Toque na lupa para começar. Continuar reprodução Processos Os carateres inválidos são substituídos por este valor @@ -672,10 +672,12 @@ Rádio Destaque Resolver - A descarrega começou + Descarga iniciada Pode escolher o seu tema escuro favorito abaixo Escolha o seu tema escuro favorito — %s Automático (Tema do aparelho) Tema Escuro Mostrar detalhes do canal + Desative esta opção se estiverem a ocorrer erros de ecrã escuro ou paragens durante a reprodução + Desativar túnel multimédia \ No newline at end of file diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index a8b4e98b87e..124d7bc9275 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -73,7 +73,7 @@ Áudio Tentar novamente Deve conceder acesso ao armazenamento - Toque na \"lupa\" para começar + Toque na lupa para começar. Reprodução automática Reproduzir vídeo se NewPipe for invocado por outra aplicação Em direto @@ -486,7 +486,7 @@ \nEscolha SAF se quiser descarregar para o cartão SD externo Utilizar SAF \'Storage Access Framework\' permite descargas para um cartão SD externo. -\nAlguns dipositivos não são compatíveis +\nAlguns dispositivos não são compatíveis Remover posições de reprodução Remove todas as posições de reprodução Remover todas as posições de reprodução\? @@ -673,9 +673,11 @@ Destaques Resolver Escolha o seu tema escuro favorito — %s - A descarrega começou + Descarga iniciada Pode escolher o seu tema escuro favorito abaixo Automático (Tema do aparelho) Tema Escuro Mostrar detalhes do canal + Desative esta opção se estiverem a ocorrer erros de ecrã escuro ou paragens durante a reprodução + Desativar túnel multimédia \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 001ffddc621..888fec2dcb3 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -689,4 +689,6 @@ Рекомендуемые Решить Подробно о канале + Отключите туннелирование медиа, если вы видите черный экран или подёргивание при воспроизведении видео + Отключить туннелирование медиа \ No newline at end of file diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 7e646541d70..2d5597d90d3 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -610,7 +610,7 @@ Perunu riproduidore de flussos agatadu. Cheres installare VLC\? Publicadu su %1$s %1$s visualizatziones - Toca \"Chirca\" pro incumintzare + Toca sa lente de ismanniamentu pro incumintzare. Mai Cun su Wi-Fi ebbia Incumintza cun sa riprodutzione automaticamente — %s @@ -678,4 +678,6 @@ Automàticu (tema de su dispositivu) Tema pro sa note Ammustra sos detàllios de su canale + Disabìlita sa tunnellizatzione de sos elementos multimediales si durante sa riprodutzione bi sunt ischermadas nieddas o su flussu de su vìdeu no est regulare + Disabìlita sa tunnellizatzione de sos mèdios \ No newline at end of file diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index a6d8f58b102..d7d1399bf6e 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -55,7 +55,7 @@ (Experimentálne) Vyžadovať preberanie cez Tor pre väčšie súkromie (streamovanie videa momentálne nie je podporované). Nemožno vytvoriť adresár na preberanie \'%1$s\' Zložka na preberanie bola vytvorená \'%1$s\' - Ťuknite na \"Vyhľadávanie\" + Začnite klepnutím na lupu. Automatické prehrávanie Prehrá video pri zavolaní NewPipe inou aplikáciou Obsah @@ -688,4 +688,6 @@ Zobraziť podrobnosti kanála Vyrieš Nočná Téma + Ak vám video pri prehrávaní seká alebo sa zobrazuje čierna obrazovka zakážte tunelovanie médií + Zakázať tunelovanie médií \ No newline at end of file diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 5ea31b26b10..bd9293f897a 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -32,14 +32,14 @@ Остало Сличица видео прегледа Пусти видео, трајање: - Сличица аватара отпремаоца + Аватар пошиљаоца Несвиђања Свиђања Користи спољашњи видео плејер Користи спољашњи аудио плејер Пуштам у позадини - Користи Тор - (Експериментално) Принудно преусмерење саобраћаја кроз Тор за доданту приватност (токови још нису подржани). + Користи „Тор“ + (Експериментално) Преусмерава преузимање кроз „Тор“ за додатну приватност (токови још нису подржани). Тема тамна светла @@ -51,7 +51,7 @@ Направљен директоријум за преузимање „%1$s“ Не могу да направим директоријум за преузимање „%1$s“ Грешка - Не могох да учитам све сличице + Не могу да учитам све сличице Не могу да дешифрујем потпис видео урл-а Не могу да рашчланим веб-сајт Садржај је недоступан @@ -61,10 +61,10 @@ Преноси уживо још увек нису подржани Не могу да рашчланим веб-сајт у целости Не могу да добавим ниједан ток - Нажалост, то не би требало да се деси. + Нажалост, ово не би требало да се деси. Пријавите ову грешку е-поштом - Извини, нешто није у реду. - Пријава + Извините, нешто није у реду. + Пријави Подаци: Шта се десило: Ваш коментар (на енглеском): @@ -82,15 +82,15 @@ Почни Паузирај Пусти - Избриши + Обриши Контролна сума Нова мисија У реду - Назив документа + Назив фајла Нити Грешка - Неподржани сервер - Датотека већ постоји + Сервер није подржан + Фајл већ постоји Неисправан УРЛ или нема интернета Њупајп преузима Тапните за детаље @@ -100,11 +100,11 @@ Преузимања Преузимања Извештај о грешци - Не могох да учитам слику - Апликација/УИ је краховала + Не могу да учитам слику + Програм се срушио Шта:\\nЗахтев:\\nЈезик садржаја:\\nЗемља садржаја:\\nЈезик апликације:\\nУслуга:\\nГМТ време:\\nПакет:\\nИздање:\\nИздање ОС-а: - reCAPTCHA стопка - Решите reCAPTCHA задатак + „reCAPTCHA“ задатак + Решите „reCAPTCHA“ задатак црна Све Канал @@ -155,7 +155,7 @@ О програму Доприносиоци Лиценце - Бесплатно и лагано стримовање на Андроид-у. + Слободно и лагано стримовање на Андроиду. Погледај на Гитхабу Прочитај лиценцу Допринос @@ -195,13 +195,13 @@ %s прегледа %s прегледа - Нема видео снимака + Нема видеа %s видео %s видеа %s видеа - Неисправни знакови ће бити замењени овом вредношћу + Неисправни знакови биће замењени овим Знак за замену Посебни знакови Лиценце треће стране @@ -212,18 +212,18 @@ У реду за позадински плејер У реду за искачући плејер Пусти све - Неуспшно пуштања овог тока + Не могу да пустим овај ток Десила се непоправљива грешка плејера Опорављам се од грешке плејера - Желите ли да обришете ову ставку из историјата претраге? - Садржај на главној страници + Желите да обришете ову ставку из историјата претраге\? + Садржај главне стране Празна страница Киоск страница Страница претплате Страница довода Страница канала Изаберите канал - Још увек нема претплате на канале + Још нема претплата на канале Изаберите киоск Киоск У тренду @@ -244,8 +244,8 @@ Само једном [непознато] Прикажи поруку „задржи ради стављања у ред” - Донирај - ЊуПајп су развили волонтери који своје слободно време проводе доносећи вам најбоље корисничко искуство. Донирајте да бисте помогли програмерима да ЊуПајп постане још бољи док уживају у чашици ракије. + Донација + ЊуПајп развијају волонтери у своје слободно време како би вам пружили најбоље искуство. Узвратите им како би наставили са побољшавањем ЊуПајпа док уживају уз шољицу кафе. Узврати Веб страна За више информација и новости посетите ЊуПајпов вебсајт. @@ -263,106 +263,106 @@ Изаберите језичак Приказ коментара искључите за сакривање коментара - Због ограничења ExoPlayer трајање тражења је постављено на %d секунди - Да, и делимично гледани видео снимци - Видео записи који су гледани пре и након додавања на листу песама биће уклоњени. -\nДа ли сте сигурни\? Ово се не може поништити! - Уклонити гледане видео снимке\? + Због ограничења плејера, премотавање је постављено на %d секунди + Да, и делимично одгледани снимци + Видео записи који су гледани пре и након додавања на листу биће уклоњени. +\nДа ли сте сигурни\? Ово се не може повратити! + Уклонити одгледане видео снимке\? Уклони гледано - Подразумевана подешавања система + Системски Језик апликације Изаберите инстанцу - \'Storage Access Framework\' омогућава преузимање на спољну СД картицу. -\nНеки уређаји су некомпатибилни - Користи SAF - Питаће вас где да сачувате свако преузимање. -\nИзаберите SAF ако желите да преузимате на спољну СД картицу + „Storage Access Framework“ омогућава преузимање на спољну СД картицу. +\nНеки уређаји нису компатибилни + Користи „SAF“ + Питаће вас где да сачува свако преузимање. +\nИзаберите „SAF“ ако желите да преузимате на спољну СД картицу Питаће вас где да сачувате свако преузимање - Питајте где да преузмете - Паузирајте преузимања - Започните преузимања - Једно преузимање ће се покретати истовремено - Ограничите ред за преузимање + Питај где да се преузме + Паузирај преузимања + Започни преузимања + По једно преузимање ће бити активно + Ограничи ред за преузимање Затвори Корисно при преласку на мобилне податке, иако нека преузимања не могу бити обустављена Прекид на мереним мрежама - Максималан број покушаја пре отказивања преузимања - Максималан број поновљених покушаја - Зауставити + Највећи број покушаја пре отказивања преузимања + Највише покушаја + Заустави Обрисано %1$d преузимања Избриши преузете фајлове - Да ли желите да обришете историју преузимања или избришете све преузете датотеке\? + Желите да очистите историју преузимања или обришете све преузете фајлове\? Обриши историју преузимања Не могу да опоравим ово преузимање - Временско ограничење везе - Напредак је изгубљен јер је датотека избрисана - Недовољно меморије на уређају - ЊуПајп је затворен док је радио на датотеци + Веза је истекла + Напредак је изгубљен јер је фајл обрисан + Нема простора на уређају + ЊуПајп је затворен док је радио на фајлу Накнадна обрада није успела Није пронађено Сервер не прихвата преузимања са више нити. Покушајте са @string/msg_threads = 1 Сервер не шаље податке Не могу да се повежем са сервером - Није могуће пронаћи сервер + Не могу да пронађем сервер Не могу да успоставим безбедну везу Систем је одбио дозволу - Није могуће створити одредишну фасциклу - Датотека се не може створити + Не могу да направим одредишну фасциклу + Фајл се не може направити Код Прикажи грешку Преузимање са овим називом чека на ред У току је преузимање са овим називом - не може преписати датотеку + не могу да пребришем фајл Преузет фајл са овим називом већ постоји - Датотека са овим именом већ постоји - Препиши - Генериши јединствено име + Фајл са овим називом већ постоји + Пребриши + Генериши јединствен назив %s преузимања завршена Преузимање завршено Преузимање неуспешно Систем одбија радњу Ред чекања опоравља се - Пост обрада + накнадна обрада у реду паузирано - Нерешено - Готовo - Додирните за преузимање + На чекању + Завршено + Тапните за преузимање Доступно је ажурирање за ЊуПајп! - Пребаци поглед + Промени приказ Аутоматски - Решетка + Мрежа Листа Режим приказа листе Никад - Само на Ви-Фи мрежи - Покрените репродукцију аутоматски — %s - Смањите на искачући плејер - Смањите на позадински плејер - Ниједан - Акција приликом преласка на другу апликацију са главног видео плејера — %s - Смањивање пребацивања апликације - Прикажите обавештење да затражите ажурирање апликације када буде доступна нова верзија + Само на бежичној + Покрени пуштање аутоматски — %s + Умањи на искачући плејер + Умањи на позадински плејер + ништа + Радња при преласку на другу апликацију са главног видео плејера — %s + Умањи при мењању апликације + Прикажи обавештење када постоји нова верзија апликације Ажурирања - Ограничите резолуцију када користите мобилне податке + Ограничи резолуцију када користим мобилне податке Одбиј Без органичења Прихвати - Да бисмо били у складу са Европском општом уредбом о заштити података (GDPR), скрећемо вам пажњу на политику приватности апликације ЊуПајпа. Молимо вас да пажљиво прочитате. -\nМорате га прихватити да бисте нам послали извештај о грешци. + Да бисмо били у складу са Европском општом уредбом о заштити података („GDPR“), скрећемо вам пажњу на политику приватности апликације ЊуПајпа. Пажљиво је прочитајте. +\nМорате је прихватити да бисте нам послали извештај о грешци. Ресетуј Корак Премотавање унапред током тишине - Откачите (може довести до изобличења) + Откачити (може изазвати изобличења) Висина тона Брзина Контроле брзине репродукције - Имајте на уму да ова операција може бити скупа на мрежи. + Имајте на уму да ова операција може потрошити доста података. \n -\nДа ли желите да наставите\? +\nЖелите ли да наставите\? вашИД, soundcloud.com/yourid - Увезите SoundCloud профил тако што ћете откуцати УРЛ или свој ИД: + Увезите СаундКлауд профил тако што ћете откуцати УРЛ или свој ИД: \n \n1. Омогућите „режим радне површине“ у веб прегледачу (веб локација није доступна за мобилне уређаје) \n2. Идите на ову УРЛ адресу: %1$s @@ -376,10 +376,10 @@ \n4. Кликните на „Следећи корак“, а затим на „Направи извоз“ \n5. Кликните на дугме „Преузми“ након што се појави и \n6. Из преузете зип датотеке за преузимање извадите .json датотеку (обично под „YouTube и YouTube Music/subscriptions/subscriptions.json“) и увезите је овде. - Извоз претплата није успео - Увоз претплата није успео + Не могу да извезем претплате + Не могу да увезем претплате Претходни извоз - Увези датотеку + Увези фајл Увозим… Извозим… Извоз у @@ -387,152 +387,152 @@ Увоз Увоз/извоз Срушите апликацију - Оригинални текстови са услуга биће видљиви у ставкама стрима - Прикажи оригинално време на предметима - Присилни пријављивање Rx изузетака које се неможе испоручити изван фрагмента или животног циклуса активности након одлагања + Изворни текстови са услуга биће видљиви у ставкама тока + Прикажи изворно време ставки + Присили пријављивање неиспоручивих „Rx“ изузетака изван делова или активности након одлагања Пријави грешке ван животног циклуса Прикажи цурење меморије - Надгледање цурења меморије може проузроковати да апликација престане да реагује при одбацивању гомиле - Измените скалу титла и стилове позадине за титлове плејера. Захтева поновно покретање апликације да би ступило на снагу. + Надгледање цурења меморије може изазвати заглављивање апликација при стварању записника + Мења величину и позадину титлова плејера. Захтева поновно покретање да би ступило на снагу. Титлови - Аутоматски генерисано + Аутоматски направљено Увеличај - Напуните - Фит + Попуњено + Уклопљено Без титлова - Аутоматски генерисано (није пронађен отпремач) - Брисање плејлисте није успело. - Сличица плејлисте је промењена. - Плејлиста - Плејлиста је направљена - Желите ли да избришете ову плејлисту\? - Обележи плејлисту - Уклоните обележивач + Аутоматски направљено (нема отпремача) + Не могу да обришем листу. + Сличица листе је промењена. + Листа пуштања + Листа је направљена + Да обришем ову листу\? + Обележи листу + Уклони обележивач Постави као сличицу листе Упали звук - Угаси звук + Утишај Додај на листу - Име + Назив Преименуј - Избриши - Ново плејлиста - Учитавање захтеваног садржаја - Добијање информација… - Увек пита - Плејер у искачујућем прзору + Обриши + Нова листа + Учитавам тражени садржај + Добављам податке… + Увек питај + Плејер у искачућем прозору Плејер у позадини Видео плејер - Подразумевана радња приликом отварања садржаја — %s - Пожељно „отворити“ акција + Подразумевана радња при отварању садржаја — %s + Пожељна радња при отварању Нешто ће се овде ускоро појавити ;D Затвори фиоку - Отворите фиоку - Почните да играте у искачућем прозору - Почните да играте у позадини - у реду - У реду - Ред репродукције + Отвори фиоку + Почни пуштање у искачућем прозору + Почни пуштање у позадини + Стави у ред + На листи + Ред пуштања Конференције Највише свиђања Недавно додато Локално - Језик ће се променити након што се апликација поново покрене. - Учитавање коментара није успело - Да ли желите да увезете и поставке\? - Ово ће заменити ваше тренутно подешавање. - Упозорење: Увоз свих датотека није успео. - Нема важеће ZIP датотеке + Језик ће бити промењен након поновног покретања. + Не могу да учитам коментаре + Желите да увезете и поставке\? + Ово ће прегазити тренутна подешавања. + Упозорење: не могу да увезем све фајлове. + Није исправан ЗИП фајл Увезено Извезено - Још нема обележивача на плејлисти - Изаберите плејлисту - Уобичајни киоск + Још нема обележивача на листи + Изаберите листу пуштања + Подразумевани киоск Избор - Које су картице приказане на главној страници + Које картице се налазе на главној страници Највише пуштано - Последња репродукција - Да ли сте сигурни да желите да избришете све ставке из историје\? - Да ли желите да избришете ову ставку из историје гледања\? - ЊуПајп је бесплатни копилефт софтвер: можете га користити, проучавати и делити по жељи. Конкретно, можете га дистрибуирати и / или модификовати под условима ГНУ Опште јавне лиценце коју је објавила Фондација за слободни софтвер, било верзије 3 лиценце, или (по вашој жељи) било које касније верзије. + Последње пуштано + Заиста желите да обришете све ставке из историјата\? + Желите да обришете ову ставку из историје гледања\? + ЊуПајп је бесплатни слободни софтвер. Можете га користити, проучавати и делити по жељи. Конкретно, можете га дистрибуирати и/или мењати под условима ГНУ Опште јавне лиценце коју је објавила Фондација за слободни софтвер, било верзије 3 лиценце, или (по вашој жељи) било које касније верзије. Прочитајте политику приватности Пројекат ЊуПајп врло озбиљно схвата вашу приватност. Стога апликација не прикупља никакве податке без вашег пристанка. \nПолитика приватности ЊуПајпа детаљно објашњава који се подаци шаљу и чувају када пошаљете извештај о паду апликације. Политика приватности ЊуПајпа - Није инсталирана ниједна апликација за репродукцију ове датотеке + Нема апликације за пуштање овог фајла Готово Реши Притисните „Готово“ кад решите - Избрисана је 1 ставка. + Обрисана је 1 ставка. Израчунавање хеша Преименуј Одбаци - Избриши све - Избриши један - Креирај + Обриши све + Обриши један + Направи Нема коментара - ∞ видео снимака - 100+ видео снимака + ∞ видеа + 100+ видеа %s слушалац - %s слушалац - %s слушаоци + %s слушаоца + %s слушалаца Нико не слуша %s гледалац %s гледаоца - %s гледаоци + %s гледалаца Нико не гледа Број претплатника није доступан - Укључи / искључи услугу, која је тренутно изабрана: + Мењај услугу, тренутно изабрана: Превуците за преуређивање Опис Коментари Проверите да ли већ постоји проблем који говори о вашем паду апликације. Када правите дупликате карата, одузимате нам време које бисмо могли потрошити на исправљање стварне грешке. - Пријави на GitHub-у + Пријави на Гитхабу Копирајте форматирани извештај Дајте дозволу за приказ преко других апликација - Врати уобичајне вредности - Да ли желите да вратите уобичајне вредности\? - Није могуће прочитати сачуване картице, па користите подразумеване - Није доступан ниједан стрим за преузимање + Врати подразумеване + Желите да вратите подразумеване вредности\? + Не могу да очитам сачуване картице. Користим подразумеване + Нема тока доступног за преузимање Дошло је до грешке: %1$s - Датотека не постоји или јој недостаје дозвола за читање или чување - Име датотеке не може бити празно - Не постоји такав извор датотеке / садржаја + Фајл не постоји или нема дозволе за читање или писање + Назив фајла не може бити празан + Нема таквог фајла/извора садржаја Нема такве фасцикле - Датотека је премештена или избрисана - Није пронађен ниједан видео ток - Није пронађен ниједан аудио ток - Неважећи УРЛ + Фајл је премештен или избрисан + Нема видео тока + Нема аудио тока + Неисправан УРЛ Спољни плејери не подржавају ове врсте веза - Преузимање на спољну СД картицу није могуће. Желите ли да ресетујете локацију фасцикле за преузимање\? + Преузимање на спољну СД картицу није могуће. Ресетовати локацију фасцикле за преузимање\? Спољно складиште није доступно Помоћ - Историја претраживања је избрисана. - Желите ли да избришете целу историју претраге\? + Историја претраге је обрисана. + Да обришем целу историју претраге\? Брише историју кључних речи за претрагу - Обришите историју претраге - Избрисане су позиције репродукције. - Избрисати све позиције репродукције\? + Обриши историју претраге + Позиције репродукције су обрисане. + Обрисати све позиције репродукције\? Брише све позиције репродукције - Избришите позиције репродукције + Обриши позиције репродукције Историја гледања је избрисана. - Избришите целу историју гледања\? - Брише историју репродукованих токова и позиције репродукције - Очистите историју гледања - Очистите колачиће које ЊуПајп чува када решите reCAPTCHA - Извоз историје, претплате, плејлисте и подешавања - Замењује вашу тренутну историју, претплате, плејлисте и (опционално) подешавања - колачићи reCAPTCHA су очишћени - Очистите reCAPTCHA колачиће + Обрисати целу историју гледања\? + Брише историју пуштаних токова и позиције репродукције + Очисти историју гледања + Чисти колачиће које ЊуПајп чува када решите „reCAPTCHA“ + Извоз историје, претплата, листи и поставки + Замениће вашу тренутну историју, претплате, листе и (опционо) поставке + „reCAPTCHA“ колачићи су очишћени + Очисти „reCAPTCHA“ колачиће Извоз базе података Увоз базе података - Пребаците се на Главни - Пребаците се на искочни прозор - Пребаците се на позадину - Пребаци оријентацију + Пребаци на главно + Пребаци на искачући прозор + Пребаци у позадину + Мењај оријентацију Обавештења о напретку хеширања видео записа Обавештење о видео хешу Обавештења о новој верзији ЊуПајпа @@ -615,56 +615,56 @@ Радио Истакнуто Овај садржај је доступан само корисницима који су платили, тако да га ЊуПајп не може стримовати или преузимати. - Овај видео је доступан само премиум члановима Јутјуб Музике, тако да га ЊуПајп не може стримовати или преузимати. + Овај видео је доступан само премијум члановима Јутјуб музике, тако да га ЊуПајп не може стримовати или преузимати. Овај садржај је приватан, тако да га ЊуПајп не може стримовати или преузимати. - Ово је СаундКлауд Го+ нумера, барем у вашој земљи, тако да га ЊуПајп не може стримовати или преузимати. + Ово је СаундКлауд Го+ нумера, барем у вашој земљи, тако да је ЊуПајп не може стримовати или преузимати. Овај садржај није доступан у вашој земљи. - Ниједна апликација на уређају не може да отвори ово + Нема апликације која отвара ово Поглавља - Скорашњи + Недавни Користите сличицу и за позадину закључаног екрана и за обавештења Прикажи сличицу - Страница плејлисте - Од %s - Направио %s - Минијатурна слика канала + Страница листе + од %s + Направи %s + Сличица аватара канала ЊуПајп још увек не подржава овај садржај. \n \nНадамо се да ће бити подржан у будућој верзији. - Да ли мислите да је убацивање фида преспоро\? Ако је то случај, покушајте да омогућите брзо учитавање (можете га променити у подешавањима или притиском на доње дугме). + Да ли је учитавање довода преспоро\? Ако је тако, укључите брзо учитавање (промените у поставкама или притиском на дугме испод). \n -\nЊуПајп нуди две стратегије улагања фида: -\n• Преузимање целог канала за претплату, који је спор, али потпун. -\n• Коришћење наменске крајње тачке услуге, која је брза, али обично није потпуна. +\nЊуПајп нуди два начина учитавања довода: +\n• Преузимање целог претплаћеног канала, што је споро али потпуно. +\n• Коришћење наменске крајње тачке услуге, што је брже али обично није потпуно. \n -\nРазлика између њих две је у томе што брзом обично недостају неке информације, попут трајања или врсте ставке (не могу се разликовати видео снимци уживо од уобичајених), а можда ће вратити и мање предмета. +\nРазлика је у томе што брзом обично недостају неке информације, попут трајања или врсте (не могу се разликовати живи видео од уобичајених), а можда ће вратити и мање ставки. \n -\nЈутјуб је пример услуге која нуди овај брзи метод са својим РСС фидом. +\nЈутјуб је пример услуге која нуди овај брзи метод својим РСС доводом. \n -\nДакле, избор се своди на оно што више волите: брзину или прецизне информације. - Онемогући брзи режим - Омогућите брзи режим - Доступно у неким услугама, обично је много брже, али може вратити ограничену количину предмета и често непотпуне информације (нпр. нема трајања, врсте предмета, нема статуса уживо). - Преузми из наменског фида када је доступан - Увек ажурирај - Време након последњег ажурирања пре него што се претплата сматра застарелом — %s - Праг ажурирања фида - Фид +\nДакле, избор се своди на оно шта желите: брзину или прецизне информације. + Искључи брзи режим + Укључи брзи режим + Доступно у неким услугама. Обично је много брже али може вратити мање ставки и често непотпуне информације (нпр. нема трајања, врсте предмета, нема статуса уживо). + Преузми из наменског довода када је доступан + Увек ажурна + Време након којег се претплата сматра застарелом — %s + Праг освежавања довода + Довод Прикажи само негруписане претплате - Нови - Да ли желите да избришете ову групу\? - Празно име групе + Нова + Желите да избришете ову групу\? + Празан назив групе - %d одабрани + %d одабран %d одабрана %d одабраних - Није изабрана ниједна претплата - Изаберите претплате - Обрада фида… - Учитавање фида… + Нема изабраних претплата + Изабери претплате + Обрађујем довод… + Учитавам довод… Није учитано: %d - Последње ажурирање фида: %s + Довод освежен: %s Групе канала %d дан @@ -673,7 +673,7 @@ %d сат - %d сати + %d сата %d сати @@ -683,9 +683,11 @@ %d секунда - %d секунди + %d секунде %d секунди Прикажи детаље о каналу - Слични записи + Повезани записи + Искључите тунеловање ако имате црн екран или прекиде у репродукцији + Искључи тунеловање медија \ No newline at end of file diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 5a24d83f51f..d21a3e7cefe 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1,6 +1,6 @@ - Nhấn \"Tìm kiếm\" để bắt đầu + Nhấn vào kính lúp để bắt đầu. %1$s lượt xem Đăng vào %1$s Không tìm thấy trình phát. Cài đặt VLC\? @@ -668,4 +668,6 @@ Nổi bật Hiện chi tiết kênh Giải + Tắt truyền phương tiện qua đường hầm nếu bạn gặp màn hình đen hoặc khựng khi phát video + Tắt truyền phương tiện qua đường hầm \ No newline at end of file diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c217a346cf2..0c34781f86c 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -668,4 +668,6 @@ 自動(裝置佈景主題) 夜間佈景主題 顯示頻道詳細資訊 + 如果您遇到黑畫面或影片播放停頓的現象,請停用媒體隧道 + 停用媒體隧道 \ No newline at end of file From 4643ccef6f98afb3591000d9e58867f38a85db99 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 23 May 2021 12:06:08 +0200 Subject: [PATCH 44/47] Fix incorrcetly formatted translations --- app/src/main/res/values-gl/strings.xml | 2 +- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-mr/strings.xml | 5 +---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index f12e9fd2f1a..3b3387d9698 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -585,7 +585,7 @@ Vídeos Este vídeo está restrinxido por idade. \n -\nSe desexa visualizalo, habilite \"Contido restrinxido por idade\" nos axustes. +\nSe desexa visualizalo, habilite \"%1$s\" nos axustes. Modo restrinxido de YouTube Actualizacións A instancia xa existe diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index f29d4197ff4..c77353fa588 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -541,7 +541,7 @@ 노래 이 비디오는 연령제한이 있습니다. \n -\n만약, 시청을 원한다면 설정에 \"연령 제한 컨텐츠\"를 활성화 하세요. +\n만약, 시청을 원한다면 설정에 \"%1$s\"를 활성화 하세요. 완료 아티스트 앨범 diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml index 9b0fa77b07d..3a2a71bc963 100644 --- a/app/src/main/res/values-mr/strings.xml +++ b/app/src/main/res/values-mr/strings.xml @@ -1,6 +1,5 @@ - पहिले गेले ऑटो प्ले ऑडिओ फाईल साठी डाउनलोड फोल्डर निवडा डाउनलोड केलेल्या ऑडियो फाईल येथे साठवल्या जातात @@ -28,8 +27,7 @@ फिरविणे ब्राऊझर निवडा शेअर करा - यासाठी रिझल्ट दाखवत आहे: - तुम्हाला असे म्हणायचे आहे का \? + यासाठी रिझल्ट दाखवत आहे: %s सेटिंग शोधा फाईल डाउनलोड @@ -42,7 +40,6 @@ इंस्टॉल प्लेअर सापडले नाही (तुम्ही VLC player वापरून फाईल चालवू शकता). प्लेअर सापडले नाही. VLC प्लेअर इंस्टॉल करू इच्छिता का\? - प्रकाशित केले गेले सुरू करण्यासाठी \"शोधा\" दाबा कोडी वापरून चालवा फक्त काही उपकरणे 2k/4k व्हिडिओ चालवू शकतात From 139ced885d3e593dc04a66d3e56faccc7787dc63 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 23 May 2021 22:56:44 +0200 Subject: [PATCH 45/47] Update extractor version --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index e4fad9b9f76..ec35bddef7a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -183,7 +183,7 @@ dependencies { /** NewPipe libraries **/ // You can use a local version by uncommenting a few lines in settings.gradle implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.TeamNewPipe:NewPipeExtractor:636e27333b5dbd9bc3c54ef3a4c21a87e97253ee' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:ff005122bf9b45f2da7c14e65652368931715f2d' /** Checkstyle **/ checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" From d31959990efabed94931b61236766a3620f3d848 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Thu, 27 May 2021 16:35:53 +0200 Subject: [PATCH 46/47] Update extractor version to 0.21.3 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ec35bddef7a..fa24f904eab 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -183,7 +183,7 @@ dependencies { /** NewPipe libraries **/ // You can use a local version by uncommenting a few lines in settings.gradle implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.TeamNewPipe:NewPipeExtractor:ff005122bf9b45f2da7c14e65652368931715f2d' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.3' /** Checkstyle **/ checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" From 2b8fda35113800233661182b49c99b6904fcb59c Mon Sep 17 00:00:00 2001 From: TobiGr Date: Fri, 14 May 2021 09:24:30 +0200 Subject: [PATCH 47/47] Release NewPipe 0.21.3 (969) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index fa24f904eab..1b77756e186 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { resValue "string", "app_name", "NewPipe" minSdkVersion 19 targetSdkVersion 29 - versionCode 968 - versionName "0.21.2" + versionCode 969 + versionName "0.21.3" multiDexEnabled true

Sitio webBlogPreguntas FrecuentesPrensa