-
-WARNING: PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS.
+
+
+WARNING: PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS.
## Screenshots
@@ -29,46 +30,48 @@ WARNING: PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR
[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_8.png)
[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_9.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)
## Description
-NewPipe does not use any Google framework libraries, or the YouTube API. It only parses the website in order to gain the information it needs. Therefore this app can be used on devices without Google Services installed. Also, you don't need a YouTube account to use NewPipe, and it's FLOSS.
+NewPipe does not use any Google framework libraries, nor the YouTube API. Websites are only parsed to fetch required info, so this app can be used on devices without Google services installed. Also, you don't need a YouTube account to use NewPipe, which is copylefted libre software.
### Features
* Search videos
-* Display general information about a video
+* Display general info about videos
* Watch YouTube videos
* Listen to YouTube videos
* Popup mode (floating player)
-* Select the streaming player to watch the video with
-* Download videos
+* Select streaming player to watch video with
+* Download videos
* Download audio only
* Open a video in Kodi
-* Show Next/Related videos
+* Show next/related videos
* Search YouTube in a specific language
* Watch/Block age restricted material
-* Display general information about channels
+* Display general info about channels
* Search channels
* Watch videos from a channel
* Orbot/Tor support (not yet directly)
-* 1080p/2k/4k support
+* 1080p/2K/4K support
* View history
* Subscribe to channels
* Search history
-* Search/Watch Playlists
-* Watch as queues Playlists
-* Queuing videos
+* Search/watch playlists
+* Watch as enqueued playlists
+* Enqueue videos
* Local playlists
* Subtitles
-* Multi-service support (eg. SoundCloud in NewPipe Beta)
+* Multi-service support (e.g. SoundCloud \[beta\])
+* Livestream support
### Coming Features
-* Livestream support
* Cast to UPnP and Cast
* Show comments
-* ... and many more
+* … and many more
## Contribution
Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome.
@@ -77,26 +80,31 @@ The more is done the better it gets!
If you'd like to get involved, check our [contribution notes](.github/CONTRIBUTING.md).
## Donate
-If you like NewPipe we'd be happy about a donation. You can either donate via Bitcoin, Bountysource or Liberapay. For further information about donating to NewPipe, please visit our [website](https://newpipe.schabi.org/donate).
+If you like NewPipe we'd be happy about a donation. You can either send bitcoin or donate via Bountysource or Liberapay. For further info on donating to NewPipe, please visit our [website](https://newpipe.schabi.org/donate).
-
-
+
+
16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
-
-
-
+
+
+
-
-
-
+
+
+
+## Privacy Policy
+
+The NewPipe project aims to provide a private, anonymous experience for using media web services.
+Therefore, the app does not collect any data without your consent. NewPipe's privacy policy explains in detail what data is sent and stored when you send a crash report, or comment in our blog. You can find the document [here](https://newpipe.schabi.org/legal/privacy/).
+
## License
[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html)
diff --git a/app/build.gradle b/app/build.gradle
index 4b717cafc..b507fd860 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,15 +1,15 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 27
- buildToolsVersion '27.0.3'
+ compileSdkVersion 28
+ buildToolsVersion '28.0.3'
defaultConfig {
applicationId "org.schabi.newpipe"
minSdkVersion 15
- targetSdkVersion 27
- versionCode 68
- versionName "0.14.1"
+ targetSdkVersion 28
+ versionCode 69
+ versionName "0.14.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -22,7 +22,6 @@ android {
}
debug {
multiDexEnabled true
-
debuggable true
applicationIdSuffix ".debug"
}
@@ -41,62 +40,61 @@ android {
}
ext {
- supportLibVersion = '27.1.1'
- exoPlayerLibVersion = '2.8.2'
+ supportLibVersion = '28.0.0'
+ exoPlayerLibVersion = '2.8.4' //2.9.0
roomDbLibVersion = '1.1.1'
- leakCanaryLibVersion = '1.5.4'
- okHttpLibVersion = '3.10.0'
+ leakCanaryLibVersion = '1.5.4' //1.6.1
+ okHttpLibVersion = '3.11.0'
icepickLibVersion = '3.2.0'
stethoLibVersion = '1.5.0'
}
dependencies {
- androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2') {
+ androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', {
exclude module: 'support-annotations'
- }
+ })
- implementation 'com.github.TeamNewPipe:NewPipeExtractor:66c3c3f45241d4b0c909'
+ implementation 'com.github.TeamNewPipe:NewPipeExtractor:32d316330c26'
testImplementation 'junit:junit:4.12'
- testImplementation 'org.mockito:mockito-core:2.8.9'
+ testImplementation 'org.mockito:mockito-core:2.23.0'
- implementation "com.android.support:appcompat-v7:$supportLibVersion"
- implementation "com.android.support:support-v4:$supportLibVersion"
- implementation "com.android.support:design:$supportLibVersion"
- implementation "com.android.support:recyclerview-v7:$supportLibVersion"
- implementation "com.android.support:preference-v14:$supportLibVersion"
+ implementation "com.android.support:appcompat-v7:${supportLibVersion}"
+ implementation "com.android.support:support-v4:${supportLibVersion}"
+ implementation "com.android.support:design:${supportLibVersion}"
+ implementation "com.android.support:recyclerview-v7:${supportLibVersion}"
+ implementation "com.android.support:preference-v14:${supportLibVersion}"
+ implementation "com.android.support:cardview-v7:${supportLibVersion}"
+ implementation 'com.android.support.constraint:constraint-layout:1.1.3'
- implementation 'ch.acra:acra:4.9.2'
+ implementation 'ch.acra:acra:4.9.2' //4.11
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.github.nirhart:ParallaxScroll:dd53d1f9d1'
implementation 'com.nononsenseapps:filepicker:4.2.1'
- implementation "com.google.android.exoplayer:exoplayer:$exoPlayerLibVersion"
- implementation "com.google.android.exoplayer:extension-mediasession:$exoPlayerLibVersion"
+ implementation "com.google.android.exoplayer:exoplayer:${exoPlayerLibVersion}"
+ implementation "com.google.android.exoplayer:extension-mediasession:${exoPlayerLibVersion}"
- debugImplementation "com.facebook.stetho:stetho:$stethoLibVersion"
- debugImplementation "com.facebook.stetho:stetho-urlconnection:$stethoLibVersion"
+ debugImplementation "com.facebook.stetho:stetho:${stethoLibVersion}"
+ debugImplementation "com.facebook.stetho:stetho-urlconnection:${stethoLibVersion}"
debugImplementation 'com.android.support:multidex:1.0.3'
- implementation 'io.reactivex.rxjava2:rxjava:2.1.14'
- implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
+ implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
+ implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
- implementation "android.arch.persistence.room:runtime:$roomDbLibVersion"
- implementation "android.arch.persistence.room:rxjava2:$roomDbLibVersion"
- annotationProcessor "android.arch.persistence.room:compiler:$roomDbLibVersion"
+ implementation "android.arch.persistence.room:runtime:${roomDbLibVersion}"
+ implementation "android.arch.persistence.room:rxjava2:${roomDbLibVersion}"
+ annotationProcessor "android.arch.persistence.room:compiler:${roomDbLibVersion}"
- implementation "frankiesardo:icepick:$icepickLibVersion"
- annotationProcessor "frankiesardo:icepick-processor:$icepickLibVersion"
+ implementation "frankiesardo:icepick:${icepickLibVersion}"
+ annotationProcessor "frankiesardo:icepick-processor:${icepickLibVersion}"
- debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryLibVersion"
- releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryLibVersion"
+ debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakCanaryLibVersion}"
+ releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:${leakCanaryLibVersion}"
-
- implementation "com.squareup.okhttp3:okhttp:$okHttpLibVersion"
- debugImplementation "com.facebook.stetho:stetho-okhttp3:$stethoLibVersion"
- implementation 'com.android.support.constraint:constraint-layout:1.1.2'
- implementation 'com.android.support:cardview-v7:27.1.1'
+ implementation "com.squareup.okhttp3:okhttp:${okHttpLibVersion}"
+ debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoLibVersion}"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e4d448184..1bc205f33 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
+
-
\ No newline at end of file
+
diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java
index f436a26b8..314c95c8d 100644
--- a/app/src/main/java/org/schabi/newpipe/App.java
+++ b/app/src/main/java/org/schabi/newpipe/App.java
@@ -5,6 +5,7 @@ import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
+import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.util.Log;
@@ -21,6 +22,7 @@ import org.acra.config.ConfigurationBuilder;
import org.acra.sender.ReportSenderFactory;
import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.NewPipe;
+import org.schabi.newpipe.extractor.utils.Localization;
import org.schabi.newpipe.report.AcraReportSenderFactory;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction;
@@ -65,7 +67,8 @@ public class App extends Application {
private RefWatcher refWatcher;
@SuppressWarnings("unchecked")
- private static final Class extends ReportSenderFactory>[] reportSenderFactoryClasses = new Class[]{AcraReportSenderFactory.class};
+ private static final Class extends ReportSenderFactory>[]
+ reportSenderFactoryClasses = new Class[]{AcraReportSenderFactory.class};
@Override
protected void attachBaseContext(Context base) {
@@ -88,7 +91,8 @@ public class App extends Application {
// Initialize settings first because others inits can use its values
SettingsActivity.initSettings(this);
- NewPipe.init(getDownloader());
+ NewPipe.init(getDownloader(),
+ org.schabi.newpipe.util.Localization.getPreferredExtractorLocal(this));
StateSaver.init(this);
initNotificationChannel();
@@ -106,7 +110,7 @@ public class App extends Application {
// https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling
RxJavaPlugins.setErrorHandler(new Consumer() {
@Override
- public void accept(@NonNull Throwable throwable) throws Exception {
+ public void accept(@NonNull Throwable throwable) {
Log.e(TAG, "RxJavaPlugins.ErrorHandler called with -> : " +
"throwable = [" + throwable.getClass().getName() + "]");
@@ -180,7 +184,11 @@ public class App extends Application {
ACRA.init(this, acraConfig);
} catch (ACRAConfigurationException ace) {
ace.printStackTrace();
- ErrorActivity.reportError(this, ace, null, null, ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none",
+ ErrorActivity.reportError(this,
+ ace,
+ null,
+ null,
+ ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none",
"Could not initialize ACRA crash report", R.string.app_ui_crash));
}
}
@@ -200,7 +208,8 @@ public class App extends Application {
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
- NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+ NotificationManager mNotificationManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.createNotificationChannel(mChannel);
}
diff --git a/app/src/main/java/org/schabi/newpipe/BaseFragment.java b/app/src/main/java/org/schabi/newpipe/BaseFragment.java
index b125ab02f..4e4cdcc0d 100644
--- a/app/src/main/java/org/schabi/newpipe/BaseFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/BaseFragment.java
@@ -12,14 +12,12 @@ import android.view.View;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.squareup.leakcanary.RefWatcher;
-import org.schabi.newpipe.report.UserAction;
-
import icepick.Icepick;
import icepick.State;
public abstract class BaseFragment extends Fragment {
protected final String TAG = getClass().getSimpleName() + "@" + Integer.toHexString(hashCode());
- protected boolean DEBUG = MainActivity.DEBUG;
+ protected final boolean DEBUG = MainActivity.DEBUG;
protected AppCompatActivity activity;
public static final ImageLoader imageLoader = ImageLoader.getInstance();
diff --git a/app/src/main/java/org/schabi/newpipe/Downloader.java b/app/src/main/java/org/schabi/newpipe/Downloader.java
index 17dc5859d..62c7d1671 100644
--- a/app/src/main/java/org/schabi/newpipe/Downloader.java
+++ b/app/src/main/java/org/schabi/newpipe/Downloader.java
@@ -4,6 +4,7 @@ import android.support.annotation.Nullable;
import android.text.TextUtils;
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
+import org.schabi.newpipe.extractor.utils.Localization;
import java.io.IOException;
import java.io.InputStream;
@@ -43,7 +44,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
private static Downloader instance;
private String mCookies;
- private OkHttpClient client;
+ private final OkHttpClient client;
private Downloader(OkHttpClient.Builder builder) {
this.client = builder
@@ -103,13 +104,13 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
* but set the HTTP header field "Accept-Language" to the supplied string.
*
* @param siteUrl the URL of the text file to return the contents of
- * @param language the language (usually a 2-character code) to set as the preferred language
+ * @param localization the language and country (usually a 2-character code) to set
* @return the contents of the specified text file
*/
@Override
- public String download(String siteUrl, String language) throws IOException, ReCaptchaException {
+ public String download(String siteUrl, Localization localization) throws IOException, ReCaptchaException {
Map requestProperties = new HashMap<>();
- requestProperties.put("Accept-Language", language);
+ requestProperties.put("Accept-Language", localization.getLanguage());
return download(siteUrl, requestProperties);
}
diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java
index 7c77bff3d..a9f2e9622 100644
--- a/app/src/main/java/org/schabi/newpipe/MainActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java
@@ -23,7 +23,6 @@ package org.schabi.newpipe;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
-import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -66,8 +65,6 @@ import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver;
import org.schabi.newpipe.util.ThemeHelper;
-import static org.schabi.newpipe.extractor.InfoItem.InfoType.PLAYLIST;
-
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
diff --git a/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java b/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java
index a4e6730da..74c818bf9 100644
--- a/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java
@@ -85,7 +85,7 @@ public class ReCaptchaActivity extends AppCompatActivity {
}
private class ReCaptchaWebViewClient extends WebViewClient {
- private Activity context;
+ private final Activity context;
private String mCookies;
ReCaptchaWebViewClient(Activity ctx) {
diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java
index 4f1fdeab2..e22e2f474 100644
--- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java
@@ -1,7 +1,6 @@
package org.schabi.newpipe;
import android.annotation.SuppressLint;
-import android.app.FragmentManager;
import android.app.IntentService;
import android.content.Context;
import android.content.DialogInterface;
@@ -13,7 +12,6 @@ import android.preference.PreferenceManager;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
@@ -38,7 +36,6 @@ import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.playlist.PlaylistInfo;
import org.schabi.newpipe.extractor.stream.StreamInfo;
import org.schabi.newpipe.extractor.stream.VideoStream;
-import org.schabi.newpipe.fragments.detail.VideoDetailFragment;
import org.schabi.newpipe.player.helper.PlayerHelper;
import org.schabi.newpipe.player.playqueue.ChannelPlayQueue;
import org.schabi.newpipe.player.playqueue.PlayQueue;
@@ -51,14 +48,12 @@ import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.ThemeHelper;
-import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
-import java.util.Observer;
import icepick.Icepick;
import icepick.State;
@@ -86,7 +81,7 @@ public class RouterActivity extends AppCompatActivity {
protected int selectedPreviously = -1;
protected String currentUrl;
- protected CompositeDisposable disposables = new CompositeDisposable();
+ protected final CompositeDisposable disposables = new CompositeDisposable();
private boolean selectionIsDownload = false;
@@ -184,12 +179,16 @@ public class RouterActivity extends AppCompatActivity {
if (selectedChoiceKey.equals(alwaysAskKey)) {
final List choices = getChoicesForService(currentService, currentLinkType);
- if (choices.size() == 1) {
- handleChoice(choices.get(0).key);
- } else if (choices.size() == 0) {
- handleChoice(showInfoKey);
- } else {
- showDialog(choices);
+ switch (choices.size()) {
+ case 1:
+ handleChoice(choices.get(0).key);
+ break;
+ case 0:
+ handleChoice(showInfoKey);
+ break;
+ default:
+ showDialog(choices);
+ break;
}
} else if (selectedChoiceKey.equals(showInfoKey)) {
handleChoice(showInfoKey);
diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java
index 701e18cbf..09d33bd8a 100644
--- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java
@@ -4,7 +4,6 @@ import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
-import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.webkit.WebView;
@@ -17,7 +16,7 @@ import java.lang.ref.WeakReference;
public class LicenseFragmentHelper extends AsyncTaskPop-upspelerAltijd vragen
- Info ophalen…
+ Bezig met ophalen van informatie…Bezig met laden van gevraagde inhoud
-Database importeren
- Database exporteren
- Dit zal je huidige geschiedenis en abonnementen overschrijven
- Exporteer geschiedenis, abonnementen en speellijsten
- Export voltooid
- Import voltooid
+Databank importeren
+ Databank exporteren
+ Dit overschrijft je huidige geschiedenis en abonnementen
+ Exporteer geschiedenis, abonnementen en afspeellijsten
+ Exporteren voltooid
+ Importeren voltooidGeen geldig ZIP-bestand
- Opgelet: kon niet alle bestanden importeren.
- Dit zal je huidige configuratie overschrijven.
+ Let op: niet alle bestanden konden worden geïmporteerd.
+ Dit overschrijft je huidige configuratie.Streambestand downloaden.
- Info tonen
+ Informatie tonenBladwijzers
@@ -345,22 +345,22 @@ te openen in pop-upmodus
Versleep om de volgorde te wijzigen
- Aanmaken
- Één verwijderen
+ Creëren
+ Eén verwijderenAlles verwijderenSluiten
- Hernoemen
+ Naam wijzigen
- Wil je dit item uit je kijkgeschiedenis verwijderen?
- Wil je alle items uit je geschiedenis verwijderen?
+ Wil je dit item verwijderen uit je kijkgeschiedenis?
+ Wil je alle items verwijderen uit je geschiedenis?Laatst afgespeeldMeest afgespeeldAltijd vragen
- Nieuwe afspeellijst aanmaken
+ Nieuwe afspeellijst creërenAfspeellijst verwijderen
- Afspeellijst hernoemen
+ Afspeellijstnaam wijzigenNaamToevoegen aan afspeellijstInstellen als miniatuur voor afspeellijst
@@ -376,7 +376,7 @@ te openen in pop-upmodus
Geen bijschriften
- Passen
+ InpassenOpvullenInzoomen
@@ -404,8 +404,8 @@ te openen in pop-upmodus
Ongeldige mapOngeldig bestand/Ongeldige inhoudsbron
- Het bestand bestaat niet of u beschikt niet over voldoende machtiging om het te lezen/er naar te schrijven
- De bestandsnaam mag niet leeg zijn
+ Het bestand bestaat niet of je bent onvoldoende gemachtigd om het te lezen/er naar te schrijven
+ De bestandsnaam mag niet blanco zijnEr is een fout opgetreden: %1$sImporteren/Exporteren
@@ -435,7 +435,7 @@ te openen in pop-upmodus
\n4. Kopieer de koppeling van de pagina waar je op terechtkomt (dat is je profiel-URL).
jouwID, soundcloud.com/jouwid
- Let op: deze actie kan veel MB’s van je netwerk gebruiken.
+ Let op: deze actie kan veel MB’s van je mobiele netwerk gebruiken.
\n
\nWil je doorgaan?Miniatuurvoorbeelden laden
@@ -456,7 +456,7 @@ te openen in pop-upmodusGeen streams beschikbaar voor downloadenBijschriften
- Bijschriftgrootte en achtergrondstijlen wijzigen. Vereist een herstart van de app
+ Bijschriftgrootte en -achtergrondstijlen wijzigen. Vereist een herstart van de appEr is geen app geïnstalleerd die dit bestand kan afspelen
@@ -464,22 +464,22 @@ te openen in pop-upmodus
Verwijdert de geschiedenis van afgespeelde streamsVerwijdert de gehele kijkgeschiedenis.
- Kijkgeschiedenis verwijderd.
+ Kijkgeschiedenis gewist.Zoekgeschiedenis wissenVerwijdert de gebruikte zoektermenVerwijdert de gehele geschiedenis.
- Zoekgeschiedenis verwijderd.
+ Zoekgeschiedenis gewist.1 item verwijderd.NewPipe is vrije software: je kan het gebruiken, bestuderen, delen en verbeteren zoveel je maar wil. Je kan het opnieuw uitgeven en/of aanpassen volgens de voorwaarden van de GNU General Public License, gepubliceerd door de Free Software Foundation, versie 3 van de licentie, of (indien gewenst) om het even welke latere versie.Wil je ook de instellingen importeren?NewPipe\'s privacybeleid
- Het NewPipe-project neemt privacy serieus. Daarom verzamelt de app geen gegevens zonder jouw toestemming.
-\nNewPipe\'s privacybeleid legt gedetailleerd uit welke gegevens verstuurd en opgeslagen worden als je een crashrapport verstuurd.
+ Het NewPipe-project neemt privacy serieus. Daarom verzamelt de app geen gegevens zonder jouw toestemming.
+\nNewPipe\'s privacybeleid legt gedetailleerd uit welke gegevens verstuurd en opgeslagen worden als je een crashrapport verstuurt.Privacybeleid lezen
- Om de Europese Algemene Verordening Gegevensbescherming (ook wel: AVG of GDPR) na te leven, wijzen we je op het nieuwe privacybeleid van NewPipe. Lees dit zorgvuldig.
-\nJe moet het beleid accepteren om ons het bugrapport te kunnen sturen.
+ Om de Europese Algemene Verordening Gegevensbescherming (ook wel: AVG of GDPR) na te leven, wijzen we je op het nieuwe privacybeleid van NewPipe. Lees dit zorgvuldig.
+\nJe moet het beleid accepteren om ons het foutrapport te kunnen sturen.AccepterenWeigerenOngelimiteerd
diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml
index 560284f6a..c307caead 100644
--- a/app/src/main/res/values-pa/strings.xml
+++ b/app/src/main/res/values-pa/strings.xml
@@ -13,9 +13,19 @@
ਡਾਊਨਲੋਡ ਸਟਰੀਮ ਫਾਈਲ.ਖੋਜੋਸੇਟਿੰਗਾਂ
- ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ: %1$s ?
+ ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ: %1$s\?ਭੇਜੋBrowser ਚੁਣੋਉਲਟਾਨਾ
- ਹੋਰ ਪਲੇਅਰ ਵਰਤਣਾ
+ ਹੋਰ ਪਲੇਅਰ ਵਰਤਤੋ
+ ਕੁਝ ਵੀਡੀਓ ਰੈਸੋਲੂਸ਼ਨ ਚੁਣਨ ਨਾਲ ਆਡੀਓ ਮੌਜੂਦ ਨਹੀਂ ਹੋਵੇਗੀ
+ ਬਾਹਰੀ ਆਡੀਓ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰੋ
+ NewPipe ਪੋਪਉਪ ਮੋਡ
+ ਸਅਬਸਕਰਾਇਬ
+ ਮੈਂਬਰ ਬਣਏ
+ ਚੈਨਲ ਸਦੱਸਤਾ ਰੱਦ ਕੀਤੀ ਗਈ
+ ਸਦੱਸਤਾ ਨੂੰ ਬਦਲਣ ਵਿਚ ਅਸਮਰੱਥ ਹੈ
+ ਜਾਣਕਾਰੀ
+
+ ਮੁੱਖ
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index fa885e51b..d25acce8d 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -43,7 +43,7 @@
Następny filmPokaż \'następne\' i \'podobne\' filmyURL nieobsługiwany
- Domyślny język zawartości
+ Domyślny język zawartościWideo i audioWyglądInne
@@ -144,7 +144,7 @@
KanałTakPóźniej
- Wyłączone
+ WyłączonyFiltrOdświeżWyczyść
@@ -481,4 +481,18 @@
Brak limituLimit przy użyciu danych mobilnych
-
+ Kanały
+ Playlisty
+ Utwory
+ Użytkownicy
+ Przewiń w przód podczas ciszy
+ Krok
+ Zresetuj
+
+ Zminimalizuj podczas przełączenia aplikacji
+ "Akcja podczas przełączenia do innej aplikacji z głównego odtwarzacza — %s"
+ Zminimalizuj
+ Zminimalizuj do odtwarzania w tle
+ Zminimalizuj do odtwarzania w okienku
+
+
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 4e08f4ee5..82a54c90c 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -57,7 +57,7 @@
Reportar um erroTentar novamenteRotação
- Idioma de conteúdo preferido
+ Idioma de conteúdo preferidoConfiguraçõesAparênciaOutros
@@ -254,7 +254,7 @@ abrir em modo popup
Em AltaTop 50Novos e tendências
-"Mostrar dica \"mantenha pressionado\" para enfileirar"
+"Mostrar dica \"mantenha pressionado para enfileirar\""Mostrar dica quando o botão de plano de fundo ou de popup for pressionado na página de detalhes do vídeoAdicionado a fila do reprodutor em plano de fundoAdicionado a fila no reprodutor popup
@@ -291,7 +291,7 @@ abrir em modo popup
Alterar a orientaçãoAlterar para Plano de FundoAlterar para Popup
- Aletar para principal
+ Alterar para o PrincipalReprodutores externos não suportam estes tipos de linksURL inválida
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index d8ca1a265..b27715fa3 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -30,7 +30,7 @@
Vídeo seguinteMostrar vídeos \'seguintes\' e \'semelhantes\'URL não suportado
- Idioma padrão do conteúdo
+ Idioma padrão do conteúdoVídeo e áudioMiniatura de vídeos
@@ -184,7 +184,7 @@
SobreColaboradoresLicenças
- Aplicação leve, simples e grátis de YouTube para Android.
+ Aplicação leve livre de YouTube para Android.Ver no GitHubLicença do NewPipeSe tem ideias de tradução, alterações de design, limpeza de código ou alterações de código pesado—ajuda é sempre bem-vinda. Quanto mais se faz melhor fica!
@@ -293,7 +293,7 @@
Importar base de dadosExportar base de dadosIrá sobrepor o seu histórico atual e subscrições
- Exportar histórico, subscrições e listas de reprodução.
+ Exportar histórico, subscrições e listas de reproduçãoEm lista de espera no reprodutor em segundo planoEm lista de espera no reprodutor popupMudar para segundo plano
@@ -318,7 +318,7 @@
Utilizar pesquisa rápidaA pesquisa rápida permite que a pesquisa seja mais rápida mas diminui a qualidade da precisãoCarregar miniaturas
- Desative para parar o carregamento das miniaturas e poupar dados e memória. Se alterar esta opção limpa a cache de memória e do disco.
+ Desative para parar o carregamento das miniaturas e poupar dados e memória. Se alterar esta opção limpa a cache de memória e do discoCache de imagens limpaPaís padrão para o conteúdoDepuração
@@ -333,7 +333,7 @@
DescartarSite
- Para obter mais informações e saber as novidades do NewPipe, aceda ao nosso site.
+ Visite ao website NewPipe para obter mais informações e saber as novidades.Página \"kiosk\"Página da fonteExportação terminada
@@ -364,7 +364,7 @@
Perguntar sempreA obter informação…
- O conteúdo requisitado está a carregar
+ O conteúdo requisitado está carregandoCriar Nova Lista de ReproduçãoApagar Lista de Reprodução
@@ -379,7 +379,7 @@
Thumbnail da Lista de Reprodução modificadaSem Legenda
- ZOOM
+ ZoomGerado automaticamente
@@ -398,24 +398,47 @@
Importação de subscrições falhouExportação de subscrições falhou
- Para importar as tuas subscrições do Google vais precisar do ficheiro de exportação, que pode ser descarregado com auxílio destas instruções:
-\n
-\n1. Vai a esta hiperligação: %1$s
-\n2. Inicia a tua sessão quando requisitado
-\n3. O descarregamento deve começar (esse é o ficheiro de exportação)
- Para importar as contas que segue no SoundCloud, terá que saber o link ou id do seu perfil. Se souber, basta escrever um deles no campo abaixo e estará tudo pronto.
+ Para importar as tuas subscrições do Youtube vais precisar do ficheiro de exportação, que pode ser descarregado com auxílio destas instruções:
\n
-\nSe não souber, pode seguir estas etapas:
+\n1. Vai a esta hiperligação: %1$s
+\n2. Inicia a tua sessão quando requisitado
+\n3. O descarregamento deve começar (esse é o ficheiro de exportação)
+ Para importar as contas SoundCloud, vais precisar do link ou id do seu perfil que pode ser descarregado com auxílio destas instruções:
\n
\n1. Ative \"modo desktop\" num navegador da internet (o site não está disponível para dispositivos móveis)
\n2. Vá a este url: %1$s
\n3. Inicie sessão na sua conta quando solicitado
-\n4. Copie o link para o qual foi redirecionado (este é o link do seu perfil)
- seuid, soundcloud.com/seuid
+\n4. Copie o link para o qual foi redirecionado.
+ seuID, soundcloud.com/seuIDControlo de velocidade de reproduçãoTempoNightcorePredefinidoLimpar histórico de exibição
+ Auto anexar um fluxo relacionado quando jogar o último fluxo em uma fila não repetitiva
+ Mostrar dica \"mantenha pressionado para enfileirar\"
+ Mostrar dica quando o botão de plano de fundo ou de popup for pressionado na página de detalhes do vídeo
+ Canais
+ Listas de reprodução
+ Faixas
+ Utilizadores
+ Deleta o histórico de videos já reproduzidos
+ Deleta o histórico de videos já reproduzidos.
+ Histórico de já assistidos deletado.
+ Deleta histórico de pesquisa
+ Deleta histórico de palavras chave pesquisadas
+ Deleta histórico de pesquisa completo.
+ Histórico de pesquisa deletado.
+ 1 elemento deletado.
+
+ Nehum aplicativo instalada para reproduzir este arquivo
+
+ NewPipe é desenvolvido por voluntários que usam seu tempo para trazer a melhor experiência para você. Retribua para ajudar os desenvolvedores a tornarem o NewPipe ainda melhor enquanto desfrutam uma xícara de café.
+ Retribuir
+ Política de privacidade do NewPipe
+ O projeto NewPipe leva a sua privacidade muito a sério. Sendo assim, o aplicativo não coleta nenhum dado sem seu consentimento.
+\nA polícia de privacidade do NewPipe explica em detalhes qual dado é enviado e salvo quando você envia um relatório de erros.
+ Ler a política de privacidade
+ Próximo stream automaticamente em lista de espera
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index a45b48199..cf7b5510a 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -41,7 +41,7 @@
Următorul videoclipArată videoclipurile care urmeazăURL nesuportat
- Limba dorită a conținutului
+ Limba dorită a conținutuluiVideo & AudioAspectAltele
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 12de382ea..842042e16 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -30,7 +30,7 @@
Следующее видеоURL не поддерживается\"Следующее\" и \"Похожие\" видео
- Язык контента по умолчанию
+ Язык контента по умолчаниюВидео и аудиоВнешний видДругое
@@ -470,7 +470,7 @@
Удалить историю запросов поискаУдалить историю воспроизведённых потоковВся история поиска будет удалена.
- История поиска удалена
+ История поиска удалена.1 элемент удалён.NewPipe — свободное программное обеспечение: вы можете использовать, изучать и улучшать его по своему усмотрению. В частности, вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, либо версии 3, либо (по вашему выбору) любой более поздней версии.
@@ -490,6 +490,7 @@
Предел разрешения в мобильной сетиКаналыПлейлисты
+ ВидеоДорожкиПользователиПроматывать тишину
@@ -502,4 +503,9 @@
Фоновый плеерПлеер в окне
+ Вид списка
+ Список
+ Сетка
+ Автоматически
+
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 0fefdd04e..a7359b0d7 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -29,7 +29,7 @@
Prehrať cez KodiAplikácia Kore nie je nainštalovaná. Chcete ju nainštalovať?Zobraziť možnosť \"Prehrať cez Kodi\"
- Zobrazovať možnosť prehrať video cez mediálne centrum Kodi
+ Zobrazovať možnosť prehrať video cez multimediálne centrum KodiZvukPredvolený zvukový formátTéma
@@ -40,7 +40,7 @@
Ďalšie videoUkázať \'ďalšie\' a \'podobné\' videáURL nie je podporovaná
- Preferovaný jazyk obsahu
+ Preferovaný jazyk obsahuVideo & ZvukVzhľadIné
@@ -309,10 +309,10 @@
PremenovaťPrispieť
- Aplikácia NewPipe je vyvíjaná dobrovoľníkmi vo voľnom čase. Ak sa vám aplikácia páči a chceli by ste odmeniť vývojárov, teraz je ten najlepši čas. Podporte vývojárov aby mohli NewPipe zlepšovať a zároveň si pochutnávať na šálke kávy!
+ Aplikácia NewPipe je vyvíjaná dobrovoľníkmi vo voľnom čase. 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.DarujWebstránka
- Ak chcete získať ďalšie informácie a novinky o NewPipe navštívte naše webové stránky.
+ "Pre viac informácií a noviniek navštívte webstránku NewPipe."Chcete odstrániť túto položku z histórie vyhľadávania?Chcete odstrániť túto položku z histórie pozretých videí?Ste si istý, že chcete vymazať všetky položky z histórie?
@@ -377,7 +377,7 @@
Miniatúra zoznamu skladieb bola zmenenáNemožno odstrániť zoznam skladieb
- Bez popisu
+ Bez titulkovPrispôsobiťVyplniť
@@ -417,14 +417,14 @@
Automaticky vygenerované
- Nastavenie titulkov
+ TitulkyUpravte mierku textu titulkov a štýly pozadia. Vyžaduje reštart prehrávačaPovoliť službu LeakCanaryMonitorovanie pretečenia pamäte môže spôsobiť, že aplikácia nebude reagovaťNahlásiť mimo-cyklické chyby
- Vynútenie hlásenia nedodržateľných výnimiek Rx, ktoré sa vyskytnú mimo časového cyklu fragmentu alebo aktivity po zlikvidovaní
+ Vynútiť hlásenie výnimiek nedoručiteľných Rx mimo časového cyklu fragmentov alebo aktivity po zneškodneníImport/Export
\n
@@ -449,16 +449,13 @@
\n2. Po výzve sa prihláste do svojho účtu
\n3. Sťahovanie by malo začať (to je exportovaný zoznam)
\n
- "Importovať SoundCloud profil zadaním URL adresy alebo vášho ID:
-\n
-\nAk nepoznáte ani URL ani ID vašeho profilu, môžete postupovať nasledovne:
-\n
-\n1. V niektorom prehliadači povoľte režim \"desktop\" (web nie je dostupný pre mobilné zariadenia)
-\n2. Prejdite na túto adresu URL: %1$s
+ "Importovať SoundCloud profil zadaním URL adresy alebo vášho ID:
+\n
+\n1. Prepnite režim na \"desktop\" (web nie je dostupný pre mobilné zariadenia)
+\n2. Prejdite na túto URL adresu: %1$s
\n3. Po výzve sa prihláste do svojho účtu
-\n4. Skopírujte adresu URL, na ktorú ste boli presmerovaní (to je adresa vášho profilu).
-\n"
- ID,soundcloud.com/ID
+\n4. Skopírujte adresu URL, na ktorú ste boli presmerovaní. "
+ vašeID, soundcloud.com/vašeidOperácia môže byť náročná na počet prenesených dát.
\n
@@ -467,7 +464,7 @@
Ovládanie rýchlosti prehrávaniaRýchlosťVýška
- "Zvoľnenie (môže spôsobovať skreslenie)"
+ "Spomalenie (môže spôsobovať skreslenie)"Nightcore režimPredvolenéVymazať históriu pozretí
@@ -493,4 +490,18 @@
Bez limituLimitovať rozlíšenie pri použití mobilných dát
-
+ Kanály
+ Zoznamy skladieb
+ Skladby
+ Používatelia
+ Pretáčať tiché pasáže
+ Krok
+ Vynulovať
+
+ Minimalizovať pri prepnutí aplikácie
+ Akcia pri prepnutí na inú aplikáciu z hlavného prehrávača videa — %s
+ Nič
+ Prehrávať na pozadí
+ Prehrávať v okne
+
+
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index d2d6d4343..ec2a0bea5 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -29,7 +29,7 @@
Naslednji videoPokaži naslednji video in podobne posnetkeZapis naslova URL ni podprt.
- Privzeti jezik vsebine
+ Privzeti jezik vsebineVideo in ZvokSličica predogleda videaSličica predogleda videa
@@ -91,7 +91,7 @@
Opomba (v angleščini):Dovoljenje za dostop do shrambe je zavrnjenoSamodejno predvajanje
- Samodejno predvaja vsebino, če je NewPipe klican iz drugega programa
+ Predvaja vsebino, če je program zagnan iz drugega programaPošlji poročilo o napakiPoročilo uporabnika
@@ -320,4 +320,5 @@ odpiranje v pojavnem načinuOpustiPreimenuj
+ Naloži sličice
diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml
index 86d15b020..ec31c4a97 100644
--- a/app/src/main/res/values-sq/strings.xml
+++ b/app/src/main/res/values-sq/strings.xml
@@ -30,7 +30,7 @@
ShkarkoVideoja tjetërShërbimi
- Gjuha e dëshiruar e përmbajtjeve
+ Gjuha e dëshiruar e përmbajtjeveAplikacioni për videoSjelljaVideo & Audio
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 60f99e254..fa3011936 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -28,7 +28,7 @@
Следећи видеоУРЛ није подржанПрикажи следећи и слични видео
- Подразумевани језик садржаја
+ Подразумевани језик садржајаВидео и аудиоОсталоСличица видео прегледа
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index ed426cc13..ddf3888f5 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -10,10 +10,10 @@
Ladda nerSökInställningar
- Menade du: %1$s ?
+ Menade du: %1$s\?Dela medVälj webbläsare
- rotering
+ rotationAnvänd extern videospelareNågra upplösningar kommer INTE ha ljud när det här alternativet är aktiveratAnvänd extern ljudspelare
@@ -57,7 +57,7 @@
Nästa videoVisa \'nästkommande\' och \'liknande\' videorWebbadressen stöds inte
- Standard innehållsspråk
+ Standard innehållsspråkVideo & LjudPopup-rutaUtseende
@@ -109,7 +109,7 @@
%1$s visningarPrenumereraPrenumererad
- Prenumerationen togs bort
+ Prenumeration avslutadKunde inte ändra prenumerationKunde inte uppdatera prenumeration
@@ -286,10 +286,10 @@
Bokmärken
- Lägga till
+ Lägg tillAnvända snabb inexakt sökning
- Ladda miniatyrer
+ Ladda miniatyrbilderInaktivera för att stoppa alla miniatyrbilder från att ladda och spara på data och minnesanvändning. Ändring av detta kommer att rensa cache-minnetBild cacheminnet var rensadTjänst
@@ -396,7 +396,7 @@
Vill du ta bort den här spellistan?Spellistan skapadesTillagad i spellistan
- "Spellistans miniatyrbild förändrades "
+ Spellistans miniatyrbild förändradesKunde inte ta bort spellistanIngen textning
@@ -449,7 +449,7 @@
Uppspelningshastighet KontrollerTempo
- Pitch
+ TonhöjdAvlänka (kan orsaka förvrängning)Snabbspola vid frånvaro av ljudSteg
diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml
index dc14446e7..b566977d5 100644
--- a/app/src/main/res/values-te/strings.xml
+++ b/app/src/main/res/values-te/strings.xml
@@ -53,7 +53,7 @@
తదుపరి వీడియో మరియు ఇలాంటి వీడియోచిట్కాను అనుబంధించడానికి హోల్డ్ను చూపుUrl మద్దతు లేదు
- డిఫాల్ట్ భాష
+ డిఫాల్ట్ భాషప్లేయర్ప్రవర్తనవీడియో & ఆడియో
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index e7715d545..bffad3ed8 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -11,7 +11,7 @@
İndirAraAyarlar
- Bunu mu demek istediniz: %1$s ?
+ Bunu mu demek istediniz: %1$s\?Şununla paylaşTarayıcı seçdöndürme
@@ -42,7 +42,7 @@
Sonraki video\'Sonraki\' ve \'benzer\' videoları gösterURL desteklenmiyor
- Öntanımlı içerik dili
+ Öntanımlı içerik diliSesVideo ve SesGörünüm
@@ -65,7 +65,7 @@
Web sitesi tümüyle ayrıştırılamadıİçerik kullanılabilir değilGEMA tarafından engellendi
- Bu, henüz desteklenmeyen, bir CANLI AKIŞ.
+ Bu, henüz desteklenmeyen bir CANLI AKIŞ.Herhangi bir akış alınamadıResim yüklenemediUygulama/arayüz çöktü
@@ -254,7 +254,7 @@
Geçmiş temizlendiÖge silindiBu içeriği arama geçmişinden silmek istiyor musunuz?
-\"Kuyruğa almak İçin bas\" ipucunu göster
+\"Kuyruğa almak için basılı tut\" ipucunu gösterVideo ayrıntıları sayfasında arka plan veya açılır oynatıcı düğmesine basıldığında ipucu gösterArka plan oynatıcıda kuyruğa eklendiAçılır oynatıcıda kuyruğa eklendi
@@ -272,7 +272,7 @@
Abonelik SayfasıBesleme SayfasıKanal Sayfası
- Bir kanal seç
+ Kanal seçHenüz abone olunan kanal yokKöşk seç
@@ -285,7 +285,7 @@
KaldırAyrıntılarSes Ayarları
- Kuyruğa Almak İçin Bas
+ Kuyruğa Almak İçin Basılı TutArka Planda Kuyruğa AlAçılır Oynatıcıda Kuyruğa AlBurada Oynatmaya Başla
@@ -334,9 +334,9 @@
Akış dosyasını indir.Bilgileri göster
- Yer imleri
+ Yer İmleri
- Şuna Ekle
+ Listeye EkleYeniden sıralamak için sürükle
@@ -380,7 +380,7 @@
Normal yazı tipiDaha büyük yazı tipiHata Ayıklama
- Yakında burada bir şeyler görünecek ;D
+ Yakında burada bir şeyler görünecek :)Kendiliğinden Üretilmiş
@@ -435,7 +435,7 @@
\n
\nDevam etmek istiyor musunuz?
Küçük resimleri yükle
- Küçük resimlerin hepsinin yüklenmesini engellemek ve bellek ve veri kullanımını azaltmak için devre dışı bırakın. Bunu değiştirmek, hem bellekteki hem de diskteki resim önbelleğini temizler
+ Küçük resimlerin tümünün yüklenmesini engellemek, bellek ve veri kullanımını azaltmak için devre dışı bırakın. Bunu değiştirmek, hem bellekteki hem de diskteki resim önbelleğini temizlerResim önbelleği temizlendiÖnbelleklenmiş üst veriyi temizleÖnbelleklenmiş tüm web sayfası verisini kaldır
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 084c85920..1dccd25cf 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -10,7 +10,7 @@
ЗавантажитиШукатиНалаштування
- Чи ви мали на увазі: %1$s ?
+ Чи ви мали на увазі: %1$s\?Поділитись зОберіть переглядачобертання
@@ -44,7 +44,7 @@
Наступний відеозаписЯвляти \"наступні\" й \"схожі\" відеоURL не підтримується
- Переважна мова контенту
+ Переважна мова контентуВідео та АвдіоЗовнішній виглядІнше
@@ -483,8 +483,12 @@
До тлового програвачаЗменшити до віконного програвачу
-Канали
+ КаналиПлейлистиСтежкиКористувачі
-
+
+ Вигляд списку
+ Список
+ Сiтка
+
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index a55f01085..b5203fbc0 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -28,14 +28,14 @@
Đường dẫn để lưu trữ âm thanh đã tải xuốngNhập đường dẫn tải xuống cho tệp âm thanh
- Tự động phát khi được gọi từ một ứng dụng khác
- Tự động phát một video khi NewPipe được gọi từ một ứng dụng khác
+ Tự động phát
+ Phát video khi NewPipe được gọi từ một ứng dụng khácĐộ phân giải mặc địnhĐộ phân giải popup mặc địnhHiển thị độ phân giải cao hơnChỉ một số thiết bị hỗ trợ chơi các video 2K / 4KPhát với Kodi
- Ứng dụng Kore không tìm thấy. Cài đặt Kore?
+ Không tìm thấy ứng dụng Kore. Cài đặt nó?Hiển thị tùy chọn \"Phát với Kodi\"Hiển thị tùy chọn để phát video qua trung tâm media KodiÂm thanh
@@ -47,7 +47,7 @@
TốiĐenNhớ kích thước và vị trí bật lên
- Nhớ kích thước và vị trí cuối cùng được đặt vào cửa sổ bật lên
+ Nhớ kích thước và vị trí bật lên cuối cùngĐiều khiển cử chỉ trình phátSử dụng cử chỉ để kiểm soát độ sáng và âm lượng của trình phátĐề xuất tìm kiếm
@@ -56,7 +56,7 @@
Tải vềVideo tiếp theo
- Hiển thị các video tiếp theo và tương tự
+ Hiển thị video \'tiếp theo\' và \'tương tự\'URL không được hỗ trợHiển thịKhác
@@ -65,7 +65,7 @@
PhátNội dungHiển thị nội dung bị hạn chế độ tuổi
- Video bị giới hạn về tuổi. Bật chế độ cho phép hiển thị video bị hạn chế về độ tuổi ở trong cài đặt trước.
+ Video giới hạn độ tuổi người xem. Cho phép các tài liệu đó có thể từ Cài đặt.Trực tiếpTải xuốngTải xuống
@@ -84,20 +84,20 @@
LỗiLỗi kết nối mạngKhông thể tải tất cả các thumbnails
- Không thể giải mã chữ ký URL của video.
- Không thể phân tích trang web.
- Không thể phân tích trang web hoàn toàn.
- Nội dung không có sẵn.
- Chặn bởi GEMA.
- Không thể thiết lập trình đơn tải xuống.
- Đây là một video phát trực tiếp. Chúng chưa được hỗ trợ.
- Không thể lấy bất kỳ luồng nào.
+ Không thể giải mã chữ ký URL video
+ Không thể phân tích cú pháp trang web
+ Không thể phân tích cú pháp hoàn toàn trang web
+ Nội dung không khả dụng
+ Chặn bởi GEMA
+ Không thể thiết lập menu tải xuống
+ Đây là STREAM LIVE, chưa được hỗ trợ.
+ Không thể lấy bất kỳ luồng nàoKhông thể tải hình ảnhỨng dụng / Giao diện người dùng bị lỗiXin lỗi, điều đó không nên xảy ra.Báo lỗi qua emailXin lỗi, một số lỗi đã xảy ra.
- BÁo CÁO
+ BÁO CÁOThông tin:Chuyện gì đã xảy ra:Gì: \\nRequest:\\nContent Lang:\\nService:\\nGMT Time:\\nPackage:\\nVersion:\\nOS version:
@@ -123,7 +123,7 @@
Thử lạiQuyền truy cập vào bộ nhớ đã bị từ chốiSử dụng trình phát cũ
- Máy nghe nhạc Mediaframework tích hợp sẵn.
+ Máy nghe nhạc Mediaframework tích hợp sẵnngàn
@@ -132,7 +132,7 @@
Bắt đầuDừng
- Xem
+ ChơiXóachecksum
@@ -148,7 +148,7 @@
NewPipe đang tải xuốngChạm để biết chi tiếtVui lòng đợi …
- Sao chép vào clipboard.
+ Sao chép vào clipboardHãy chọn một thư mục tải về có sẵn.Sự cho phép này là cần thiết để
\nMở trong chế độ bật lên
@@ -168,17 +168,17 @@
Cộng tác viênGiấy phépGiao diện trực quan nhẹ cho Android.
- Xem trên Github
+ Xem trên GitHubGiấy phép của NewPipeCho dù bạn có ý tưởng, dịch, thay đổi thiết kế, làm sạch mã hoặc thay đổi mã, sự trợ giúp luôn được hoan nghênh. Càng làm nhiều thì càng tốt!Đọc giấy phépSự đóng gópQuay
- Ngôn ngữ nội dung ưu tiên
+ Ngôn ngữ nội dung ưu tiênVideo & Âm thanh
- Bật lên
- Lịch sử
- Lịch sử
+ Cửa sổ
+ Lịch sử & bộ nhớ cache
+ Lịch sử & bộ nhớ cacheDanh sáchKhông tìm thấyTheo dõi
@@ -187,4 +187,276 @@
Không thể thay đổi tình trạng theo dõiKhông thể cập nhật tình trạng theo dõi
-
+ Không tìm thấy trình phát luồng nào (bạn có thể cài đặt VLC để phát)
+ Tải xuống tệp luồng.
+ Hiển thị thông tin
+
+ main
+ Đăng ký
+ Dấu trang
+
+ Có gì mới
+
+ Thêm vào
+
+ Sử dụng tìm kiếm không chính xác nhanh
+ Tìm kiếm không chính xác cho phép người chơi tìm kiếm vị trí nhanh hơn với độ chính xác giảm
+ Tải hình thu nhỏ
+ Vô hiệu hóa để ngăn chặn tất cả các hình thu nhỏ tải và lưu dữ liệu và sử dụng bộ nhớ. Thay đổi điều này sẽ xóa bộ nhớ cache hình ảnh trong bộ nhớ và trên đĩa
+ Đã xóa bộ nhớ cache hình ảnh
+ Xóa siêu dữ liệu đã lưu vào bộ nhớ cache
+ Xóa tất cả dữ liệu trang web được lưu trong bộ nhớ cache
+ Đã xóa bộ nhớ cache siêu dữ liệu
+ Tự động phát tiếp theo theo hàng
+ Tự động thêm một luồng có liên quan khi phát luồng cuối cùng trong hàng đợi không lặp lại
+ Lịch sử tìm kiếm
+ Lưu trữ truy vấn tìm kiếm cục bộ
+ Theo dõi các video đã xem
+ Tiếp tục lấy tiêu điểm
+ Tiếp tục phát sau khi bị gián đoạn (ví dụ: cuộc gọi điện thoại)
+ Hiển thị mẹo \"giữ để nối thêm\"
+ Hiển thị mẹo khi nhấn nút nền hoặc bật lên trên trang chi tiết video
+ Quốc gia nội dung mặc định
+ Dịch vụ
+ Phát
+ Hành vi
+ Gỡ lỗi
+ Đã xếp hàng đợi trên trình phát nền
+ Xếp hàng đợi trên trình phát bật lên
+ Kênh
+ Danh sách phát
+ Bản nhạc
+ Người dùng
+ Hủy bỏ
+ Chơi tất cả
+ Luôn luôn
+ Chỉ một lần
+ Tập tin
+
+ Thông báo NewPipe
+ Thông báo cho nền mới và Trình phát Popup
+
+ [Không xác định]
+
+ Chuyển đổi hướng màn hình
+ Chuyển sang nền
+ Chuyển sang Popup
+ Chuyển sang Main
+
+ Nhập cơ sở dữ liệu
+ Xuất cơ sở dữ liệu
+ Sẽ ghi đè lịch sử và đăng ký hiện tại của bạn
+ Xuất lịch sử, đăng ký và danh sách phát
+ Xóa lịch sử xem
+ Xóa lịch sử của các luồng đã phát
+ Xóa toàn bộ lịch sử xem.
+ Đã xóa lịch sử xem.
+ Xóa lịch sử tìm kiếm
+ Xóa lịch sử của từ khóa tìm kiếm
+ Xóa toàn bộ lịch sử tìm kiếm.
+ Đã xóa lịch sử tìm kiếm.
+ Không thể phát luồng này
+ Đã xảy ra lỗi trình phát không thể khôi phục
+ Phục hồi từ lỗi trình phát
+ Người chơi bên ngoài không hỗ trợ các loại liên kết này
+ URL không hợp lệ
+ Không tìm thấy luồng video nào
+ Không tìm thấy luồng âm thanh nào
+ Thư mục không hợp lệ
+ Nguồn tệp / nội dung không hợp lệ
+ Tệp không tồn tại hoặc không đủ quyền đọc hoặc ghi vào tệp
+ Tên tệp không được để trống
+ Đã xảy ra lỗi: %1$s
+ Không có luồng nào để tải xuống
+
+ Không có gì ở đây Nhưng dế
+ Kéo để sắp xếp lại
+
+ Không có người đăng ký
+
+ %s người đăng kí
+
+
+ Không có lượt xem nào
+
+ %s lượt xem
+
+
+ Không có video nào
+
+ %s video
+
+
+ Tạo nên
+ Xóa một
+ Xóa hết
+ Bỏ qua
+ Đổi tên
+
+ Đã xóa 1 mục.
+
+ Tải về
+ Các ký tự được cho phép trong tên tệp
+ Ký tự không hợp lệ được thay thế bằng giá trị này
+ Ký tự thay thế
+
+ Chữ cái và chữ số
+ Hầu hết các ký tự đặc biệt
+
+ Không có ứng dụng nào được cài đặt để phát tệp này
+
+ Đóng góp
+ NewPipe được phát triển bởi các tình nguyện viên dành thời gian mang lại cho bạn những trải nghiệm tốt nhất. Hãy trở lại để giúp các nhà phát triển làm cho NewPipe thậm chí còn tốt hơn trong khi thưởng thức một tách cà phê.
+ Trả lại
+ Trang mạng
+ Truy cập trang web NewPipe để biết thêm thông tin và tin tức.
+ Chính sách bảo mật của NewPipe
+ Dự án NewPipe rất coi trọng quyền riêng tư của bạn. Do đó, ứng dụng không thu thập bất kỳ dữ liệu nào mà không có sự đồng ý của bạn.
+\nChính sách bảo mật của NewPipe giải thích chi tiết dữ liệu nào được gửi và lưu trữ khi bạn gửi báo cáo sự cố.
+ Đọc chính sách bảo mật
+ NewPipe là phần mềm miễn phí copyleft: Bạn có thể sử dụng, chia sẻ nghiên cứu và cải thiện nó theo ý muốn của bạn. Cụ thể bạn có thể phân phối lại và / hoặc sửa đổi nó theo các điều khoản của Giấy phép Công cộng GNU như được xuất bản bởi Quỹ Phần mềm Tự do, hoặc phiên bản 3 của Giấy phép, hoặc (tùy chọn của bạn) bất kỳ phiên bản nào sau này.
+ Lịch sử
+ Đã tìm kiếm
+ Đã xem
+ Lịch sử bị tắt
+ Lịch sử
+ Lịch sử trống
+ Đã xóa lịch sử
+ Đã xóa mục
+ Bạn có muốn xóa mục này khỏi lịch sử tìm kiếm không?
+ Bạn có muốn xóa mục này khỏi lịch sử xem không?
+ Bạn có chắc chắn muốn xóa tất cả các mục khỏi lịch sử không?
+ Lần chơi cuối
+ Hầu hết phát
+
+ Nội dung trang chính
+ Trang trống
+ Trang chủ
+ Trang đăng ký
+ Trang nguồn cấp dữ liệu
+ Trang kênh
+ Chọn kênh
+ Chưa có kênh nào được đăng ký
+ Chọn Trang chủ
+ Xuất xong
+ Nhập hoàn tất
+ Không có tệp ZIP hợp lệ
+ Cảnh báo: Không thể nhập tất cả các tệp.
+ Thao tác này sẽ ghi đè cài đặt hiện tại của bạn.
+ Bạn cũng muốn nhập cài đặt?
+
+ Trang chủ
+ Xu hướng
+ Mới & hot
+ Trình phát nền
+ Trình phát Popup
+ Tẩy xoá
+ Chi tiết
+ Cài đặt âm thanh
+ Giữ để Enqueue
+ Phát trên nền
+ Phát qua cửa sổ
+ Bắt đầu chơi ở đây
+ Bắt đầu ở đây trên nền
+ Bắt đầu ở đây trên Popup
+
+ Mở ngăn kéo
+ Đóng ngăn
+ Một cái gì đó sẽ xuất hiện ở đây sớm ;D
+
+
+ Hành động \'mở\' được ưu tiên
+ Hành động mặc định khi mở nội dung — %s
+
+ Trình phát video
+ Trình phát nền
+ Trình phát Popup
+ Luôn luôn hỏi
+
+ Đang nhận thông tin…
+ Đang tải nội dung được yêu cầu
+
+ Tạo danh sách mới
+ Xóa danh sách phát
+ Đổi tên danh sách phát
+ Tên
+ Thêm vào danh sách phát
+ Đặt làm Hình thu nhỏ của danh sách phát
+
+ Đánh dấu trang danh sách phát
+ Xóa dấu trang
+
+ Bạn có muốn xóa danh sách phát này không?
+ Đã tạo danh sách phát
+ Đã thêm vào danh sách phát
+ Đã thay đổi hình thu nhỏ của danh sách phát
+ Không thể xóa danh sách phát
+
+ Không có phụ đề
+
+ Phù hợp
+ Lấp đầy
+ Thu phóng
+
+ Tự động tạo ra
+
+ Phụ đề
+ Sửa đổi tỷ lệ văn bản chú thích của người chơi và kiểu nền. Yêu cầu khởi động lại ứng dụng để có hiệu lực
+
+ Bật LeakCanary
+ Theo dõi rò rỉ bộ nhớ có thể khiến ứng dụng trở nên không phản hồi khi đổ xô đống
+
+ Báo cáo lỗi ngoài vòng đời
+ Buộc báo cáo ngoại lệ Rx không thể gửi được bên ngoài vòng đời của mảnh hoặc hoạt động sau khi xử lý
+
+ Nhập khẩu/xuất khẩu
+ Nhập
+ Nhập từ
+ Xuất sang
+
+ Đang nhập…
+ Đang xuất …
+
+ Nhập tệp
+ Xuất trước
+
+ Không thể nhập đăng ký
+ Không thể xuất đăng ký
+
+ Nhập đăng ký YouTube bằng cách tải xuống tệp xuất:
+\n
+\n1. Truy cập URL này: %1$s
+\n2. Đăng nhập khi được hỏi
+\n3. Quá trình tải xuống sẽ bắt đầu (đó là tệp xuất)
+ Nhập hồ sơ SoundCloud bằng cách nhập URL hoặc ID của bạn:
+\n
+\n1. Bật \"chế độ màn hình\" trong trình duyệt web (trang web không khả dụng cho thiết bị di động)
+\n2. Truy cập URL này: %1$s
+\n3. Đăng nhập khi được hỏi
+\n4. Sao chép URL tiểu sử mà bạn đã được chuyển hướng đến.
+ Hãy nhớ rằng hoạt động này có thể là mạng đắt tiền.
+\n
+\nBạn có muốn tiếp tục?
+
+ Điều khiển tốc độ phát lại
+ Speed
+ Chiều cao
+ Hủy liên kết (có thể gây méo)
+ Tua đi nhanh trong khi im lặng
+ Tiếp theo
+ Cài lại
+
+ Để tuân thủ Quy định bảo vệ dữ liệu chung của châu Âu (GDPR), chúng tôi sẽ thu hút sự chú ý của bạn đến chính sách bảo mật của NewPipe. Vui lòng đọc kỹ.
+\nBạn phải chấp nhận nó để gửi cho chúng tôi báo cáo lỗi.
+ Chấp nhận
+ Từ chối
+
+ Không giới hạn
+ Giới hạn độ phân giải khi sử dụng dữ liệu di động
+ Giảm thiểu trên công tắc ứng dụng
+ Hành động khi chuyển sang ứng dụng khác từ trình phát video chính — %s
+ không ai
+ Thu nhỏ xuống trình phát nền
+ Thu nhỏ trình phát bật lên
+
+
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 39dfefe48..55cfad9ef 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -34,7 +34,7 @@
即将播放显示下一部和相似的视频不支援此网址
- 默认内容语言
+ 默认内容语言视频和音频外观其他
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index a8e847694..506705536 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -30,7 +30,7 @@
下一部影片顯示下一部及相關的影片不支援此網址
- 預設內容語言
+ 預設內容語言影片及聲音外觀其他
@@ -55,7 +55,7 @@
未能建立下載路徑「%1$s」已建立下載路徑「%1$s」
- 內容被 GEMA 封鎖。
+ 內容被 GEMA 封鎖按一下搜尋按鈕以開始操作自動撥放當其他應用程式要求播放影片時,NewPipe 將會自動播放
@@ -69,9 +69,9 @@
無法為影片地址的簽署解碼。無法讀取網站。無法完全讀取網站。
- 無法設定下載清單。
+ 無法設定下載清單此內容是一個直播串流,所以暫時未能播放。
- 無法取得任何串流。
+ 無法取得任何串流抱歉,這是不應該發生的。透過電郵彙報問題抱歉,程式出現了問題。
@@ -114,7 +114,7 @@
NewPipe 正在下載按一下以查看詳情請稍候…
- 已複製至剪貼板。
+ 已複製至剪貼板請選擇下載資料夾。在畫中畫模式開啟
@@ -130,7 +130,7 @@
所有頻道是
- 稍候
+ 稍後無法取得圖片應用程式或介面出現問題事件:\\n請求:\\n內容語言:\\n服務:\\nGMT 時間:\\nPackage:\\n版本:\\n作業系統版本:
@@ -165,7 +165,7 @@
最佳解像度調整大小
- 使用舊的內置 Mediaframework 播放器。
+ 使用舊的內置 Mediaframework 播放器B關於 NewPipe
@@ -179,7 +179,7 @@
貢獻者特許在 Android 上運作自由輕便的 Youtube 前端。
- 檢視我們的 Github
+ 檢視我們的 GitHubNewPipe 的特許無論您僅想分享您對 NewPipe 的一些構思,還是願意設計和翻譯程式介面,甚至想幫我們整理或重新編寫原始碼,我們都無任歡迎。貢獻更多,應用程式便會變得更好!檢閱特許
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 8c4466a2e..e8a9e714c 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -1,11 +1,11 @@
- 點播%1$s次
- %1$s發布
- 找不到串流播放器,您要安裝VLC吗?
+ 點播 %1$s 次
+ %1$s 發布
+ 找不到串流播放器,您要安裝 VLC 嗎?安裝取消
- 用瀏覽器開啟
+ 以瀏覽器開啟分享下載搜尋
@@ -20,11 +20,11 @@
已下載影片的存放路徑輸入影片下載路徑預設解析度
- 用Kodi播放
- 顯示用Kodi媒體中心播放影片的選項
+ 用 Kodi 播放
+ 顯示用 Kodi 媒體中心播放影片的選項聲音
- 找不到Kore,您要安裝Kore嗎?
- 顯示「用Kodi播放」的選項
+ 找不到 Kore ,您要安裝 Kore 嗎?
+ 顯示「用 Kodi 播放」的選項預設音訊格式主題灰暗
@@ -34,11 +34,11 @@
下一部影片顯示「下一部」與「相關」的影片不支援此網址
- 預設內容語言
+ 預設內容語言影片和音訊外觀其他
- 在背景播放
+ 背景播放中播放網路錯誤
@@ -48,37 +48,37 @@
喜歡不喜歡使用 Tor
- (實驗性功能)強制使用 Tor 下載(暫時不支援串流影片)。
+ (實驗性) 強迫下載流量繞經 Tor 以加強隱私 (暫未支援串流影片)。音訊下載路徑已下載音訊的存放路徑輸入音訊檔案的下載路徑無法建立下載目錄「%1$s」已建立下載目錄「%1$s」
-輕觸搜尋按鈕開始使用NewPipe
+輕觸搜尋按鈕開始使用 NewPipe以懸浮視窗開啟勾選後,部分解析度的影片將沒有聲音
- NewPipe懸浮視窗模式
+ NewPipe 懸浮視窗模式背景播放自動播放
- NewPipe 被其他應用程式呼叫時播放影片
+ 當 NewPipe 被其他應用程式呼叫時播放影片懸浮視窗預設解析度顯示更高的解析度
- 只有部分裝置能播2K及4K影片
+ 只有部分裝置能播 2K 及 4K 影片預設影片格式純黑記住懸浮視窗大小和位置
- 記住上次懸浮視窗的大小和位置
+ 記住上次使用時懸浮視窗的大小和位置播放器手勢控制
- 使用手勢來控制亮度及播放器的音量
+ 使用手勢來控制播放器的亮度及音量搜尋建議
- 在搜尋時顯示搜尋建議
+ 搜尋時顯示搜尋建議懸浮視窗
- 在懸浮視窗中播放
+ 以懸浮視窗播放中內容
- 顯示受年齡限制的內容
- 此影片具有年齡限制,請先在設定中關閉年齡限制。
+ 顯示具有年齡限制的內容
+ 有年齡限制的影片。可於設定中選擇允許此種內容。下載下載錯誤回報
@@ -92,7 +92,7 @@
清除最佳解析度
- 重新設定大小
+ 調整大小錯誤無法載入所有縮圖無法解析影片 URL 簽章
@@ -105,7 +105,7 @@
無法取得串流無法載入圖片應用程式或界面已停止運作
- 抱歉,這不應該發生的。
+ 抱歉,這是不該發生的。使用電子郵件回報錯誤抱歉,發生了一些問題。回報
@@ -123,8 +123,8 @@
音訊重試無法存取儲存空間
- 使用舊的播放器
- 舊型內建媒體播放器
+ 使用舊式播放器
+ 舊型內建 Mediaframework 播放器千
@@ -147,7 +147,7 @@
檔案已存在錯誤的網址或網路無法使用NewPipe 下載中
- 輕觸顯示詳細資訊
+ 輕觸以顯示詳細資訊請稍候…已複製至剪貼簿請選擇下載資料夾
@@ -167,7 +167,7 @@
無法更新訂閱主頁
- 訂閱
+ 訂閱清單新鮮事
@@ -175,7 +175,7 @@
在本機儲存搜尋紀錄歷史紀錄與快取記錄觀看過的影片
- 在取得視窗焦點時繼續播放
+ 取得視窗焦點時繼續播放在干擾結束後繼續播放(例如有來電)播放器行為
@@ -222,10 +222,10 @@
關於貢獻者授權條款
- Android 上開放且輕巧的 YouTube 串流應用程式。
+ Android 上自由且輕巧的 YouTube 串流播放器。在 GitHub 上檢視NewPipe 使用的授權條款
- 不管你有什麼點子,翻譯、設計、程式碼整理,或者程式碼撰寫,我們永遠歡迎你來幫忙。完成的越多,NewPipe 也會更好!
+ 不管你有什麼點子——翻譯、設計、程式碼整理,或者程式碼撰寫——我們永遠歡迎你來幫忙。完成的越多,NewPipe 也會更好!閱讀授權條款貢獻
@@ -238,12 +238,12 @@
已清除歷史紀錄項目已刪除確定要刪除此項搜尋紀錄嗎?
-找不到串流播放器(您可以安裝 VLC播放)
- 顯示「鎖定到附加」提示
+找不到串流播放器(您可以安裝 VLC 播放)
+ 顯示「長按以新增」提示預設內容國家服務
- 在背景播放器上等候
- 在懸浮視窗播放器上等候
+ 已新增至背景播放佇列
+ 已新增至懸浮視窗播放佇列全部播放總是僅一次
@@ -257,9 +257,9 @@
無法播放此串流發生無法復原的播放器錯誤
- 從播放器錯誤中恢復
- 在背景或是影片詳細資訊頁面上按下浮模按鈕時顯示提示
- 外部播放器不支援這類型的連結
+ 正在從播放器錯誤中復原
+ 在影片詳細資訊頁按下背景播放或懸浮視窗按鈕時顯示提示
+ 外部播放器不支援此類型連結無效的 URL找不到影片串流找不到音訊串流
@@ -270,8 +270,8 @@
匯出資料庫將覆蓋您目前的歷史記錄和訂閱匯出歷史記錄、訂閱和播放清單
- 返回
- 欲了解更多關於 NewPipe 的資訊和新聞,請造訪我們的網站。
+ 回饋
+ 如欲了解更多有關 NewPipe 的資訊和新聞,請造訪我們的網站。首頁內容空白頁面互動導覽頁面
@@ -279,10 +279,10 @@
提要頁面頻道頁面選擇頻道
- 尚未訂閱頻道
+ 尚未訂閱任何頻道選擇互動導覽
- 匯出完成
- 匯入完成
+ 匯出已完成
+ 匯入已完成無有效的 ZIP 檔案警告:無法匯入所有檔案。這將覆蓋您目前的設定。
@@ -296,20 +296,20 @@
移除詳細資訊音訊設定
- 在背景佇列
- 在懸浮視窗佇列
- 在此開始播放
- 在背景這裡開始
- 在懸浮視窗這裡開始
+ 新增至背景佇列
+ 新增至懸浮視窗佇列
+ 從這裡開始播放
+ 從這裡開始以背景播放
+ 從這裡開始以懸浮視窗播放
- 維持在佇列
- NewPipe 由志願者所開發,他們花費了空閒時間將獲得的最佳體驗帶給您。現在是時候回過頭來,讓我們的開發人員可以能夠在享受一杯咖啡的同時,讓 NewPipe 變得更好。
+ 長按以新增至佇列
+ NewPipe 由志願者所開發,他們耗費時間務求為您帶來最佳體驗。現在是時候回過頭來,讓我們的開發人員能夠在使 NewPipe 更臻完美的同時,享受一杯咖啡。打開抽屜關閉抽屜
- 影片播放
- 背景播放
- 懸浮視窗播放
+ 影片播放器
+ 背景播放器
+ 懸浮視窗播放器總是詢問正在取得資訊…
@@ -321,16 +321,16 @@
新增至
- 拖曳重新排序
+ 拖曳以重新排序建立
- 刪除一個
+ 刪除全部刪除退出
- 更改名稱
+ 重新命名
- 您是否要從觀看記錄中刪除這個項目嗎?
- 您確實要刪除歷史記錄中的所有項目嗎?
+ 您是否要刪除此項觀看記錄?
+ 您確定要刪除歷史記錄中的所有項目嗎?上一次播放最常播放
@@ -338,23 +338,23 @@
建立新的播放清單刪除播放清單
- 重命名播放清單
+ 重新命名播放清單名稱
- 增加至播放清單
+ 新增至播放清單設為播放清單縮圖
- 書簽播放清單
- 移除書簽
+ 將播放清單加入書籤
+ 移除書籤您是否要刪除此播放清單?已建立播放清單
- 加入到播放清單
+ 已新增至播放清單播放清單縮圖已更改無法刪除播放清單沒有字幕
- 適合的
+ 合適的填滿縮放
@@ -363,7 +363,7 @@
正常字體加大字體
- 某些東西很快就會出現 ;D
+ 某些東西即將在此出現 ;D監測流失
@@ -378,9 +378,9 @@
強制報告在處理完片段或活動週期外發生的無法傳遞的 Rx 異常使用粗略但快速的尋找
- 粗略尋找讓播放器更快找到影片的進度位置
- 自動播放隊列中下一部影片
- 在非重複播放佇列中的最後一個串流上開始播放時,自動附上相關串流
+ 粗略的尋找能讓播放器以降低的精確度更快找到影片的進度位置
+ 自動將下一部影片新增至佇列
+ 在非重複播放佇列中最後一個串流開始播放時,自動新增相關串流同步檔案
@@ -388,12 +388,12 @@
無效的目錄無效的檔案/內容來源檔案名稱不能留空
- 發生錯誤:%1$s
+ 發生錯誤: %1$s匯入/匯出匯入
- 匯入來自
- 匯出到
+ 匯入自
+ 匯出至正在匯入…正在匯出…
@@ -404,75 +404,75 @@
之前的匯出
- 檔案不存在或沒有足夠的權限讀取或寫入
+ 檔案不存在或權限不足以讀取或寫入該檔案透過下載匯出檔案來匯入您的 YouTube 訂閱:
\n
-\n1. 轉到此網址:%1$s
-\n2. 當被詢問時登入您的帳戶
+\n1. 移至此網址:%1$s
+\n2. 當被詢問時登入
\n3. 下載應該開始 ( 這就是匯出的檔案 )yourID, soundcloud.com/yourid
- 請記住,此操作可能會造成網路昂貴花費。
-\n
-\n您想繼續嗎?
-透過輸入 URL 或您的 ID 來匯入 SoundCloud 檔案:
+ 請記住,此操作可造成昂貴網路花費。
\n
-\n1. 在一些瀏覽器中啟用「桌面模式」(該網站不適用於行動裝置)
-\n2. 移至此網址:%1$s
-\n3. 詢問時登入到您的帳號
-\n4. 複製您被重新導向到的網址。
+\n您是否希望繼續?
+透過輸入 URL 或您的 ID 來匯入 SoundCloud 個人設定檔:
+\n
+\n1. 在瀏覽器中啟用「桌面模式」(該網站不適用於行動裝置)
+\n2. 移至此網址: %1$s
+\n3. 當被詢問時登入
+\n4. 複製您被重新導向到的個人設定檔網址。載入縮圖
- 停用後,NewPipe將不再載入縮圖,減少數據使用與騰空儲存空間,亦會清除記憶體和磁碟上的縮圖快取
+ 停用後 NewPipe 將不再載入縮圖,減少數據和儲存空間的用量。改變此選項時將清除記憶體和磁碟上的縮圖快取已清除圖片快取
- 抹除快取中介資料
+ 清除快取中介資料移除所有網頁的快取資料已清除中介資料快取播放速度控制
- 節拍
- 間距
+ 節奏
+ 音高解除連結(可能導致失真)Nightcore預設偏好的「開啟」動作
- 開起內容時的預設動作 — %s
+ 開啟內容時的預設動作 — %s沒有可供下載的串流字幕
- 調整播放器字幕大小與背景樣式。必須重新啟動應用程式才會生效
+ 調整播放器字幕文字大小與背景樣式。必須重新啟動應用程式才會生效未安裝可播放此檔案的應用程式清除觀看歷史刪除播放過的串流歷史
- 刪除全部的觀看歷史。
+ 刪除所有觀看歷史。觀看歷史已刪除。清除搜尋歷史刪除搜尋關鍵字的歷史
- 刪除全部的搜尋歷史。
+ 刪除所有搜尋歷史。搜尋歷史已刪除。已刪除 1 個項目。
- NewPipe 是一個 Copyleft 的自由軟體:您可以隨意使用、研究、分享並改進它。您可以在遵守由自由軟體基金會所發佈的 GNU 通用公共授權條款的狀況下自由地再散佈及/或修改它,授權條款預設使用第三版,但您也可以選擇更新的版本。
- 您是否同時的匯入設定?
+ NewPipe 是一個 Copyleft 的自由軟體:您可以隨意使用、研究、分享並改進它。在遵守由自由軟體基金會所發佈的 GNU 通用公共授權條款的狀況下,您可以自由地再散佈及/或修改它;授權條款預設使用第三版,但您也可以選擇更新的版本。
+ 您是否要同時匯入設定?NewPipe 的隱私政策
- NewPipe 專案非常重視您的隱私。因此,未經您的同意應用程式不會收集任何的資料。
-\nNewPipe 的隱私權政策,詳細說明了當您發送錯誤回報時,什麼資料才會進行傳送及儲存。
+ NewPipe 專案非常重視您的隱私。因此,未經您同意此程式不會收集任何資料。
+\nNewPipe 的隱私權政策詳細說明了當您發送錯誤回報時,什麼資料會被傳送及儲存。閱讀隱私政策
- 為了符合歐洲通用資料保護條例 ( GDPR ) ,我們請您注意 NewPipe 的隱私政策。請您務必仔細閱讀。
+ 為配合歐洲通用資料保護條例 ( GDPR ) ,我們在此請您注意 NewPipe 的隱私政策。請務必仔細閱讀。
\n您必須接受它才能向我們發送錯誤報告。接受
- 下降
+ 拒絕沒有限制
- 當您使用行動網路時限制解析度
- 在應用程式切換時最小化
- 當從主影片播放器切換到其他應用程式時要進行的動作 — %s
+ 使用行動網路時限制解析度
+ 切換應用程式時最小化
+ 從主影片播放器切換到其他應用程式時要執行的動作 — %s無最小化為背景播放器最小化為彈出式播放器
-在靜音時快轉
+靜音時快轉步進重設
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index e7af3231e..229c00533 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -12,6 +12,8 @@
124dp70dp
+ 164dp
+ 92dp94dp
diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml
index 9b39fec26..133a679c9 100644
--- a/app/src/main/res/values/settings_keys.xml
+++ b/app/src/main/res/values/settings_keys.xml
@@ -19,7 +19,8 @@
autoplay_through_intentuse_oldplayer
- player_gesture_controls
+ volume_gesture_control
+ brightness_gesture_controlresume_on_audio_focus_gainpopup_remember_size_pos_keyuse_inexact_seek_key
@@ -105,6 +106,8 @@
last_orientation_landscape_key
+ last_resize_mode
+
debug_pref_screen_keyallow_heap_dumping_key
@@ -138,7 +141,7 @@
show_hold_to_appendenGB
- search_language
+ content_languagecontent_countryshow_age_restricted_contentuse_tor
@@ -371,8 +374,8 @@
AndorraAngolaAnguilla
- Antarctica
- Antiguaand Barbuda
+ Antartica
+ Antigua and BarbudaArgentinaArmeniaAruba
@@ -390,9 +393,9 @@
BermudaBhutanBolivia
- Bosniaand Herzegovina
+ Bosnia and HerzegovinaBotswana
- BouvetIsland
+ Bouvet IslandBrazilBritish Virgin IslandsBritish Indian Ocean Territory
@@ -403,23 +406,23 @@
CambodiaCameroonCanada
- CapeVerde
+ Cape VerdeCayman IslandsCentral African RepublicChadChileChina
- HongKong, China
- Macao,China
+ Hong Kong (China)
+ Macao (China)Christmas Island
- Cocos(Keeling) Islands
+ Cocos (Keeling) IslandsColombiaComoros
- Congo(Brazzaville)
- Congo, (Kinshasa)
+ Brazzaville (Congo)
+ Kinshasa (Congo)Cook Islands
- CostaRica
- Côted\'Ivoire
+ Costa Rica
+ Côte d\'IvoireCroatiaCubaCyprus
@@ -430,8 +433,8 @@
Dominican RepublicEcuadorEgypt
- ElSalvador
- EquatorialGuinea
+ El Salvador
+ Equatorial GuineaEritreaEstoniaEthiopia
@@ -460,8 +463,8 @@
Guinea-BissauGuyanaHaiti
- Heardand Mcdonald Islands
- HolySee (Vatican City State)
+ Heard and McDonald Islands
+ Holy See (Vatican City State)HondurasHungaryIceland
@@ -470,7 +473,7 @@
IranIraqIreland
- Isleof Man
+ Isle of ManIsraelItalyJamaica
@@ -480,8 +483,8 @@
KazakhstanKenyaKiribati
- Korea(North)
- Korea(South)
+ North Korea
+ South KoreaKuwaitKyrgyzstanLao
@@ -500,7 +503,7 @@
MaldivesMaliMalta
- MarshallIslands
+ Marshall IslandsMartiniqueMauritaniaMauritius
@@ -532,7 +535,7 @@
OmanPakistanPalau
- Palestinian Territory
+ PalestinePanamaPapua New GuineaParaguay
@@ -541,71 +544,71 @@
PitcairnPolandPortugal
- PuertoRico
+ Puerto RicoQatarRéunionRomaniaRussian FederationRwanda
- Saint-Barthélemy
+ Saint BarthélemySaint Helena
- Saint KittsandNevis
- SaintLucia
- Saint-Martin(Frenchpart)
- SaintPierreandMiquelon
- Saint Vincentand Grenadines
+ Saint Kitts and Nevis
+ Saint Lucia
+ Saint Martin
+ Saint Pierre and Miquelon
+ Saint Vincent and GrenadinesSamoaSan Marino
- Sao Tomeand Principe
- SaudiArabia
+ Sao Tome and Principe
+ Saudi ArabiaSenegalSerbiaSeychelles
- SierraLeone
+ Sierra LeoneSingaporeSlovakiaSlovenia
- SolomonIslands
+ Solomon IslandsSomalia
- SouthAfrica
- South Georgiaandthe South Sandwich Islands
+ South Africa
+ South Georgia and South Sandwich IslandsSouth SudanSpainSri LankaSudanSuriname
- Svalbardand Jan Mayen Islands
+ Svalbard and Jan Mayen IslandsSwazilandSwedenSwitzerland
- Syrian ArabRepublic(Syria)
- Taiwan, Republicof China
+ Syrian Arab Republic (Syria)
+ TaiwanTajikistanTanzaniaThailand
- Timor-Leste
+ Timor LesteTogoTokelauTonga
- Trinidadand Tobago
+ Trinidad and TobagoTunisiaTurkeyTurkmenistan
- Turksand Caicos Islands
+ Turks and Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited Kingdom
- USA
+ United StatesMinor Outlying IslandsUruguayUzbekistanVanuatu
- Venezuela (BolivarianRepublic)
- VietNam
- Virgin Islands,
- Wallisand Futuna Islands
+ Venezuela (Bolivarian Republic)
+ Vietnam
+ Virgin Islands
+ Wallis and Futuna IslandsWestern SaharaYemenZambia
@@ -878,5 +881,18 @@
144p
+ list_view_mode
+ auto
-
\ No newline at end of file
+
+ auto
+ list
+ grid
+
+
+ @string/auto
+ @string/list
+ @string/grid
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0dc837ae8..ac95d98a4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,7 +5,7 @@
%1$s viewsPublished on %1$sNo stream player found. Do you want to install VLC?
- No stream player found (you can install VLC to play it)
+ No stream player found (you can install VLC to play it).InstallCancelhttps://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc
@@ -13,28 +13,29 @@
Open in popup modeShareDownload
- Download stream file.
+ Download stream fileSearchSettings
- Did you mean: %1$s ?
+ Did you mean: %1$s\?Share withChoose browserrotationUse external video player
- Some resolutions will NOT have audio when this option is enabled
+ Removes audio at SOME resolutionsUse external audio playerNewPipe popup modeRSSSubscribeSubscribed
+ UnsubscribeChannel unsubscribed
- Unable to change subscription
- Unable to update subscription
+ Could not change subscription
+ Could not update subscriptionShow infoMainSubscriptions
- Bookmarks
+ Bookmarked PlaylistsNew TabChoose Tab
@@ -48,8 +49,8 @@
Path to store downloaded videos inEnter download path for videos
- Audio download path
- Path to store downloaded audio in
+ Audio download folder
+ Downloaded audio is stored hereEnter download path for audio filesAutoplay
@@ -75,15 +76,17 @@
Use fast inexact seekInexact seek allows the player to seek to positions faster with reduced precisionLoad thumbnails
- Disable to stop all thumbnails from loading and save on data and memory usage. Changing this will clear both in-memory and on-disk image cache.
+ When off no thumbnails load, saving data and memory usage. Changes clear both in-memory and on-disk image cache.Image cache wipedWipe cached metadataRemove all cached webpage dataMetadata cache wipedAuto-queue next streamAuto-append a related stream when playing the last stream in a non-repeating queue.
- Player gesture controls
- Use gestures to control the brightness and volume of the player
+ Volume gesture control
+ Use gestures to control the volume of the player
+ Brightness gesture control
+ Use gestures to control the brightness of the playerSearch suggestionsShow suggestions when searchingSearch history
@@ -93,18 +96,18 @@
Resume on focus gainContinue playing after interruptions (e.g. phone calls)Download
- Next video
- Show \'next\' and \'similar\' videos
- Show \"hold to append\" tip
+ Next
+ Show \'Next\' and \'Similar\' videos
+ Show \"Hold to append\" tipShow tip when background or popup button is pressed on video details page
- URL not supported
+ Unsupported URLDefault content countryService
- Default content language
+ Default content languagePlayerBehavior
- Video & Audio
- History & Cache
+ Video & audio
+ History & cachePopupAppearanceOther
@@ -116,8 +119,8 @@
https://www.c3s.cc/PlayContent
- Show age restricted content
- Age Restricted Video. Allowing such material is possible from Settings.
+ Age restricted content
+ Show age Restricted Video. Allowing such material is possible from \"Settings\".liveLIVEDownloads
@@ -147,7 +150,7 @@
newpipeNewPipe Notification
- Notifications for NewPipe Background and Popup Players
+ Notifications for NewPipe background and popup players[Unknown]
@@ -158,29 +161,29 @@
Import databaseExport database
- Will override your current history and subscriptions
- Export history, subscriptions and playlists.
+ Overrides your current history and subscriptions
+ Export history, subscriptions and playlistsClear watch history
- Deletes the history of played streams.
- Delete whole watch history.
+ Deletes the history of played streams
+ Delete entire watch history?Watch history deleted.Clear search history
- Deletes history of search keywords.
- Delete whole search history.
+ Deletes history of search keywords
+ Delete entire search history?Search history deleted.Error
- External storage not available.
- Download to external SD Card is not possible yet. Should the download place be reset?
+ External storage unavailable
+ Download to external SD card is not possible yet. Reset download folder location?Network errorCould not load all thumbnailsCould not decrypt video URL signatureCould not parse websiteCould not parse website completely
- Content not available
+ Content unavailableBlocked by GEMACould not set up download menu
- This is a LIVE STREAM, which is not yet supported.
+ Live streams are not supported yetCould not get any streamCould not load imageApp/UI crashed
@@ -191,10 +194,10 @@
Invalid URLNo video streams foundNo audio streams found
- Invalid directory
- Invalid file/content source
- File doesn\'t exist or insufficient permission to read or write to it
- File name cannot be empty
+ No such folder
+ No such file/content source
+ The file doesn\'t exist or permission to read or write to it is lacking
+ Filename cannot be emptyAn error occurred: %1$sNo streams available to downloadUsing default tabs, error while reading saved tabs
@@ -226,7 +229,7 @@
User reportNo results@string/no_videos
- Nothing Here But Crickets
+ Nothing here but cricketsDrag to reorderCannot create download directory \'%1$s\'
@@ -283,7 +286,7 @@
FilenameThreadsError
- Server unsupported
+ Unsupported serverFile already existsMalformed URL or Internet not availableNewPipe Downloading
@@ -298,8 +301,8 @@
MD5SHA-1reCAPTCHA
- reCAPTCHA Challenge
- reCAPTCHA Challenge requested
+ reCAPTCHA challenge
+ reCAPTCHA challenge requested
@@ -344,7 +347,7 @@
https://newpipe.schabi.org/legal/privacy/Read privacy policyNewPipe\'s License
- NewPipe is copyleft libre software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ NewPipe is copyleft libre software: You can use, study share and improve it at will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.Read license
@@ -352,7 +355,7 @@
HistorySearchedWatched
- History is disabled
+ History is turned offHistoryThe history is emptyHistory cleared
@@ -373,10 +376,10 @@
Feed PageChannel PageSelect a channel
- No channel subscribed yet
+ No channel subscriptions yetSelect a kiosk
- Export complete
- Import complete
+ Exported
+ ImportedNo valid ZIP fileWarning: Could not import all files.This will override your current setup.
@@ -390,17 +393,17 @@
%1$s/%2$s
- Background Player
- Popup Player
+ Background player
+ Popup playerRemoveDetailsAudio Settings
- Hold To Enqueue
- Enqueue on Background
- Enqueue on Popup
- Start Playing Here
- Start Here on Background
- Start Here on Popup
+ Hold To enqueue
+ Enqueue when backgrounded
+ Enqueue on new popup
+ Start playing here
+ Start here when backgrounded
+ Start here on new popupOpen Drawer
@@ -424,9 +427,9 @@
"Loading requested content"
- Create New Playlist
- Delete Playlist
- Rename Playlist
+ New Playlist
+ Delete
+ RenameNameAdd To PlaylistSet as Playlist Thumbnail
@@ -434,11 +437,11 @@
Bookmark PlaylistRemove Bookmark
- Do you want to delete this playlist?
+ Delete this playlist?Playlist created
- Added to playlist
- Playlist thumbnail changed
- Could not delete playlist
+ Playlisted
+ Playlist thumbnail changed.
+ Could not delete playlist.No Captions
@@ -457,11 +460,11 @@
Enable LeakCanaryMemory leak monitoring may cause the app to become unresponsive when heap dumping
- Report Out-of-lifecycle Errors
+ Report out-of-lifecycle errorsForce reporting of undeliverable Rx exceptions outside of fragment or activity lifecycle after disposal
- Import/Export
+ Import/exportImportImport fromExport to
@@ -512,10 +515,14 @@
- Minimize on application switch
- Action when switching to other application from main video player — %s
+ Minimize on app switch
+ Action when switching to other app from main video player — %sNoneMinimize to background playerMinimize to popup player
-
+ List view mode
+ List
+ Grid
+ Auto
+ Switch View
diff --git a/app/src/main/res/xml/appearance_settings.xml b/app/src/main/res/xml/appearance_settings.xml
index 1f711b510..437736ab0 100644
--- a/app/src/main/res/xml/appearance_settings.xml
+++ b/app/src/main/res/xml/appearance_settings.xml
@@ -22,6 +22,14 @@
android:title="@string/show_hold_to_append_title"
android:summary="@string/show_hold_to_append_summary"/>
+
+
-
+ android:title="@string/content_language_title"/>
-
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/video_audio_settings.xml b/app/src/main/res/xml/video_audio_settings.xml
index a547ffaf2..5ac5bb733 100644
--- a/app/src/main/res/xml/video_audio_settings.xml
+++ b/app/src/main/res/xml/video_audio_settings.xml
@@ -106,9 +106,15 @@
+ android:key="@string/volume_gesture_control_key"
+ android:summary="@string/volume_gesture_control_summary"
+ android:title="@string/volume_gesture_control_title"/>
+
+ invalidList = Arrays.asList(
"{}",
"",
diff --git a/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java b/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java
index 44a2f7cd0..ca6c76ff3 100644
--- a/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java
+++ b/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java
@@ -15,7 +15,7 @@ import static org.junit.Assert.assertNull;
*/
public class ErrorActivityTest {
@Test
- public void getReturnActivity() throws Exception {
+ public void getReturnActivity() {
Class extends Activity> returnActivity;
returnActivity = ErrorActivity.getReturnActivity(MainActivity.class);
assertEquals(MainActivity.class, returnActivity);
diff --git a/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java
index 278ea81e1..a6e7fc2c0 100644
--- a/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java
+++ b/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java
@@ -45,7 +45,7 @@ public class ListHelperTest {
new VideoStream("", MediaFormat.MPEG_4, /**/ "1080p60", true));
@Test
- public void getSortedStreamVideosListTest() throws Exception {
+ public void getSortedStreamVideosListTest() {
List result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, videoStreamsTestList, videoOnlyStreamsTestList, true);
List expected = Arrays.asList("144p", "240p", "360p", "480p", "720p", "720p60", "1080p", "1080p60", "1440p60", "2160p", "2160p60");
@@ -67,7 +67,7 @@ public class ListHelperTest {
}
@Test
- public void getSortedStreamVideosExceptHighResolutionsTest() throws Exception {
+ public void getSortedStreamVideosExceptHighResolutionsTest() {
////////////////////////////////////
// Don't show Higher resolutions //
//////////////////////////////////
@@ -79,7 +79,7 @@ public class ListHelperTest {
}
@Test
- public void getDefaultResolutionTest() throws Exception {
+ public void getDefaultResolutionTest() {
List testList = Arrays.asList(
new VideoStream("", MediaFormat.MPEG_4, /**/ "720p"),
new VideoStream("", MediaFormat.v3GPP, /**/ "240p"),
@@ -130,7 +130,7 @@ public class ListHelperTest {
}
@Test
- public void getHighestQualityAudioFormatTest() throws Exception {
+ public void getHighestQualityAudioFormatTest() {
AudioStream stream = audioStreamsTestList.get(ListHelper.getHighestQualityAudioIndex(MediaFormat.M4A, audioStreamsTestList));
assertEquals(320, stream.average_bitrate);
assertEquals(MediaFormat.M4A, stream.getFormat());
@@ -145,7 +145,7 @@ public class ListHelperTest {
}
@Test
- public void getHighestQualityAudioFormatPreferredAbsent() throws Exception {
+ public void getHighestQualityAudioFormatPreferredAbsent() {
//////////////////////////////////////////
// Doesn't contain the preferred format //
@@ -186,13 +186,13 @@ public class ListHelperTest {
}
@Test
- public void getHighestQualityAudioNull() throws Exception {
+ public void getHighestQualityAudioNull() {
assertEquals(-1, ListHelper.getHighestQualityAudioIndex(null, null));
- assertEquals(-1, ListHelper.getHighestQualityAudioIndex(null, new ArrayList()));
+ assertEquals(-1, ListHelper.getHighestQualityAudioIndex(null, new ArrayList<>()));
}
@Test
- public void getLowestQualityAudioFormatTest() throws Exception {
+ public void getLowestQualityAudioFormatTest() {
AudioStream stream = audioStreamsTestList.get(ListHelper.getMostCompactAudioIndex(MediaFormat.M4A, audioStreamsTestList));
assertEquals(128, stream.average_bitrate);
assertEquals(MediaFormat.M4A, stream.getFormat());
@@ -207,7 +207,7 @@ public class ListHelperTest {
}
@Test
- public void getLowestQualityAudioFormatPreferredAbsent() throws Exception {
+ public void getLowestQualityAudioFormatPreferredAbsent() {
//////////////////////////////////////////
// Doesn't contain the preferred format //
@@ -250,13 +250,13 @@ public class ListHelperTest {
}
@Test
- public void getLowestQualityAudioNull() throws Exception {
+ public void getLowestQualityAudioNull() {
assertEquals(-1, ListHelper.getMostCompactAudioIndex(null, null));
- assertEquals(-1, ListHelper.getMostCompactAudioIndex(null, new ArrayList()));
+ assertEquals(-1, ListHelper.getMostCompactAudioIndex(null, new ArrayList<>()));
}
@Test
- public void getVideoDefaultStreamIndexCombinations() throws Exception {
+ public void getVideoDefaultStreamIndexCombinations() {
List testList = Arrays.asList(
new VideoStream("", MediaFormat.MPEG_4, /**/ "1080p"),
new VideoStream("", MediaFormat.MPEG_4, /**/ "720p60"),
diff --git a/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java b/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java
index 8c8d52043..c652472d1 100644
--- a/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java
+++ b/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java
@@ -11,25 +11,25 @@ public class QuadraticSliderStrategyTest {
private final SliderStrategy.Quadratic standard =
new SliderStrategy.Quadratic(0f, 100f, 50f, STEP);
@Test
- public void testLeftBound() throws Exception {
+ public void testLeftBound() {
assertEquals(standard.progressOf(0), 0);
assertEquals(standard.valueOf(0), 0f, DELTA);
}
@Test
- public void testCenter() throws Exception {
+ public void testCenter() {
assertEquals(standard.progressOf(50), 50);
assertEquals(standard.valueOf(50), 50f, DELTA);
}
@Test
- public void testRightBound() throws Exception {
+ public void testRightBound() {
assertEquals(standard.progressOf(100), 100);
assertEquals(standard.valueOf(100), 100f, DELTA);
}
@Test
- public void testLeftRegion() throws Exception {
+ public void testLeftRegion() {
final int leftProgress = standard.progressOf(25);
final double leftValue = standard.valueOf(25);
assertTrue(leftProgress > 0 && leftProgress < 50);
@@ -37,7 +37,7 @@ public class QuadraticSliderStrategyTest {
}
@Test
- public void testRightRegion() throws Exception {
+ public void testRightRegion() {
final int leftProgress = standard.progressOf(75);
final double leftValue = standard.valueOf(75);
assertTrue(leftProgress > 50 && leftProgress < 100);
@@ -45,7 +45,7 @@ public class QuadraticSliderStrategyTest {
}
@Test
- public void testConversion() throws Exception {
+ public void testConversion() {
assertEquals(standard.progressOf(standard.valueOf(0)), 0);
assertEquals(standard.progressOf(standard.valueOf(25)), 25);
assertEquals(standard.progressOf(standard.valueOf(50)), 50);
@@ -54,7 +54,7 @@ public class QuadraticSliderStrategyTest {
}
@Test
- public void testReverseConversion() throws Exception {
+ public void testReverseConversion() {
// Need a larger delta since step size / granularity is too small and causes
// floating point round-off errors during conversion
final float largeDelta = 1f;
@@ -67,7 +67,7 @@ public class QuadraticSliderStrategyTest {
}
@Test
- public void testQuadraticPropertyLeftRegion() throws Exception {
+ public void testQuadraticPropertyLeftRegion() {
final double differenceCloserToCenter =
Math.abs(standard.valueOf(40) - standard.valueOf(45));
final double differenceFurtherFromCenter =
@@ -76,7 +76,7 @@ public class QuadraticSliderStrategyTest {
}
@Test
- public void testQuadraticPropertyRightRegion() throws Exception {
+ public void testQuadraticPropertyRightRegion() {
final double differenceCloserToCenter =
Math.abs(standard.valueOf(75) - standard.valueOf(70));
final double differenceFurtherFromCenter =
diff --git a/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java b/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java
index 6ff702273..c755ba2e9 100644
--- a/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java
+++ b/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java
@@ -42,12 +42,12 @@ public class DownloadManagerImplTest {
missions.add(generateFinishedDownloadMission());
}
when(downloadDataSource.loadMissions()).thenReturn(new ArrayList<>(missions));
- downloadManager = new DownloadManagerImpl(new ArrayList(), downloadDataSource);
+ downloadManager = new DownloadManagerImpl(new ArrayList<>(), downloadDataSource);
}
@Test(expected = NullPointerException.class)
public void testConstructorWithNullAsDownloadDataSource() {
- new DownloadManagerImpl(new ArrayList(), null);
+ new DownloadManagerImpl(new ArrayList<>(), null);
}
@@ -84,7 +84,7 @@ public class DownloadManagerImplTest {
downloadDataSource = mock(DownloadDataSource.class);
when(downloadDataSource.loadMissions()).thenReturn(new ArrayList<>(missions));
- downloadManager = new DownloadManagerImpl(new ArrayList(), downloadDataSource);
+ downloadManager = new DownloadManagerImpl(new ArrayList<>(), downloadDataSource);
verify(downloadDataSource, times(1)).loadMissions();
assertEquals(50, downloadManager.getCount());
@@ -110,7 +110,7 @@ public class DownloadManagerImplTest {
}
@Test
- public void resumeMission() throws Exception {
+ public void resumeMission() {
DownloadMission mission = missions.get(0);
mission.running = true;
verify(mission, never()).start();
@@ -122,7 +122,7 @@ public class DownloadManagerImplTest {
}
@Test
- public void pauseMission() throws Exception {
+ public void pauseMission() {
DownloadMission mission = missions.get(0);
mission.running = false;
downloadManager.pauseMission(0);
@@ -133,7 +133,7 @@ public class DownloadManagerImplTest {
}
@Test
- public void deleteMission() throws Exception {
+ public void deleteMission() {
DownloadMission mission = missions.get(0);
assertEquals(mission, downloadManager.getMission(0));
downloadManager.deleteMission(0);
@@ -143,18 +143,18 @@ public class DownloadManagerImplTest {
}
@Test(expected = RuntimeException.class)
- public void getMissionWithNegativeIndex() throws Exception {
+ public void getMissionWithNegativeIndex() {
downloadManager.getMission(-1);
}
@Test
- public void getMission() throws Exception {
+ public void getMission() {
assertSame(missions.get(0), downloadManager.getMission(0));
assertSame(missions.get(1), downloadManager.getMission(1));
}
@Test
- public void sortByTimestamp() throws Exception {
+ public void sortByTimestamp() {
ArrayList downloadMissions = new ArrayList<>();
DownloadMission mission = new DownloadMission();
mission.timestamp = 0;
diff --git a/assets/BETA_new_pipe_icon_5.svg b/assets/BETA_new_pipe_icon_5.svg
index 9406f2469..4fee29b3e 100644
--- a/assets/BETA_new_pipe_icon_5.svg
+++ b/assets/BETA_new_pipe_icon_5.svg
@@ -1,23 +1,10 @@
-