diff --git a/README.md b/README.md
index 0d615f43c..6c1aa3d4b 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,9 @@
Website • Blog • Press
-WARNING: PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS.
+WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.
+
+PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS.
## Screenshots
diff --git a/app/build.gradle b/app/build.gradle
index 2d46fcc90..f89f1d004 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "org.schabi.newpipe"
minSdkVersion 19
targetSdkVersion 28
- versionCode 71
- versionName "0.15.1"
+ versionCode 720
+ versionName "0.16.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -44,10 +44,10 @@ android {
ext {
supportLibVersion = '28.0.0'
- exoPlayerLibVersion = '2.8.4' //2.9.0
+ exoPlayerLibVersion = '2.9.6'
roomDbLibVersion = '1.1.1'
leakCanaryLibVersion = '1.5.4' //1.6.1
- okHttpLibVersion = '3.11.0'
+ okHttpLibVersion = '3.12.1'
icepickLibVersion = '3.2.0'
stethoLibVersion = '1.5.0'
}
@@ -57,7 +57,7 @@ dependencies {
exclude module: 'support-annotations'
})
- implementation 'com.github.TeamNewPipe:NewPipeExtractor:8de53111d9'
+ implementation 'com.github.TeamNewPipe:NewPipeExtractor:aa4f03a'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.23.0'
diff --git a/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java b/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java
index af9b88ac1..6a6d1b9c2 100644
--- a/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java
+++ b/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java
@@ -2,11 +2,13 @@ package org.schabi.newpipe;
import android.app.Application;
import android.app.PendingIntent;
+import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
+import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
@@ -68,6 +70,8 @@ public class CheckForNewAppVersionTask extends AsyncTask {
@Override
protected String doInBackground(Void... voids) {
+
+ if(isCancelled() || !isConnected()) return null;
// Make a network request to get latest NewPipe data.
if (client == null) {
@@ -227,4 +231,12 @@ public class CheckForNewAppVersionTask extends AsyncTask {
return getCertificateSHA1Fingerprint().equals(GITHUB_APK_SHA1);
}
+
+ private boolean isConnected() {
+
+ ConnectivityManager cm =
+ (ConnectivityManager) app.getSystemService(Context.CONNECTIVITY_SERVICE);
+ return cm.getActiveNetworkInfo() != null
+ && cm.getActiveNetworkInfo().isConnected();
+ }
}
diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java
index b8941670f..f040dc8b4 100644
--- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java
@@ -36,12 +36,12 @@ 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.player.helper.PlayerHelper;
import org.schabi.newpipe.player.playqueue.ChannelPlayQueue;
import org.schabi.newpipe.player.playqueue.PlayQueue;
import org.schabi.newpipe.player.playqueue.PlaylistPlayQueue;
import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
import org.schabi.newpipe.report.UserAction;
+import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.NavigationHelper;
@@ -81,10 +81,13 @@ public class RouterActivity extends AppCompatActivity {
protected int selectedPreviously = -1;
protected String currentUrl;
+ protected boolean internalRoute = false;
protected final CompositeDisposable disposables = new CompositeDisposable();
private boolean selectionIsDownload = false;
+ public static final String internalRouteKey = "internalRoute";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -94,11 +97,13 @@ public class RouterActivity extends AppCompatActivity {
currentUrl = getUrl(getIntent());
if (TextUtils.isEmpty(currentUrl)) {
- Toast.makeText(this, R.string.invalid_url_toast, Toast.LENGTH_LONG).show();
+ handleText();
finish();
}
}
+ internalRoute = getIntent().getBooleanExtra(internalRouteKey, false);
+
setTheme(ThemeHelper.isLightThemeSelected(this)
? R.style.RouterActivityThemeLight : R.style.RouterActivityThemeDark);
}
@@ -112,7 +117,7 @@ public class RouterActivity extends AppCompatActivity {
@Override
protected void onStart() {
super.onStart();
-
+
handleUrl(currentUrl);
}
@@ -353,6 +358,15 @@ public class RouterActivity extends AppCompatActivity {
positiveButton.setEnabled(state);
}
+ private void handleText(){
+ String searchString = getIntent().getStringExtra(Intent.EXTRA_TEXT);
+ int serviceId = getIntent().getIntExtra(Constants.KEY_SERVICE_ID, 0);
+ Intent intent = new Intent(getThemeWrapperContext(), MainActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ NavigationHelper.openSearch(getThemeWrapperContext(),serviceId,searchString);
+ }
+
private void handleChoice(final String selectedChoiceKey) {
final List validChoicesList = Arrays.asList(getResources().getStringArray(R.array.preferred_open_action_values_list));
if (validChoicesList.contains(selectedChoiceKey)) {
@@ -383,8 +397,10 @@ public class RouterActivity extends AppCompatActivity {
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(intent -> {
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ if(!internalRoute){
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ }
startActivity(intent);
finish();
diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java b/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java
index 251e4c730..7ee686a66 100644
--- a/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java
@@ -47,7 +47,7 @@ public class DownloadActivity extends AppCompatActivity {
@Override
public void onGlobalLayout() {
updateFragments();
- getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(this);
+ getWindow().getDecorView().getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java
index acee1f111..4546483d2 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java
@@ -230,21 +230,4 @@ public abstract class BaseStateFragment extends BaseFragment implements ViewC
ErrorActivity.reportError(getContext(), exception, MainActivity.class, rootView,
ErrorActivity.ErrorInfo.make(userAction, serviceName, request, errorId));
}
-
- /*//////////////////////////////////////////////////////////////////////////
- // Utils
- //////////////////////////////////////////////////////////////////////////*/
-
- protected void openUrlInBrowser(String url) {
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
- startActivity(Intent.createChooser(intent, activity.getString(R.string.share_dialog_title)));
- }
-
- protected void shareUrl(String subject, String url) {
- Intent intent = new Intent(Intent.ACTION_SEND);
- intent.setType("text/plain");
- intent.putExtra(Intent.EXTRA_SUBJECT, subject);
- intent.putExtra(Intent.EXTRA_TEXT, url);
- startActivity(Intent.createChooser(intent, getString(R.string.share_dialog_title)));
- }
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/EmptyFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/EmptyFragment.java
new file mode 100644
index 000000000..0666667d6
--- /dev/null
+++ b/app/src/main/java/org/schabi/newpipe/fragments/EmptyFragment.java
@@ -0,0 +1,17 @@
+package org.schabi.newpipe.fragments;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import org.schabi.newpipe.BaseFragment;
+import org.schabi.newpipe.R;
+
+public class EmptyFragment extends BaseFragment {
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_empty, container, false);
+ }
+}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdaptor.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdaptor.java
index 27cc3ec8a..8314f9539 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdaptor.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdaptor.java
@@ -1,5 +1,6 @@
package org.schabi.newpipe.fragments.detail;
+import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
@@ -61,6 +62,18 @@ public class TabAdaptor extends FragmentPagerAdapter {
else return POSITION_NONE;
}
+ public int getItemPositionByTitle(String title) {
+ return mFragmentTitleList.indexOf(title);
+ }
+
+ @Nullable
+ public String getItemTitle(int position) {
+ if (position < 0 || position >= mFragmentTitleList.size()) {
+ return null;
+ }
+ return mFragmentTitleList.get(position);
+ }
+
public void notifyDataSetUpdate(){
notifyDataSetChanged();
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
index 269125e27..bbd1a315d 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
@@ -65,6 +65,7 @@ import org.schabi.newpipe.extractor.stream.StreamType;
import org.schabi.newpipe.extractor.stream.VideoStream;
import org.schabi.newpipe.fragments.BackPressable;
import org.schabi.newpipe.fragments.BaseStateFragment;
+import org.schabi.newpipe.fragments.EmptyFragment;
import org.schabi.newpipe.fragments.list.comments.CommentsFragment;
import org.schabi.newpipe.fragments.list.videos.RelatedVideosFragment;
import org.schabi.newpipe.info_list.InfoItemDialog;
@@ -85,6 +86,7 @@ import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
+import org.schabi.newpipe.util.ShareUtils;
import org.schabi.newpipe.util.StreamItemAdapter;
import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper;
@@ -121,6 +123,7 @@ public class VideoDetailFragment
private boolean autoPlayEnabled;
private boolean showRelatedStreams;
private boolean showComments;
+ private String selectedTabTag;
@State
protected int serviceId = Constants.NO_SERVICE_ID;
@@ -179,6 +182,7 @@ public class VideoDetailFragment
private static final String COMMENTS_TAB_TAG = "COMMENTS";
private static final String RELATED_TAB_TAG = "NEXT VIDEO";
+ private static final String EMPTY_TAB_TAG = "EMPTY TAB";
private AppBarLayout appBarLayout;
private ViewPager viewPager;
@@ -211,6 +215,9 @@ public class VideoDetailFragment
showComments = PreferenceManager.getDefaultSharedPreferences(activity)
.getBoolean(getString(R.string.show_comments_key), true);
+ selectedTabTag = PreferenceManager.getDefaultSharedPreferences(activity)
+ .getString(getString(R.string.stream_info_selected_tab_key), COMMENTS_TAB_TAG);
+
PreferenceManager.getDefaultSharedPreferences(activity)
.registerOnSharedPreferenceChangeListener(this);
}
@@ -224,6 +231,10 @@ public class VideoDetailFragment
public void onPause() {
super.onPause();
if (currentWorker != null) currentWorker.dispose();
+ PreferenceManager.getDefaultSharedPreferences(getContext())
+ .edit()
+ .putString(getString(R.string.stream_info_selected_tab_key), pageAdapter.getItemTitle(viewPager.getCurrentItem()))
+ .apply();
}
@Override
@@ -537,7 +548,7 @@ public class VideoDetailFragment
}
break;
case 3:
- shareUrl(item.getName(), item.getUrl());
+ ShareUtils.shareUrl(this.getContext(), item.getName(), item.getUrl());
break;
default:
break;
@@ -626,13 +637,13 @@ public class VideoDetailFragment
switch (id) {
case R.id.menu_item_share: {
if (currentInfo != null) {
- shareUrl(currentInfo.getName(), currentInfo.getOriginalUrl());
+ ShareUtils.shareUrl(this.getContext(), currentInfo.getName(), currentInfo.getOriginalUrl());
}
return true;
}
case R.id.menu_item_openInBrowser: {
if (currentInfo != null) {
- openUrlInBrowser(currentInfo.getOriginalUrl());
+ ShareUtils.openUrlInBrowser(this.getContext(), currentInfo.getOriginalUrl());
}
return true;
}
@@ -813,6 +824,9 @@ public class VideoDetailFragment
}
private void initTabs() {
+ if (pageAdapter.getCount() != 0) {
+ selectedTabTag = pageAdapter.getItemTitle(viewPager.getCurrentItem());
+ }
pageAdapter.clearAllItems();
if(shouldShowComments()){
@@ -824,11 +838,17 @@ public class VideoDetailFragment
pageAdapter.addFragment(new Fragment(), RELATED_TAB_TAG);
}
+ if(pageAdapter.getCount() == 0){
+ pageAdapter.addFragment(new EmptyFragment(), EMPTY_TAB_TAG);
+ }
+
pageAdapter.notifyDataSetUpdate();
if(pageAdapter.getCount() < 2){
tabLayout.setVisibility(View.GONE);
}else{
+ int position = pageAdapter.getItemPositionByTitle(selectedTabTag);
+ if(position != -1) viewPager.setCurrentItem(position);
tabLayout.setVisibility(View.VISIBLE);
}
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java
index b61fe0d02..dbc3dd8a2 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java
@@ -34,6 +34,7 @@ import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
+import org.schabi.newpipe.util.ShareUtils;
import org.schabi.newpipe.util.StateSaver;
import java.util.Collections;
@@ -255,6 +256,7 @@ public abstract class BaseListFragment extends BaseStateFragment implem
if (context == null || context.getResources() == null || getActivity() == null) return;
final String[] commands = new String[]{
+ context.getResources().getString(R.string.direct_on_background),
context.getResources().getString(R.string.enqueue_on_background),
context.getResources().getString(R.string.enqueue_on_popup),
context.getResources().getString(R.string.append_playlist),
@@ -264,19 +266,22 @@ public abstract class BaseListFragment extends BaseStateFragment implem
final DialogInterface.OnClickListener actions = (dialogInterface, i) -> {
switch (i) {
case 0:
- NavigationHelper.enqueueOnBackgroundPlayer(context, new SinglePlayQueue(item));
+ NavigationHelper.playOnBackgroundPlayer(context, new SinglePlayQueue(item));
break;
case 1:
- NavigationHelper.enqueueOnPopupPlayer(activity, new SinglePlayQueue(item));
+ NavigationHelper.enqueueOnBackgroundPlayer(context, new SinglePlayQueue(item));
break;
case 2:
+ NavigationHelper.enqueueOnPopupPlayer(activity, new SinglePlayQueue(item));
+ break;
+ case 3:
if (getFragmentManager() != null) {
PlaylistAppendDialog.fromStreamInfoItems(Collections.singletonList(item))
.show(getFragmentManager(), TAG);
}
break;
- case 3:
- shareUrl(item.getName(), item.getUrl());
+ case 4:
+ ShareUtils.shareUrl(this.getContext(), item.getName(), item.getUrl());
break;
default:
break;
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java
index b9489ffa7..71865b04d 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java
@@ -46,6 +46,7 @@ import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.ImageDisplayConstants;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper;
+import org.schabi.newpipe.util.ShareUtils;
import java.util.ArrayList;
import java.util.Collections;
@@ -190,7 +191,7 @@ public class ChannelFragment extends BaseListInfoFragment {
}
break;
case 6:
- shareUrl(item.getName(), item.getUrl());
+ ShareUtils.shareUrl(this.getContext(), item.getName(), item.getUrl());
break;
default:
break;
@@ -233,10 +234,10 @@ public class ChannelFragment extends BaseListInfoFragment {
openRssFeed();
break;
case R.id.menu_item_openInBrowser:
- openUrlInBrowser(currentInfo.getOriginalUrl());
+ ShareUtils.openUrlInBrowser(this.getContext(), currentInfo.getOriginalUrl());
break;
case R.id.menu_item_share:
- shareUrl(name, currentInfo.getOriginalUrl());
+ ShareUtils.shareUrl(this.getContext(), name, currentInfo.getOriginalUrl());
break;
default:
return super.onOptionsItemSelected(item);
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java
index 0019a3819..2a775fe8f 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java
@@ -40,6 +40,7 @@ import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.ImageDisplayConstants;
import org.schabi.newpipe.util.NavigationHelper;
+import org.schabi.newpipe.util.ShareUtils;
import org.schabi.newpipe.util.ThemeHelper;
import java.util.ArrayList;
@@ -168,7 +169,7 @@ public class PlaylistFragment extends BaseListInfoFragment {
NavigationHelper.playOnPopupPlayer(activity, getPlayQueue(index));
break;
case 5:
- shareUrl(item.getName(), item.getUrl());
+ ShareUtils.shareUrl(this.getContext(), item.getName(), item.getUrl());
break;
default:
break;
@@ -230,10 +231,10 @@ public class PlaylistFragment extends BaseListInfoFragment {
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_openInBrowser:
- openUrlInBrowser(url);
+ ShareUtils.openUrlInBrowser(this.getContext(), url);
break;
case R.id.menu_item_share:
- shareUrl(name, url);
+ ShareUtils.shareUrl(this.getContext(), name, url);
break;
case R.id.menu_item_bookmark:
onBookmarkClicked();
@@ -305,6 +306,16 @@ public class PlaylistFragment extends BaseListInfoFragment {
NavigationHelper.playOnPopupPlayer(activity, getPlayQueue()));
headerBackgroundButton.setOnClickListener(view ->
NavigationHelper.playOnBackgroundPlayer(activity, getPlayQueue()));
+
+ headerPopupButton.setOnLongClickListener(view -> {
+ NavigationHelper.enqueueOnPopupPlayer(activity, getPlayQueue());
+ return true;
+ });
+
+ headerBackgroundButton.setOnLongClickListener(view -> {
+ NavigationHelper.enqueueOnBackgroundPlayer(activity, getPlayQueue());
+ return true;
+ });
}
private PlayQueue getPlayQueue() {
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
index e20d6bad3..a3b01f251 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
@@ -12,6 +12,7 @@ import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.TooltipCompat;
+import android.support.v7.widget.helper.ItemTouchHelper;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -45,10 +46,9 @@ import org.schabi.newpipe.fragments.list.BaseListFragment;
import org.schabi.newpipe.local.history.HistoryRecordManager;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction;
-import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.AnimationUtils;
+import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.ExtractorHelper;
-import org.schabi.newpipe.util.LayoutManagerSmoothScroller;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.ServiceHelper;
@@ -73,8 +73,8 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subjects.PublishSubject;
+import static android.support.v7.widget.helper.ItemTouchHelper.Callback.makeMovementFlags;
import static java.util.Arrays.asList;
-
import static org.schabi.newpipe.util.AnimationUtils.animateView;
public class SearchFragment
@@ -298,7 +298,23 @@ public class SearchFragment
suggestionsPanel = rootView.findViewById(R.id.suggestions_panel);
suggestionsRecyclerView = rootView.findViewById(R.id.suggestions_list);
suggestionsRecyclerView.setAdapter(suggestionListAdapter);
- suggestionsRecyclerView.setLayoutManager(new LayoutManagerSmoothScroller(activity));
+ new ItemTouchHelper(new ItemTouchHelper.Callback() {
+ @Override
+ public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
+ return getSuggestionMovementFlags(recyclerView, viewHolder);
+ }
+
+ @Override
+ public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder,
+ @NonNull RecyclerView.ViewHolder viewHolder1) {
+ return false;
+ }
+
+ @Override
+ public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
+ onSuggestionItemSwiped(viewHolder, i);
+ }
+ }).attachToRecyclerView(suggestionsRecyclerView);
searchToolbarContainer = activity.findViewById(R.id.toolbar_search_container);
searchEditText = searchToolbarContainer.findViewById(R.id.toolbar_search_edit_text);
@@ -901,4 +917,28 @@ public class SearchFragment
return true;
}
+
+ /*//////////////////////////////////////////////////////////////////////////
+ // Suggestion item touch helper
+ //////////////////////////////////////////////////////////////////////////*/
+
+ public int getSuggestionMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
+ final int position = viewHolder.getAdapterPosition();
+ final SuggestionItem item = suggestionListAdapter.getItem(position);
+ return item.fromHistory ? makeMovementFlags(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) : 0;
+ }
+
+ public void onSuggestionItemSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
+ final int position = viewHolder.getAdapterPosition();
+ final String query = suggestionListAdapter.getItem(position).query;
+ final Disposable onDelete = historyRecordManager.deleteSearchHistory(query)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(
+ howManyDeleted -> suggestionPublisher
+ .onNext(searchEditText.getText().toString()),
+ throwable -> showSnackBarError(throwable,
+ UserAction.DELETE_FROM_HISTORY, "none",
+ "Deleting item failed", R.string.general_error));
+ disposables.add(onDelete);
+ }
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java
index 7b5f72c53..3f4e9af0b 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java
@@ -75,7 +75,7 @@ public class SuggestionListAdapter extends RecyclerView.Adapter ellipsize());
+ } else {
+ ellipsize();
}
- itemContentView.setText(item.getCommentText());
if (null != item.getLikeCount()) {
itemLikesCountView.setText(String.valueOf(item.getLikeCount()));
}
itemPublishedTime.setText(item.getPublishedTime());
itemView.setOnClickListener(view -> {
- toggleEllipsize(item.getCommentText());
+ toggleEllipsize();
if (itemBuilder.getOnCommentsSelectedListener() != null) {
itemBuilder.getOnCommentsSelectedListener().selected(item);
}
});
}
- private void toggleEllipsize(String text) {
- // toggle ellipsize
- if (null == itemContentView.getEllipsize()) {
- itemContentView.setEllipsize(TextUtils.TruncateAt.END);
- itemContentView.setMaxLines(commentDefaultLines);
+ private void ellipsize() {
+ if (itemContentView.getLineCount() > commentDefaultLines){
+ int endOfLastLine = itemContentView.getLayout().getLineEnd(commentDefaultLines - 1);
+ int end = itemContentView.getText().toString().lastIndexOf(' ', endOfLastLine -2);
+ if(end == -1) end = Math.max(endOfLastLine -2, 0);
+ String newVal = itemContentView.getText().subSequence(0, end) + " …";
+ itemContentView.setText(newVal);
+ }
+ linkify();
+ }
+
+ private void toggleEllipsize() {
+ if (itemContentView.getText().toString().equals(commentText)) {
+ if (itemContentView.getLineCount() > commentDefaultLines) ellipsize();
} else {
- itemContentView.setEllipsize(null);
- itemContentView.setMaxLines(commentExpandedLines);
+ expand();
}
}
+
+ private void expand() {
+ itemContentView.setMaxLines(commentExpandedLines);
+ itemContentView.setText(commentText);
+ linkify();
+ }
+
+ private void linkify(){
+ Linkify.addLinks(itemContentView, Linkify.WEB_URLS);
+ Linkify.addLinks(itemContentView, pattern, null, null, timestampLink);
+ itemContentView.setMovementMethod(null);
+ }
}
diff --git a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java
index 32083fd42..5a62a3969 100644
--- a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java
@@ -8,7 +8,11 @@ import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
+import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -21,13 +25,16 @@ import org.schabi.newpipe.R;
import org.schabi.newpipe.database.LocalItem;
import org.schabi.newpipe.database.stream.StreamStatisticsEntry;
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
-import org.schabi.newpipe.local.BaseLocalListFragment;
import org.schabi.newpipe.info_list.InfoItemDialog;
+import org.schabi.newpipe.local.BaseLocalListFragment;
import org.schabi.newpipe.player.playqueue.PlayQueue;
import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
+import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction;
+import org.schabi.newpipe.settings.SettingsActivity;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
+import org.schabi.newpipe.util.ShareUtils;
import org.schabi.newpipe.util.ThemeHelper;
import java.util.ArrayList;
@@ -104,6 +111,12 @@ public class StatisticsPlaylistFragment
}
}
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ super.onCreateOptionsMenu(menu, inflater);
+ inflater.inflate(R.menu.menu_history, menu);
+ }
+
///////////////////////////////////////////////////////////////////////////
// Fragment LifeCycle - Views
///////////////////////////////////////////////////////////////////////////
@@ -155,6 +168,53 @@ public class StatisticsPlaylistFragment
});
}
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_history_clear:
+ new AlertDialog.Builder(activity)
+ .setTitle(R.string.delete_view_history_alert)
+ .setNegativeButton(R.string.cancel, ((dialog, which) -> dialog.dismiss()))
+ .setPositiveButton(R.string.delete, ((dialog, which) -> {
+ final Disposable onDelete = recordManager.deleteWholeStreamHistory()
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(
+ howManyDeleted -> Toast.makeText(getContext(),
+ R.string.view_history_deleted,
+ Toast.LENGTH_SHORT).show(),
+ throwable -> ErrorActivity.reportError(getContext(),
+ throwable,
+ SettingsActivity.class, null,
+ ErrorActivity.ErrorInfo.make(
+ UserAction.DELETE_FROM_HISTORY,
+ "none",
+ "Delete view history",
+ R.string.general_error)));
+
+ final Disposable onClearOrphans = recordManager.removeOrphanedRecords()
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(
+ howManyDeleted -> {},
+ throwable -> ErrorActivity.reportError(getContext(),
+ throwable,
+ SettingsActivity.class, null,
+ ErrorActivity.ErrorInfo.make(
+ UserAction.DELETE_FROM_HISTORY,
+ "none",
+ "Delete search history",
+ R.string.general_error)));
+ disposables.add(onClearOrphans);
+ disposables.add(onDelete);
+ }))
+ .create()
+ .show();
+ break;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ return true;
+ }
+
///////////////////////////////////////////////////////////////////////////
// Fragment LifeCycle - Loading
///////////////////////////////////////////////////////////////////////////
@@ -335,7 +395,7 @@ public class StatisticsPlaylistFragment
deleteEntry(index);
break;
case 6:
- shareUrl(item.toStreamInfoItem().getName(), item.toStreamInfoItem().getUrl());
+ ShareUtils.shareUrl(this.getContext(), item.toStreamInfoItem().getName(), item.toStreamInfoItem().getUrl());
break;
default:
break;
diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
index f400061e1..dc101fade 100644
--- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
@@ -34,6 +34,7 @@ import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
+import org.schabi.newpipe.util.ShareUtils;
import java.util.ArrayList;
import java.util.Collections;
@@ -555,7 +556,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment= 26 /*Oreo*/) updateNotificationThumbnail();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O /*Oreo*/) updateNotificationThumbnail();
if (bigNotRemoteView != null) {
+ if(cachedDuration != duration) {
+ cachedDuration = duration;
+ cachedDurationString = getTimeString(duration);
+ }
bigNotRemoteView.setProgressBar(R.id.notificationProgressBar, duration, currentProgress, false);
- bigNotRemoteView.setTextViewText(R.id.notificationTime, getTimeString(currentProgress) + " / " + getTimeString(duration));
+ bigNotRemoteView.setTextViewText(R.id.notificationTime, getTimeString(currentProgress) + " / " + cachedDurationString);
}
if (notRemoteView != null) {
notRemoteView.setProgressBar(R.id.notificationProgressBar, duration, currentProgress, false);
diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java
index d1b06c9c5..22c69fdd4 100644
--- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java
@@ -44,6 +44,7 @@ import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.BehindLiveWindowException;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.TrackGroupArray;
+import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
@@ -63,7 +64,6 @@ import org.schabi.newpipe.player.helper.PlayerDataSource;
import org.schabi.newpipe.player.helper.PlayerHelper;
import org.schabi.newpipe.player.mediasource.FailedMediaSource;
import org.schabi.newpipe.player.playback.BasePlayerMediaSession;
-import org.schabi.newpipe.player.playback.CustomTrackSelector;
import org.schabi.newpipe.player.playback.MediaSourceManager;
import org.schabi.newpipe.player.playback.PlaybackListener;
import org.schabi.newpipe.player.playqueue.PlayQueue;
@@ -113,7 +113,7 @@ public abstract class BasePlayer implements
final protected HistoryRecordManager recordManager;
@NonNull
- final protected CustomTrackSelector trackSelector;
+ final protected DefaultTrackSelector trackSelector;
@NonNull
final protected PlayerDataSource dataSource;
@@ -207,9 +207,8 @@ public abstract class BasePlayer implements
final DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
this.dataSource = new PlayerDataSource(context, userAgent, bandwidthMeter);
- final TrackSelection.Factory trackSelectionFactory =
- PlayerHelper.getQualitySelector(context, bandwidthMeter);
- this.trackSelector = new CustomTrackSelector(trackSelectionFactory);
+ final TrackSelection.Factory trackSelectionFactory = PlayerHelper.getQualitySelector(context);
+ this.trackSelector = new DefaultTrackSelector(trackSelectionFactory);
this.loadControl = new LoadController(context);
this.renderFactory = new DefaultRenderersFactory(context);
@@ -225,7 +224,7 @@ public abstract class BasePlayer implements
public void initPlayer(final boolean playOnReady) {
if (DEBUG) Log.d(TAG, "initPlayer() called with: context = [" + context + "]");
- simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(renderFactory, trackSelector, loadControl);
+ simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(context, renderFactory, trackSelector, loadControl);
simpleExoPlayer.addListener(this);
simpleExoPlayer.setPlayWhenReady(playOnReady);
simpleExoPlayer.setSeekParameters(PlayerHelper.getSeekParameters(context));
@@ -270,6 +269,18 @@ public abstract class BasePlayer implements
final boolean playbackSkipSilence = intent.getBooleanExtra(PLAYBACK_SKIP_SILENCE,
getPlaybackSkipSilence());
+ // seek to timestamp if stream is already playing
+ if (simpleExoPlayer != null
+ && queue.size() == 1
+ && playQueue != null
+ && playQueue.getItem() != null
+ && queue.getItem().getUrl().equals(playQueue.getItem().getUrl())
+ && queue.getItem().getRecoveryPosition() != PlayQueueItem.RECOVERY_UNSET
+ ) {
+ simpleExoPlayer.seekTo(playQueue.getIndex(), queue.getItem().getRecoveryPosition());
+ return;
+ }
+
// Good to go...
initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence,
/*playOnInit=*/true);
diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
index cc906bbca..0bb9c7b2b 100644
--- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
@@ -76,6 +76,7 @@ import org.schabi.newpipe.util.AnimationUtils;
import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
+import org.schabi.newpipe.util.ShareUtils;
import org.schabi.newpipe.util.StateSaver;
import org.schabi.newpipe.util.ThemeHelper;
@@ -242,6 +243,11 @@ public final class MainVideoPlayer extends AppCompatActivity
isBackPressed = false;
}
+ @Override
+ protected void attachBaseContext(Context newBase) {
+ super.attachBaseContext(AudioServiceLeakFix.preventLeakOf(newBase));
+ }
+
/*//////////////////////////////////////////////////////////////////////////
// State Saving
//////////////////////////////////////////////////////////////////////////*/
@@ -278,14 +284,9 @@ public final class MainVideoPlayer extends AppCompatActivity
if (DEBUG) Log.d(TAG, "showSystemUi() called");
if (playerImpl != null && playerImpl.queueVisible) return;
- final int visibility;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- visibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
- | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
- } else {
- visibility = View.STATUS_BAR_VISIBLE;
- }
+ final int visibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
@ColorInt final int systenUiColor =
@@ -354,11 +355,7 @@ public final class MainVideoPlayer extends AppCompatActivity
protected void setShuffleButton(final ImageButton shuffleButton, final boolean shuffled) {
final int shuffleAlpha = shuffled ? 255 : 77;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- shuffleButton.setImageAlpha(shuffleAlpha);
- } else {
- shuffleButton.setAlpha(shuffleAlpha);
- }
+ shuffleButton.setImageAlpha(shuffleAlpha);
}
private boolean isInMultiWindow() {
@@ -408,6 +405,7 @@ public final class MainVideoPlayer extends AppCompatActivity
private boolean queueVisible;
private ImageButton moreOptionsButton;
+ private ImageButton shareButton;
private ImageButton toggleOrientationButton;
private ImageButton switchPopupButton;
private ImageButton switchBackgroundButton;
@@ -443,6 +441,7 @@ public final class MainVideoPlayer extends AppCompatActivity
this.moreOptionsButton = rootView.findViewById(R.id.moreOptionsButton);
this.secondaryControls = rootView.findViewById(R.id.secondaryControls);
+ this.shareButton = rootView.findViewById(R.id.share);
this.toggleOrientationButton = rootView.findViewById(R.id.toggleOrientation);
this.switchBackgroundButton = rootView.findViewById(R.id.switchBackground);
this.switchPopupButton = rootView.findViewById(R.id.switchPopup);
@@ -489,6 +488,7 @@ public final class MainVideoPlayer extends AppCompatActivity
closeButton.setOnClickListener(this);
moreOptionsButton.setOnClickListener(this);
+ shareButton.setOnClickListener(this);
toggleOrientationButton.setOnClickListener(this);
switchBackgroundButton.setOnClickListener(this);
switchPopupButton.setOnClickListener(this);
@@ -639,6 +639,9 @@ public final class MainVideoPlayer extends AppCompatActivity
} else if (v.getId() == moreOptionsButton.getId()) {
onMoreOptionsClicked();
+ } else if (v.getId() == shareButton.getId()) {
+ onShareClicked();
+
} else if (v.getId() == toggleOrientationButton.getId()) {
onScreenRotationClicked();
@@ -695,6 +698,13 @@ public final class MainVideoPlayer extends AppCompatActivity
showControls(DEFAULT_CONTROLS_DURATION);
}
+ private void onShareClicked() {
+ // share video at the current time (youtube.com/watch?v=ID&t=SECONDS)
+ ShareUtils.shareUrl(MainVideoPlayer.this,
+ playerImpl.getVideoTitle(),
+ playerImpl.getVideoUrl() + "&t=" + String.valueOf(playerImpl.getPlaybackSeekBar().getProgress()/1000));
+ }
+
private void onScreenRotationClicked() {
if (DEBUG) Log.d(TAG, "onScreenRotationClicked() called");
toggleOrientation();
@@ -861,8 +871,8 @@ public final class MainVideoPlayer extends AppCompatActivity
if (DEBUG) Log.d(TAG, "hideControls() called with: delay = [" + delay + "]");
getControlsVisibilityHandler().removeCallbacksAndMessages(null);
getControlsVisibilityHandler().postDelayed(() ->
- animateView(getControlsRoot(), false, duration, 0,
- MainVideoPlayer.this::hideSystemUi),
+ animateView(getControlsRoot(), false, duration, 0,
+ MainVideoPlayer.this::hideSystemUi),
/*delayMillis=*/delay
);
}
@@ -1066,9 +1076,9 @@ public final class MainVideoPlayer extends AppCompatActivity
final int resId =
currentProgressPercent <= 0 ? R.drawable.ic_volume_off_white_72dp
- : currentProgressPercent < 0.25 ? R.drawable.ic_volume_mute_white_72dp
- : currentProgressPercent < 0.75 ? R.drawable.ic_volume_down_white_72dp
- : R.drawable.ic_volume_up_white_72dp;
+ : currentProgressPercent < 0.25 ? R.drawable.ic_volume_mute_white_72dp
+ : currentProgressPercent < 0.75 ? R.drawable.ic_volume_down_white_72dp
+ : R.drawable.ic_volume_up_white_72dp;
playerImpl.getVolumeImageView().setImageDrawable(
AppCompatResources.getDrawable(getApplicationContext(), resId)
@@ -1092,8 +1102,8 @@ public final class MainVideoPlayer extends AppCompatActivity
final int resId =
currentProgressPercent < 0.25 ? R.drawable.ic_brightness_low_white_72dp
- : currentProgressPercent < 0.75 ? R.drawable.ic_brightness_medium_white_72dp
- : R.drawable.ic_brightness_high_white_72dp;
+ : currentProgressPercent < 0.75 ? R.drawable.ic_brightness_medium_white_72dp
+ : R.drawable.ic_brightness_high_white_72dp;
playerImpl.getBrightnessImageView().setImageDrawable(
AppCompatResources.getDrawable(getApplicationContext(), resId)
diff --git a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java
index 8ea3d509c..7578c444c 100644
--- a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java
@@ -181,6 +181,11 @@ public final class PopupVideoPlayer extends Service {
closePopup();
}
+ @Override
+ protected void attachBaseContext(Context base) {
+ super.attachBaseContext(AudioServiceLeakFix.preventLeakOf(base));
+ }
+
@Override
public IBinder onBind(Intent intent) {
return mBinder;
diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java
index 2ec4275fc..3e04f1e3a 100644
--- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java
@@ -3,7 +3,6 @@ package org.schabi.newpipe.player;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
-import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
@@ -653,11 +652,7 @@ public abstract class ServicePlayerActivity extends AppCompatActivity
}
final int shuffleAlpha = shuffled ? 255 : 77;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- shuffleButton.setImageAlpha(shuffleAlpha);
- } else {
- shuffleButton.setAlpha(shuffleAlpha);
- }
+ shuffleButton.setImageAlpha(shuffleAlpha);
}
private void onPlaybackParameterChanged(final PlaybackParameters parameters) {
diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java
index d30d9b8be..fb60ac473 100644
--- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java
@@ -212,7 +212,6 @@ public abstract class VideoPlayer extends BasePlayer
@Override
public void initListeners() {
- super.initListeners();
playbackSeekBar.setOnSeekBarChangeListener(this);
playbackSpeedTextView.setOnClickListener(this);
qualityTextView.setOnClickListener(this);
@@ -306,9 +305,9 @@ public abstract class VideoPlayer extends BasePlayer
captionItem.setOnMenuItemClickListener(menuItem -> {
final int textRendererIndex = getRendererIndex(C.TRACK_TYPE_TEXT);
if (textRendererIndex != RENDERER_UNAVAILABLE) {
- trackSelector.setPreferredTextLanguage(captionLanguage);
trackSelector.setParameters(trackSelector.buildUponParameters()
- .setRendererDisabled(textRendererIndex, false));
+ .setRendererDisabled(textRendererIndex, false)
+ .setPreferredTextLanguage(captionLanguage));
}
return true;
});
@@ -509,12 +508,12 @@ public abstract class VideoPlayer extends BasePlayer
}
// Normalize mismatching language strings
- final String preferredLanguage = trackSelector.getPreferredTextLanguage();
-
+ final String preferredLanguage = trackSelector.getParameters().preferredTextLanguage;
// Build UI
buildCaptionMenu(availableLanguages);
if (trackSelector.getParameters().getRendererDisabled(textRenderer) ||
- preferredLanguage == null || !availableLanguages.contains(preferredLanguage)) {
+ preferredLanguage == null || (!availableLanguages.contains(preferredLanguage)
+ && !containsCaseInsensitive(availableLanguages, preferredLanguage))) {
captionTextView.setText(R.string.caption_none);
} else {
captionTextView.setText(preferredLanguage);
@@ -522,6 +521,15 @@ public abstract class VideoPlayer extends BasePlayer
captionTextView.setVisibility(availableLanguages.isEmpty() ? View.GONE : View.VISIBLE);
}
+ // workaround to match normalized captions like english to English or deutsch to Deutsch
+ private static boolean containsCaseInsensitive(List list, String toFind) {
+ for(String i : list){
+ if(i.equalsIgnoreCase(toFind))
+ return true;
+ }
+ return false;
+ }
+
/*//////////////////////////////////////////////////////////////////////////
// General Player
//////////////////////////////////////////////////////////////////////////*/
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 f148aed27..24d1ee1ca 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
@@ -12,13 +12,11 @@ import android.os.Build;
import android.support.annotation.NonNull;
import android.util.Log;
-import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.SimpleExoPlayer;
-import com.google.android.exoplayer2.audio.AudioRendererEventListener;
-import com.google.android.exoplayer2.decoder.DecoderCounters;
+import com.google.android.exoplayer2.analytics.AnalyticsListener;
public class AudioReactor implements AudioManager.OnAudioFocusChangeListener,
- AudioRendererEventListener {
+ AnalyticsListener {
private static final String TAG = "AudioFocusReactor";
@@ -42,7 +40,7 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener,
this.player = player;
this.context = context;
this.audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
- player.addAudioDebugListener(this);
+ player.addAnalyticsListener(this);
if (SHOULD_BUILD_FOCUS_REQUEST) {
request = new AudioFocusRequest.Builder(FOCUS_GAIN_TYPE)
@@ -57,7 +55,7 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener,
public void dispose() {
abandonAudioFocus();
- player.removeAudioDebugListener(this);
+ player.removeAnalyticsListener(this);
}
/*//////////////////////////////////////////////////////////////////////////
@@ -164,29 +162,12 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener,
//////////////////////////////////////////////////////////////////////////*/
@Override
- public void onAudioSessionId(int i) {
+ public void onAudioSessionId(EventTime eventTime, int audioSessionId) {
if (!PlayerHelper.isUsingDSP(context)) return;
final Intent intent = new Intent(AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION);
- intent.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, i);
+ intent.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, audioSessionId);
intent.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, context.getPackageName());
context.sendBroadcast(intent);
}
-
- @Override
- public void onAudioEnabled(DecoderCounters decoderCounters) {}
-
- @Override
- public void onAudioDecoderInitialized(String s, long l, long l1) {}
-
- @Override
- public void onAudioInputFormatChanged(Format format) {}
-
- @Override
- public void onAudioSinkUnderrun(int bufferSize,
- long bufferSizeMs,
- long elapsedSinceLastFeedMs) {}
-
- @Override
- public void onAudioDisabled(DecoderCounters decoderCounters) {}
}
diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/CacheFactory.java b/app/src/main/java/org/schabi/newpipe/player/helper/CacheFactory.java
index b8d8dc12f..091efc942 100644
--- a/app/src/main/java/org/schabi/newpipe/player/helper/CacheFactory.java
+++ b/app/src/main/java/org/schabi/newpipe/player/helper/CacheFactory.java
@@ -33,14 +33,14 @@ import java.io.File;
public CacheFactory(@NonNull final Context context,
@NonNull final String userAgent,
- @NonNull final TransferListener super DataSource> transferListener) {
+ @NonNull final TransferListener transferListener) {
this(context, userAgent, transferListener, PlayerHelper.getPreferredCacheSize(context),
PlayerHelper.getPreferredFileSize(context));
}
private CacheFactory(@NonNull final Context context,
@NonNull final String userAgent,
- @NonNull final TransferListener super DataSource> transferListener,
+ @NonNull final TransferListener transferListener,
final long maxCacheSize,
final long maxFileSize) {
this.maxFileSize = maxFileSize;
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 7670deb98..4239dd62f 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
@@ -2,17 +2,12 @@ package org.schabi.newpipe.player.helper;
import android.content.Context;
-import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.DefaultLoadControl;
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.TrackSelectionArray;
import com.google.android.exoplayer2.upstream.Allocator;
-import com.google.android.exoplayer2.upstream.DefaultAllocator;
-
-import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_PRIORITIZE_TIME_OVER_SIZE_THRESHOLDS;
-import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_TARGET_BUFFER_BYTES;
public class LoadController implements LoadControl {
@@ -36,15 +31,10 @@ public class LoadController implements LoadControl {
final int optimalPlaybackBufferMs) {
this.initialPlaybackBufferUs = initialPlaybackBufferMs * 1000;
- final DefaultAllocator allocator = new DefaultAllocator(true,
- C.DEFAULT_BUFFER_SEGMENT_SIZE);
-
- internalLoadControl = new DefaultLoadControl(allocator,
- /*minBufferMs=*/minimumPlaybackbufferMs,
- /*maxBufferMs=*/optimalPlaybackBufferMs,
- /*bufferForPlaybackMs=*/initialPlaybackBufferMs,
- /*bufferForPlaybackAfterRebufferMs=*/initialPlaybackBufferMs,
- DEFAULT_TARGET_BUFFER_BYTES, DEFAULT_PRIORITIZE_TIME_OVER_SIZE_THRESHOLDS);
+ DefaultLoadControl.Builder builder = new DefaultLoadControl.Builder();
+ builder.setBufferDurationsMs(minimumPlaybackbufferMs, optimalPlaybackBufferMs,
+ initialPlaybackBufferMs, initialPlaybackBufferMs);
+ internalLoadControl = builder.createDefaultLoadControl();
}
/*//////////////////////////////////////////////////////////////////////////
diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerDataSource.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerDataSource.java
index 133121269..5743891c2 100644
--- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerDataSource.java
+++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerDataSource.java
@@ -12,6 +12,7 @@ import com.google.android.exoplayer2.source.smoothstreaming.DefaultSsChunkSource
import com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
+import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
import com.google.android.exoplayer2.upstream.TransferListener;
public class PlayerDataSource {
@@ -24,7 +25,7 @@ public class PlayerDataSource {
public PlayerDataSource(@NonNull final Context context,
@NonNull final String userAgent,
- @NonNull final TransferListener super DataSource> transferListener) {
+ @NonNull final TransferListener transferListener) {
cacheDataSourceFactory = new CacheFactory(context, userAgent, transferListener);
cachelessDataSourceFactory = new DefaultDataSourceFactory(context, userAgent, transferListener);
}
@@ -32,21 +33,21 @@ public class PlayerDataSource {
public SsMediaSource.Factory getLiveSsMediaSourceFactory() {
return new SsMediaSource.Factory(new DefaultSsChunkSource.Factory(
cachelessDataSourceFactory), cachelessDataSourceFactory)
- .setMinLoadableRetryCount(MANIFEST_MINIMUM_RETRY)
+ .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(MANIFEST_MINIMUM_RETRY))
.setLivePresentationDelayMs(LIVE_STREAM_EDGE_GAP_MILLIS);
}
public HlsMediaSource.Factory getLiveHlsMediaSourceFactory() {
return new HlsMediaSource.Factory(cachelessDataSourceFactory)
.setAllowChunklessPreparation(true)
- .setMinLoadableRetryCount(MANIFEST_MINIMUM_RETRY);
+ .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(MANIFEST_MINIMUM_RETRY));
}
public DashMediaSource.Factory getLiveDashMediaSourceFactory() {
return new DashMediaSource.Factory(new DefaultDashChunkSource.Factory(
cachelessDataSourceFactory), cachelessDataSourceFactory)
- .setMinLoadableRetryCount(MANIFEST_MINIMUM_RETRY)
- .setLivePresentationDelayMs(LIVE_STREAM_EDGE_GAP_MILLIS);
+ .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(MANIFEST_MINIMUM_RETRY))
+ .setLivePresentationDelayMs(LIVE_STREAM_EDGE_GAP_MILLIS, true);
}
public SsMediaSource.Factory getSsMediaSourceFactory() {
@@ -65,7 +66,7 @@ public class PlayerDataSource {
public ExtractorMediaSource.Factory getExtractorMediaSourceFactory() {
return new ExtractorMediaSource.Factory(cacheDataSourceFactory)
- .setMinLoadableRetryCount(EXTRACTOR_MINIMUM_RETRY);
+ .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(EXTRACTOR_MINIMUM_RETRY));
}
public ExtractorMediaSource.Factory getExtractorMediaSourceFactory(@NonNull final String key) {
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 e1960247e..7248857b5 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
@@ -14,7 +14,6 @@ import com.google.android.exoplayer2.text.CaptionStyleCompat;
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
-import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.util.MimeTypes;
import org.schabi.newpipe.R;
@@ -70,10 +69,10 @@ public class PlayerHelper {
////////////////////////////////////////////////////////////////////////////
public static String getTimeString(int milliSeconds) {
- long seconds = (milliSeconds % 60000L) / 1000L;
- long minutes = (milliSeconds % 3600000L) / 60000L;
- long hours = (milliSeconds % 86400000L) / 3600000L;
- long days = (milliSeconds % (86400000L * 7L)) / 86400000L;
+ int seconds = (milliSeconds % 60000) / 1000;
+ int minutes = (milliSeconds % 3600000) / 60000;
+ int hours = (milliSeconds % 86400000) / 3600000;
+ int days = (milliSeconds % (86400000 * 7)) / 86400000;
stringBuilder.setLength(0);
return days > 0 ? stringFormatter.format("%d:%02d:%02d:%02d", days, hours, minutes, seconds).toString()
@@ -240,9 +239,8 @@ public class PlayerHelper {
return 60000;
}
- public static TrackSelection.Factory getQualitySelector(@NonNull final Context context,
- @NonNull final BandwidthMeter meter) {
- return new AdaptiveTrackSelection.Factory(meter,
+ public static TrackSelection.Factory getQualitySelector(@NonNull final Context context) {
+ return new AdaptiveTrackSelection.Factory(
/*bufferDurationRequiredForQualityIncrease=*/1000,
AdaptiveTrackSelection.DEFAULT_MAX_DURATION_FOR_QUALITY_DECREASE_MS,
AdaptiveTrackSelection.DEFAULT_MIN_DURATION_TO_RETAIN_AFTER_DISCARD_MS,
diff --git a/app/src/main/java/org/schabi/newpipe/player/mediasource/FailedMediaSource.java b/app/src/main/java/org/schabi/newpipe/player/mediasource/FailedMediaSource.java
index 2f233c464..cc9cd36bc 100644
--- a/app/src/main/java/org/schabi/newpipe/player/mediasource/FailedMediaSource.java
+++ b/app/src/main/java/org/schabi/newpipe/player/mediasource/FailedMediaSource.java
@@ -1,12 +1,13 @@
package org.schabi.newpipe.player.mediasource;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.util.Log;
-import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.source.BaseMediaSource;
import com.google.android.exoplayer2.source.MediaPeriod;
import com.google.android.exoplayer2.upstream.Allocator;
+import com.google.android.exoplayer2.upstream.TransferListener;
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
@@ -79,7 +80,7 @@ public class FailedMediaSource extends BaseMediaSource implements ManagedMediaSo
}
@Override
- public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator) {
+ public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator, long startPositionUs) {
return null;
}
@@ -88,7 +89,7 @@ public class FailedMediaSource extends BaseMediaSource implements ManagedMediaSo
@Override
- protected void prepareSourceInternal(ExoPlayer player, boolean isTopLevelSource) {
+ protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) {
Log.e(TAG, "Loading failed source: ", error);
}
diff --git a/app/src/main/java/org/schabi/newpipe/player/mediasource/LoadedMediaSource.java b/app/src/main/java/org/schabi/newpipe/player/mediasource/LoadedMediaSource.java
index c39b0a03d..d36a3e305 100644
--- a/app/src/main/java/org/schabi/newpipe/player/mediasource/LoadedMediaSource.java
+++ b/app/src/main/java/org/schabi/newpipe/player/mediasource/LoadedMediaSource.java
@@ -2,12 +2,13 @@ package org.schabi.newpipe.player.mediasource;
import android.os.Handler;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
-import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.source.MediaPeriod;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.MediaSourceEventListener;
import com.google.android.exoplayer2.upstream.Allocator;
+import com.google.android.exoplayer2.upstream.TransferListener;
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
@@ -36,9 +37,8 @@ public class LoadedMediaSource implements ManagedMediaSource {
}
@Override
- public void prepareSource(ExoPlayer player, boolean isTopLevelSource,
- SourceInfoRefreshListener listener) {
- source.prepareSource(player, isTopLevelSource, listener);
+ public void prepareSource(SourceInfoRefreshListener listener, @Nullable TransferListener mediaTransferListener) {
+ source.prepareSource(listener, mediaTransferListener);
}
@Override
@@ -47,8 +47,8 @@ public class LoadedMediaSource implements ManagedMediaSource {
}
@Override
- public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator) {
- return source.createPeriod(id, allocator);
+ public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator, long startPositionUs) {
+ return source.createPeriod(id, allocator, startPositionUs);
}
@Override
diff --git a/app/src/main/java/org/schabi/newpipe/player/mediasource/ManagedMediaSourcePlaylist.java b/app/src/main/java/org/schabi/newpipe/player/mediasource/ManagedMediaSourcePlaylist.java
index 5fe107657..fe29707fc 100644
--- a/app/src/main/java/org/schabi/newpipe/player/mediasource/ManagedMediaSourcePlaylist.java
+++ b/app/src/main/java/org/schabi/newpipe/player/mediasource/ManagedMediaSourcePlaylist.java
@@ -1,5 +1,5 @@
package org.schabi.newpipe.player.mediasource;
-
+import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -86,21 +86,22 @@ public class ManagedMediaSourcePlaylist {
/**
* Invalidates the {@link ManagedMediaSource} at the given index by replacing it
* with a {@link PlaceholderMediaSource}.
- * @see #update(int, ManagedMediaSource, Runnable)
+ * @see #update(int, ManagedMediaSource, Handler, Runnable)
* */
public synchronized void invalidate(final int index,
+ @Nullable final Handler handler,
@Nullable final Runnable finalizingAction) {
if (get(index) instanceof PlaceholderMediaSource) return;
- update(index, new PlaceholderMediaSource(), finalizingAction);
+ update(index, new PlaceholderMediaSource(), handler, finalizingAction);
}
/**
* Updates the {@link ManagedMediaSource} in {@link ConcatenatingMediaSource}
* at the given index with a given {@link ManagedMediaSource}.
- * @see #update(int, ManagedMediaSource, Runnable)
+ * @see #update(int, ManagedMediaSource, Handler, Runnable)
* */
public synchronized void update(final int index, @NonNull final ManagedMediaSource source) {
- update(index, source, /*doNothing=*/null);
+ update(index, source, null, /*doNothing=*/null);
}
/**
@@ -108,9 +109,10 @@ public class ManagedMediaSourcePlaylist {
* at the given index with a given {@link ManagedMediaSource}. If the index is out of bound,
* then the replacement is ignored.
* @see ConcatenatingMediaSource#addMediaSource
- * @see ConcatenatingMediaSource#removeMediaSource(int, Runnable)
+ * @see ConcatenatingMediaSource#removeMediaSource(int, Handler, Runnable)
* */
public synchronized void update(final int index, @NonNull final ManagedMediaSource source,
+ @Nullable final Handler handler,
@Nullable final Runnable finalizingAction) {
if (index < 0 || index >= internalSource.getSize()) return;
@@ -126,6 +128,6 @@ public class ManagedMediaSourcePlaylist {
// Because of the above race condition, it is thus only safe to synchronize the player
// in the finalizing action AFTER the removal is complete and the timeline has changed.
- internalSource.removeMediaSource(index, finalizingAction);
+ internalSource.removeMediaSource(index, handler, finalizingAction);
}
}
diff --git a/app/src/main/java/org/schabi/newpipe/player/mediasource/PlaceholderMediaSource.java b/app/src/main/java/org/schabi/newpipe/player/mediasource/PlaceholderMediaSource.java
index bfd734393..377ca55a3 100644
--- a/app/src/main/java/org/schabi/newpipe/player/mediasource/PlaceholderMediaSource.java
+++ b/app/src/main/java/org/schabi/newpipe/player/mediasource/PlaceholderMediaSource.java
@@ -1,20 +1,21 @@
package org.schabi.newpipe.player.mediasource;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
-import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.source.BaseMediaSource;
import com.google.android.exoplayer2.source.MediaPeriod;
import com.google.android.exoplayer2.upstream.Allocator;
+import com.google.android.exoplayer2.upstream.TransferListener;
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
public class PlaceholderMediaSource extends BaseMediaSource implements ManagedMediaSource {
// Do nothing, so this will stall the playback
@Override public void maybeThrowSourceInfoRefreshError() {}
- @Override public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator) { return null; }
+ @Override public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator, long startPositionUs) { return null; }
@Override public void releasePeriod(MediaPeriod mediaPeriod) {}
- @Override protected void prepareSourceInternal(ExoPlayer player, boolean isTopLevelSource) {}
+ @Override protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) {}
@Override protected void releaseSourceInternal() {}
@Override
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
deleted file mode 100644
index efe6f3a58..000000000
--- a/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package org.schabi.newpipe.player.playback;
-
-import android.support.annotation.NonNull;
-import android.text.TextUtils;
-
-import com.google.android.exoplayer2.C;
-import com.google.android.exoplayer2.Format;
-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.FixedTrackSelection;
-import com.google.android.exoplayer2.trackselection.TrackSelection;
-import com.google.android.exoplayer2.util.Assertions;
-
-/**
- * This class allows irregular text language labels for use when selecting text captions and
- * is mostly a copy-paste from {@link DefaultTrackSelector}.
- *
- * This is a hack and should be removed once ExoPlayer fixes language normalization to accept
- * a broader set of languages.
- * */
-public class CustomTrackSelector extends DefaultTrackSelector {
- private static final int WITHIN_RENDERER_CAPABILITIES_BONUS = 1000;
-
- private String preferredTextLanguage;
-
- public CustomTrackSelector(TrackSelection.Factory adaptiveTrackSelectionFactory) {
- super(adaptiveTrackSelectionFactory);
- }
-
- public String getPreferredTextLanguage() {
- return preferredTextLanguage;
- }
-
- public void setPreferredTextLanguage(@NonNull final String label) {
- Assertions.checkNotNull(label);
- if (!label.equals(preferredTextLanguage)) {
- preferredTextLanguage = label;
- invalidate();
- }
- }
-
- /** @see DefaultTrackSelector#formatHasLanguage(Format, String)*/
- protected static boolean formatHasLanguage(Format format, String language) {
- return language != null && TextUtils.equals(language, format.language);
- }
-
- /** @see DefaultTrackSelector#formatHasNoLanguage(Format)*/
- protected static boolean formatHasNoLanguage(Format format) {
- return TextUtils.isEmpty(format.language) || formatHasLanguage(format, C.LANGUAGE_UNDETERMINED);
- }
-
- /** @see DefaultTrackSelector#selectTextTrack(TrackGroupArray, int[][], Parameters) */
- @Override
- protected TrackSelection selectTextTrack(TrackGroupArray groups, int[][] formatSupport,
- Parameters params) {
- TrackGroup selectedGroup = null;
- int selectedTrackIndex = 0;
- int selectedTrackScore = 0;
- for (int groupIndex = 0; groupIndex < groups.length; groupIndex++) {
- TrackGroup trackGroup = groups.get(groupIndex);
- int[] trackFormatSupport = formatSupport[groupIndex];
- for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
- if (isSupported(trackFormatSupport[trackIndex],
- params.exceedRendererCapabilitiesIfNecessary)) {
- Format format = trackGroup.getFormat(trackIndex);
- int maskedSelectionFlags =
- format.selectionFlags & ~params.disabledTextTrackSelectionFlags;
- boolean isDefault = (maskedSelectionFlags & C.SELECTION_FLAG_DEFAULT) != 0;
- boolean isForced = (maskedSelectionFlags & C.SELECTION_FLAG_FORCED) != 0;
- int trackScore;
- boolean preferredLanguageFound = formatHasLanguage(format, preferredTextLanguage);
- if (preferredLanguageFound
- || (params.selectUndeterminedTextLanguage && formatHasNoLanguage(format))) {
- if (isDefault) {
- trackScore = 8;
- } else if (!isForced) {
- // Prefer non-forced to forced if a preferred text language has been specified. Where
- // both are provided the non-forced track will usually contain the forced subtitles as
- // a subset.
- trackScore = 6;
- } else {
- trackScore = 4;
- }
- trackScore += preferredLanguageFound ? 1 : 0;
- } else if (isDefault) {
- trackScore = 3;
- } else if (isForced) {
- if (formatHasLanguage(format, params.preferredAudioLanguage)) {
- trackScore = 2;
- } else {
- trackScore = 1;
- }
- } else {
- // Track should not be selected.
- continue;
- }
- if (isSupported(trackFormatSupport[trackIndex], false)) {
- trackScore += WITHIN_RENDERER_CAPABILITIES_BONUS;
- }
- if (trackScore > selectedTrackScore) {
- selectedGroup = trackGroup;
- selectedTrackIndex = trackIndex;
- selectedTrackScore = trackScore;
- }
- }
- }
- }
- return selectedGroup == null ? null
- : new FixedTrackSelection(selectedGroup, selectedTrackIndex);
- }
-}
diff --git a/app/src/main/java/org/schabi/newpipe/player/playback/MediaSourceManager.java b/app/src/main/java/org/schabi/newpipe/player/playback/MediaSourceManager.java
index 3c5642d51..db8cc797e 100644
--- a/app/src/main/java/org/schabi/newpipe/player/playback/MediaSourceManager.java
+++ b/app/src/main/java/org/schabi/newpipe/player/playback/MediaSourceManager.java
@@ -1,5 +1,5 @@
package org.schabi.newpipe.player.playback;
-
+import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.ArraySet;
@@ -103,6 +103,8 @@ public class MediaSourceManager {
@NonNull private ManagedMediaSourcePlaylist playlist;
+ private Handler removeMediaSourceHandler = new Handler();
+
public MediaSourceManager(@NonNull final PlaybackListener listener,
@NonNull final PlayQueue playQueue) {
this(listener, playQueue, /*loadDebounceMillis=*/400L,
@@ -395,7 +397,7 @@ public class MediaSourceManager {
if (isCorrectionNeeded(item)) {
if (DEBUG) Log.d(TAG, "MediaSource - Updating index=[" + itemIndex + "] with " +
"title=[" + item.getTitle() + "] at url=[" + item.getUrl() + "]");
- playlist.update(itemIndex, mediaSource, this::maybeSynchronizePlayer);
+ playlist.update(itemIndex, mediaSource, removeMediaSourceHandler, this::maybeSynchronizePlayer);
}
}
@@ -441,7 +443,7 @@ public class MediaSourceManager {
if (DEBUG) Log.d(TAG, "MediaSource - Reloading currently playing, " +
"index=[" + currentIndex + "], item=[" + currentItem.getTitle() + "]");
- playlist.invalidate(currentIndex, this::loadImmediate);
+ playlist.invalidate(currentIndex, removeMediaSourceHandler, this::loadImmediate);
}
private void maybeClearLoaders() {
diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/SinglePlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/SinglePlayQueue.java
index 5993481e2..40d1a11e7 100644
--- a/app/src/main/java/org/schabi/newpipe/player/playqueue/SinglePlayQueue.java
+++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/SinglePlayQueue.java
@@ -16,6 +16,11 @@ public final class SinglePlayQueue extends PlayQueue {
super(0, Collections.singletonList(new PlayQueueItem(info)));
}
+ public SinglePlayQueue(final StreamInfo info, final long startPosition) {
+ super(0, Collections.singletonList(new PlayQueueItem(info)));
+ getItem().setRecoveryPosition(startPosition);
+ }
+
public SinglePlayQueue(final List items, final int index) {
super(index, playQueueItemsOf(items));
}
diff --git a/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java b/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java
new file mode 100644
index 000000000..e1ecc662d
--- /dev/null
+++ b/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java
@@ -0,0 +1,131 @@
+package org.schabi.newpipe.util;
+
+import android.content.Context;
+import android.text.Layout;
+import android.text.Selection;
+import android.text.Spannable;
+import android.text.Spanned;
+import android.text.style.ClickableSpan;
+import android.text.style.URLSpan;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.TextView;
+
+import org.schabi.newpipe.extractor.NewPipe;
+import org.schabi.newpipe.extractor.StreamingService;
+import org.schabi.newpipe.extractor.exceptions.ExtractionException;
+import org.schabi.newpipe.extractor.exceptions.ParsingException;
+import org.schabi.newpipe.extractor.linkhandler.LinkHandlerFactory;
+import org.schabi.newpipe.extractor.stream.StreamInfo;
+import org.schabi.newpipe.player.playqueue.PlayQueue;
+import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import io.reactivex.Single;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+
+public class CommentTextOnTouchListener implements View.OnTouchListener {
+
+ public static final CommentTextOnTouchListener INSTANCE = new CommentTextOnTouchListener();
+
+ private static final Pattern timestampPattern = Pattern.compile("(.*)#timestamp=(\\d+)");
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if(!(v instanceof TextView)){
+ return false;
+ }
+ TextView widget = (TextView) v;
+ Object text = widget.getText();
+ if (text instanceof Spanned) {
+ Spannable buffer = (Spannable) text;
+
+ int action = event.getAction();
+
+ if (action == MotionEvent.ACTION_UP
+ || action == MotionEvent.ACTION_DOWN) {
+ int x = (int) event.getX();
+ int y = (int) event.getY();
+
+ x -= widget.getTotalPaddingLeft();
+ y -= widget.getTotalPaddingTop();
+
+ x += widget.getScrollX();
+ y += widget.getScrollY();
+
+ Layout layout = widget.getLayout();
+ int line = layout.getLineForVertical(y);
+ int off = layout.getOffsetForHorizontal(line, x);
+
+ ClickableSpan[] link = buffer.getSpans(off, off,
+ ClickableSpan.class);
+
+ if (link.length != 0) {
+ if (action == MotionEvent.ACTION_UP) {
+ boolean handled = false;
+ if(link[0] instanceof URLSpan){
+ handled = handleUrl(v.getContext(), (URLSpan) link[0]);
+ }
+ if(!handled) link[0].onClick(widget);
+ } else if (action == MotionEvent.ACTION_DOWN) {
+ Selection.setSelection(buffer,
+ buffer.getSpanStart(link[0]),
+ buffer.getSpanEnd(link[0]));
+ }
+ return true;
+ }
+ }
+
+ }
+
+ return false;
+ }
+
+ private boolean handleUrl(Context context, URLSpan urlSpan) {
+ String url = urlSpan.getURL();
+ int seconds = -1;
+ Matcher matcher = timestampPattern.matcher(url);
+ if(matcher.matches()){
+ url = matcher.group(1);
+ seconds = Integer.parseInt(matcher.group(2));
+ }
+ StreamingService service;
+ StreamingService.LinkType linkType;
+ try {
+ service = NewPipe.getServiceByUrl(url);
+ linkType = service.getLinkTypeByUrl(url);
+ } catch (ExtractionException e) {
+ return false;
+ }
+ if(linkType == StreamingService.LinkType.NONE){
+ return false;
+ }
+ if(linkType == StreamingService.LinkType.STREAM && seconds != -1){
+ return playOnPopup(context, url, service, seconds);
+ }else{
+ NavigationHelper.openRouterActivity(context, url);
+ return true;
+ }
+ }
+
+ private boolean playOnPopup(Context context, String url, StreamingService service, int seconds) {
+ LinkHandlerFactory factory = service.getStreamLHFactory();
+ String cleanUrl = null;
+ try {
+ cleanUrl = factory.getUrl(factory.getId(url));
+ } catch (ParsingException e) {
+ return false;
+ }
+ Single single = ExtractorHelper.getStreamInfo(service.getServiceId(), cleanUrl, false);
+ single.subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(info -> {
+ PlayQueue playQueue = new SinglePlayQueue((StreamInfo) info, seconds*1000);
+ NavigationHelper.playOnPopupPlayer(context, playQueue);
+ });
+ return true;
+ }
+}
diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java
index 4b93600ce..98ae3a88a 100644
--- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java
@@ -21,6 +21,7 @@ import com.nostra13.universalimageloader.core.ImageLoader;
import org.schabi.newpipe.MainActivity;
import org.schabi.newpipe.R;
+import org.schabi.newpipe.RouterActivity;
import org.schabi.newpipe.about.AboutActivity;
import org.schabi.newpipe.download.DownloadActivity;
import org.schabi.newpipe.extractor.NewPipe;
@@ -34,11 +35,11 @@ import org.schabi.newpipe.fragments.MainFragment;
import org.schabi.newpipe.fragments.detail.VideoDetailFragment;
import org.schabi.newpipe.fragments.list.channel.ChannelFragment;
import org.schabi.newpipe.fragments.list.comments.CommentsFragment;
-import org.schabi.newpipe.local.bookmark.BookmarkFragment;
-import org.schabi.newpipe.local.feed.FeedFragment;
import org.schabi.newpipe.fragments.list.kiosk.KioskFragment;
import org.schabi.newpipe.fragments.list.playlist.PlaylistFragment;
import org.schabi.newpipe.fragments.list.search.SearchFragment;
+import org.schabi.newpipe.local.bookmark.BookmarkFragment;
+import org.schabi.newpipe.local.feed.FeedFragment;
import org.schabi.newpipe.local.history.StatisticsPlaylistFragment;
import org.schabi.newpipe.local.playlist.LocalPlaylistFragment;
import org.schabi.newpipe.local.subscription.SubscriptionFragment;
@@ -422,6 +423,13 @@ public class NavigationHelper {
context.startActivity(mIntent);
}
+ public static void openRouterActivity(Context context, String url) {
+ Intent mIntent = new Intent(context, RouterActivity.class);
+ mIntent.setData(Uri.parse(url));
+ mIntent.putExtra(RouterActivity.internalRouteKey, true);
+ context.startActivity(mIntent);
+ }
+
public static void openAbout(Context context) {
Intent intent = new Intent(context, AboutActivity.class);
context.startActivity(intent);
diff --git a/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java b/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java
new file mode 100644
index 000000000..c5c78a726
--- /dev/null
+++ b/app/src/main/java/org/schabi/newpipe/util/ShareUtils.java
@@ -0,0 +1,22 @@
+package org.schabi.newpipe.util;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+
+import org.schabi.newpipe.R;
+
+public class ShareUtils {
+ public static void openUrlInBrowser(Context context, String url) {
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+ context.startActivity(Intent.createChooser(intent, context.getString(R.string.share_dialog_title)));
+ }
+
+ public static void shareUrl(Context context, String subject, String url) {
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType("text/plain");
+ intent.putExtra(Intent.EXTRA_SUBJECT, subject);
+ intent.putExtra(Intent.EXTRA_TEXT, url);
+ context.startActivity(Intent.createChooser(intent, context.getString(R.string.share_dialog_title)));
+ }
+}
diff --git a/app/src/main/res/layout-large-land/activity_main_player.xml b/app/src/main/res/layout-large-land/activity_main_player.xml
index d01fb379d..8428d489a 100644
--- a/app/src/main/res/layout-large-land/activity_main_player.xml
+++ b/app/src/main/res/layout-large-land/activity_main_player.xml
@@ -249,7 +249,7 @@
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="2dp"
- android:padding="5dp"
+ android:padding="5dp"
android:clickable="true"
android:focusable="true"
android:scaleType="fitXY"
@@ -305,7 +305,7 @@
tools:text="English" />
+
+
diff --git a/app/src/main/res/layout/activity_history.xml b/app/src/main/res/layout/activity_history.xml
deleted file mode 100644
index e53b9bff9..000000000
--- a/app/src/main/res/layout/activity_history.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/activity_main_player.xml b/app/src/main/res/layout/activity_main_player.xml
index 50a6c522b..a55a5df05 100644
--- a/app/src/main/res/layout/activity_main_player.xml
+++ b/app/src/main/res/layout/activity_main_player.xml
@@ -247,7 +247,7 @@
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="2dp"
- android:padding="5dp"
+ android:padding="5dp"
android:clickable="true"
android:focusable="true"
android:scaleType="fitXY"
@@ -303,7 +303,7 @@
tools:text="English" />
+
+
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_comments.xml b/app/src/main/res/layout/fragment_comments.xml
index 9ace63d4d..64d4d73bd 100644
--- a/app/src/main/res/layout/fragment_comments.xml
+++ b/app/src/main/res/layout/fragment_comments.xml
@@ -27,7 +27,7 @@
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="vertical"
- android:paddingTop="90dp"
+ android:paddingTop="85dp"
android:visibility="gone"
tools:visibility="visible">
diff --git a/app/src/main/res/layout/fragment_empty.xml b/app/src/main/res/layout/fragment_empty.xml
new file mode 100644
index 000000000..6e5c06f6c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_empty.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_history.xml b/app/src/main/res/layout/fragment_history.xml
deleted file mode 100644
index 5c325cac4..000000000
--- a/app/src/main/res/layout/fragment_history.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_related_streams.xml b/app/src/main/res/layout/fragment_related_streams.xml
index c12630392..5bb0b9497 100644
--- a/app/src/main/res/layout/fragment_related_streams.xml
+++ b/app/src/main/res/layout/fragment_related_streams.xml
@@ -27,7 +27,7 @@
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="vertical"
- android:paddingTop="90dp"
+ android:paddingTop="85dp"
android:visibility="gone"
tools:visibility="visible">
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
index d49d23175..c6f733e3f 100644
--- a/app/src/main/res/layout/fragment_search.xml
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -67,6 +67,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
+ app:layoutManager="LinearLayoutManager"
tools:listitem="@layout/item_search_suggestion"/>
diff --git a/app/src/main/res/layout/fragment_video_detail.xml b/app/src/main/res/layout/fragment_video_detail.xml
index 906246bd0..b0ee65dde 100644
--- a/app/src/main/res/layout/fragment_video_detail.xml
+++ b/app/src/main/res/layout/fragment_video_detail.xml
@@ -177,6 +177,7 @@
android:id="@+id/detail_content_root_hiding"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:paddingBottom="10dp"
android:layout_below="@+id/detail_title_root_layout"
android:orientation="vertical"
android:visibility="gone"
diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml
index a9b091329..393d7d1b4 100644
--- a/app/src/main/res/layout/list_comments_item.xml
+++ b/app/src/main/res/layout/list_comments_item.xml
@@ -32,7 +32,7 @@
android:ellipsize="end"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textSize="@dimen/video_item_search_title_text_size"
+ android:textSize="@dimen/comment_item_title_text_size"
tools:text="Author Name, Lorem ipsum" />
diff --git a/app/src/main/res/layout/list_comments_mini_item.xml b/app/src/main/res/layout/list_comments_mini_item.xml
index 36f3e2e6e..3f3c6c468 100644
--- a/app/src/main/res/layout/list_comments_mini_item.xml
+++ b/app/src/main/res/layout/list_comments_mini_item.xml
@@ -27,10 +27,8 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/channel_item_description_to_details_margin"
android:layout_toRightOf="@+id/itemThumbnailView"
- android:ellipsize="end"
- android:lines="2"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textSize="@dimen/video_item_search_uploader_text_size"
+ android:textSize="@dimen/comment_item_content_text_size"
tools:text="Channel description, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blandit" />
-
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index be618120a..8493569a7 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -172,12 +172,12 @@
ليس هناك مشترِكون
- - %s لا يوجد مشترك
- - %s مشترك
- - %s اثنتين مشتركين
- - %s اشتراكات
- - %s مشتركين
- - %s مشتركين
+ - %s لا يوجد مشترك
+ - %s مشترك
+ - %s اثنتين مشتركين
+ - %s اشتراكات
+ - %s مشتركين
+ - %s مشتركون
دون مشاهدات
@@ -261,21 +261,21 @@
تحدي الكابتشا
اضغط للإدراج في قائمة الانتظار
- - بدون مشاهدات
- - %s مشاهدة
- - مشاهدتين
- - %s مشاهدات
- - %s مشاهدات
- - %s مشاهدة
+ - بدون مشاهدات
+ - %s مشاهدة
+ - %s مشاهدتين
+ - %s مشاهدون
+ - %s مشاهدات
+ - %s مشاهدين
- - %s فيديو
- - %s فيديو
- - %s فيديوهات
- - %s فيديوهات
- - %s فيديوهات
- - %s فيديوهات
+ - %s فيديو
+ - %s فيديو
+ - %s فيديوهان
+ - %s فيديو
+ - %s فيديوهات
+ - %s فيديو
طلب اختبار الكابتشا مطلوب
@@ -311,7 +311,6 @@
إضافة إلى
تحليل
- مٌباشِر
لم يتم العثور على أي بث مرئي
لم يتم العثور على أي بث صوتي
@@ -343,18 +342,11 @@
هل تريد حذف قائمة التشغيل هذه ؟
تم إنشاء قائمة التشغيل
تمت إضافتها إلى قائمة التشغيل
- لا يمكن حذف قائمة التشغيل
+ لا يمكن حذف قائمة التشغيل.
ملئ الشاشة
تكبير
- حجم خط التسمية
- أصغر خط
- خط عادي
- خط ذو حجم كبير
-
- مُزامَنة
-
تنزيل ملف البث
الإشارات المرجعية
@@ -384,7 +376,6 @@
إستيراد ملف
"معرفك , soundcloud.com/ الخاص بك "
- إفتراضي
عند إيقاف تحميل أي صور مصغرة ، وتوفير البيانات واستخدام الذاكرة. تعمل التغييرات على محو ذاكرة التخزين المؤقت للصورة الموجودة على الذاكرة أو على القرص.
امسح البيانات الوصفية المخزنة مؤقتًا
إزالة جميع بيانات صفحات الويب المخزنة مؤقتًا
@@ -394,11 +385,11 @@
إضافة صورة مصغرة إلى قائمة التشغيل
تفضيل قائمة التشغيل
- تم تغيير الصورة المصغرة لقائمة التشغيل
+ تم تغيير الصورة المصغرة لقائمة التشغيل.
بدون تسميات توضيحية
تسميات توضيحية
- تعديل مشغل نص التسمية التوضيحية وأنماط الخلفية. يتطلب إعادة تشغيل التطبيق لتصبح التغييرات سارية المفعول
+ تعديل مشغل نص التسمية التوضيحية وأنماط الخلفية. يتطلب إعادة تشغيل التطبيق لتصبح التغييرات سارية المفعول.
تمكين LeakCanary
قد تتسبب مراقبة تسرب الذاكرة في عدم استجابة التطبيق عند تفريغ السجلات
@@ -460,7 +451,6 @@
سرعة الأداء
تردد الصوت
نزع الإرتباط (قد يسبب تشويه)
- تعديل الايقاع Nightcore
هل تريد أيضا استيراد الإعدادات؟
"سياسة الخصوصية في NewPipe "
@@ -488,4 +478,68 @@
قوائم التشغيل
المسارات
المستخدمين
-
\ No newline at end of file
+ إلغاء الاشتراك
+ علامة تبويب جديدة
+ اختر علامة التبويب
+ استخدم إيماءات التحكم في سطوع وصوت المشغل
+ التحكم بالإيماءات السطوع
+ استخدام الإيماءات للتحكم في سطوع المشغل
+ التحديثات
+ تم حذف الملف
+ تتبيه تحديث التطبيق
+ إيماءة التحكم بالصوت
+ الأحداث
+ التنبيه بإصدارات newpipe الجديدة
+ ذاكرة التخزين الخارجي غير متوفر
+ تحميل إلى بطاقة SD الخارجية ليس متاحا حتى الآن. إعادة تعيين موقع مجلد التحميل؟
+ باستخدام علامات الجدولة الافتراضية، حدث خطأ أثناء قراءة علامات التبويب المحفوظة
+ استعادة الافتراضيات
+ هل تريد استعادة الإعدادات الافتراضية؟
+ عدد المشتركين غير متاح
+ ما هي التبويبات التي تظهر على الصفحة الرئيسية
+ إختيار
+ المؤتمرات
+ التحديثات
+ إظهار تنبيه للمطالبة بتحديث التطبيق عندما يتوفر إصدار جديد
+ وضع عرض قائمة
+ القائمة
+ الشبكة
+ تلقائي
+ تبديل طريقة العرض
+ يتوفر تحديث ل newpipe!
+ اضغط لتنزيل
+ انتهى
+ في قائمة الانتظار
+ متوقف
+ في قائمة الانتظار
+ بعد المعالجة
+ قائمة الانتظار
+ تم رفضها من قبل النظام
+ فشل التنزيل
+ تم الانتهاء من التحميل
+ %s أنتهى التحميل
+ إنشاء اسم فريد
+ الكتابة فوق
+ يوجد ملف تحميل بهذا الاسم موجود مسبقاً
+ هنالك تحميل قيد التقدم بهذا الاسم
+ إظهار خطأ
+ كود
+ لا يمكن إنشاء الملف
+ لا يمكن إنشاء المجلد الوجهة
+ تم رفضها من قبل النظام
+ فشل اتصال الأمن
+ تعذر العثور على الخادم
+ لا يمكن الاتصال بالخادم
+ الخادم لايقوم بإرسال البيانات
+ الخادم لا يقبل التنزيل المتعدد، إعادة المحاولة مع @string/msg_threads = 1
+ عدم استيفاء النطاق المطلوب
+ غير موجود
+ فشلت المعالجة الاولية
+ حذف التنزيل المنتهية
+ "قم بإستكمال %s حيثما يتم التحويل من التنزيلات"
+ توقف
+ أقصى عدد للمحاولات
+ الحد الأقصى لعدد محاولات قبل إلغاء التحميل
+ "ايقاف عند التحويل إلى البيانات المتنقلة"
+ سيتم إعادة تحميل التنزيلات التي لا يمكن إيقافها
+
\ No newline at end of file
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 7f16ea58a..78608c2a5 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -464,4 +464,32 @@
Llistes de reproducció
Pistes
Usuaris
-
\ No newline at end of file
+ Pestanya nova
+ Tria una pestanya
+ Control de volum per gestos
+ Fes servir gestos per controlar el volum del reproductor
+ Control de brillantor per gestos
+ Fes servir gestos per controlar la brillantor del reproductor
+ Actualitzacions
+ S\'ha eliminat el fitxer
+ L\'emmagatzematge extern no està disponible
+ Reinicialitza els valors per defecte
+ Voleu reinicialitzar els valors per defecte\?
+ Selecció
+ Actualitzacions
+ Llista
+ Quadrícula
+ Automàtic
+ Canvia la vista
+ Està disponible una nova actualització del NewPipe!
+ A la cua
+ en pausa
+ a la cua
+ Afegeix a la cua
+ Genera un nom únic
+ Mostra l\'error
+ Codi
+ No es pot crear el fitxer
+ No es pot crear la carpeta de destinació
+ Atura
+
\ No newline at end of file
diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml
index 799ca1211..897365ca9 100644
--- a/app/src/main/res/values-cmn/strings.xml
+++ b/app/src/main/res/values-cmn/strings.xml
@@ -22,8 +22,8 @@
使用外部音频播放器
NewPipe 悬浮窗模式
订阅
- 订阅
- 取消订阅成功
+ 已订阅
+ 退订成功
无法更改订阅
无法更新订阅
显示详情
@@ -165,7 +165,7 @@
播放
内容
年龄限制内容
- 显示有年龄限制的视频。可以从「设置」中允许该内容。
+ 显示有年龄限制的视频。可以从设置中允许该内容。
直播
下载
下载
@@ -264,16 +264,16 @@
没有订阅者
- %s 位订阅者
-
+
无观看次数
- %s 次观看
-
+
没有视频
- - %s 部视频
+ - 部视频
删除
@@ -421,4 +421,69 @@
音量
取消链接(可能会导致扭曲)
静音时快进
+ 退订
+ 新标签
+ 选择标签
+ 音量手势控制
+ 用手势控制播放器的音量
+ 手势控制亮度
+ 用手势控制播放器的亮度
+ 默认的内容语言
+ 升级
+ 文件已删除
+ 应用升级通知
+ 新 NewPipe 版本通知
+ 外储存不可行
+ 下载至外置SD卡还未可行。重置下载文件夹位置?
+ 恢复默认
+ 您真的要恢复至默认吗?
+ 选择
+ 升级
+ 列表
+ 自动
+ 轻按以下载
+ 已完成
+ 于队列中
+ 已暂停
+ 已加入队列
+ 后处理
+ 队列
+ 系统拒绝该行动
+ 下载失败
+ 下载完成
+ %已下载完毕
+ 生成独特的名字
+ 覆写
+ 同名的已下载文件已经存在
+ 同名下载进行中
+ 显示错误
+ 代码
+ 无法创建该文件
+ 系统拒绝此批准
+ 安全连接失败
+ 找不到服务器
+ 连不上服务器
+ 伺服器没回送数据
+ 找不到
+ 后处理失败
+ 清除已完毕的下载
+ 停
+ 重试上限
+ 取消下载前可以尝试的最多次数
+ 换成手机数据时暂停
+ 事件
+ 使用默认选项卡, 读取保存的选项卡时出错
+ 订阅者计数不可用
+ 主页上显示的选项卡
+ 会议
+ 显示通知, 以便在新版本可用时提示应用更新
+ 列表视图模式
+ 网格
+ 切换视图
+ NewPipe 更新可用!
+ 无法创建目标文件夹
+ 服务器不接受多线程下载, 请重试使用 @string/msg_threads = 1
+ 请求的范围不满足
+ 继续进行%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 625c9d573..1e17f0621 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -1,4 +1,4 @@
-
+
Publikováno %1$s
Nenalezen žádný přehrávač. Nainstalovat VLC?
@@ -499,5 +499,16 @@ otevření ve vyskakovacím okně
Žádná
Minimalizovat přehrávač na pozadí
Minimalizovat přehrávač do vyskakovacího okna
-
-
+ Přestat odebírat
+ Nový panel
+ Zvolit panel
+ Ovládání hlasitosti gesty
+ Používat gesta pro ovládání hlasitosti přehrávače
+ Ovládání jasu gesty
+ Používat gesta pro kontrolu jasu přehrávače
+ Aktualizace
+ Soubor smazán
+ Notifikace aktualizace aplikace
+ Notifikace pro novou verzi NewPipe
+ Externí úložiště není k dispozici
+
\ No newline at end of file
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
new file mode 100644
index 000000000..bd1e27af9
--- /dev/null
+++ b/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,394 @@
+
+Tryk søg for at komme i gang
+ %1$s visninger
+ Udgivet den %1$s
+ Ingen streamafspiller blev fundet. Vil du installere VLC\?
+ Ingen streamafspiller blev fundet (du kan installere VLC for at afspille den).
+ Installer
+ Annuller
+ åben i browser
+ Åben i popup tilstand
+ Del
+ Download
+ Download stream fil
+ Søg
+ Indstillinger
+ Mente du: %1$s\?
+ Del med
+ Vælg browser
+ rotation
+ Benyt ekstern videoafspiller
+ Fjerner lyd ved nogle opløsninger
+ Brug ekstern lydafspiller
+ NewPipe popup tilstand
+ Abonner
+ Abonneret
+ Afmeld Abonnement
+ Abonnement afmeldt for kanal
+ Kunne ikke ændre abonnement
+ Kunne ikke opdatere abonnoment
+ Vis info
+ Forside
+ Abbonnomenter
+ Gemte Playlister
+ Ny Tab
+ Vælg Tab
+ Nyheder
+ Baggrund
+ Popup
+ Tilføj Til
+ Video download sti
+ Sti til gemme downloade videoer
+ Indtast download mappe for videoer
+ Lyd download mappe
+ Downloadede lydfiler bliver gemt her
+ Indtast download mappe for lydfiler
+ Afspil automatisk
+ Afspil en video ny NewPipe bliver åbnet fra en anden app
+ Standard opløsning
+ Stadard popup opløsning
+ Vis højere opløsninger
+ Ikke alle enheder understøtter afspilning af 2K/4K videoer
+ Afspil med Kodi
+ Kore appen kunne ikke findes. Installer den\?
+ Vis \"Afspil med Kodi\" valgmulighed
+ Vis en knap til at afspille en video via Kode Media Center
+ Lyd
+ Standard lydfilformat
+ Standard videofilformat
+ Tema
+ Lys
+ Mørk
+ Sort
+ Husk popup størrelse og position
+ Husk sidste størelse og position for popup afspiller
+ Brug hurtig og upræcis søgning
+ Upræcis søgning gør det hurtigere at søge i afspilningen, men med dårligere præcision
+ Indlæs billeder
+ Når slået fra indlæses billeder ikke, derved spares der på netværks og hukommelses forbrug. Ændringer sletter både cachen i ram og på disk.
+ Billed cache slettet
+ Slet cached metadata
+ Slet alt cached webside data
+ Metadata cache slettet
+ Tilføj automatisk næste stream til køen
+ Tilføj relaterede streams til køen automatisk når den sidste stream i køen afspilles. Gælder ikke hvis køen er gentagene.
+ Juster lydstyrke ved hjælp af fingerkontrol
+ Brug håndbevægelser til at kontrollere lydstyrke
+ Lysstyrke håndbævegesleskontorl
+ Burg håndbevægelser til at justere lysstyrke
+ Afspiller håndbevægelseskontol
+ Brug håndbevægelser til at justere lysstyrke og lydstyrke
+ Søg i foreslag
+ Vis foreslag når der søges
+ Søgehistorik
+ Gem søgninger lokalt
+ Historie & Cache
+ Hold styr på sete videoer
+ Forsæt når appen kommer i focus
+ Foresæt afspilning efter afbrydelse (fks. telefon opkald)
+ Download
+ Næste
+ Vis \'Næste\' og \'Lignende\' videoer
+ Vis \"Hold for at tiljøje\" tip
+ Vis et tip når baggrunds eller popup knappen trykkes
+ Dette URL er ikke understøttet
+ Standard land for indhold
+ Service
+ Standard sprog for indhold
+ Afspiller
+ Opførsel
+ Video & Lyd
+ Historie & Cache
+ Popup
+ "Udseende "
+ Andet
+ Debug
+ Opdateringer
+ Afspiller i baggrunden
+ Afspiller i popup tilstand
+\n
+ Tilføjet til køen i baggrundsafspilleren
+ Tilføjet til afspilningskøen
+ Afspil
+ Inhold
+ Aldersbegrænset inhold
+ Vis aldersbegrænset video. Det er er muligt at tillade sådanne video under indstillinger.
+ LIVE
+ Downloads
+ Downloads
+ Fejlrapport
+ Alle
+ Kanal
+ Kanaler
+ Playliste
+ Playlister
+
+ - Videoer
+
+
+ Numre
+ Brugere
+ Ja
+ Senere
+ Slået fra
+ Filtrer
+ Genindlæs
+ Slet
+ Ændrer Størrelse
+ Bedste opløsning
+ Fortryd
+ Fil slettet
+ Afspil Alle
+ Altid
+ Kun én gang
+ Fil
+ NewPipe Notifikation
+\n
+ Notifikationer for NewPipe backgrunds og popup afspillere
+\n
+ App Opdaterings Notifikation
+ Notifikationer for nye NewPipe versioner
+\n
+ [Ukendt]
+ Instill Retning
+ Skift til Bagrund
+ Skift til Popup
+ Skift til Forside
+ Importer database
+ Eksporter database
+ Overskriver din nuværende historie og abebonomenter
+ Eksporter historie, abebonomenter and playlister
+ Slet visningshistorik
+ Sletter historien af viste videoer
+ Slet hele visningshistorikken\?
+ Visningshistorikken blev slettet.
+ Slet søgehistorik
+ Sletter gemte søge ord
+ Slet hele søgehistorikken\?
+ Søgehistorik slettet.
+ Fejl
+ Ekstern lagring utilgængelig
+ Download til til eksternt SD kort er ikke muligt i øjeblikket. Genskab download mappe indstilinning\?
+ Netwærksfejl
+ Kunne indlæse alle billeder
+ Kunne ikke dekryptere video URL signatur
+ Kunne ikke indlæse webside
+ Kunne ikke indlæse hele websiden
+ Indhold utilgængeligt
+ Blokeret af GEMA
+ Kunne ikke oprette download menu
+ "Livestreams er ikke undestøttet endnu "
+ Kunne ikke hente nogen streams
+ Kunne ikke hente billede
+ App/Brugergrænseflade crashede
+ Kunne ikke afspille denne stream
+ "Uoprettelig fejl ved opstod ved afspilning "
+ Prøver at genoprette efter fejl ved afspilning
+ Eksterne afspillere undestøtter ikke disse typer af links
+ Ugyldig adresse
+ Ingen video streams blev fundet
+ Ingen lyd streams blev fundet
+ Kunne ikke finde mappe
+ Kunne ikke finde file/kilde
+ Filen eksister ikke eller også der er manglende rettigheder til at læse og skrive til den
+ Filavnet kan ikke være tomt
+ Der skete en fejl: %1$s
+ Ingen streams er tilgængelige til at downloade
+ Bruger standard tabs, fejl ved indlæsning af gemte tabs
+ Genskab standardindstillinger
+ Vil du genskabe standardindstillingerne\?
+ Undskyld, dette skulle ikke have været sket.
+ Rappoter dette via e-mail
+ Undskyld, der opstod nogle fejl.
+ RAPPORTER
+ Information:
+ Hvad skete der:
+ Din kommentar (på engelsk):
+ Detaljer:
+ Video billede
+ Video billede
+ Uploaders profilbillede
+ Synes godt om
+ Kan ikke lide
+ Brug TOR
+ (Eksperimentelt) Tving downloads til at bruge TOR (streaming er ikke understøttet endnu).
+ Rappoter en Fejl
+ Ingen resultater
+ Træk for at omarrangere
+ Kan ikke oprette download mappe \'%1$s\'
+ Oprettede download mappe \'%1$s\'
+ Video
+ Lyd
+ Prøv igen
+ Adgang til hulkomekse nægtet
+ Ingen abbonenter
+ Antal af abonnementer er ikke tilgængeligt
+ Ingen visninger
+
+ - %s visning
+ - %s visninger
+
+ Ingen Videoer
+ Start
+ Afspil
+ Opret
+ Slet
+ Slet én
+ Slet Alle
+ Checksum
+ Afvis
+ Omdøb
+ Ny mission
+ Ok
+ Filnavn
+ Tråde
+ Fejl
+ Server ikke understøttet
+ Filen eksisterer allerede
+ Forkert URL formatering eller manglende internet forbindelse
+ NewPiper Downloader
+ Tryk for detaljer
+ Vent venligst…
+ Kopieret til udklipsholderen
+ Vælg venligst en ledig download mappe
+ Denne tilladelse er nødvendig for at kunne åbne i popup tilstand
+ Et element slettet.
+ reCAPTCHA
+\n
+ reCAPTCHA udfordring
+ reCAPTCHA udfordring anmodet
+ Download
+ Lovlige tegn i filnavne
+ Ugyldige tegn bliver erstattet med dette tegn
+ Erstatningskarakter
+ Bogstaver og tal
+ De fleste specialtegn
+ Der ingen app installeret der kan afspille denne fil
+ Om NewPipe
+ Indstillinger
+ Om
+ Tredjepartslicenser
+ © %1$s by %2$s under %3$s
+\n
+ Kunne ikke indlæse licens
+ Åben webside
+ Om
+ Bidragsydere
+ Licenser
+ Libre letvægts streaming på Android.
+ Bidrag til projektet
+ Hvad enten du har idéer til, oversæting, design ændringer, kode refaktorering eller større kode ændringer, så er hjælp altid velkommen. Jo mere der bliver gjort jo bedre bliver det!
+ Se på Github
+ Doner
+ NewPipe er udviklet af frivillige der bruger tid på at give dig den bedste oplevelse. Giv noget tilbage til NewPipes udviklere så de kan gøre appen endnu bedre, mens de nyder en kop kaffe.
+ Giv noget tilbage
+ Webside
+ Besøg NewPipes webside for mere information og nyheder.
+ NewPipes Fortrolighedspolitik
+\n
+ Læs fortrolighedspolitik
+ NewPipe\'s Licens
+ NewPipe er copyleft libre software: Du kan bruge, studere, dele og forbedre det som du vi.l Specifikt kan du redistribuere og/eller modificere det under betingelserne i GNU General Public License som udgivet af The Free Software Foundation, version 3 af licensen, eller (efter dit valg) en senere version.
+ Læs licens
+ Historie
+ Søgte
+ Sete
+ Historie er slået fra
+ Historie
+ Historien er tom
+ Historie slettet
+ Element slettet
+ Vil du slette dette element fra søgehistorikken\?
+ Vil du slette dette element fra visningshistorikken\?
+ Er du sikker på at vil slette alle elementer i historikken\?
+ Sidst Afspillet
+ Mest Spillede
+ Indhold af forsiden
+ Hvilke tabs vises på forsiden
+ Udvalg
+ Blank Side
+ Kiosk Side
+ Abonnement Side
+ Kanalside
+ Vælg en kanal
+ Ingen kanal abebonomenter endnu
+ Vælg en kiosk
+ Eksporteret
+ Importeret
+ Ikke en gyldig ZIP fil
+ Advarsel: Kunne ikke importere alle filer.
+ Dette vil overskrive dine nuværende indstillinger.
+ Vil du også importere indstillinger\?
+ Kiosk
+ Populært Lige Nu
+ Top 50
+ Nyt & Populært
+ Baggrundsafspiller
+ Popup afspiller
+ Fjern
+ Detaljer
+ Lydindstillinger
+ Hold for at tilføje til kø
+ Tilføj til kø når baggrunds tilstand aktiveres
+ Start afspilning her
+ Noget vil dukke op her snart ;D
+ Foretrukket \'åben\' handling
+ Videoafspiller
+ baggrundsafspiller
+ Popup-afspiller
+ Spørg altid
+ Henter info…
+ Indlæser anmodet indhold
+ Ny Playliste
+ Slet
+ Omdøb
+ Navn
+ Tilføj Til Playliste
+ Slet denne playliste\?
+ Playliste oprettet
+ Ingen Undertekster
+ Tilpas
+ Udfyld
+ Zoom
+ Autogeneret
+ Undertekster
+ Eksporter til
+ Nulstil
+ Accepter
+ Afvis
+ Ingen begrænsning
+ Begeæns opløsning når der bruges mobil data
+ Opdateringer
+ Liste tilstand
+ Liste
+ Gitter
+ Automatisk
+ Tryk for at downloade
+ Færdig
+ i kø
+ Efterbehandling
+ Kø
+ Handling afvist af systemet
+ Download fejlede
+ Download færdig
+ %s downloads færdige
+ Generer unikt navn
+ Overskriv
+ "En downloadet fil med dette navn eksisterer allerede "
+ Der er en download i gang med dette navn
+ Vis fejl
+ Kode
+ Filen kan ikke oprettes
+ Destinations mappen kan ikke oprettes
+ Adgang nægtet af systemet
+ Sikker forbindelse fejlede
+ Kan ikke finde serveren
+ Kan ikke forbinde til serveren
+ Serveren sender ikke data
+ Serveren accepterer ikke multitrådede downloads, prøv igen med @string/msg_threads = 1
+\n
+ Det anmodede interval er ikke gyldigt
+ Ikke fundet
+ Efterbehandling fejlede
+ Stop
+
\ 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 993b47e0b..e233e017b 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -65,7 +65,7 @@
Inhalt
Altersbeschränkte Inhalte
- Altersbeschränktes Video anzeigen. Das Zulassen dieses Materials ist unter \"Einstellungen\" möglich.
+ Altersbeschränktes Video anzeigen. Das Zulassen dieses Materials ist von den Einstellungen aus möglich.
Konnte Download-Menü nicht einrichten
Live-Streams werden noch nicht unterstützt
@@ -244,8 +244,8 @@
Keine Videos
- - %s Video
- - %s Videos
+ - Video
+ - Videos
Die meisten Sonderzeichen
@@ -419,7 +419,7 @@
Verknüpfung aufheben (kann zu Verzerrungen führen)
Nightcore
Standard
-Wenn ausgeschaltet, werden keine Miniaturansichten geladen, Daten und Speicherverbrauch sparend. Änderungen löschen die Bilder-Caches sowohl im Arbeitsspeicher als auch auf der SD-Karte.
+Abschalten, um das Laden von Miniaturansichten zu verhindern, was Daten- und Speicherverbrauch spart. Änderungen löschen den Bildzwischenspeicher sowohl im Arbeitsspeicher als auch auf der Festplatte.
Nächsten Stream automatisch einreihen
Automatisches Anhängen eines verwandten Streams beim Abspielen des letzten Streams in einer nicht wiederholten Warteschlange.
Hier wird bald etwas stehen ;D
@@ -468,7 +468,7 @@
Suchverlauf gelöscht.
1 Element gelöscht.
- NewPipe ist freie Copyleft-Software: Du kannst es nach Belieben benutzen, studieren, mit anderen teilen und verbessern. Insbesondere kannst du sie unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder unter Version 3 der Lizenz oder (nach deiner Wahl) jeder späteren Version.
+ NewPipe ist freie Copyleft-Software: Du kannst sie nach Belieben benutzen, untersuchen, mit anderen teilen und verbessern. Insbesondere kannst du sie unter den von der Free Software Foundation veröffentlichten Bedingungen der GNU General Public License, in der Version 3 der Lizenz oder (nach deiner Wahl) jeder späteren Version, weitergeben und/oder verändern.
Möchtest du auch Einstellungen importieren?
NewPipe-Datenschutzbestimmungen
@@ -495,4 +495,68 @@
Wiedergabelisten
Titel
Nutzer
-
\ No newline at end of file
+ Deabonnieren
+ Neuer Tab
+ Tab wählen
+ Gestensteuerung für Lautstärke
+ Die Lautstärke im Abspieler über Gesten steuern
+ Gestensteuerung für Helligkeit
+ Die Helligkeit im Abspieler über Gesten steuern
+ Aktualisierungen
+ Datei gelöscht
+ Aktualisierungsbenachrichtigung
+ Benachrichtigung bei neuer NewPipe-Version
+ Kein externer Speicher verfügbar
+ Herunterladen auf externe SD-Karte ist noch nicht möglich. Zielverzeichnis zurücksetzen\?
+ Fehler beim Lesen der gespeicherten Tabs – es werden die Voreinstellungen benutzt
+ Voreinstellungen wiederherstellen
+ Möchtest du die Voreinstellungen wiederherstellen\?
+ Abonnentenzahl nicht verfügbar
+ Welche Tabs auf der Hauptseite angezeigt werden
+ Auswahl
+ Aktualisierungen
+ Per Benachrichtigung zur Aktualisierung der App auffordern, wenn eine neue Version verfügbar ist
+ Art der Listenansicht
+ Liste
+ Gitter
+ Auto
+ Ansicht wechseln
+ NewPipe-Aktualisierung verfügbar!
+ Zum Herunterladen antippen
+ Fertig
+ In der Warteschlange
+ pausiert
+ eingereiht
+ Nachbearbeitung
+ Warteschlange
+ System verweigert den Zugriff
+ Herunterladen fehlgeschlagen
+ Herunterladen abgeschlossen
+ %s heruntergeladen
+ Eindeutigen Namen erzeugen
+ Überschreiben
+ Eine heruntergeladene Datei dieses Namens existiert bereits
+ Eine Datei dieses Namens wird gerade heruntergeladen
+ Fehler anzeigen
+ Code
+ Die Datei kann nicht erstellt werden
+ Der Zielordner kann nicht erstellt werden
+ System verweigert den Zugriff
+ Sichere Verbindung fehlgeschlagen
+ Der Server konnte nicht gefunden werden
+ Kann nicht mit dem Server verbinden
+ Der Server sendet keine Daten
+ Der Server erlaubt kein mehrfädiges Herunterladen – wiederhole mit @string/msg_threads = 1
+ Angefragter Bereich nicht bedienbar
+ Nicht gefunden
+ Nachbearbeitung fehlgeschlagen
+ Um fertige Downloads bereinigen
+ Setze deine %s ausstehenden Übertragungen von Downloads fort
+ Anhalten
+ Maximale Wiederholungen
+ Maximalanzahl der Versuche, bevor der Download abgebrochen wird
+ Beim Umschalten auf mobile Daten pausieren
+ Downloads, die nicht pausiert werden können, werden wiederholt
+ Konferenzen
+ Ereignisse
+
\ 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 d6c3724e2..f6c723bd4 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -1,4 +1,4 @@
-
+
%1$s ikustaldi
Argitaratze-data: %1$s
@@ -230,8 +230,8 @@
Bideorik ez
- - bideo %s
- - %s bideo
+ - Bideoa
+ - Bideoak
Historiala
@@ -451,7 +451,7 @@
Ezarpenak ere inportatu nahi dituzu?
Bilaketa ez zehatzak posizioak azkarrago baina prezisio gutxiagoz bilatzea ahalbidetzen du
- Desgaituta dagoenean koadro txikiak ez dira kargatuko datuak eta memoria aurreztuz. Aldaketak memoria eta diskoko irudien cache-ak garbituko ditu.
+ Desgaitu koadro txikiak ez kargatzeko, datuak eta memoria aurreztuz. Aldaketak memoria eta diskoko irudien cache-ak garbituko ditu.
NewPipe Software Librea eta Copyleft da: Erabili, ikertu, partekatu eta hobetu dezakezu. Zehazki, elkarbanatzea eta aldatzea Free Software Foundation-ek argitaratutako GNU General Public License-ren 3. bertsioa edo berriagoren baten terminoen arabera egiteko baimena duzu.
Behartu aktibitatearen bizitza ziklotik kanpo baztertu eta gero entregatu ezin diren Rx salbuespenen inguruko txostena
@@ -480,4 +480,68 @@
Erreprodukzio-zerrendak
Pistak
Erabiltzaileak
-
+ Kendu harpidetza
+ Fitxa berria
+ Hautatu fitxa
+ Keinuen bidezko bolumenaren kontrola
+ Erabili keinuak erreproduzigailuaren bolumena kontrolatzeko
+ Keinuen bidezko distiraren kontrola
+ Erabili keinuak erreproduzigailuaren distira kontrolatzeko
+ Eguneraketak
+ Gertaerak
+ Fitxategia ezabatu da
+ Aplikazioaren eguneraketaren jakinarazpena
+ NewPipe aplikazioaren bertsio berrien jakinarazpena
+ Kanpo biltegiratzea ez dago eskuragarri
+ Oraindik ezin da SD txartel batera deskargatu. Deskargen karpeta berrezarri\?
+ Lehenetsitako fitxak erabiltzen, errorea gordetako fitxak irakurtzean
+ Berrezarri lehenetsitakoak
+ Lehenetsitakoak berrezarri nahi dituzu\?
+ Harpidedunen kontua ez dago eskuragarri
+ Orri nagusian ikusiko diren fitxak
+ Hautaketa
+ Konferentziak
+ Eguneraketak
+ Erakutsi jakinarazpena aplikazioa eguneratzea eskatuz bertsio berria eskuragarri dagoenean
+ Zerrenda ikuspegi modua
+ Zerrenda
+ Sareta
+ Automatikoa
+ Aldatu ikuspegia
+ NewPipe eguneraketa eskuragarri!
+ Sakatu deskargatzeko
+ Amaituta
+ Ilaran
+ pausatuta
+ ilaran
+ post-prozesua
+ Gehitu ilarara
+ Ekintza sistemak ukatu du
+ Deskargak huts egin du
+ Deskarga amaitu da
+ %s deskarga amaituta
+ Sortu izen bakana
+ Gainidatzi
+ Badago izen bera duen deskargatutako fitxategi bat
+ Badago izen bera duen deskarga bat abian
+ Erakutsi errorea
+ Kodea
+ Ezin da fitxategia sortu
+ Ezin da helburu karpeta sortu
+ Sistemak baimena ukatu du
+ Konexio seguruak huts egin du
+ Ezin izan da zerbitzaria aurkitu
+ Ezin da zerbitzariarekin konektatu
+ Zerbitzariak ez du daturik bidaltzen
+ Zerbitzariak ez ditu hainbat hariko deskargak onartzen, saiatu @string/msg_threads = 1 erabilita
+ Eskatutako barrutia ezin da bete
+ Ez aurkitua
+ Post-prozesuak huts egin du
+ Garbitu amaitutako deskargak
+ Berrekin burutzeke dauden %s transferentzia deskargetatik
+ Gelditu
+ Saiakerak gehienez
+ Deskarga ezeztatu aurretik saiatu beharreko aldi kopurua
+ Pausatu datu mugikorretara aldatzean
+ Pausatu ezin daitezkeen deskargak berrekingo dira
+
\ No newline at end of file
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index f0b11d0e6..83a076f09 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -1,4 +1,4 @@
-
+
برای شروع، جستوجو را بزنید
%1$s مشاهده
@@ -22,8 +22,8 @@
مسیر ذخیرهٔ ویدیوهای بارگیری شده
مسیر بارگیری را برای ویدیوها وارد کنید
- مسیر بارگیری صدا
- مسیر ذخیرهٔ صداهای بارگیری شده
+ پوشه بارگیری صدا
+ صدای بارگیری شده در اینجا نگه داشته میشود
مسیر بارگیری را برای صداها وارد کنید
پخش خودکار
@@ -42,7 +42,7 @@
روشن
بارگیری
- ویدیوی بعدی
+ بعدی
نماش ویدیوهای «بعدی» و «مشابه»
نشانی اینترنتی پشتیبانی نمیشود
زبان محتوای ترجیحی
@@ -52,8 +52,8 @@
در حال پخش در پسزمینه
پخش
محتوا
- نمایش محتوای محدود شده بر اساس سن
- ویدیو بر اساس سن محدود شده است. نخست، ویدیوهای محدود شده بر اساس سن را در تنظیمات فعّال کنید.
+ محتوای محدود شده بر اساس سن
+ نمایش ویدیوهای محدود شده بر اساس سن. اجازه دادن به چنین محتوای از بخش «تنظیمات» ممکن است.
زنده
بارگیریها
بارگیریها
@@ -120,8 +120,8 @@
لطفاً یک شاخهٔ بارگیری موجود را برگزینید.
هیچ پخش کننده جریانی پیدا نشد (شما میتوانید برنامه ویالسی را برای پخش آن نصب کنید).
- بارگیری پرونده جریان.
- هنگامی که این گزینه فعال باشد، برخی از کیفیتها فاقد صدا خواهند بود
+ بارگیری پرونده جریان
+ حذف صدا در برخی کیفیتها
اشتراک
مشترک شده
اشتراک کانال لغو شد
@@ -131,7 +131,7 @@
اصلی
اشتراکها
- نشانگذاریها
+ فهرستهای پخش دارای نشانک
موارد جدید
@@ -231,8 +231,8 @@
بدون ویدئو
- - %s ویدئو
- - %s ویدئو
+ - ویدئو
+ - ویدئو
ایجاد
@@ -325,4 +325,11 @@
بدون توضیحات
توضحیات
-
+ لغو اشتراک
+ زبان جدید
+ انتخاب زبانه
+ تاریخچه و حافظه نهان
+ تاریخچه و حافظه نهان
+ اشکالزدایی
+ بهروزرسانیها
+
\ 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 a28799d89..98ed64f37 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -87,7 +87,7 @@
Autorisation d\'accès au stockage refusée
Faites une recherche pour commencer
Lecture automatique
- Afficher les vidéos soumises à une limite d\'âge. Autoriser ce type de contenu est possible depuis les \"Paramètres\".
+ Afficher les vidéos soumises à une limite d\'âge. Autoriser ce type de contenu est possible depuis les paramètres.
Rapport utilisateur
SIGNALER
@@ -248,8 +248,8 @@
Aucune vidéo
- - %s vidéo
- - %s vidéos
+ - Vidéo
+ - Vidéos
Caractères spéciaux
@@ -382,7 +382,7 @@
Recherche rapide approximative
Permettre au lecteur d\'accéder plus rapidement à une position au détriment de la précision
Charger les miniatures
- Désactiver le chargement des miniatures afin de réduire l’utilisation de la bande passante et de la mémoire. Modifier cette option vide le cache d’images en mémoire vive et sur le disque.
+ Désactivez pour empêcher le chargement des miniatures afin de réduire l’utilisation de bande passante et de mémoire. Modifier cette option vide le cache d’images en mémoire vive et sur le disque.
Images en cache effacées
Effacer les données en cache
Effacer toutes les pages web mises en cache
@@ -495,5 +495,36 @@
Aucune
Minimiser pour lire en arrière-plan
Minimiser vers le lecteur miniature
-
+ Se désabonner
+ Nouvel onglet
+ Sélectionner l\'onglet
+ Contrôle gestuel du volume
+ Utiliser des gestes pour contrôler le volume du lecteur
+ Contrôle gestuel de la luminosité
+ Utiliser des gestes pour contrôler la luminosité du lecteur
+ Mises à jour
+ Fichier supprimé
+ Notification de mise à jour de l\'application
+ Notifications pour la nouvelle version de NewPipe
+ Stockage externe indisponible
+ Restaurer les valeurs par défaut
+ Voulez-vous restaurer les valeurs par défaut \?
+ Nombre d\'abonnés non disponible
+ Sélection
+ Arrêter
+ Événements
+ Télécharger vers la carte SD n\'est pas encore possible. Voulez-vous réinitialiser l\'emplacement du dossier \?
+ Quels onglets seront visibles sur la page principale
+ Mises à jour
+ Afficher une notification pour proposer une mise à jour de l\'application lorsqu\'une nouvelle version est disponible
+ Liste
+ Grille
+ Auto
+ Changer de vue
+ Une mise à jour de NewPipe disponible !
+ Appuyez pour télécharger
+ Terminé
+ En file
+ En pause
+ Téléchargement échoué
\ 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 e2ce4950e..5782a1b52 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -1,169 +1,169 @@
- לחץ \"חפש\" כדי להתחיל
+ יש ללחוץ על „חיפוש” כדי להתחיל
%1$s צפיות
- פורסם ב:-%1$s
- לא נמצאו נגני רשת, האם תרצה להתקין את VLC?
- התקן
- בטל
- פתח בדפדפן
- פתח במצב חלון צץ
- שתף
- הורד
- חפש
+ פורסם ב־%1$s
+ לא נמצאו נגני צפייה ישירה, להתקין את VLC\?
+ התקנה
+ ביטול
+ פתיחה בדפדפן
+ פתיחה בחלון צף
+ שיתוף
+ הורדה
+ חיפוש
הגדרות
- האם התכוונת ל-%1$s ?
- שתף עם
- בחר דפדפן
- סיבוב
- השתמש בנגן סרטים חיצוני
- מסיר שמע בחלק מהרזולוציות
- השתמש בנגן סרטים חיצוני
- מצב חלון צץ (NewPipe)
+ כוונתך הייתה: %1$s\?
+ שיתוף עם
+ בחירת דפדפן
+ הטייה
+ שימוש בנגן סרטונים חיצוני
+ בחלק מהרזולוציות השמע יוסר
+ שימוש בנגן סרטונים חיצוני
+ מצב חלון צף של NewPipe
רקע
- חלון צץ
+ חלון צף
- נתיב הורדה לסרטונים
- נתיב לשמירת סרטונים
- הכנס נתיב לשמירת סרטונים
+ נתיב להורדת סרטונים
+ נתיב מיקום לאחסון סרטונים
+ נא להקליד נתיב לשמירת סרטונים
תיקיית הורדות שמע
הורדות שמע נשמרות כאן
- הכנס נתיב לשמירת קבצי שמע
+ נא להקליד נתיב לשמירת קובצי שמע
- נגן אוטומטית
- מנגן סרטון כאשר NewPipe נפתח דרך אפליקציה אחרת
- רזולוציית ברירת המחדל
- רזולוציית ברירת המחדל לחלון צץ
- הצג רזולוציות גבוהות יותר
- רק חלק מהמכשירים תומכים בצפייה בסרטונים ב-2k/4k
- נגן ב-Kodi
- האפליקציה Kore לא נמצאה. להתקין אותה?
- הצג את האפשרות לניגון עם Kodi
- הצג אפשרות לנגן סרטון דרך Kodi
+ ניגון אוטומטי
+ מנגן סרטון כאשר NewPipe נפתח דרך יישומון אחר
+ רזולוציית בררת המחדל
+ רזולוציית בררת המחדל לחלון צף
+ הצגת רזולוציות גבוהות יותר
+ רק חלק מהמכשירים תומכים בצפייה בסרטונים ב־2K/4K
+ נגינה ב־Kodi
+ היישומון Kore לא נמצא. להתקין אותו\?
+ הצגת האפשרות לניגון עם Kodi
+ הצגת אפשרות לנגן סרטון דרך מרכז המדיה Kodi
שמע
- תבנית ברירת המחדל לשמע
- תבנית סרט ברירת מחדל
+ תבנית שמע כבררת מחדל
+ תבנית סרטון כבררת מחדל
ערכת נושא
- מואר
- חשוך
+ בהיר
+ כהה
שחור
- זכור את מיקומו וגודלו של החלון הצץ
- זכור את המיקום והגודל האחרונים של החלון הצץ
+ שמירת מיקומו וגודלו של החלון הצף
+ שמירת המיקום והגודל האחרונים של החלון הצף
מחוות מגע לשליטה בנגן
- השתמש במחוות כדי לשלוט בבהירות ובעוצמת השמע של הנגן
+ שימוש במחוות כדי לשלוט בבהירות ובעצמת השמע של הנגן
הצעות חיפוש
- הצג הצעות כשמחפשים
+ הצגת הצעות בעת החיפוש
- הורד
+ הורדה
הבא
- הראה את הסרטונים הבאים וסרטונים דומים
- כתובת URL לא נתמכת
+ להציג סרטונים דומים ובאים בתור
+ כתובת לא נתמכת
שפת התוכן המועדפת
- סרטים ושמע
- חלון צץ
+ סרטונים ושמע
+ חלון צף
תצוגה
- אחרים
- מנגן ברקע
- מנגן במצב חלון צץ
- נגן
+ אחר
+ מתנגן ברקע
+ מתנגן בחלון צף
+ נגינה
תוכן
- תוכן בעל הגבלת גיל
- הצג סרטון עם הגבלת גיל. ניתן לאפשר צפייה בסרטונים אלו ע\"י שינוי ממסך ההגדרות.
+ תוכן עם הגבלת גיל
+ הצגת סרטונים עם הגבלת גיל. ניתן לאפשר תכנים שכאלה דרך ההגדרות.
חי
הורדות
הורדות
- דו\"ח שגיאה
- הכל
+ דוח שגיאה
+ הכול
ערוץ
כן
מאוחר יותר
- לא פעיל
- סינון
- רענן
- נקה
+ מושבת
+ מסנן
+ רענון
+ פינוי
שינוי גודל
שגיאה
- שגיאת אינטרנט
+ שגיאת רשת
אין אפשרות לטעון את כל התמונות הממוזערות
- לא הייתה אפשרות לפענח את חתימת ה-URL של הסרט
- לא הייתה אפשרות לנתח את האתר
+ לא ניתן לפענח את חתימת כתובת הסרטון
+ ניתוח האתר לא התאפשר
לא הייתה אפשרות לנתח את האתר לחלוטין
תוכן אינו זמין
- חסום ע\"י GEMA
- לא הייתה אפשרות להכין את תפריט ההורדות
- שידורים ישירים עדיין לא נתמכים
- לא הייתה אפשרות להזרים סרטון
- לא הייתה אפשרות לטעון את התמונה
- האפליקציה או ממשק המשתמש קרסו
- מצטערים, זה לא היה אמור לקרות.
- דווח על השגיאה דרך הדוא\"ל
- מצטערים, אירעו כמה שגיאות.
- דווח
+ נחסם ע״י GEMA
+ לא הייתה אפשרות להכין את תפריט ההורדה
+ עדיין אין תמיכה בתזרימים חיים
+ לא הייתה אפשרות לקבל תזרים כלשהו
+ טעינת התמונה לא הצליחה
+ היישומון או מנשק המשתמש קרסו
+ זה לא אמור היה לקרות, עמך הסליחה.
+ דיווח על השגיאה דרך דוא״ל
+ אירעו מספר שגיאות, עמך הסליחה.
+ דיווח
מידע:
מה קרה:
- מה:\\nבקשה:\\nשפת התוכן:\\nשירות:\\nזמן GMT:\\nחבילה:\\nגרסה:\\nגרסת מערכת ההפעלה:
-הירשם כמנוי
- רשום כמנוי
- ביטול מנוי לערוץ
- לא הצלחתי לשנות מנוי
- אין אפשרות לעדכן מנוי
+ מה:\\nבקשה:\\nשפת התוכן:\\nשירות:\\nשעון גריניץ׳:\\nחבילה:\\nגרסה:\\nגרסת מערכת ההפעלה:
+עריכת מינוי
+ נרשמת
+ ביטול מינוי לערוץ
+ לא הצלחתי לשנות מינוי
+ לא ניתן לעדכן את המינוי
ראשי
- מנויים
+ מינויים
מה חדש
- היסטוריית חיפושים
- שמור חיפושים מקומית
+ היסטוריית חיפוש
+ שמירת שאילתות החיפוש מקומית
היסטוריה ומטמון
- המשך לעקוב אחר סרטונים שנצפו
- המשך לנגן בעת חזרת המיקוד ליישום
- המשך לנגן לאחר הפרעות (לדוגמה: שיחות טלפון)
- הצג עצה \"לחיצה ממושכת תוסיף לרשימה\"
- הצג עצה כאשר כפתור רקע או חלון צץ נלחץ במסך נגן הסרטים
+ תיעוד הסרטונים שנצפו
+ להמשיך את הניגון עם החזרת המיקוד
+ להמשיך לנגן לאחר הפרעות (למשל: שיחות טלפון)
+ להציג את העצה „להחזיק כדי להוסיף לרשימת נגינה”
+ להציג עצה בעת לחיצה על כפתור בנגן רקע או צף בעמוד פרטי סרטון
נגן
התנהגות
- היסטוריה וזיכרון מטמון
- נוסף לתור של הנגן ברקע
- נוסף לתור של הנגן הצץ
- רשימת ניגון
+ היסטוריה ומטמון
+ נוסף לתור של נגן הרקע
+ נוסף לתור של הנגן הצף
+ רשימת נגינה
רזולוציה מיטבית
- בטל
- נגן הכל
+ ביטול
+ לנגן הכול
- הודעה מ-NewPipe
- התראות עבור נגן הרקע והנגן הצץ של NewPipe
+ התראה מ־NewPipe
+ התראות עבור נגן הרקע והנגן הצף של NewPipe
[לא ידוע]
- לא הצלחתי לנגן את הסרט הזה
- תקלה בלתי ניתנת לשחזור אירעה בנגן
- מחלים מתקלה שאירעה לנגן
+ נגינת התזרים לא הצליחה
+ אירעה תקלה בנגן ממנה לא ניתן להשתקם
+ מתבצעת החלמה משגיאת נגן
ההערה שלך (באנגלית):
פרטים:
- תמונות ממוזערות לתצוגה המקדמת של הסרטון
- תמונות ממוזערות לתצוגה המקדמת של הסרטון
- תמונה של המשתמש המפרסם
+ תמונה ממוזערת לתצוגה המקדימה של הסרטון
+ תמונות ממוזערות לתצוגה המקדימה של הסרטון
+ תמונה ייצוגית של המפרסם
אהבו
לא אהבו
- השתמש ב-Tor
- (ניסיוני) השתמש בתעבורת ההורדה דרך Tor להגברת הפרטיות (ניגון סרטים בהזרמה ישירה אינו נתמך עדיין).
- דווח על שגיאה
- דיווח משתמש
+ שימוש ב־Tor
+ (ניסיוני) אילוץ העברת תעבורת ההורדה דרך Tor לשיפור הפרטיות (אין עדיין תמיכה בהזרמת סרטונים).
+ דיווח על שגיאה
+ דוח משתמש
אין תוצאות
אין כאן כלום מלבד צרצרים
- לא ניתן ליצור את תיקיית ההורדות \'%1$s\'
- תיקיית ההורדות נוצרה \'%1$s\'
+ לא ניתן ליצור את תיקיית ההורדות ‚%1$s’
+ תיקיית ההורדות ‚%1$s’ נוצרה
- סרט
+ סרטון
שמע
- נסה שנית
+ ניסיון חוזר
הגישה לאחסון נדחתה
השתמש בנגן הישן
השתמש בנגן המובנה Mediaframework
@@ -172,7 +172,7 @@
M
B
- אין עוקבים
+ אין מנויים
- מנוי אחד
- שני מנויים
@@ -180,7 +180,7 @@
- %s מנויים
- אין תצוגות
+ אין צפיות
- צפייה אחת
- שתי צפיות
@@ -190,109 +190,109 @@
אין סרטונים
- - סרטון אחד
+ - סרטון
- שני סרטונים
- %s סרטונים
- %s סרטונים
- התחל
- השהה
- נגן
- מחק
- בדיקה
+ התחלה
+ השהיה
+ נגינה
+ מחיקה
+ גיבוב לאימות
משימה חדשה
- בסדר
+ אישור
שם קובץ
- אשכולות
+ תת־דיונים
שגיאה
- שרת לא נתמך
+ שרת בלתי נתמך
קובץ כבר קיים
- URL לא תקין או שאין אינטרנט זמין
- NewPipe מוריד
- לחץ לפרטים נוספים
- אנא המתן…
+ כתובת שגויה או שהאינטרנט לא זמין
+ NewPipe בהורדה
+ יש לגעת לפרטים נוספים
+ נא להמתין…
הועתק ללוח
- אנא בחר בתיקיית הורדות זמינה
- הרשאה זו נדרשת עבור
-\nפתח במצב חלון צץ
+ נא לבחור תיקיית הורדה זמינה
+ הרשאה זו נדרשת לטובת
+\nפתיחה בחלון צף
reCAPTCHA
אתגר reCAPTCHA
- נתבקש אתגר reCAPTCHA
+ התקבלה בקשה לאתגר reCAPTCHA
הורדה
רשימת תווים אפשרית בשמות קבצים
- תווים לא נתמכים מוחלפים עם הערך הזה
+ תווים לא נתמכים מוחלפים בערך הזה
תו חלופי
אותיות וספרות
- רוב התווים הייחודיים
+ רוב התווים המיוחדים
- אודות NewPipe
+ על אודות NewPipe
הגדרות
- אודות
- רישיונות צד ג\'
- © %1$s ע\"י %2$s תחת %3$s
+ על אודות
+ רישיונות צד שלישי
+ © %1$s ע״י %2$s תחת %3$s
לא ניתן לטעון רישיון
- פתח אתר
- אודות
+ פתיחת האתר
+ על אודות
תורמים
רישיונות
- נגן קל וחופשי להזרמת מדיה עבור אנדרואיד.
- תורם
- בכל עת שיש לך רעיון ל: תרגום, עיצוב מחדש, ניקוי קוד, או תיקוני קוד משמעותיים—עזרה תמיד תתקבל בברכה. ככל שיותר מבוצע זה נעשה טוב יותר!
- הצג ב-GitHub
- תרום
- NewPipe מפותח ע\"י מתנדבים אשר תורמים מזמנם להביא את החוויה המושלמת עבורך. עכשיו זה הזמן לתת להם חזרה כדי לדאוג לכך ש-NewPipe תמשיך לצמוח!
+ נגן קל וחופשי להזרמת מדיה עבור Android.
+ התנדבות
+ אם יש לך רעיון כלשהו בנוגע לתרגום, שינויי עיצוב, ניקוי הקוד או שינויים מהותיים בקוד - אנו תמיד שמחים לקבל עזרה. ככל שיותר דברים מתבצעים כך היישומון משתפר!
+ הצגה ב־GitHub
+ תרומה
+ הפיתוח של NewPipe נערך ע״י מתנדבים שמשקיעים את זמנם כדי להגיש לך את החוויה הטובה ביותר. באפשרותך להעניק בחזרה כדי לסייע למפתחים לשפר את NewPipe בעודם נהנים מכוס קפה.
לתרום בחזרה
אתר הבית
- לקבלת מידע נוסף ועדכונים אחרונים עבור NewPipe אנא בקר באתרנו.
- רישיון NewPipe
- קרא רישיון
+ מומלץ לבקר באתר של NewPipe לפרטים נוספים ולחדשות.
+ הרישיון של NewPipe
+ הצגת הרישיון
היסטוריה
- חופש בעבר
- נצפה בעבר
- היסטוריה אינה פעילה
+ נשלח כחיפוש
+ נצפו
+ ההיסטוריה כבויה
היסטוריה
ההיסטוריה ריקה
- היסטוריה נוקתה
+ ההיסטוריה התרוקנה
פריט נמחק
- האם ברצונך למחוק את הפריט הזה מהיסטורית החיפושים?
+ למחוק את הפריט הזה מהיסטוריית החיפושים\?
תוכן הדף הראשי
דף ריק
- דף קיוסק
- דף עוקבים
+ דף גישה מזדמנת
+ דף מינויים
דף עדכונים
- דף ערוץ
- בחר ערוץ
- אף ערוץ אינו ברשימת המעקב עדיין
- בחר קיוסק
+ דף ערוצים
+ נא לבחור ערוץ
+ אין עדיין מינויים לערוצים
+ נא לבחור סוג גישה מזדמנת
- קיוסק
+ גישה מזדמנת
החמים
- 50 הנצפים ביותר
- חדש & חם
+ 50 המובילים
+ חדש וחם
נגן רקע
- נגן צץ
- הסר
+ נגן צף
+ הסרה
פרטים
אפשרויות שמע
- החזק להוספה לרשימת ניגון
- נוסף לרשימת הניגון ברקע
- נוסף לרשימת הניגון בנגן הצץ
- התחל לנגן כאן
- התחל כאן בנגן הרקע
- התחל כאן בנגן הצץ
-הורד קובץ הזרמה
- הצג מידע
+ להחזיק כדי להוסיף לרשימת נגינה
+ להוסיף לרשימת הנגינה בעת נגינת רקע
+ הוספה לרשימת הנגינה בנגן הצף
+ להתחיל לנגן מכאן
+ "להתחיל מכאן כאשר נגן הרקע מופעל"
+ להתחיל כאן בנגן הצף
+הורדת קובץ הזרמה
+ הצגת מידע
- רשימות השמעה מסומנות
+ רשימות נגינה מסומנות
הוספה אל
@@ -302,161 +302,237 @@
תמיד
חד פעמי
- יבוא מסד נתונים
- יצוא מסד נתונים
- נגנים חיצוניים לא תומכים בסוגי קישורים אלה
+ ייבוא מסד נתונים
+ ייצוא מסד נתונים
+ נגנים חיצוניים לא תומכים בסוגי קישורים כאלה
כתובת שגויה
קובץ
העברה לרקע
- העברה לחלון צץ
- לא נמצא נגן לצפייה ישירה (באפשרותך להתקין VLC כדי לתקן זאת).
- מטמון התמונות נוקה
- נקה מטמון מטא-דאטה
- מטמון המטא-דאטא נוקה
- יצא היסטוריה, רישומים ורשימות השמעה
- ניקוי היסטוריית הצפייה
+ העברה לחלון צף
+ לא נמצא נגן צפייה ישירה (ניתן להתקין את VLC כדי לתקן זאת).
+ מטמון התמונות התרוקן
+ ניקוי מטמון נתוני העל
+ מטמון נתוני העל התרוקן
+ ייצוא היסטוריה, מינויים ורשימות נגינה
+ מחיקת היסטוריית הצפייה
היסטוריית הצפייה נמחקה.
- ניקוי היסטוריית החיפוש
- היסטורית החיפוש נמחקה.
- הקובץ אינו קיים או שאין ברשותך הרשאות מתאימות לקריאתו/כתיבתו
+ מחיקת היסטוריית החיפוש
+ היסטוריית החיפוש נמחקה.
+ הקובץ אינו קיים או שחסרה הרשאה לקרוא אותו או לכתוב אליו
שם הקובץ אינו יכול להיות ריק
- גרור כדי לסדר מחדש
+ ניתן לסדר מחדש בגרירה
- צור
- מחק אחד
- מחק הכל
- סלק
- שנה שם
+ יצירה
+ למחוק אחד
+ למחוק הכול
+ התעלמות
+ שינוי שם
פריט אחד נמחק.
- לא נמצא נגן מתאים לקובץ זה
+ לא מותקן יישומון שמתאים לנגינת הקובץ הזה
- האם ברצונך למחוק פריט זה מהיסטוריית הצפייה שלך?
- האם אתה בטוח שברצונך למחוק את כל הפריטים מההיסטוריה?
- יצוא הושלם
- יבוא הושלם
- אין קובץ ZIP תקף
+ למחוק את הפריט הזה מהיסטוריית הצפייה שלך\?
+ למחוק את כל הפריטים מההיסטוריה\?
+ הייצוא הסתיים
+ הייבוא הסתיים
+ אין קובץ ZIP תקין
נגן וידאו
נגן רקע
- נגן קופץ
- שאל תמיד
+ נגן צף
+ לשאול תמיד
- משיג מידע…
+ המידע מתקבל…
התוכן המבוקש בטעינה
- צור רשימת השמעה חדשה
- מחק רשימת השמעה
- שנה שם רשימת השמעה
+ רשימת נגינה חדשה
+ מחיקה
+ שינוי שם
שם
- הוסף לרשימת השמעה
- הוסף רשימת השמעה למועדפים
- הסרת מועדף
+ הוספה לרשימת נגינה
+ הוספה רשימת השמעה לסימניות
+ הסרת סימנייה
- האם ברצונך למחוק רשימת השמעה זו?
- רשימת ההשמעה נוצרה בהצלחה
- נוסף לרשימת ההשמעה
- תמונת רשימת ההשמעה שונתה
- מלא
- הגדל
+ למחוק רשימת נגינה זו\?
+ רשימת הנגינה נוצרה
+ נוסף לרשימת הנגינה
+ תמונת רשימת הנגינה הוחלפה.
+ מילוי
+ תקריב
- נוצר אוטומטית
+ נוצרו אוטומטית
- יבוא/יצוא
- יבוא
- יבוא מ
- יצוא ל
+ ייבוא/ייצוא
+ ייבוא
+ ייבוא מ־
+ ייצוא אל
- מייבא…
- מייצא…
+ מתבצע ייבוא…
+ מתבצע ייצוא…
- יבא קובץ
- יצוא קודם
+ ייבוא קובץ
+ ייצוא קודם
- יבוא רשומים נכשל
- יצוא רשומים נכשל
+ לא ניתן לייבא את המינויים
+ לא ניתן לייצא את המינויים
- כדי לייבא את הערוצים אליהם אתה רשום מיוטיוב אתה תזדקק לקובץ היצוא, אותו ניתן להוריד כך:
-\n
-\n1. היכנס ללינק הזה: %1$s
-\n2. התחבר לחשבונך כשתתבקש
-\n3. ההורדה אמורה להתחיל (זהו קובץ היצוא)
+ כדי לייבא את רשימת המינויים שלך מ־YouTube עליך להוריד את קובץ הייצוא:
+\n
+\n1. לעבור לכתובת הזו: %1$s
+\n2. להיכנס אם נתבקשת
+\n3. ההורדה אמורה להתחיל (זה קובץ הייצוא)
קצב
ברירת מחדל
-השתמש בחיפוש מהיר שאינו מדויק
- חיפוש לא מדויק מאפשר לנגן לחפש נקודת זמן מהר יותר, עם דיוק מופחת
- טען תמונות ממוזערות
- "השבת כדי לעצור את טעינת כל התמונות הממוזערות וחסוך בשימוש בנתונים ובזכרון. השינוי ימחק את המטמון בזכרון ובדיסק. "
- הסר את כל נתוני העמודים במטמון
- הכנס את ההזרמה הבאה לתור באופן אוטומטי
- אוטומטית הוסף הזרמה קשורה כאשר ההזרמה האחרונה לא נמצאת במצב הזרמה חוזרת של התור.
- כפתור כיוון
- החלף לראשי
+שימוש בחיפוש מהיר גס
+ חיפוש גס מאפשר לנגן לחפש נקודת זמן מהר יותר, ברמת דיוק נמוכה יותר
+ טעינת תמונות ממוזערות
+ כיבוי האפשרות מונע את טעינת התמונות הממוזערות, חוסך בתקשורת נתונים ובניצולת הזיכרון. שינויים באפשרות זו מוחקים את המטמון בזיכרון ובכונן.
+ הסרת כל נתוני העמודים שבמטמון
+ הוספת התזרים הבא לרשימת הנגינה אוטומטית
+ להוסיף אוטומטית תזרים דומה בעת נגינת התזרים האחרון בתור שאינו מחזורי.
+ החלפת כיווניות
+ העברה לראשי
- דריסת ההיסטוריה ורשימת המנויים הקיימת
- מחק הסטוריה של ניגונים קודמים
+ משכתב את ההיסטוריה והמינויים הנוכחיים שלך
+ מחיקת היסטוריית התזרימים שהתנגנו
ערוצים
- רשימות השמעה
- שירים
+ רשימות נגינה
+ רצועות
משתמשים
- למחוק את כל הסטוריית הצפיה\?
- מוחק את היסטוריית מילות החיפוש
- למחוק את הסטוריית החיפוש\?
- לא נמצא וידאו להזרמה
- לא נמצא שמע להזרמה
- אין כזו תיקיה
- אין כזו תיקיה/תוכן
+ למחוק את כל היסטוריית הצפייה\?
+ מחיקת היסטוריית מילות החיפוש
+ למחוק את כל היסטוריית החיפוש\?
+ לא נמצא תזרימי וידאו
+ לא נמצא תזרימי שמע
+ אין תיקייה כזו
+ אין מקור תיקייה/תוכן
אירעה שגיאה: %1$s
- אין מקור הזרמה זמין להורדה
+ אין תזרימים זמינים להורדה
מדיניות הפרטיות של NewPipe
- פרויקט NewPipe לוקח את הפרטיות שלך ברצינות רבה. לפיכך, האפליקציה אינה אוספת מידע ללא הסכמתך.
-\nמדיניות הפרטיות של NewPipe מפרטת במדויק איזה מידע נשמר ונשלח בזמן שאתה מדווח על קריסת האפליקציה.
- קרא את מדיניות הפרטיות
- NewPipe היא תוכנה חופשית:
-\nאתה יכול להשתמש, ללמוד, לשתף ולשפר אותה כרצונך. באופן ספציפי ניתן להפיצה ו/או לשנות אותה תחת עמידה בתנאים של רישיון GNU GPL בגרסה 3, או בכל גרסה עדכנית יותר של רשיון זה.
- נוגן לאחרונה
- הכי נצפה
+ מיזם NewPipe שומר על הפרטיות שלך בצורה מאוד קפדנית. לפיכך, היישומון אינו אוסף נתונים ללא הסכמתך.
+\nמדיניות הפרטיות של NewPipe מסבירה בפרטי פרטים אילו נתונים נשלחים ומאוחסנים בעת שליחת דיווח על תקלה.
+ הצגת מדיניות הפרטיות
+ NewPipe הוא יישומון חופשי בהתאם לרישיון קופילפט: מותר לך להשתמש, לחקור, לשתף ולשפר בכל דרך שנראית לך. במיוחד מותר לך להפיץ מחדש ו/או לשנות תחת תנאי הרישיון הציבורי הכללי של GNU כפי שמופץ על ידי קרן התכנה החופשית, בין אם גרסה 3 של הרישיון או (לשיקולך) כל גרסה עדכנית יותר שלו.
+ התנגנו אחרונים
+ הכי נצפים
- אזהרה: לא ניתן היה לטעון את כל הקבצים.
+ אזהרה: ייבוא חלק מהקבצים נכשל.
פעולה זו תדרוס את ההגדרות הקיימות.
- האם ברצונך גם לטעון את ההגדרות\?
+ לייבא גם הגדרות\?
- פתח מגירה
- סגור מגירה
- משהו יופיע כאן בקרוב ;D
+ פתיחת מגירה
+ סגירת מגירה
+ משהו יופיע כאן בקרוב ;D
- פעולת \'פתח\' מועדפת
- פעולת ברירת המחדל בעת פתיחת תוכן - %s
+ פעולת ‚פתיחה’ מועדפת
+ פעולת בררת מחדל בעת פתיחת תוכן - %s
- קבע כתמונה של רשימת הניגון
+ הגדרה כתמונת רשימת הנגינה
- לא ניתן למחוק רשימת ניגון.
+ לא ניתן למחוק רשימת נגינה.
- ללא כותרת
+ אין כתוביות
- התאם
- כותרות
+ התאמה
+ כתוביות
שינוי גודל כותרת הנגן וסגנונות הרקע. נדרשת הפעלה מחדש כדי ששינויים אלה יכנסו לתוקף.
- אפשר LeakCanary
- מעקב אחר זליגת זיכרון יכולה לגרום לאפליקציה להיות בלתי זמינה בזמן העתקת תוכן הזכרון לקובץ
- yourID, soundcloud.com/yourid
- קחו בחשבון שהפעולה הזו יכולה לגזול הרבה משאבי רשת.
-\n
-\nהאם להמשיך\?
- נתק קישור (עלול ליצור עיוות)
- האץ קדימה כאשר שקט
+ הפעלת LeakCanary
+ מעקב אחר זליגת זיכרון עשויה לגרום ליישומון להיות בלתי זמין בזמן העתקת תוכן הזיכרון לקובץ
+ המזהה שלך, soundcloud.com/המזהה שלך
+ נא לשים לב כי פעולה זו עשויה להעמיס על תקשורת הנתונים.
+\n
+\nלהמשיך\?
+ ניתוק קישור (עלול ליצור עיוות)
+ להאיץ קדימה כאשר שקט
צעד
- אפס
- קבל
- דחה
+ איפוס
+ קבלה
+ דחייה
ללא מגבלה
- הקטן בעת מעבר אפליקציה
- הפעולה שיש לבצע בעת מעבר לאפליקציה אחרת מנגן הוידיאו הראשי — %s
+ מזעור בעת מעבר בין יישומונים
+ הפעולה לביצוע בעת מעבר ליישומון אחר מנגן הווידאו הראשי — %s
כלום
- הקטן לנגן הפועל ברקע
- הקטן לנגן פופאפ (חלונית)
+ מזעור לנגן הרקע
+ הקטנה לנגן צף
+ ביטול מינוי
+ לשונית חדשה
+ בחירת לשונית
+ מחוות בקרת עצמת שמע
+ ניתן להשתמש במחוות כדי לשלוט בעצמת השמע של הנגן
+ מחוות בקרת בהירות
+ ניתן להשתמש במחוות כדי לשלוט בבהירות הנגן
+ עדכונים
+ נמחק קובץ
+ התראת עדכון יישומון
+ התראות על גרסה חדשה של NewPipe
+ האחסון החיצוני אינו זמין
+ אין עדיין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\?
+ נעשה שימוש בלשוניות בררת המחדל, אירעה שגיאה בעת קריאת הלשוניות שנשמרו
+ שחזור בררות מחדל
+ לשחזר את בררות המחדל\?
+ מספר המנויים אינו זמין
+ אילו לשוניות תופענה בעמוד הראשי
+ בחירה
+ אירועים
+ כנסים
+ דיווח על שגיאות של חריגה ממחזור חיים
+ אילוץ דיווח על חריגות מחוץ למקטעים או למחזור חיי הפעילות לאחר ההשלכה בתשדורת יוצאת
+ ניתן לייבא פרופיל SoundCloud על ידי הקלדת הכתובת או המזהה שלך:
+\n
+\n1. עליך להפעיל „מצב שולחן עבודה” בדפדפן שלך (האתר לא זמין למכשירים ניידים)
+\n2. לעבור לכתובת הזו: %1$s
+\n3. להיכנס אם נתבקשת
+\n4. להעתיק את כתובת הפרופיל אליו הועברת.
+ בקרי מהירות נגינה
+ גובה צליל
+ הגבלת הרזולוציה בעת שימוש בנתונים סלולריים
+ כדי לעמוד בדרישות האסדרה הכללית להגנה על מידע (GDPR), אנו מפנים את תשומת לבך למדיניות הפרטיות של NewPipe. נא לקרוא אותה בעיון רב.
+\nעליך לאשר את הסכמתך למדיניות כדי לשלוח לנו דיווחים על תקלות.
+ עדכונים
+ הצגת התראה כדי להודיע על עדכון ליישומון כשיוצאת גרסה חדשה לאור
+ מצב תצוגת רשימה
+ רשימה
+ טבלה
+ אוטומטית
+ החלפת תצוגה
+ יצא עדכון ל־NewPipe!
+ יש לגעת כדי להוריד
+ הסתיים
+ בתור
+ מושהה
+ בתור
+ עיבוד מאוחר
+ תור
+ הפעולה נדחתה על ידי המערכת
+ ההורדה נכשלה
+ ההורדה הסתיימה
+ %s הורדות הסתיימו
+ יצירת שם ייחודי
+ שכתוב
+ כבר קיים קובץ בשם הזה
+ אחת ההורדות הפעילות כבר נושאת את השם הזה
+ הצגת שגיאה
+ קוד
+ לא ניתן ליצור את הקובץ
+ לא ניתן ליצור את תיקיית היעד
+ ההרשאה נדחתה על ידי המערכת
+ החיבור המאובטח נכשל
+ לא ניתן למצוא את השרת
+ לא ניתן להתחבר לשרת
+ השרת לא שולח נתונים
+ "השרת לא מקבל הורדות רב ערוציות, מוטב לנסות שוב עם @string/msg_threads = 1 "
+ הטווח המבוקש לא מתאים
+ לא נמצא
+ העיבוד המאוחר נכשל
+ פינוי ההורדות שהסתיימו
+ ניתן להמשיך את %s ההורדות הממתינות שלך דרך ההורדות
+ עצירה
+ מספר הניסיונות החוזרים המרבי
+ מספר הניסיונות החוזרים המרבי בטרם ביטול ההורדה
+ להשהות בעת מעבר לתקשורת נתונים סלולרית
+ הורדות שלא ניתן להשהות יופעלו מחדש
\ No newline at end of file
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index 7a8b6a008..9e8412e02 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -49,7 +49,7 @@
Putar
Konten
Konten yang dibatasi usia
- Tampilkan Video yang Dibatasi Usia. Membuka akses konten tersebut bisa dilakukan dari \"Pengaturan\".
+ Tampilkan video yang dibatasi usia. Membuka akses konten tersebut bisa dilakukan dari Pengaturan.
Galat jaringan
Tidak bisa memuat semua thumbnail
Maksud anda: %1$s\?
@@ -61,7 +61,7 @@
Galat
Tidak bisa mengurai situs web
- Sama sekali tidak bisa mengurai situs web
+ Tidak dapat menguraikan situs web sepenuhnya
Konten tidak tersedia
Diblokir oleh GEMA
Tidak bisa menyiapkan menu unduh
@@ -218,7 +218,7 @@
Riwayat
Riwayat kosong
Muat thumbnail
- Saat mati, thumbnail tidak dimuat, menghemat penggunaan data dan memori. Perubahan menghapus cache gambar baik di memori dan disk.
+ Matikan agar thumbnail tidak dimuat, menghemat penggunaan data dan memori. Perubahan menghapus cache gambar baik di memori dan disk.
Cache gambar dihapus
Hapus tembolok metadata
Buang semua data tembolok laman web
@@ -284,7 +284,7 @@
Tidak ada video
- - %s video
+ - Video
Buat
@@ -294,7 +294,7 @@
Ubah nama
Donasi
- NewPipe dikembangkan oleh relawan yang menyisihkan waktu untuk memberi anda pengalaman terbaik. Segala dukungan kepada pengembang akan membuat NewPipe menjadi lebih baik lagi.
+ NewPipe dikembangkan oleh relawan yang menyisihkan waktu untuk memberi anda pengalaman terbaik. Segala dukungan kepada pengembang akan membuat NewPipe menjadi lebih baik sambil menikmati secangkir kopi.
Beri dukungan
Situs Web
Kunjungi situs web NewPipe untuk info dan berita.
@@ -485,5 +485,69 @@
Nihil
Minimalkan ke pemutar latar belakang
Minimalkan ke pemutar popup
-
+ Henti subscribe
+ Tab Baru
+ Pilih Tab
+ Tema
+ Kontrol gestur volume
+ Gunakan gestur untuk mengontrol volume pemutar
+ Kontrol gestur kecerahan
+ Gunakan gestur untuk mengontrol kecerahan pemutar
+ Pembaruan
+ Acara
+ Berkas dihapus
+ Notifikasi Pembaruan Apl
+ Notifikasi untuk versi NewPipe baru
+ Penyimpanan eksternal tidak tersedia
+ Belum bisa mengunduh ke kartu SD eksternal. Setel ulang lokasi folder unduhan\?
+ Menggunakan tab baku, ralat saat membaca tab yang disimpan
+ Kembali ke awal
+ Apakah anda ingin kembali ke awal\?
+ Jumlah pelanggan tidak tersedia
+ Tab apa yang ditampilkan di halaman utama
+ Pilihan
+ Konferensi
+ Pembaruan
+ Tampilkan pemberitahuan untuk meminta pembaruan aplikasi saat versi baru tersedia
+ Mode tampilan daftar
+ Daftar
+ Kisi
+ Otomatis
+ Alihkan Tampilan
+ Pembaruan NewPipe Tersedia!
+ Ketuk untuk mengunduh
+ Selesai
+ Di antrian
+ dijeda
+ antri
+ pengolahan-pasca
+ Antre
+ Tindakan ditolak oleh sistem
+ Pengunduhan gagal
+ Pengunduhan selesai
+ %s unduhan selesai
+ Hasilkan nama unik
+ Timpa
+ File yang diunduh dengan nama ini sudah ada
+ Ada unduhan yang sedang berlangsung dengan nama ini
+ Tunjukkan kesalahan
+ Kode
+ File tidak dapat dibuat
+ Folder tujuan tidak dapat dibuat
+ Izin ditolak oleh sistem
+ Koneksi aman gagal
+ Tidak dapat menemukan server
+ Tidak dapat terhubung ke server
+ Server tidak mengirim data
+ Server tidak menerima unduhan multi-utas, coba lagi dengan @string/msg_threads = 1
+ Rentang yang diminta tidak memuaskan
+ Tidak ditemukan
+ Pengolahan-pasca gagal
+ Hapus unduhan yang sudah selesai
+ Lanjutkan %s transfer anda yang tertunda dari Unduhan
+ Berhenti
+ Percobaan maksimum
+ Jumlah upaya maksimum sebelum membatalkan unduhan
+ Berhenti ketika beralih ke data seluler
+ Unduhan yang tidak dapat dijeda akan dimulai kembali
\ 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 0798d7f42..b8cebdacb 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -72,7 +72,7 @@
Contenuti
Contenuti vietati ai minori
- Mostra video riversati ad un pubblico maggiorenne. Si possono abilitare dalle \"Impostazioni\".
+ Mostra video riversati a un pubblico maggiorenne. Si possono abilitare dalle Impostazioni.
Tocca Cerca per iniziare
Riproduzione automatica
@@ -255,8 +255,8 @@
Nessun video
- - %s video
- - %s video
+ - Video
+ - Video
Elemento eliminato
@@ -314,7 +314,7 @@
Servizio
Apri il menu
Chiudi il menu
- Nessun lettore multimediale trovato (puoi installare VLC per riprodurlo).
+ Nessun lettore multimediale trovato. Puoi installare VLC per riprodurlo.
Sempre
Solo una volta
@@ -343,7 +343,7 @@
Scarica il video
Mostra informazioni
- Scalette preferite
+ Playlist preferite
Aggiungi a
@@ -444,7 +444,7 @@
\n
\nVuoi continuare?
Carica miniature
- Disabilita per interrompere il caricamento delle miniature, la loro archiviazione e l\'utilizzo della memoria. La modifica di questa opzione cancellerà la cache delle immagini in memoria e sul disco.
+ Disabilita il caricamento delle miniature, risparmiando dati e memoria. La modifica dell\'opzione comporta la cancellazione della cache in memoria e sul disco.
Pulizia della cache delle immagini completata
Pulisci la cache dei metadati
Rimuovi tutti i dati delle pagine web memorizzati nella cache
@@ -503,4 +503,68 @@
Playlist
Tracce
Utenti
-
\ No newline at end of file
+ Disiscriviti
+ Nuova scheda
+ Scegli scheda
+ Movimenti per il controllo del volume
+ Utilizza i movimenti per controllare il volume del riproduttore
+ Movimenti per la gestione della luminosità
+ Utilizza i movimenti per controllare la luminosità del riproduttore
+ Aggiornamenti
+ File eliminato
+ Notifiche di aggiornamenti dell\'applicazione
+ Notifiche per una nuova versione di NewPipe
+ Archiviazione esterna non disponibile
+ Download sulla memoria esterna SD ancora non disponibile. Reimpostare la posizione della cartella di download\?
+ Utilizzando le schede predefinite, c\'è stato un errore durante la lettura delle schede salvate
+ Ripristina predefiniti
+ Davvero ripristinare i predefiniti\?
+ Contatore degli iscritti non disponibile
+ Quali schede sono mostrate nella pagina principale
+ Selezione
+ Aggiornamenti
+ Mostra una notifica per suggerire l\'aggiornamento dell\'app se una nuova versione è disponibile
+ Visualizzazione a lista
+ Lista
+ Griglia
+ Automatico
+ Cambia vista
+ Aggiornamento di NewPipe disponibile!
+ Premi per scaricare
+ Finito
+ In coda
+ in pausa
+ in coda
+ post-processo
+ Coda
+ Azione negata dal sistema
+ Download fallito
+ Download finito
+ %s download finiti
+ Genera un nome unico
+ Sovrascrivi
+ Esiste già un file scaricato con lo stesso nome
+ C\'è un download in progresso con questo nome
+ Mostra errore
+ Codice
+ Impossibile creare il file
+ Impossibile creare la cartella di destinazione
+ Permesso negato dal sistema
+ Connessione sicura fallita
+ Impossibile trovare il server
+ Impossibile connettersi al server
+ Il server non invia dati
+ Il server non accetta download multipli, riprovare con @string/msg_threads = 1
+ Intervallo richiesto non soddisfatto
+ Non trovato
+ Post-processing fallito
+ Pulisci i download completati
+ Continua i %s trasferimenti in corso dai Download
+ Ferma
+ Tentativi massimi
+ Tentativi massimi prima di cancellare il download
+ Metti in pausa quando si usano i dati mobili
+ I download che non possono essere messi in pausa verranno ravviati
+ Eventi
+ Conferenze
+
\ No newline at end of file
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index e0f5dab4d..c53c401a0 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -9,7 +9,7 @@
保存
検索
設定
- もしかして: %1$s
+ もしかして: %1$s?
共有
ブラウザを選択
回転
@@ -24,7 +24,7 @@
音楽
デフォルトの音楽形式
保存
- 次の動画
+ 次
「次の動画」と「関連動画」を表示
URLは使用できません
優先言語
@@ -52,7 +52,7 @@
ネットワークエラー
音楽を保存する場所
- 音楽を保存する場所
+ ダウンロードした音楽をここに保存します
音楽ファイルをダウンロードする場所を入力して下さい。
保存場所 \'%1$s\' を作成できません
@@ -71,8 +71,8 @@
コンテンツ
- 年齢制限のあるコンテンツを表示する
- この動画には年齢制限があります。視聴するには設定から制限を解除して下さい。
+ 年齢制限のあるコンテンツ
+ この動画には年齢制限があります。視聴するには設定から制限を解除して下さい。
ウェブサイトを完全には解析できませんでした
動画を取得できませんでした
@@ -175,7 +175,7 @@
ポップアップ
サイズを変更
- このオプションが有効になっているとき、一部の解像度では音声がありません
+ 一部の解像度では音声がありません
プレーヤーのジェスチャー コントロール
ジェスチャーを使用してプレーヤーの明るさと音量をコントロールする
検索候補
@@ -276,7 +276,7 @@
ポップアップ再生に変更
メイン再生に変更
- 動画プレイヤーが見つかりません (VLCをインストールして再生できます)
+ 動画プレイヤーが見つかりません (VLCをインストールして再生できます)。
デフォルトのコンテンツの国
サービス
常に
@@ -289,8 +289,8 @@
再生エラーからの回復中
外部プレーヤーは、これらのタイプのリンクをサポートしていません
無効なURL
- エクスポートが完了しました
- インポートが完了しました
+ エクスポートが完了
+ インポートが完了
有効な ZIP ファイルではありません
警告: すべてのファイルをインポートできませんでした。
これにより、現在の設定が上書きされます。
@@ -324,7 +324,7 @@
動画が見つかりません
音声が見つかりません
- 無効なディレクトリ
+ そのフォルダーはありません
ファイルが存在しないか、ファイルへの読み書きができません
ファイル名は空白にできません
エラーが発生しました: %1$s
@@ -342,9 +342,9 @@
すべてのアイテムを再生履歴から削除しますか?
常に確認
- 新規プレイリストを作成
- プレイリストを削除
- プレイリストの名前を変更
+ 新規プレイリスト
+ 削除
+ 変更
プレイリスト名
プレイリストに追加
プレイリストのサムネイルとして設定
@@ -355,8 +355,8 @@
このプレイリストを削除しますか?
プレイリストが作成されました
プレイリストに追加しました
- プレイリストのサムネイルを変更しました
- プレイリストが削除できませんでした
+ プレイリストのサムネイルを変更しました。
+ プレイリストが削除できませんでした。
字幕なし
@@ -398,11 +398,11 @@
プライバシーポリシーを確認
おおまかなシーク
おおまかなシークを使用すると、正確さ下がりますが、高速なシークが可能になります
- すべてのサムネイルの読み込みと保存を無効化します。このオプションを切り替えるとメモリおよびディスク上の画像キャッシュがクリアされます
- 繰り返しでないキューの最後の動画を再生時、関連動画を自動的にキューに追加する
- すべての再生履歴を削除します
- すべての検索履歴を削除します
- ファイル/コンテンツのソースが無効です
+ すべてのサムネイルの読み込みと保存を無効化します、このオプションを切り替えるとメモリおよびディスク上の画像キャッシュがクリアされます。
+ 繰り返しでないキューの最後の動画を再生時、関連動画を自動的にキューに追加する。
+ すべての再生履歴を削除します?
+ すべての検索履歴を削除します?
+ このファイル/コンテンツはありません
- 登録者数 %s 人
@@ -413,14 +413,14 @@
- - %s 本の動画
+ - 本の動画
1 つのアイテムが削除されました
支援する
NewPipe プロジェクトはあなたのプライバシーを非常に大切にしています。あなたの同意がない限り、アプリはいかなるデータも収集しません。NewPipe のプライバシー・ポリシーでは、クラッシュリポート送信時にどのような種類のデータが送信・記録されるかを詳細に説明しています。
- NewPipe は著作権が自由のソフトウェアです。自由であるとは、あなたは自分の自由意志で、ソフトウェアを自由に使ったり、自由に研究したり、自由に改良することができるということです。あなたは、GNU フリーソフトウェア財団が公開する GNU General Public ライセンス バージョン3以降の下に、自由に再配布・修正を行うことができます。
+ NewPipe は著作権が自由のソフトウェアです。あなたは自由にそれを使用し、研究し、そして改善することができます。あなたは、GNU フリーソフトウェア財団が公開する GNU General Public ライセンス バージョン3以降の下に、自由に再配布・修正を行うことができます。
最終再生日時
最も再生した動画
@@ -436,7 +436,7 @@
長押ししてキューに入れる
バックグラウンド時にキューに入れる
ポップアップ時にキューに入れる
- ポップアップ時にここから開始
+ 新ポップアップ時にここから開始
すぐにここに表示されます;D
@@ -448,7 +448,7 @@
埋める
自動生成
- プレーヤーのキャプション文字スケールと背景スタイルを変更します。有効にするにはアプリの再起動が必要です
+ プレーヤーのキャプション文字スケールと背景スタイルを変更します。有効にするにはアプリの再起動が必要です。
何もありません
保存したエクスポートファイルからYoutubeの購読をインポート:
@@ -486,4 +486,70 @@
リンク解除 (不備が生じる可能性があります)
無音の間に早送り
ステップ
+ 購読解除
+ 新しいタブ
+ タブを選択
+ 更新
+ 催し物
+ 新しい NewPipe バージョンの通知
+ 外部記憶装置きません
+ 既定値に戻す
+ 既定の設定を復元しますか\?
+ 加入者数は利用できません
+ 選択
+ 会議
+ ヨーロッパの一般データ保護規制(GDPR)に準拠するために、NewPipeの個人情報保護方針にご注意ください。よく読んでください。
+\nあなたは私たちにバグレポートを送るためにそれを受け入れなければなりません。
+ 更新
+ リスト ビュー モード
+ リスト
+ グリッド
+ 自動
+ スイッチビュー
+ 利用可能なNewPipe更新!
+ ダウンロードするをタップ
+ 終了しました
+ 順番待ち
+ 一時停止
+ 待ち行列
+ 後処理
+ キュー
+ システムによって拒否されたアクション
+ ダウンロードに失敗しました
+ ダウンロードが完了しました
+ %s 件のダウンロード終了
+ 一意の名前を生成します
+ 上書き
+ この名前のファイルが既に存在します
+ この名前を持つ進行中のダウンロードがあります
+ エラーを表示します
+ コード
+ ファイルを作成できません
+ 宛先フォルダを作成できません
+ システムが拒否する許可
+ 安全な接続に失敗しました
+ サーバが見つからなかった
+ サーバに接続できません
+ サーバーはデータを送信しません
+ サーバーは、マルチ スレッドのダウンロードを受け付けない、再試行してください @string/msg_threads = 1
+ 必要な範囲が満たされていません
+ 見つかりません
+ 後処理失敗
+ 明確な完成したダウンロード
+ 停止
+ 最大再試行回数
+ ダウンロードをキャンセルする前に試行の最大数
+ 音量ジェスチャー制御
+ ジェスチャーを使用して、プレーヤーの音量を制御します
+ 明るさジェスチャー制御
+ ジェスチャーを使用して、プレーヤーの明るさを制御します
+ ファイルを削除しました
+ アプリの更新通知
+ まだ外部 SD カードにダウンロードできません。ダウンロードフォルダーの場所をリセットしますか\?
+ デフォルトのタブを使用します。保存タブの読み取りエラーが発生しました
+ メインページに表示されるタブ
+ 新しいバージョンが利用可能なときにアプリの更新を確認する通知を表示します
+ ダウンロードから %s の保留中の転送を続行します
+ モバイルデータ通信に切り替え時に休止
+ 休止できないダウンロードが再開されます
\ 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 34eb53c8a..bcaafbcfc 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -1,4 +1,4 @@
-
+
시청 횟수 %1$s
%1$s에 업로드됨
@@ -10,7 +10,7 @@
다운로드
검색
설정
- 혹시 이것을 검색하셨습니까?: %1$s ?
+ 혹시 이것을 검색하셨습니까\?: %1$s\?
다음으로 공유
브라우저 선택
회전
@@ -25,7 +25,7 @@
오디오
기본 오디오 형식
다운로드
- 다음 비디오
+ 다음
다음 및 유사한 비디오 표시
지원하지 않는 URL 입니다
기본 컨텐츠 언어
@@ -39,8 +39,8 @@
외부 비디오 플레이어 사용
외부 오디오 플레이어 사용
- 오디오 다운로드 경로
- 다운로드된 오디오를 저장할 경로입니다
+ 오디오 다운로드 폴더
+ 다운로드된 오디오는 여기에 저장됩니다
오디오 파일 다운로드 경로를 입력하세요
테마
@@ -62,7 +62,7 @@
자동으로 재생
NewPipe가 다른 앱으로부터 호출되었을 때 동영상을 재생합니다
컨텐츠
- 나이 제한이 있는 컨텐츠를 표시
+ 연령 제한 컨텐츠
연령 제한 비디오입니다. 설정 메뉴에서 시청 허용 여부를 변경하실 수 있습니다.
라이브
@@ -74,7 +74,7 @@
컨텐츠를 사용할 수 없습니다
GEMA에 의해 차단되었습니다
다운로드 메뉴를 설정할 수 없습니다
- 실시간 스트리밍 비디오는 아직 지원되지 않습니다.
+ 라이브 스트림은 아직 지원하지 않습니다
어떠한 스트림도 가져올 수 없습니다
죄송합니다. 오류가 발생했습니다.
이메일을 통해 오류 보고
@@ -101,7 +101,7 @@
체크섬
팝업 모드에서 열기
- 이 옵션을 사용할 경우 일부 해상도에서 소리가 나지 않을 수 있습니다
+ 일부 해상도에서 소리가 나지 않습니다
뉴파이프 팝업 모드
구독
구독됨
@@ -165,7 +165,7 @@
이미지를 불러올 수 없습니다
앱/UI 충돌
- 이 스트림을 재생할 수 없습니다.
+ 이 스트림을 재생할 수 없습니다
복구할 수 없는 플레이어 오류가 발생했습니다
플레이어 오류로부터 복구 중
@@ -192,7 +192,7 @@
비디오 없음
- - %s 비디오
+ - 비디오
재생
@@ -214,7 +214,7 @@
\n열기 위해 필요합니다
로봇인지 확인 (reCAPTCHA)
- reCAPTCHA Challenge 요청됨
+ reCAPTCHA challenge 요청됨
다운로드
파일명에 허용되는 문자
@@ -239,7 +239,7 @@
번역, 디자인, 코딩 등 다양한 기여를 언제나 환영합니다. 향상에 참여해주세요!
GitHub에서 보기
기부
- 뉴파이프는 자원봉사자들이 자발적으로 여가 시간을 활용해 개발하고 있습니다. 이제 이러한 노력에 보답할 시간입니다!
+ 여러분의 사용자 경험을 위해 자원봉사자들이 시간을 들여 뉴파이프를 개발하고 있습니다. 뉴파이프를 개선하는데 참여하는 개발자들을 위하여 기부해 주세요.
보답하기
웹사이트
뉴파이프에 관한 최신 및 상세 정보를 얻으려면 웹사이트를 방문하세요.
@@ -283,10 +283,10 @@
여기서부터 백그라운드에서 재생
여기서부터 팝업에 재생
스트리밍 플레이어를 찾을 수 없습니다. VLC를 설치하면 플레이하실 수 있습니다
- 스트리밍 파일 다운로드하기.
+ 스트리밍 파일 다운로드하기
정보 보기
- 북마크
+ 플레이리스트 북마크
이곳에 추가
@@ -308,8 +308,8 @@
데이터베이스 가져오기
데이터베이스 내보내기
- 현재 시청 기록 및 구독 목록을 덮어쓰기 됩니다
- 시청 기록, 구독 목록과 재생목록을 내보냅니다.
+ 현재 시청 기록 및 구독 목록을 덮어쓰기 합니다
+ 시청 기록, 구독 목록과 재생목록을 내보냅니다
외부 플레이어는 이러한 종류의 링크를 지원하지 않습니다
잘못된 URL
발견된 비디오 스트림 없음
@@ -348,9 +348,9 @@
정보 가져오는 중…
요청한 콘텐츠를 로딩 중입니다
- 새로운 재생목록 만들기
- 재생목록 삭제
- 재생목록 이름 바꾸기
+ 새로운 재생목록
+ 삭제
+ 이름 바꾸기
이름
재생목록에 추가
재생목록 썸네일로 설정
@@ -361,8 +361,8 @@
이 재생목록을 삭제하시겠습니까?
재생목록 생성 완료
재생목록에 추가됨
- 재생목록 썸내일이 바뀜
- 재생목록 삭제 실패
+ 재생목록 썸내일이 바뀜.
+ 재생목록을 삭제할 수 없습니다.
자막 없음
@@ -381,15 +381,15 @@
LeakCanary 할성화
힙 덤프 중 메모리 누수 점검으로 앱이 불안정해질 수 있습니다
- Out-of-Lifecycle 오류 보고
+ out-of-lifecycle 오류 보고
프래그먼트 또는 버려진 액티비티 주기 밖에서 일어나는 전달할 수 없는 Rx 예외를 강제적으로 보고하기
파일
- 잘못된 디렉토리
+ 폴더가 존재하지 않습니다
잘못된 파일/콘덴츠 소스
- 파일이 존재하지 않거나 읽기/쓰기 권환이 없습니다
- 파일 이름이 비어 있으면 안됩니다
+ 파일이 존재하지 않거나 읽기/쓰기 권한이 없습니다
+ 파일명이 비어 있으면 안됩니다
오류 발생: %1$s
가져오기/내보내기
@@ -423,8 +423,8 @@
\n
\n계속하시겠습니까?
썸내일 로드하기
- 동영상 썸네일을 로드하지 않으며, 데이터와 메모리 사용을 최대한 줄입니다. 이 옵션을
-\n선택 시, 모든 메모리 캐시와 저장소 캐시를 삭제합니다.
+ 동영상 썸네일을 로드하지 않으며, 데이터와 메모리 사용을 최대한 줄입니다. 이 옵션을
+\n선택 시 모든 메모리 캐시와 저장소 캐시를 삭제합니다.
이미지 캐시 지워짐
캐시된 메타데이터 지우기
캐시된 모든 웹페이지 데이터 지우기
@@ -437,7 +437,7 @@
기본
다운로드 가능한 스트림이 없습니다
- 이 파일을 재생할 수 있는 플레이어 앱이 없습니다.
+ 이 파일을 재생할 수 있는 플레이어 앱이 없습니다
선호하는 열기 동작
컨텐츠를 열 때 사용할 기본 동작 — %s
@@ -448,12 +448,12 @@
채널만
재생 목록만
시청 기록 삭제하기
- 동영상 시청 기록을 삭제합니다.
- \'삭제\' 버튼을 누르면 모든 시청 기록이 삭제됩니다.
+ 동영상 시청 기록을 삭제합니다
+ 모든 시청 기록을 삭제하시겠습니까\?
동영상 시청 기록이 삭제되었습니다.
검색 기록 삭제
- 검색 기록을 모두 삭제합니다.
- \'삭제\' 버튼을 누르면 모든 검색 기록이 삭제됩니다.
+ 검색 기록을 모두 삭제합니다
+ 모든 검색 기록을 삭제하시겠습니까\?
검색 기록이 삭제되었습니다.
뉴파이프 개인정보 보호 정책
뉴파이프 프로젝트는 사용자의 개인 정보 보호를 최우선으로 생각하며, 동의 없이 어떠한 정보도 수집하지 않습니다.
@@ -470,4 +470,20 @@
데이터 제한 없음
모바일 데이터 사용 시 화질 제한
-
+ 구독 해제
+ 새 탭
+ 탭 선택
+ 제스쳐로 음량 조작
+ 제스쳐를 사용해 플레이어의 음량을 조작 합니다
+ 제스쳐로 밝기 조작
+ 제스쳐를 사용해 화면 밝기를 조작합니다
+ 업데이트
+ 트랙
+ 사용자
+ 이벤트
+ 파일 삭제됨
+ 앱 업데이트 알림
+ 새 뉴파이프 버전을 알림
+ 외부 저장소 없음
+ 다운로드할 SD 카드를 찾을 수 없습니다. 다운로드 폴더 경로를 초기화 하시겠습니까\?
+
\ No newline at end of file
diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml
index b228fb282..7c8b56bec 100644
--- a/app/src/main/res/values-ms/strings.xml
+++ b/app/src/main/res/values-ms/strings.xml
@@ -1,35 +1,468 @@
-
-Ketuk carian untuk bermula
- %1$s dilihat
+
+Tekan carian untuk bermula
+ %1$s tontonan
Diterbitkan pada %1$s
- Tiada pemain strim yang ditemui. Adakah anda mahu memasang VLC?
- Tiada pemain strim yang ditemui (anda boleh memasang VLC untuk bermain)
+ Tiada pemain strim ditemui. Adakah anda mahu memasang VLC\?
+ Tiada pemain strim yang ditemui (anda boleh memasang VLC untuk memainkan).
Pasang
Batal
Buka dalam pelayar
Buka dalam mod popup
Kongsi
Muat turun
- Muat turun fail strim.
+ Muat turun fail strim
Carian
Tetapan
- Adakah anda maksudkan: %1$s ?
+ Adakah anda maksudkan: %1$s\?
Berkongsi dengan
Pilih pelayar
putaran
Guna pemain video luaran
- Beberapa resolusi yang TIDAK akan mempunyai audio apabila opsyen ini diaktifkan
+ Menghapus audio pada SESETENGAH resolusi
Gunakan pemain audio luaran
- NewPipe mod popup
+ Mod popup NewPipe
Langgan
Dilanggan
- Saluran tanpa langganan
+ Langganan saluran dihenti
Tidak dapat menukar langganan
Tidak dapat mengemaskini langganan
Papar maklumat
Utama
Langganan
- Penanda halaman
-
-
+ Penanda halaman Senarai main
+ Henti langganan
+ Tab Baru
+ Pilih Tab
+ Apa yang Baru
+ Latar Belakang
+ Popup
+ Tambahkan Ke
+ Lokasi muat turun video
+ Lokasi untuk menyimpan video yang dimuat turun
+ Memasukkan lokasi muat turun video
+ Lokasi muat turun audio
+ Audio yang dimuat turun disimpan sini
+ Memasukkan lokasi muat turun fail audio
+ Main secara automatik
+ Memain video apabila NewPipe dipanggil dari app lain
+ Resolusi utama
+ Resolusi popup utama
+ Papar resolusi yang lebih tinggi
+ Hanya peranti tertentu yang mampu bermain video 2K/4K
+ Main dengan Kodi
+ App Kore tidak dijumpai. Pasangkan\?
+ Paparkan opsyen \"Main dengan Kodi\"
+ Paparkan opsyen untuk memain video dengan Kodi
+ Audio
+ Format audio utama
+ Format video utama
+ Tema
+ Cerah
+ Gelap
+ Hitam
+ Mengingat saiz dan posisi popup
+ Mengingat saiz dan posisi popup terakhir
+ Gunakan tinjau laju tidak tepat
+ Membolehkan pemain untuk meninjau ke posisi lebih laju dengan kurang ketepatan
+ Muatkan thumbnail
+ Matikan untuk mengelakkan pemuatan thumbnail, menjimat penggunaan data dan memori. Perubahan akan menghapus cache imej dalam memori dan disk.
+ Cache imej dihapuskan
+ Hapuskan cache metadata
+ "Hapuskan semua cache data halaman web "
+ Cache metadata dihapuskan
+ Automatik beratur strim seterusnya
+ Tambahkan secara automatik strim berkaitan apabila memain strim terakhir dalam giliran tidak berulang.
+ Kontrol gestur volume
+ Gunakan gestur untuk melaraskan volume pemain
+ Kontrol gestur kecerahan
+ Gunakan gestur untuk melaraskan kecerahan pemain
+ Kontrol gestur pemain
+ Gunakan gestur untuk melaraskan kecerahan dan volume pemain
+ Cadangan carian
+ Tunjukkan cadangan semasa mencari
+ Sejarah carian
+ Simpan pertanyaan carian secara lokal
+ Sejarah & Cache
+ Simpan senarai video yang telah ditonton
+ Teruskan apabila fokus
+ Teruskan bermain selepas gangguan (contohnya panggilan telefon)
+ Muat turun
+ Seterusnya
+ Paparkan video \'Seterusnya\' dan \'Berkaitan\'
+ Tunjukkan tip \"Pegang untuk menambahkan\"
+ Tunjukkan tip apabila butang latar belakang atau popup ditekan pada halaman butiran video
+ URL tidak disokong
+ Negara kandungan utama
+ Perkhidmatan
+ Bahasa kandungan utama
+ Pemain
+ Tingkah laku
+ Video & audio
+ Sejarah & cache
+ Popup
+ Penampilan
+ Lain-lain
+ Debug
+ Kemas kini
+ Bermain di latar belakang
+ Bermain dalam mod popup
+ Beratur pada pemain latar belakang
+ Beratur pada pemain popup
+ Main
+ Kandungan
+ Kandungan terhad umur
+ Tunjukkan video terhad umur. Membenarkan bahan tersebut boleh dilakukan dari Tetapan.
+ LANGSUNG
+ Muat turun
+ Muat turun
+ Laporan ralat
+ Semua
+ Saluran
+ Saluran
+ Senarai main
+ Senarai main
+
+ - Video
+
+ Trek
+ Pengguna
+ Peristiwa
+ Ya
+ Nanti
+ Dinyahdayakan
+ Penapis
+ Segarkan
+ Bersihkan
+ Mengubah saiz
+ Resolusi terbaik
+ Undo
+ Fail dipadam
+ Mainkan Semua
+ Sentiasa
+ Hanya sekali
+ Fail
+ Pemberitahuan NewPipe
+ Pemberitahuan untuk pemain latar belakang dan pemain popup NewPipe
+ Pemberitahuan Kemas Kini App
+ Pemberitahuan untuk versi NewPipe baru
+ [Tidak diketahui]
+ Beralih Orientasi
+ Beralih ke Latar Belakang
+ Beralih ke Popup
+ Beralih ke Latar Utama
+ Import pangkalan data
+ Export pangkalan data
+ Timpa sejarah dan langganan semasa anda
+ Mengeksport sejarah, langganan dan senarai main
+ Hapuskan sejarah tontonan
+ Hapuskan sejarah strim yang telah dimain
+ Padamkan seluruh sejarah tontonan\?
+ Sejarah tontonan dipadamkan.
+ Hapuskan sejarah carian
+ Padamkan sejarah kata kunci carian
+ Padamkan seluruh sejarah carian\?
+ Sejarah carian dipadamkan.
+ Ralat
+ Penyimpanan luaran tidak tersedia
+ Tidak mampu Memuat turun ke kad SD luar. Tetapkan semula lokasi folder muat turun\?
+ Ralat rangkaian
+ Tidak dapat memuat semua thumbnail
+ Tidak dapat menyahsulit tanda tangan URL video
+ Tidak dapat menghuraikan laman web
+ Tidak dapat menghuraikan laman web sepenuhnya
+ Kandungan tidak tersedia
+ Disekat oleh GEMA
+ Tidak dapat menyediakan menu muat turun
+ Siaran langsung belum disokong
+ Tidak boleh mendapat sebarang strim
+ Tidak dapat memuat imej
+ App/UI terhempas
+ Tidak dapat memain strim ini
+ Ralat pemain yang tidak dapat dipulihkan telah berlaku
+ Memulihkan dari ralat pemain
+ Pemain luar tidak menyokong jenis pautan ini
+ URL tidak sah
+ Tiada strim video yang dijumpai
+ Tiada strim audio yang dijumpai
+ Tiada folder itu
+ Tiada fail/sumber kandungan itu
+ Fail tidak wujud atau tiada kebenaran untuk membaca atau menulis kepadanya
+ Nama fail tidak boleh kosong
+ Ralat berlaku: %1$s
+ Tiada strim yang tersedia untuk dimuat turun
+ Menggunakan tab utama, ralat semasa membaca tab tersimpan
+ Kembali kepada asal
+ Adakah anda mahu kembali kepada asal\?
+ Maaf, itu tidak sepatutnya berlaku.
+ Laporkan ralat melalui e-mel
+ Maaf, ada ralat yang berlaku.
+ LAPOR
+ Maklumat:
+ Apa yang berlaku:
+ Apa:\\nPermintaan:\\nKandungan
+\nBahasa:\\nPerkhidmatan:\\nGMT
+\nMasa:\\nPakej:\\nVersi:\\nVersi OS:
+ Komen anda (dalam bahasa Inggeris):
+ Butiran:
+ Thumbnail pratonton video
+ Thumbnail pratonton video
+ Thumbnail avatar pemuat
+ Suka
+ Tidak suka
+ Gunakan Tor
+ (Eksperimen) Memaksa memuat turun lalu lintas melalui Tor untuk meningkatkan privasi (video streaming belum disokong).
+ Laporkan Ralat
+ Laporan pengguna
+ Tiada keputusan
+ Tiada apa-apa di sini tetapi jangkrik
+ Seret untuk menyusun semula
+ Tidak dapat membuat direktori muat turun \'%1$s\'
+ Direktori muat turun dibuat \'%1$s\'
+ Video
+ Audio
+ Cuba semula
+ Kebenaran akses storan ditolak
+ K
+ J
+ B
+ Tiada pelanggan
+
+ - %s pelanggan
+
+ Kira pelanggan tidak tersedia
+ Tiada tontonan
+
+ - %s tontonan
+
+ Tiada video
+ Mula
+ Jeda
+ Main
+ Buat
+ Padam
+ Padamkan Satu
+ Padamkan Semua
+ Checksum
+ Buangkan
+ Namakan semula
+ Misi baru
+ OK
+ Nama fail
+ Thread
+ Ralat
+ Server tidak disokong
+ Fail sudah wujud
+ URL yang salah atau Internet tidak tersedia
+ NewPipe sedang memuat turun
+ Ketuk untuk butiran
+ Sila tunggu…
+ Disalin ke papan klip
+ Sila pilih folder muat turun yang tersedia
+ Kebenaran ini diperlukan untuk
+\nbuka dalam mod popup
+ 1 item dipadamkan.
+ reCAPTCHA
+ Cabaran reCAPTCHA
+ Meminta kod reCAPTCHA
+ Muat turun
+ Karakter yang dibenarkan dalam nama fail
+ Karakter tidak sah digantikan dengan nilai ini
+ Karakter pengganti
+ Huruf dan angka
+ Karakter yang paling istimewa
+ Tiada app dipasang untuk memainkan fail ini
+ Tentang NewPipe
+ Tetapan
+ Tentang
+ Lesen Pihak Ketiga
+ © %1$s oleh %2$s di bawah %3$s
+ Tidak dapat memuatkan lesen
+ Buka laman web
+ Tentang
+ Penyumbang
+ Lesen
+ Aplikasi strim yang percuma dan ringan untuk Android.
+ Sumbang
+ Sama ada anda mempunyai idea; terjemahan, perubahan reka bentuk, pembersihan kod, atau perubahan kod sebenar yang berat-bantuan sentiasa dialu-alukan. Semakin banyak yang dilakukan semakin baik!
+ Lihat di GitHub
+ Derma
+ NewPipe dibangunkan oleh sukarelawan menghabiskan masa membawa pengalaman terbaik. Beri balik untuk membantu pemaju membuat NewPipe lebih baik sambil menikmati secawan kopi.
+ Bagi balik
+ Laman Web
+ Lawati Laman Web NewPipe untuk maklumat lanjut dan berita.
+ Dasar Privasi NewPipe
+ Projek NewPipe mengambil perhatian privasi anda dengan sangat serius. Oleh itu, aplikasi tidak mengumpulkan sebarang data tanpa persetujuan anda.
+\nDasar privasi NewPipe menerangkan secara terperinci apa data dihantar dan disimpan apabila anda menghantar laporan ranap.
+ Baca dasar privasi
+ Lesen NewPipe
+ NewPipe adalah perisian copyleft percuma: Anda boleh menggunakan, berkongsi kajian dan memperbaikinya mengikut kehendak. Khususnya anda boleh mengagihkan semula dan / atau mengubahnya di bawah syarat GNU General Public License seperti yang diterbitkan oleh Free Software Foundation, sama ada versi 3 dari Lesen, atau (pada pilihan anda) versi yang lebih baru.
+ Baca lesen
+ Sejarah
+ Dicari
+ Ditonton
+ Sejarah dimatikan
+ Sejarah
+ Sejarah kosong
+ Sejarah dihapuskan
+ Item dipadamkan
+ Adakah anda mahu memadamkan item ini dari sejarah carian\?
+ Adakah anda mahu memadamkan item ini dari sejarah tontonan\?
+ Adakah anda pasti mahu memadamkan semua item dari sejarah\?
+ Terakhir dimainkan
+ Kebanyakan dimainkan
+ Kandungan halaman utama
+ Tab apa yang ditunjukkan pada halaman utama
+ Pemilihan
+ Halaman Kosong
+ Halaman Kiosk
+ Halaman Langganan
+ Halaman Feed
+ Halaman Saluran
+ Pilih saluran
+ Belum ada langganan saluran
+ Pilih kiosk
+ Dieksport
+ Diimport
+ Tiada fail ZIP yang sah
+ Amaran: Tidak dapat mengimport semua fail.
+ Ini akan menimpa tetapan semasa anda.
+ Adakah anda juga mahu mengimport tetapan\?
+ Kiosk
+ Sohor Kini
+ Top 50
+ Baru & panas
+ Persidangan
+ Pemain latar belakang
+ Pemain popup
+ Hapuskan
+ Butiran
+ Tetapan Audio
+ Pegang untuk beratur
+ Beratur apabila di latar belakang
+ Beratur pada popup baru
+ Mula bermain di sini
+ Mula di sini apabila di latar belakang
+ Mula di sini pada popup baru
+ Buka Laci
+ Tutup Laci
+ Sesuatu akan muncul di sini tidak lama lagi ;D
+ Tindakan \'buka\' yang diinginkan
+ Tindakan utama apabila membuka kandungan — %s
+ Pemain video
+ Pemain latar belakang
+ Pemain popup
+ Selalu bertanya
+ Mendapatkan maklumat…
+ Memuatkan kandungan yang diminta
+ Senarai Main Baru
+ Padam
+ Namakan semula
+ Nama
+ Tambah ke Senarai Main
+ Tetapkan sebagai Thumbnail Senarai Main
+ Menanda senarai main
+ Hapuskan Penanda Halaman
+ Padamkan senarai main ini\?
+ Senarai main dibuat
+ Ditambah ke senarai main
+ Thumbnail senarai main berubah.
+ Tidak dapat memadamkan senarai main.
+ Tiada Kapsyen
+ Fit
+ Isi
+ Zum
+ Dibina secara automatik
+ Kapsyen
+ Ubah suai skala teks kapsyen pemain dan gaya latar belakang. Memerlukan aplikasi dimulakan semula untuk mula berkuatkuasa.
+ Dayakan LeakCanary
+ Pemantauan kebocoran memori boleh menyebabkan aplikasinya menjadi tidak bertindak balas semasa heap dumping
+ Laporkan kesilapan out-of-lifecycle
+ Memaksa pelaporan Rx yang tidak dapat dihantar di luar fragmen atau kitaran hayat aktiviti selepas pelupusan
+ Import/eksport
+ Import
+ Import dari
+ Eksport ke
+ Mengimport…
+ Mengeksport…
+ Import fail
+ Eksport terdahulu
+ Tidak dapat mengimport langganan
+ Tidak dapat mengeksport langganan
+ Import langganan YouTube dengan memuat turun fail eksport:
+\n
+\n1. Pergi ke URL ini: %1$s
+\n2. Log masuk apabila ditanya
+\n3. Muat turun harus bermula (itulah file eksport)
+ Import profil SoundCloud dengan menaip sama ada URL atau ID anda:
+\n
+\n1. Dayakan \"mod desktop\" dalam pelayar web (laman web tidak tersedia untuk peranti mudah alih)
+\n2. Pergi ke URL ini: %1$s
+\n3. Log masuk apabila ditanya
+\n4. Salin URL profil yang diarahkan ke.
+ idAnda, soundcloud.com/idanda
+ Ingatkan bahawa operasi ini boleh menggunakan banyak data.
+\n
+\nAdakah anda mahu meneruskan\?
+ Kawalan Kelajuan Pemain
+ Tempo
+ Nada
+ Nyahpaut (mungkin menyebabkan herotan)
+ Cepat ke hadapan semasa berdiam diri
+ Langkah
+ Tetapkan semula
+ Untuk mematuhi Peraturan Perlindungan Data Umum Eropah (GDPR), kami dengan ini menarik perhatian anda kepada dasar privasi NewPipe. Sila baca dengan teliti.
+\nAnda mesti menerimanya untuk menghantar laporan bug kepada kami.
+ Terima
+ Tolak
+ Tiada had
+ Had resolusi apabila menggunakan data mudah alih
+ Kemas kini
+ Tunjukkan pemberitahuan untuk mengemaskini aplikasi apabila versi baru tersedia
+ Kurangkan apabila beralih app
+ Tindakan apabila beralih ke app lain dari pemain video utama — %s
+ Tiada
+ Kurangkan ke pemain latar belakang
+ Kurangkan ke pemain popup
+ Mod pandangan senarai
+ Senarai
+ Grid
+ Auto
+ Tukar Pandangan
+ Kemas kini NewPipe Tersedia!
+ Ketik untuk muat turun
+ Selesai
+ Dalam barisan
+ dijeda
+ telah beratur
+ pemprosesan-pasca
+ Beratur
+ Tindakan ditolak oleh sistem
+ Muat turun gagal
+ Muat turun selesai
+ %s muat turun selesai
+ Menjana nama yang unik
+ Timpa
+ Fail yang dimuat turun dengan nama ini sudah wujud
+ Terdapat muat turun yang sedang berjalan dengan nama ini
+ Tunjukkan kesilapan
+ Kod
+ Fail tidak boleh dibuat
+ Folder destinasi tidak boleh dibuat
+ Kebenaran ditolak oleh sistem
+ Sambungan selamat gagal
+ Tidak dapat mencari server
+ Tidak dapat menyambung ke server
+ Server tidak menghantar data
+ Server tidak menerima muat turun berbilang thread, cuba lagi dengan @string/msg_threads = 1
+ Julat yang diminta tidak memuaskan
+ Tidak ditemui
+ Pemprosesan-pasca gagal
+ Hapuskan senarai muat turun yang selesai
+ Teruskan %s pemindahan anda yang menunggu dari muat turun
+ Berhenti
+ Percubaan maksimum
+ Jumlah percubaan maksimum sebelum membatalkan muat turun
+ Jeda semasa beralih ke data mudah alih
+ Muat turun yang tidak dapat dihentikan akan dimulakan semula
+
\ 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 4bb790b1b..baaa48ca8 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -1,4 +1,4 @@
-
+
%1$s visninger
Publisert den %1$s
@@ -21,8 +21,8 @@
Mappe lagrede nedlastinger skal puttes i
Skriv inn nedlastingssti for videoer
- Nedlastingssti for lyd
- Sti å lagre nedlastet lyd i
+ Nedlastingsmappe for lyd
+ Nedlastet lyd lagres her
Skriv inn nedlastingssti for lydfiler
Forvalgt oppløsning
@@ -37,8 +37,8 @@
Lys
Last ned
- Neste video
- Vis \"neste\" og \"lignende\" videoer
+ Neste
+ Vis \"Neste\" og \"Lignende\" -videoer
Nettadressen støttes ikke
Foretrukket innholdsspråk
Video og lyd
@@ -62,8 +62,8 @@
Automatisk avspilling
Spiller en video når NewPipe blir forespurt av et annet program
Innhold
- Vis innhold med aldersgrense
- Videoen har aldersgrense. Skru på videoer med aldersgrenser i innstillingene først.
+ Aldersbegrenset innhold
+ Vis aldersbegrenset video. Å tillate slikt materiale kan gjøres fra innstillingene.
Feil
Kunne ikke laste inn alle miniatyrbilder
Kunne ikke dekryptere signaturen til videoens nettadresse
@@ -72,7 +72,7 @@
Innholdet er ikke tilgjengelig
Blokkert av GEMA
Kunne ikke sette opp nedlastingsmeny
- Dette er en direkteoverføring. Disse støttes ikke enda.
+ Direktesendinger støttes ikke enda.
Kunne ikke finne noen strømmer
Beklager, dette skal ikke skje.
Rapporter feil via e-post
@@ -91,7 +91,7 @@
Audio
Prøv igjen
Tilgang til lagring nektet
- direkteoverført
+ Direkteoverført
Nedlastinger
Nedlastinger
@@ -110,7 +110,7 @@
Filnavn
Tråder
Feil
- Tjener ustøttet
+ Ustøttet tjener
Fila finnes allerede
NewPipe laster ned
Trykk for detaljer
@@ -154,7 +154,7 @@
reCAPTCHA-oppgave forespurt
Gammel innebygd Mediaframework-avspiller
-Noen oppløsninger vil IKKE ha lyd når dette valget er påslått
+Fjerner lyd ved NOEN oppløsninger
Abonner
Abonnert
Kanalabonnent oppsagt
@@ -233,8 +233,8 @@
Ingen videoer
- - %s video
- - %s videoer
+ - video
+ - videoer
Vis på GitHub
@@ -272,7 +272,7 @@
Detaljer
Lydinnstillinger
Hold for å legge i kø
-Vis \"hold for å legge til\" -tips
+Vis \"Hold for å legge til\" -tips
Vis tips når bakgrunns- eller oppsårettsknapp trykkes på siden for videodetaljer
Lagt i kø for bakgrunnsavspiller
Lagt i kø for oppsprettsspiller
@@ -284,11 +284,11 @@
Strømside
Abonnerer ikke på noen kanaler enda
På vei opp
- Legg i bakgrunnskø
- Legg i oppsprettskø
+ Legg i kø når henvist til bakgrunnen
+ Legg i kø ved nytt oppsprett
Start avspilling her
- Start her i bakgrunnen
- Start her i oppsprettsvindu
+ Start her når i bakgrunnen
+ Start her ved nytt oppsprettsvindu
Doner
NewPipe utvikles av frivillige som bruker deres fritid til å gi deg den beste opplevelsen. Gi tilbake for å hjelpe utviklere å gjøre NewPipe enda bedre, mens de nyter en varm kopp kaffe.
Bidra
@@ -303,7 +303,7 @@
Åpne skuff
Lukk skuff
- Ingen strømmespiller installert (du kan installere VLC for å spille den)
+ Ingen strømmespiller installert (du kan installere VLC for å spille den).
Alltid
Kun én gang
@@ -321,18 +321,18 @@
Laster forespurt innhold
Importer database
Eksporter database
- Vil overstyre din nåværende historikk og abonnementsliste
+ Overstyrer din nåværende historikk og abonnementsliste
Eksporter historikk, abonnementer og spillelister
- Eksport fullført
- Import fullført
+ Eksportert
+ Importert
Ingen gyldig ZIP-fil
ADVARSEL: Kunne ikke importere alle filer.
Dette vil overskrive ditt nåværende oppsett.
- Last ned strøm-fil.
+ Last ned strøm-fil
Vis info
- Bokmerker
+ Bokmerkede spillelister
Legg til i
@@ -351,9 +351,9 @@
Alltid spør
- Opprett ny spilleliste
- Slett spilleliste
- Gi spilleliste nytt navn
+ Ny spilleliste
+ Slett
+ Gi nytt navn
Navn
Legg til i spilleliste
Sett som miniatyrbilde for spilleliste
@@ -361,11 +361,11 @@
Bokmerk spilleliste
Fjern bokmerke
- Ønsker du å slette denne spillelisten?
+ Slett denne spillelisten\?
Spilleliste opprettet
Lagt til i spilleliste
- Miniatyrbilde for spilleliste endret
- Kunne ikke slette spilleliste
+ Miniatyrbilde for spilleliste endret.
+ Kunne ikke slette spilleliste.
Ingen bildetekster
@@ -381,10 +381,10 @@
Feilretting
Fil
- Ugyldig mappe
- Ugyldig fil/innholdskilde
+ Ingen slik mappe
+ Ingen slik fil/innholdskilde
Filen finnes ikke eller så har du ikke tilgang til å lese eller skrive til den
- Filnavn kan ikke være tomt
+ Filnavn kan ikke være tomt.
En feil inntraff: %1$s
Auto-generert
@@ -426,18 +426,18 @@
Forvalg
Tøm avspillingshistorikk
Slett historikken for avspilte strømmer
- Slett hele visningshistorikken.
+ Slett hele visningshistorikken\?
Visningshistorikk slettet.
Tøm søkehistorikk
Sletter historikken for søkte nøkkelord
- Slett hele søkehistorikken.
+ Slett hele søkehistorikken\?
Søkehistorikk slettet.
Ett element slettet.
Inget program installert for avspilling av denne filen
Undertekster
- Endre undertekststørrelse og bakgrunnsstiler. Krever omstart av programmet for å tre i effekt
+ Endre undertekststørrelse og bakgrunnsstiler. Krever omstart av programmet for å tre i effekt.
NewPipe er copyleft, fri programvare: Du kan bruke, studere og forbedre etter egen vilje. Spesifikt kan du redistribuere og/eller modifisere det i henhold til vilkårene gitt i GNU General Public-lisensen, som publisert av Free Software Foundation, enten versjon 3 av lisensen, eller (etter eget ønske) enhver senere versjon.
Ønsker du også å importere innstillinger?
@@ -456,8 +456,8 @@
\n2. Logg inn når forespurt
\n4. Kopier profil-nettadressen du ble videresendt til.
Unøyaktig blafring tillater spilleren å blafre til posisjoner raskere med redusert nøyaktighet
- Skru av for å stoppe alle miniatyrbilder fra innlasting og spare data og minnebruke. Endring av dette vil tømme både disk- og minne-hurtiglager
- Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø
+ Skru av for å stoppe innlasting av miniatyrbilder, noe som sparer data- og minnebruk. Endring av dette vil tømme både disk- og minne-hurtiglager.
+ Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø.
Minnelekkasjeoppsyn kan forårsake programmet å opptre uresponsivt under haugdumping
Rapporter feil som opptrer utenfor sin levetid
@@ -488,5 +488,68 @@
Hurtig foroverspoling ved stillhet
Steg
Tilbakestill
-
-
+ Opphev abonnement
+ Ny fane
+ Velg fane
+ Håndvendingskontroll for lydstyrke
+ Bruk håndvendinger for å kontrollere avspillerens lydstyrke
+ Håndvendingskontroll for lysstyrke
+ Bruk håndvendinger for å kontrollere avspillerens lysstyrke
+ Oppdateringer
+ Hendelser
+ Fil slettet
+ Programoppgraderingsmerknad
+ Merknader for nye NewPipe-versjoner
+ Ekstern lagring utilgjengelig
+ Nedlasting til eksternt SD-kort er ikke mulig enda. Tilbakestill plassering av nedlastingsmappe\?
+ Bruker forvalgte faner, feil under lagring av lagrede faner.
+ Gjenopprett forvalg
+ Ønsker du å gjenopprette alt til forvalgene\?
+ Abonnementsantall ikke tilgjengelig
+ Hvilke faner vises på hovedsiden
+ Utvalg
+ Konferanser
+ Oppdatering
+ Vis en merknad for spørring om programoppdatering når en ny versjon er tilgjengelig
+ Listevisningmodus
+ Liste
+ Rutenett
+ Auto
+ Veksle visning
+ Ny NewPipe-versjon tilgjengelig.
+ Trykk for å laste ned
+ Fullført
+ I kø
+ pauset
+ i kø
+ etterbehandling
+ Kø
+ Handling avvist av systemet
+ Nedlasting mislyktes
+ Nedlasting fullført
+ %s nedlastinger fullført
+ Generer unikt navn
+ Overskriv
+ Nedlastet fil ved dette navnet finnes allerede
+ Nedlasting med dette navnet underveis allerede
+ Vis feil
+ Kode
+ Filen kan ikke opprettes
+ Målmappen kan ikke opprettes
+ Tilgang nektet av systemet
+ Sikker tilkobling mislyktes
+ Fant ikke tjeneren
+ Kan ikke koble til tjeneren
+ Tjeneren sender ikke data
+ "Tjeneren godtar ikke flertrådede nedlastinger, prøv igjen med @string/msg_threads = 1 "
+ Forespurt nummerområde kan ikke innvilges
+ Ikke funnet
+ Etterbehandling mislyktes
+ Tøm fullførte nedlastinger
+ Fortsett dine %s ventende overføringer fra Nedlastinger
+ Stopp
+ Maksimalt antall forsøk
+ Maksimalt antall tilkoblingsforsøk før nedlastingen avblåses
+ Pause ved veksling til mobildata
+ Nedlastinger som ikke kan pauses vil bli startet på nytt
+
\ 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 53997e6ba..6eff6b040 100644
--- a/app/src/main/res/values-nl-rBE/strings.xml
+++ b/app/src/main/res/values-nl-rBE/strings.xml
@@ -1,5 +1,6 @@
-Tik op zoeken voor te beginnen
+
+ Tik op zoeken voor te beginnen
%1$s keer bekeken
Gepubliceerd op %1$s
Gene speler met streamondersteuning gevonden. Wilt ge VLC installeren?
@@ -27,25 +28,19 @@
Kan abonnement niet wijzigen
Kan abonnement niet bijwerken
Info tonen
-
Start
Abonnementen
Bijgehouden afspeellijsten
-
Nieuw
-
Achtergrond
Pop-up
Toevoegen aan
-
Downloadlocatie voor video’s
Locatie voor gedownloade video’s in op te slaan
Voer downloadlocatie in voor video’s
-
Downloadmap voor audio
Gedownloade audio wordt hier opgeslagen
Voer downloadlocatie voor audiobestanden in
-
Automatisch afspelen
Speeld video’s af wanneer da NewPipe vanuit nen anderen app word g’opend
Standaardresolutie
@@ -68,15 +63,15 @@
Snel, minder exact spoelen gebruiken
Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie
Miniatuurvoorbeelden laden
- Der worden geen miniatuurvoorbeelden geladen wanneer dat dit uit staat; dit bespaart mobiele gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache.
+ Schakelt dit uit voor het laden van miniatuurvoorbeelden te verhinderen; dit bespaart mobiele gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache.
Afbeeldingscache gewist
Gecachete metagegevens wissen
Alle gecachete webpagina-gegevens wissen
Metagegevens-cache gewist
Volgende stream automatisch in wachtrij plaatsen
Automatisch ne gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst.
- Bewegingscontrole
- Gebruikt bewegingen voor helderheid en volume van de speler aan te passen
+ Veegbesturing
+ Gebruikt vegen voor de helderheid en het volume van de speler aan te passen
Zoeksuggesties
Toon suggesties bij zoeken
Zoekgeschiedenis
@@ -109,7 +104,7 @@
Afspelen
Inhoud
Inhoud met leeftijdsbeperking
- Toont video met leeftijdsbeperking. Toelaten van deze soort video’s kan ingeschakeld worden in de ‘Instellingen’.
+ Toont video met leeftijdsbeperking. Toelaten van deze soort video’s kan ingeschakeld worden in de Instellingen.
LIVE
Downloads
Downloads
@@ -130,17 +125,13 @@
Altijd
Eenmalig
Bestand
-
NewPipe-melding
Meldingen voor NewPipe-achtergrond- en pop-upspelers
-
[Onbekend]
-
Oriëntatie wijzigen
Verplaatsen naar achtergrond
Verplaatsen naar pop-up
Verplaatsen naar normaal
-
Databank importeren
Databank exporteren
Dit overschrijft uw huidige geschiedenis en abonnementen
@@ -171,7 +162,6 @@
Den bestandsnaam mag niet blanco zijn
Der is een fout opgetreden: %1$s
Geen streams beschikbaar voor downloaden
-
Sorry, dit zou niet mogen gebeuren.
Fout melden via e-mail
Sorry, der traden enkele fouten op.
@@ -181,8 +171,6 @@
Wat:\\nVerzoek:\\nTaal van inhoud:\\nDienst:\\nTijd in GMT:\\nPakket:\\nVersie:\\nVersie van besturingssysteem:
Uw opmerking (in het Engels):
Details:
-
-
Videovoorbeeldminiatuur
Videovoorbeeldminiatuur
Avatarminiatuur van uploader
@@ -195,39 +183,32 @@
Geen resultaten
Niks te zien
Versleep voor de volgorde te wijzigen
-
Kan downloadmap ‘%1$s’ niet aanmaken
Downloadmap ‘%1$s’ aangemaakt
-
Video
Geluid
Opnieuw proberen
Toegang tot opslag geweigerd
Gebruik oude speler
Verouderden ingebouwde Mediaframework-speler
-
K
M
B
-
Geen abonnees
- - %s abonnee
- - %s abonnees
-
-
+ - %s abonnee
+ - %s abonnees
+
Geen weergaven
- - %s weergave
- - %s weergaven
-
-
+ - %s weergave
+ - %s weergaven
+
Geen video’s
- - %s video
- - %s video’s
-
-
+ - Video
+ - Video’s
+
Begin
Pauzeren
Afspelen
@@ -238,10 +219,8 @@
Controlesom
Sluiten
Hernoemen
-
Nieuwe missie
Oké
-
Bestandsnaam
Threads
Fout
@@ -254,21 +233,16 @@
Gekopieerd naar klembord
Kies een beschikbare downloadmap
Deze toestemming is vereist voor te openen in pop-upmodus
-
reCAPTCHA
reCAPTCHA-uitdaging
reCAPTCHA-uitdaging gevraagd
-
Download
Toegelaten tekens in bestandsnamen
Ongeldige tekens worden vervangen door deze waarde
Vervangend teken
-
Letters en cijfers
Meeste speciale tekens
-
Genen app gevonden voor dit bestand mee af te spelen
-
Over NewPipe
Instellingen
Over
@@ -290,8 +264,6 @@
Bezoekt de website van NewPipe voor meer informatie en ’t laatste nieuws.
Licentie van NewPipe
Licentie lezen
-
-
Geschiedenis
Gezocht
Gekeken
@@ -305,7 +277,6 @@
Wilt ge alle items uit uw geschiedenis verwijderen?
Laatst afgespeeld
Meest afgespeeld
-
Content van hoofdpagina
Blanco pagina
Kioskpagina
@@ -320,7 +291,6 @@
Geen geldig ZIP-bestand
Opgelet: kon niet alle bestanden importeren.
Dit zal uw huidige configuratie overschrijven.
-
Kiosk
Trending
Top 50
@@ -336,70 +306,51 @@
Begint hier met afspelen
Begint hier met afspelen wanneer op de achtergrond
Begint hier met afspelen in nieuwe pop-up
-
Menu openen
Menu sluiten
Hier zal der binnenkort iets verschijnen ;D
-
-
Voorkeursactie voor openen
Standaardactie bij openen van inhoud — %s
-
Videospeler
Achtergrondspeler
Pop-upspeler
Altijd vragen
-
Info ophalen…
Bezig me laden van gevraagden inhoud
-
Nieuwen afspeellijst
Verwijderen
Hernoemen
Naam
Toevoegen aan afspeellijst
Instellen als miniatuur voor afspeellijst
-
Afspeellijst toevoegen aan bladwijzers
Bladwijzer verwijderen
-
Dezen afspeellijst verwijderen\?
Afspeellijst aangemaakt
Toegevoegd aan afspeellijst
Miniatuur voor afspeellijst gewijzigd.
Den afspeellijst kon niet verwijderd worden.
-
Geen bijschriften
-
Passen
Opvullen
Inzoomen
-
Automatisch gegenereerd
-
Bijschriften
Bijschriftgrootte en achtergrondstijlen wijzigen. Vereist nen herstart van den app.
-
LeakCanary inschakelen
Het monitoren van geheugenlekken kan dervoor zorgen da’ den app nie’ goe meer reageerd
-
Out-of-lifecycle-fouten melden
Forceerd het melden van nie-bezorgbare Rx-uitzonderingen die gebeuren buiten fragments- of activiteitscyclus
-
Importeren/exporteren
Importeren
Importeren uit
Exporteren naar
-
Bezig met importeren…
Bezig met exporteren…
-
Bestand importeren
Vorige exportering
-
Kon abonnementen nie importeren
Kon abonnementen nie exporteren
-
Importeerd uw YouTube-abonnementen door het exportbestand te downloaden:
\n
\n1. Ga naar dit adres: %1$s
@@ -412,18 +363,16 @@
\n3. Logd in op uwen account
\n4. Kopieerd de koppeling van de pagina waarop da’ ge terechtkomd (da’s uwe profiel-URL).
uwenID, soundbutt.com/uwenid
-
Let op: deze actie kan veel MB’s van uw netwerk gebruiken.
\n
\nWild ge doorgaan?
-
Afspeelsnelheidsbesturing
Tempo
Toon
Ontkoppelen (kan ruis veroorzaken)
Nightcore
Standaard
-Kijkgeschiedenis wissen
+ Kijkgeschiedenis wissen
Verwijdert de geschiedenis van afgespeelde streams
De ganse kijkgeschiedenis verwijderen\?
Kijkgeschiedenis verwijderd.
@@ -432,10 +381,8 @@
De ganse zoekgeschiedenis verwijderen\?
Zoekgeschiedenis verwijderd.
1 item verwijderd.
-
NewPipe is vrije software: ge kunt het gebruiken, bestuderen, delen en verbeteren zoveel als dat ge maar wilt. Ge kunt het terug 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) eender welke latere versie.
Wild ge d’instellingen ook importeren?
-
Privacybeleid van NewPipe
’t NewPipe-project neemt uw privacy ter harte. Daarom verzameld den app geen gegevens zonder uw toestemming.
\n’t Privacybeleid van NewPipe legd in detail uit welke gegevens da’ der worden verzonden en opgeslagen wanneer da’ g’een crashrappor indiend.
@@ -444,20 +391,82 @@
\nGe moet ’t aanvaarden voor ons ’t bugrapport te sturen.
Aanvaarden
Weigeren
-Onbeperkt
+ Onbeperkt
Resolutie beperken bij gebruik van mobiele gegevens
Minimaliseren bij overschakelen naar anderen app
Actie bij overschakelen van videospeler naar anderen app — %s
Geen
Afspelen in achtergrond
Afspelen in pop-up
-
-Doorspoelen tijdens stilte
+ Doorspoelen tijdens stilte
Stap
Standaardwaarden herstellen
-
Kanalen
Afspeellijsten
Nummers
Gebruikers
-
\ No newline at end of file
+ Abonnement opzeggen
+ Nieuw tabblad
+ Kiest een tabblad
+ Veegbesturing voor volume
+ Gebruikt vegen voor het volume van de speler aan te passen
+ Veegbesturing voor helderheid
+ Gebruikt vegen voor de helderheid van de speler aan te passen
+ Updates
+ Gebeurtenissen
+ Bestand verwijderd
+ Appupdatemelding
+ Meldingen voor nieuwe versies van NewPipe
+ Externe opslag niet beschikbaar
+ Downloaden naar externe SD-kaart is nog niet mogelijk. Downloadmap terug instellen\?
+ Standaardtabbladen worden gebruikt, fout bij het lezen van de opgeslagen tabbladen
+ Standaardinstellingen herstellen
+ Wilt ge de standaardinstellingen herstellen\?
+ Aantal abonnees niet beschikbaar
+ Welke tabbladen er worden weergegeven op de hoofdpagina
+ Selectie
+ Conferenties
+ Updates
+ Toont een melding voor den app bij te werken wanneer dat er een nieuwe versie beschikbaar is
+ Lijstweergavemodus
+ Lijst
+ Raster
+ Auto
+ Weergave wisselen
+ NewPipe-update beschikbaar!
+ Tikt voor te downloaden
+ Voltooid
+ In wachtrij
+ gepauzeerd
+ toegevoegd aan wachtrij
+ nabewerking
+ Wachtrij
+ Actie geweigerd door het systeem
+ Download mislukt
+ Download voltooid
+ %s downloads voltooid
+ Unieke naam genereren
+ Overschrijven
+ Der bestaat al een gedownload bestand met deze naam
+ Der is al een download met deze naam bezig
+ Foutmelding weergeven
+ Code
+ Het bestand kan niet aangemaakt worden
+ De doelmap kan niet aangemaakt worden
+ Toelating geweigerd door het systeem
+ Beveiligde verbinding is mislukt
+ Kon de server niet vinden
+ Kan geen verbinding maken met de server
+ De server verzendt geen gegevens
+ De server aanvaardt geen meerdradige downloads, probeert het opnieuw met @string/msg_threads = 1
+ Gevraagd bereik niet beschikbaar
+ Niet gevonden
+ Nabewerking mislukt
+ Voltooide downloads wissen
+ Zet uw %s wachtende downloads verder via Downloads
+ Stoppen
+ Maximaal aantal pogingen
+ Maximaal aantal pogingen vooraleer dat den download wordt geannuleerd
+ Pauzeren bij overschakelen naar mobiele gegevens
+ Downloads die dat niet kunnen gepauzeerd worden gaan herstart worden
+
\ 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 62ef0a893..db3eb00df 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -21,7 +21,7 @@
Afspelen met Kodi
Kore-app niet gevonden. Installeren?
\"Afspelen met Kodi\"-optie tonen
- Toont een optie om een video af te spelen op een Kodi-mediastation
+ Toon een optie om een video af te spelen via Kodi media center
Audio
Standaardaudioformaat
Downloaden
@@ -32,7 +32,6 @@
Externe videospeler gebruiken
Externe audiospeler gebruiken
Audio en video
-
Videovoorbeeldminiatuur
Videovoorbeeldminiatuur
Gebruikersafbeelding van uploader
@@ -40,19 +39,16 @@
Downloadfolder voor audio
Gedownloade muziek is hier opgeslagen
Voer downloadlocatie voor audiobestanden in
-
Thema
Donker
Licht
-
Uiterlijk
Overig
Speelt af op achtergrond
Afspelen
Inhoud
Inhoud met leeftijdsbeperking
- Toon video met leeftijdsbeperking. Toestaan van dit soort video\'s kan worden ingeschakeld in \"Instellingen\".
-
+ Toon video met leeftijdsbeperking. Toestaan van dit soort video’s kan worden ingeschakeld in de Instellingen.
Fout
Netwerkfout
Kan niet alle miniatuurvoorbeelden laden
@@ -62,12 +58,9 @@
Geblokkeerd door GEMA
Kan downloadmenu niet instellen
Livestreams zijn nog niet ondersteund
-
-
Vind-ik-leuks
Tor gebruiken
(Experimenteel) Dwing downloadverkeer door Tor voor verhoogde privacy (streamen van video\'s wordt nog niet ondersteund).
-
Kan downloadmap \'%1$s\' niet creëren
Downloadmap \'%1$s\' gecreëerd
Kan website niet volledig verwerken
@@ -80,8 +73,6 @@
Wat er is gebeurd:
Je opmerking (in het Engels):
Details:
-
-
Video
Geluid
Opnieuw proberen
@@ -92,24 +83,19 @@
Downloads
Downloads
Foutrapport
-
Kan afbeelding niet laden
App/UI gecrasht
Wat:\\nVerzoek:\\nTaal van inhoud:\\nDienst:\\nTijd in GMT:\\nPakket:\\nVersie:\\nVersie van besturingssysteem:
Meld een probleem
Gebruikersrapport
-
Toegang tot opslag geweigerd
Begin
Pauzeren
Afspelen
Verwijderen
Controlesom
-
Nieuwe missie
Oké
-
-
Bestandsnaam
Threads
Fout
@@ -121,61 +107,44 @@
Even geduld…
Gekopieerd naar klembord
Kies een beschikbare downloadmap
-
-
Zwart
-
reCAPTCHA
reCAPTCHA-uitdaging
reCAPTCHA-uitdaging gevraagd
-
Openen in pop-upmodus
Alles
Kanaal
Ja
Later
-
-
K
M
B
-
Deze machtiging is vereist om te
\nopenen in pop-upmodus
-
NewPipe-pop-upmodus
-
Speelt af in pop-upmodus
Oude speler gebruiken
Verouderde ingebouwde Mediaframework-speler
Standaard videoformaat
Uitgeschakeld
-
-
Standaardresolutie van pop-up
Hogere resoluties tonen
2K-/4K-video\'s worden slechts op sommige apparaten ondersteund
Achtergrond
Pop-up
-
Filter
Verversen
Wissen
-
Onthoud grootte en positie van pop-up
Onthoud laatste grootte en positie van pop-up
-
Pop-up
Bezig met wijzigen van grootte
-
Verwijdert geluid bij SOMMIGE resoluties
Zoeksuggesties
Toon suggesties bij zoeken
-
- Bewegingscontrole
- Gebruik bewegingen om helderheid en volume van de speler aan te passen
-Beste resolutie
-
+ Gebaarbesturing
+ Gebruik gebaren om de helderheid en het volume van de speler aan te passen
+ Beste resolutie
Over NewPipe
Instellingen
Over
@@ -186,42 +155,34 @@
Over
Bijdragers
Licenties
- Vrij en licht streamen voor Android.
+ Vrij en lichtgewicht streamen op Android.
Bekijken op GitHub
Licentie van NewPipe
Hulp is altijd welkom. Of je nu nieuwe ideeën hebt, vertalingen kan aanleveren, wijzigingen in het ontwerp kan verrichten, code kan opschonen of van grote wijzigingen voorzien. Hoe meer hulp, hoe beter het wordt!
Licentie lezen
Bijdragen
-Download
+ Download
Toegestane tekens in bestandsnamen
Ongeldige tekens worden vervangen door deze waarde
Vervangend teken
-
Letters en cijfers
Speciaalste tekens
-
Abonneren
Geabonneerd
- Gedeabonneerd
+ Abonnement opgezegd
Kan abonnement niet wijzigen
Kan abonnement niet bijwerken
-
Startpagina
Abonnementen
-
Nieuw
-
Zoekgeschiedenis
Sla zoekopdrachten lokaal op
Geschiedenis en cache
Kijkgeschiedenis bijhouden
Hervat bij focus
Ga verder met afspelen na onderbrekingen (zoals telefoongesprekken)
-
-
NewPipe-melding
Meldingen voor NewPipe-achtergrond- en pop-upspelers
-
Geschiedenis
Gezocht
Bekeken
@@ -229,46 +190,38 @@
Geschiedenis
De geschiedenis is leeg
Geschiedenis gewist
-
-Speler
+ Speler
Gedrag
Geschiedenis en cache
Afspeellijst
Ongedaan maken
-
Geen resultaten
Niets, maar dan ook niets te zien
-
Geen abonnees
- - %s abonnee
- - %s abonnees
-
-
+ - %s abonnee
+ - %s abonnees
+
Geen weergaven
- - %s weergave
- - %s weergaven
-
-
+ - %s weergave
+ - %s weergaven
+
Geen video\'s
- - %s video
- - %s video’s
-
-
+ - Video
+ - Video’s
+
Item verwijderd
-Wil je dit item verwijderen uit je zoekgeschiedenis?
-Toon tip \"Ingedrukt houden om toe te voegen\"
+ Wil je dit item verwijderen uit je zoekgeschiedenis?
+ Toon tip \"Ingedrukt houden om toe te voegen\"
Toon tip als achtergrond- of pop-upknop wordt ingedrukt op de videogegevenspagina
Toegevoegd aan wachtrij voor achtergrondspeler
Toegevoegd aan wachtrij voor pop-upspeler
Alles afspelen
-
Deze stream kan niet worden afgespeeld
Onherstelbare spelerfout opgetreden
Bezig met herstellen na spelerfout
-
Inhoud van hoofdpagina
Blanco pagina
Kioskpagina
@@ -278,7 +231,6 @@
Kies een kanaal
Nog niet geabonneerd op een kanaal
Kies een kiosk
-
Kiosk
Populair
Top 50
@@ -289,14 +241,13 @@
Details
Audio-instellingen
Houd ingedrukt om toe te voegen aan wachtrij
-[Onbekend]
-
+ [Onbekend]
Toevoegen aan wachtrij wanneer in de achtergrond
Toevoegen aan wachtrij bij nieuwe pop-up
Begin hier met afspelen
Begin hier met afspelen wanneer op de achtergrond
Begin hier met afspelen in nieuwe pop-up
-Doneren
+ Doneren
NewPipe wordt door vrijwilligers in hun vrije tijd ontwikkeld om jou de beste ervaring te brengen. Geef wat terug zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl ze van hun kopje koffie genieten.
Teruggeven
Website
@@ -307,26 +258,22 @@
Verplaatsen naar achtergrond
Verplaatsen naar pop-up
Verplaatsen naar hoofdvenster
-
Menu openen
Menu sluiten
Geen speler met streamondersteuning gevonden (je kan VLC installeren om af te spelen).
Altijd
Eenmalig
-
Externe spelers ondersteunen dit soort links niet
Ongeldige URL
Geen videostreams gevonden
Geen audiostreams gevonden
-
Videospeler
Achtergrondspeler
Pop-upspeler
Altijd vragen
-
Bezig met ophalen van informatie…
Bezig met laden van gevraagde inhoud
-Databank importeren
+ Databank importeren
Databank exporteren
Dit overschrijft je huidige geschiedenis en abonnementen
Exporteer geschiedenis, abonnementen en afspeellijsten
@@ -335,93 +282,70 @@
Geen geldig ZIP-bestand
Let op: niet alle bestanden konden worden geïmporteerd.
Dit overschrijft je huidige configuratie.
-
Streambestand downloaden
Informatie tonen
-
Bijgehouden afspeellijsten
-
Toevoegen aan
-
Versleep om de volgorde te wijzigen
-
Creëren
Eén verwijderen
Alles verwijderen
Sluiten
Naam wijzigen
-
Wil je dit item verwijderen uit je kijkgeschiedenis?
Wil je alle items verwijderen uit je geschiedenis?
Laatst afgespeeld
Meest afgespeeld
-
Altijd vragen
-
Nieuwe afspeellijst
Verwijderen
Naam wijzigen
Naam
Toevoegen aan afspeellijst
Instellen als miniatuur voor afspeellijst
-
Afspeellijst toevoegen aan bladwijzers
Bladwijzer verwijderen
-
Deze afspeellijst verwijderen\?
Afspeellijst gecreëerd
Toegevoegd aan afspeellijst
Miniatuur voor afspeellijst gewijzigd.
De afspeellijst kan niet worden verwijderd.
-
Geen bijschriften
-
Inpassen
Opvullen
Inzoomen
-
Lettergrootte van bijschrift
Kleiner lettertype
Normaal lettertype
Groter lettertype
-
- Hier zal binnenkort iets verschijnen ;D
-Foutopsporing
+ Hier zal binnenkort iets verschijnen ;D
+ Foutopsporing
Automatisch gegenereerd
LeakCanary inschakelen
Het monitoren van geheugenlekken kan ervoor zorgen dat de app niet goed meer reageert
-
Out-of-lifecycle-fouten melden
Forceer het melden van niet-bezorgbare Rx-uitzonderingen buiten fragment of activiteitscyclus
-
-Snelle, minder exact spoelen gebruiken
+ Snelle, minder exact spoelen gebruiken
Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie
Volgende stream automatisch in wachtrij plaatsen
Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst.
SYNCHRONISEREN
-
Bestand
-
Deze map bestaat niet
Bestand/Inhoudsbron bestaat niet
Het bestand bestaat niet of je bent onvoldoende gemachtigd om het te lezen/er naar te schrijven
De bestandsnaam mag niet blanco zijn
Er is een fout opgetreden: %1$s
-
Importeren/exporteren
Importeren
Importeren uit
Exporteren naar
-
Bezig met importeren…
Bezig met exporteren…
-
Bestand importeren
Vorige exportering
-
De abonnementen kunnen niet worden geïmporteerd
De abonnementen kunnen niet worden geëxporteerd
-
Importeer je YouTube-abonnementen door het exportbestand te downloaden:
\n
\n1. Ga naar dit adres: %1$s
@@ -434,12 +358,11 @@
\n3. Log in op je account
\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 mobiele netwerk gebruiken.
\n
\nWil je doorgaan?
-Miniatuurvoorbeelden laden
- Er worden geen miniatuurvoorbeelden geladen wanneer dit uit staat; dit bespaart mobiele data en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache.
+ Miniatuurvoorbeelden laden
+ Schakel dit uit om het laden van miniatuurvoorbeelden te verhinderen; dit bespaart mobiele data en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache.
Afbeeldingscache gewist
Gecachete metagegevens wissen
Alle gecachete webpagina-gegevens wissen
@@ -450,29 +373,23 @@
Ontlinken (kan ruis veroorzaken)
Nightcore
Standaard
-Voorkeursactie voor openen
+ Voorkeursactie voor openen
Standaardactie bij openen van inhoud — %s
-
Geen streams beschikbaar voor downloaden
-
Bijschriften
Bijschriftgrootte en -achtergrondstijlen wijzigen. Vereist een herstart van de app.
-
Er is geen app geïnstalleerd die dit bestand kan afspelen
-
Kijkgeschiedenis wissen
Verwijdert de geschiedenis van afgespeelde streams
- Verwijder de gehele kijkgeschiedenis\?
+ De gehele kijkgeschiedenis wissen\?
Kijkgeschiedenis gewist.
Zoekgeschiedenis wissen
Verwijdert de gebruikte zoektermen
- Verwijder de gehele geschiedenis\?
+ De gehele zoekgeschiedenis wissen\?
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 verstuurt.
@@ -481,20 +398,82 @@
\nJe moet het beleid accepteren om ons het foutrapport te kunnen sturen.
Accepteren
Weigeren
-Ongelimiteerd
+ Ongelimiteerd
Resolutie beperken bij gebruik van mobiele gegevens
Minimaliseer bij overschakelen naar andere app
Actie bij overschakelen van videospeler naar andere app — %s
Geen
Afspelen op achtergrond
Afspelen in pop-upvenster
-
-Vooruitspoelen tijdens stilte
+ Vooruitspoelen tijdens stilte
Stap
Standaardwaarden
-
Kanalen
Afspeellijsten
Nummers
Gebruikers
-
\ No newline at end of file
+ Afmelden
+ Nieuw tabblad
+ Kies tabblad
+ Gebaarbesturing voor volume
+ Gebruik gebaren om het volume van de speler aan te passen
+ Gebaarbesturing voor helderheid
+ Gebruik gebaren om de helderheid van de speler aan te passen
+ Updates
+ Bestand verwijderd
+ Appupdatemelding
+ Meldingen voor nieuwe versies van NewPipe
+ Externe opslag niet beschikbaar
+ Downloaden naar externe SD-kaart is nog niet mogelijk. Downloadmap opnieuw instellen\?
+ Standaard tabbladen worden gebruikt, fout bij het lezen van de opgeslagen tabbladen
+ Standaardinstellingen herstellen
+ Wilt u de standaardinstellingen herstellen\?
+ Aantal abonnees niet beschikbaar
+ Welke tabbladen worden weergegeven op de hoofdpagina
+ Selectie
+ Updates
+ Toon een melding om de applicatie te updaten wanneer er een nieuwe versie beschikbaar is
+ Lijstweergavemodus
+ Lijst
+ Raster
+ Auto
+ Wissel van weergave
+ NewPipe-update beschikbaar!
+ Tik om te downloaden
+ Voltooid
+ In de wachtrij
+ gepauzeerd
+ aan de wachtrij toegevoegd
+ nabewerking
+ Wachtrij
+ Actie door het systeem geweigerd
+ Downloaden mislukt
+ Downloaden voltooid
+ %s downloads voltooid
+ Genereer een unieke naam
+ Overschrijven
+ Er bestaat al een gedownload bestand met deze naam
+ Er is een download aan de gang met deze naam
+ Toon foutmelding
+ Code
+ Het bestand kan niet worden gemaakt
+ De doelmap kan niet worden gemaakt
+ Toestemming door het systeem geweigerd
+ Beveiligde connectie is mislukt
+ Kon de server niet vinden
+ Kan niet met de server verbinden
+ De server verzendt geen gegevens
+ De server accepteert geen multi-threaded downloads, probeer het opnieuw met @string/msg_threads = 1
+ Gevraagde bereik niet beschikbaar
+ Niet gevonden
+ Nabewerking mislukt
+ Voltooide downloads wissen
+ Zet je %s wachtende downloads voort via Downloads
+ Stop
+ Maximum aantal keer proberen
+ Maximum aantal pogingen voordat de download wordt geannuleerd
+ Pauzeren bij overschakelen naar mobiele data
+ Downloads die niet kunnen worden gepauzeerd zullen worden herstart
+ Gebeurtenissen
+ Conferenties
+
\ 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 8f9e1a091..e1c03d75b 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -1,12 +1,12 @@
- Dotknij wyszukaj, aby rozpocząć
+ Naciśnij Szukaj, aby zacząć
Instaluj
Anuluj
Otwórz w przeglądarce
Udostępnij
Pobierz
- Wyszukaj
+ Szukaj
Ustawienia
Miałeś na myśli: %1$s\?
Udostępnij przez
@@ -14,36 +14,32 @@
obrót
Użyj zewnętrznego odtwarzacza wideo
Użyj zewnętrznego odtwarzacza audio
-
%1$s wyświetleń
Opublikowano %1$s
- Nie znaleziono odtwarzacza strumieni. Zainstalować VLC?
- Ścieżka zapisu wideo
- Ścieżka zapisu pobranych wideo
- Podaj ścieżkę zapisu wideo
-
- Folder pobierania audio
+ Nie znaleziono odtwarzacza strumieni. Czy chcesz zainstalować VLC\?
+ Ścieżka pobierania filmów
+ Ścieżka do przechowywania pobranych filmów
+ Podaj ścieżkę pobierania filmów
+ Ścieżka pobierania dźwięków
Pobrany dźwięk jest przechowywany tutaj
- Podaj ścieżkę zapisu audio
-
+ Podaj ścieżkę zapisu dźwięku
Autoodtwarzanie
Odtwórz wideo, kiedy NewPipe zostanie wywołany z innej aplikacji
Domyślna rozdzielczość
Odtwórz w Kodi
- Aplikacja Kore nie została znaleziona. Zainstalować ją?
+ Nie znaleziono aplikacji Kore. Zainstalować ją\?
Pokaż opcję „Odtwórz z Kodi”
- Wyświetl opcję, aby odtworzyć wideo przez Kodi
- Audio
- Domyślny format audio
+ Wyświetl opcję odtwarzania filmów za pośrednictwem centrum multimedialnego Kodi
+ Dźwięk
+ Domyślny format dźwięku
Motyw
Ciemny
Jasny
-
Pobrane
Następny
- Pokaż \'następne\' i \'podobne\' filmy
- URL nieobsługiwany
- Domyślny język zawartości
+ Pokaż \"następne\" i \"podobne\" filmy
+ Nieobsługiwany adres URL
+ Domyślny język treści
Wideo i audio
Wygląd
Inne
@@ -51,12 +47,11 @@
Odtwórz
Zawartość
Treści z ograniczeniem wiekowym
- Pokaż film z ograniczeniami wiekowymi. Dopuszczenie takiego materiału jest możliwe w \"Ustawieniach\".
+ Pokaż wideo z ograniczeniem wiekowym. Zezwalanie na takie materiały jest możliwe w Ustawieniach.
Na żywo
Pobrane
Pobrane
- Raport błędu
-
+ Raport o błędach
Błąd
Błąd sieci
Nie można załadować wszystkich miniatur
@@ -77,59 +72,50 @@
Co:\\nRequest:\\nJęzyk treści:\\nUsługa:\\nCzas GMT:\\nPakiet:\\nWersja:\\nWersja systemu:
Twój komentarz (po angielsku):
Szczegóły:
-
-
Miniatura filmu
Miniatura filmu
Miniatura zdjęcia wysyłającego
Polubienia
- Łapki w dół
+ Łapka w dół
Użyj Tora
Zgłoś błąd
Raport użytkownika
-
Nie można utworzyć katalogu pobierania \'%1$s\'
Utworzono katalog pobierania \'%1$s\'
-
- Wideo
- Audio
+ Film
+ Dźwięk
Ponów
- Nie uzyskano pozwolenia dostępu do pamięci
-
- Pauza
- Widok
+ Odmowa dostępu do pamięci
+ Wstrzymaj
+ Odtwórz
Usuń
Suma kontrolna
-
Nowa misja
OK
-
Nazwa pliku
Wątki
Błąd
Nieobsługiwany serwer
Plik już istnieje
- Zniekształcony URL lub brak internetu
+ Nieprawidłowo utworzony adres URL lub Internet nie jest dostępny
Pobieranie NewPipe
Dotknij, aby zobaczyć szczegóły
Proszę czekać…
Skopiowano do schowka
Proszę wybrać dostępny katalog pobierania
-
Nie można załadować obrazu
Awaria aplikacji/interfejsu
- (Eksperymentalne) Wymuś pobieranie przez Tora dla zwiększonej prywatności (strumieniowanie wideo nie jest jeszcze wspierane).
+ (Eksperymentalne) Wymuś pobieranie przez Tora w celu zwiększenia prywatności (strumieniowe wideo nie jest jeszcze obsługiwane).
Start
CAPTCHA
Wyzwanie reCAPTCHA
Wymagane wyzwanie dotyczące reCAPTCHA
-
Usuwa dźwięk w niektórych rozdzielczościach
- W tle
+ Tło
Domyślna rozdzielczość dla trybu okienkowego
Pokaż wyższe rozdzielczości
- Tylko niektóre urządzenia wspierają odtwarzanie wideo 2K/4K
- Domyślny format wideo
+ Tylko niektóre urządzenia obsługują odtwarzanie filmów 2K/4K
+ Domyślny format filmu
Czarny
Zapamiętaj rozmiar i pozycję trybu okienkowego
Zapamiętaj ostatni rozmiar i pozycję trybu okienkowego
@@ -137,7 +123,6 @@
Użyj gestów, aby sterować jasnością i głośnością odtwarzacza
Podpowiedzi wyszukiwania
Pokazuj sugestie podczas wyszukiwania
-
Tryb okienkowy
Odtwarzanie w trybie okienkowym
Wszystkie
@@ -149,20 +134,15 @@
Odśwież
Wyczyść
Zmiana rozmiaru
-
K
M
B
-
To pozwolenie jest wymagane, aby
\notworzyć w trybie okienkowym
-
Odtwórz w trybie okienkowym
Tryb okienkowy NewPipe
Tryb okienkowy
-
-Najlepsza rozdzielczość
-
+ Najlepsza rozdzielczość
Pobierz
Niepoprawne znaki są zamienione na tę wartość
Litery i cyfry
@@ -174,38 +154,31 @@
Otwórz stronę
O programie
Licencje
- Wolne, lekkie strumieniowanie na Androidzie.
+ Lekkie przesyłanie strumieniowe w systemie Android.
Zobacz na GitHubie
Licencja NewPipe
Jeżeli masz pomysł na tłumaczenie, zmiany w wyglądzie aplikacji, oczyszczenie kodu źródłowego, pomoc jest zawsze mile widziana. Im więcej jest zrobione, tym lepiej!
Przeczytaj licencję
Wkład
-Dozwolone znaki w nazwach plików
+ Dozwolone znaki w nazwach plików
Znak zamienny
-
©%1$s %2$s na licencji %3$s
Subskrybuj
Subskrybujesz
Anulowano subskrypcję kanału
Nie można zmienić subskrypcji
Nie można zaktualizować subskrypcji
-
Główna
Subskrypcje
-
Co nowego
-
Historia wyszukiwania
Zapisuj lokalnie historię wyszukiwania
Historia i pamięć podręczna
Zapisuj historię oglądania
Wznów gdy na pierwszym planie
Kontynuuj odtwarzanie po przerwaniu (np. po rozmowie telefonicznej)
-
-
Powiadomienia NewPipe
- Powiadomienia dla graczy w tle i wyskakujących okien NewPipe
-
+ Powiadomienia dla NewPipe w tle i trybie wyskakujących okien odtwarzania
Współautorzy
Historia
Wyszukiwane
@@ -214,13 +187,11 @@
Historia
Historia jest pusta
Historia została wyczyszczona
-
-Odtwarzacz
+ Odtwarzacz
Zachowanie
Historia i pamięć podręczna
Playlista
Cofnij
-
Brak wyników
Brak wyświetleń
Pokaż wskazówkę \"Przytrzymaj, aby dodać\"
@@ -228,45 +199,36 @@
W kolejce odtwarzania w tle
W kolejce odtwarzania okienkowego
Odtwórz wszystkie
-
- [Nieznany]
-
+ [Nieznane]
Nie można odtworzyć strumienia
Wystąpił nieodwracalny błąd odtwarzacza
Odzyskiwanie po błędzie odtwarzacza
-
Nic tu nie ma. Słychać świerszcze
-
Brak subskrybentów
- - %s subskrybent
- - %s subskrybentów
- - %s subskrybentów
-
-
+ - %s subskrybent
+ - %s subskrybentów
+ - %s subskrybentów
+
- - %s odtworzenie
- - %s odtworzenia
- - %s odtworzeń
-
-
+ - %s odtworzenie
+ - %s odtworzenia
+ - %s odtworzeń
+
Brak filmów
- - %s film
- - %s filmy
- - %s filmów
-
-
+ - film
+ - filmy
+ - filmów
+
Większość znaków specjalnych
-
Dotacja
- NewPipe rozwijane jest przez wolontariuszy, którzy poświęcają swój wolny czas, by zapewnić ci jak najlepsze wrażenia podczas korzystania z aplikacji. To dobry moment, aby wesprzeć programistów i sprawić, by program był jeszcze lepszy, nie przerywając przy tym popijania kawy.
- Daj od siebie
+ NewPipe rozwijane jest przez wolontariuszy, którzy poświęcają swój wolny czas, by zapewnić Ci jak najlepsze wrażenia podczas korzystania z aplikacji. To dobry moment, aby wesprzeć programistów i sprawić, by program był jeszcze lepszy, delektując się filiżanką kawy.
+ Wspomóż
Witryna
By otrzymać więcej informacji oraz najnowsze wiadomości o NewPipe, odwiedź naszą stronę.
Pozycja usunięta
Czy chcesz usunąć tę pozycję z historii wyszukiwania?
-
Zawartość strony głównej
Pusta strona
Strona „kiosku”
@@ -276,9 +238,8 @@
Wybierz kanał
Brak subskrypcji kanałów
Wybierz „kiosk”
-
„Kiosk”
- Na czasie
+ Najpopularniejsze
50 najlepszych
Nowe i gorące
Odtwarzanie w tle
@@ -292,127 +253,100 @@
Zacznij odtwarzać tutaj
Odtwórz w tle
Zacznij tutaj w nowym wyskakującym okienku
-Nie znaleziono odtwarzacza strumieniowego (żeby odtworzyć, możesz zainstalować VLC).
- Domyślny kraj zawartości
+ Nie znaleziono odtwarzacza strumieniowego (żeby odtworzyć, możesz zainstalować VLC).
+ Domyślny kraj treści
Usługa
Zawsze
Tylko raz
-
Przełącz orientację ekranu
Odtwarzaj w tle
Zewnętrzne odtwarzacze nie obsługują linków tego typu
- Nieprawidłowy URL
- Nie znaleziono strumieni wideo
- Nie znaleziono strumieni audio
-
+ Nieprawidłowy adres URL
+ Nie znaleziono strumieni filmu
+ Nie znaleziono strumieni dźwięku
Odtwarzacz wideo
Odtwarzacz w tle
-
Informacje…
Ładowanie żądanej zawartości
-Pobierz plik strumienia
+ Pobierz plik strumienia
Pokaż informacje
-
Dodaj do
-
Ulubione playlisty
-
Debugowanie
Odtwarzaj w okienku
Odtwarzaj na pierwszym planie
-
Importuj dane
Eksportuj dane
Zastępuje Twoją bieżącą historię i subskrypcje
Eksportuje bieżącą historię, subskrypcje i playlisty
Przeciągnij, aby zmienić kolejność
-
Utwórz
Usuń bieżący
Usuń wszystkie
Cofnij
Zmień nazwę
-
Czy chcesz usunąć tę pozycję z historii odtwarzania?
Czy na pewno usunąć wszystkie pozycje z historii?
Ostatnio odtwarzane
Najczęściej odtwarzane
-
Eksportowanie
Importowanie
Niepoprawne archiwum ZIP
Ostrzeżenie: Nie udało się zaimportować wszystkich plików.
Nadpisuje obecne ustawienia.
-
Otwórz menu
Zamknij menu
Niebawem coś tutaj się pojawi
-
-
Odtwarzacz w okienku
Zawsze pytaj
-
Nowa playlista
Usuń
Zmień
Nazwa
Dodaj do playlisty
Ustaw jako miniaturę playlisty
-
Dodaj do zakładek
Usuń z zakładek
-
Usunąć tę listę odtwarzania\?
Playlista utworzona
Playlista
Miniaturka playlisty zmieniona.
Nie można usunąć playlisty.
-
Bez napisów
-
Dopasuj
Wypełnij
Powiększ
-
Wygenerowane automatycznie
Włącz LeakCanary
Monitorowanie wycieków pamięci może powodować niestabilność aplikacji podczas zrzutu pamięci
-
Zgłaszanie błędów poza cyklem życia
Wymusza raportowanie niedostarczonych wyjątków Rx poza cyklem życia fragmentu lub aktywności
-
-Użyj szybkiego niedokładnego wyszukiwania
+ Użyj szybkiego niedokładnego wyszukiwania
Szybkie wyszukiwanie pozwala przeskoczyć do wybranej pozycji szybciej, lecz jest mniej precyzyjne
Załaduj miniatury
- Po wyłączeniu ładowania bez miniatur, zapisywanie danych i wykorzystanie pamięci. Zmiany usuwają pamięć podręczną zarówno w pamięci, jak i na dysku.
+ Wyłącz, aby nie ładować miniaturek, oszczędzając dane i zużycie pamięci. Zmienia wyczyszczenie pamięci podręcznej obrazów zarówno w pamięci, jak i na dysku.
Wyczyszczono pamięć podręczną miniatur
Wyczyść pamięć podręczną metadanych
Wyczyść pamięć podręczną stron
Wyczyszczono pamięć podręczną metadanych
- Automatycznie dołącz kolejny stream
- Automatycznie dodaj kolejny powiązany stream w momencie rozpoczęcia odtwarzania ostatniego elementu w niezapętlonej kolejce.
+ Automatyczne kolejkowanie następnego strumienia
+ Automatycznie dodaj kolejny powiązany strumień podczas odtwarzania ostatniego strumienia w niezapętlonej kolejce.
Plik
-
Nie ma takiego folderu
- Brak takiego źródła plików/treści
+ Nie ma takiego źródła plików/treści
Plik nie istnieje lub brakuje mu uprawnień do odczytu lub zapisu
Nazwa pliku nie może być pusta
Wystąpił błąd: %1$s
-
Import/eksport
Import
Importuj z
Eksportuj do
-
Importowanie…
Eksportowanie…
-
Importuj z pliku
Poprzedni eksport
-
Import subskrypcji nie powiódł się
Eksport subskrypcji nie powiódł się
-
Aby zaimportować subskrypcje YouTube, potrzebny jest plik eksportu subskrypcji. Możesz go wygenerować w następujący sposób:
\n
\n1. Odwiedź stronę: %1$s
@@ -421,13 +355,11 @@
Ta operacja może wygenerować duże użycie danych.
\n
\nCzy chcesz kontynuować?
-
Kontrola prędkości odtwarzania
Tempo
Wysokość dźwięku
-twojeID, soundcloud.com/twojeid
-
- Odczep (może powodować zniekształcenia)
+ twojeID, soundcloud.com/yourid
+ Odłącz (może powodować zniekształcenia)
Aby zaimportować obserwowane z SoundCloud, musisz znać identyfikator lub link do swojego profilu. Jeśli znasz którykolwiek z nich, po prostu wpisz go w polu poniżej.
\n
\nW przeciwnym wypadku spróbuj poniższych kroków:
@@ -437,13 +369,10 @@
\n3. Zaloguj się na swoje konto
\n4. Skopiuj adres, na który przeglądarka przekieruje cię po zalogowaniu (to jest adres twojego profilu).
Brak źródeł do pobrania
-
- Preferowana akcja podczas \'otwierania\'
- Domyślna akcja podczas otwierania materiału - %s
-
+ Preferowana akcja \'otwórz\'
+ Domyślna akcja podczas otwierania zawartości - %s
Napisy
Zmodyfikuj skalę tekstu napisów i style tła. Wymaga ponownego uruchomienia aplikacji.
-
Wyczyść historię oglądania
Usuwa historię odtworzonych strumieni
Usunąć całą historię oglądania\?
@@ -453,12 +382,9 @@
Usunąć całą historię wyszukiwania\?
Usunięto historię wyszukiwania.
Usunięto jedną pozycję.
-
Nie zainstalowano aplikacji do odtworzenia tego pliku
-
- NewPipe jest wolnym i bezpłatnym oprogramowaniem: Możesz używać, brać udział oraz udoskonalać je według własnego uznania. W szczególności możesz redystrybuować lub/i modyfikować pod zasadami GNU General Public License opublikowanej przez Free Software Fundation w wersji 3 lub (w zależności od ciebie) dowolnej późniejszej wersji.
+ NewPipe jest wolnym i bezpłatnym oprogramowaniem: Możesz używać, udostępniać i ulepszać je do woli. W szczególności możesz redystrybuować i/lub modyfikować go zgodnie z warunkami GNU General Public License opublikowanej przez Free Software Fundation w wersji 3, albo (według twojego wyboru) jakąkolwiek późniejszą wersją.
Czy chcesz zaimportować również ustawienia?
-
Polityka prywatności NewPipe
Projekt NewPipe bardzo poważnie traktuję politykę prywatności. Aplikacja nie zbiera żadnych danych bez Twojej zgody. Polityka prywatności programu NewPipe szczegółowo wyjaśnia, jakie dane są zbierane i przesyłane, kiedy wysyłasz raport o błędach aplikacji.
Przeczytaj politykę prywatności
@@ -466,7 +392,6 @@
\nMusisz ją zaakceptować, aby przesyłać raporty o błędach.
Akceptuj
Odrzuć
-
Brak limitu
Limit przy użyciu danych mobilnych
Kanały
@@ -476,11 +401,73 @@
Przewiń w przód podczas ciszy
Krok
Zresetuj
-
Zminimalizuj podczas przełączenia aplikacji
Akcja po przejściu do innej aplikacji z głównego odtwarzacza wideo — %s
Zminimalizuj
Zminimalizuj do odtwarzania w tle
Zminimalizuj do odtwarzania w okienku
-
+ Zrezygnuj z subskrypcji
+ Nowa karta
+ Wybierz kartę
+ Kontrola gestów głośności
+ Użyj gestów do sterowania głośnośnością odtwarzania
+ Kontrola gestów jasności
+ Użyj gestów do sterowania jasnością odtwarzacza
+ Aktualizacje
+ Plik został usunięty
+ Powiadomienie o aktualizacji aplikacji
+ Powiadomienia o nowej wersji NewPipe
+ Pamięć zewnętrzna jest niedostępna
+ Pobieranie na zewnętrzną kartę SD nie jest jeszcze możliwe. Zresetować lokalizację folderu pobierania\?
+ Korzystanie z domyślnych kart, błąd podczas czytania zapisanych kart
+ Przywróć domyślne
+ Czy chcesz przywrócić ustawienia domyślne\?
+ Subskrybenci nie są dostępni
+ Karty wyświetlane na stronie głównej
+ Wybierz
+ Aktualizacje
+ Pokaż powiadomienie, aby monitować aktualizację aplikacji, gdy dostępna jest nowa wersja
+ Tryb widoku listy
+ Lista
+ Siatka
+ Automatycznie
+ Przełącz widok
+ Dostępna jest aktualizacja NewPipe!
+ Stuknij, aby pobrać
+ Gotowe
+ W kolejce
+ wstrzymane
+ w kolejce
+ przetwarzanie końcowe
+ Kolejka
+ Akcja odrzucona przez system
+ Pobieranie nie powiodło się
+ Pobieranie zakończone
+ %s pobieranie zostało zakończone
+ Wygeneruj unikalną nazwę
+ Zastąp
+ Pobrany plik o tej nazwie już istnieje
+ Trwa pobieranie z tą nazwą
+ Pokaż błąd
+ Kod
+ Nie można utworzyć pliku
+ Nie można utworzyć folderu docelowego
+ Odmowa dostępu do systemu
+ Bezpieczne połączenie nie powiodło się
+ Nie można znaleźć serwera
+ Nie można połączyć się z serwerem
+ Serwer nie wysyła danych
+ Serwer nie akceptuje pobierania wielowątkowego, spróbuj ponownie za pomocą @string/msg_threads = 1
+ Żądany zakres jest niewłaściwy
+ Nie znaleziono
+ Przetwarzanie końcowe nie powiodło się
+ Wyczyść ukończone pobieranie
+ Kontynuuj %s oczekujące transfery z plików do pobrania
+ Zatrzymaj
+ Maksymalna liczba prób
+ Maksymalna liczba prób przed anulowaniem pobierania
+ Przerwij przełączanie na dane mobilne
+ Pobierane pliki, których nie można wstrzymać, zostaną ponownie uruchomione
+ Zdarzenia
+ Konferencje
\ 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 504f81f2f..2c73758b1 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1,4 +1,4 @@
-
+
Áudio
Não foi possível descriptografar assinatura de URL do vídeo
@@ -7,7 +7,7 @@
Informações:
%1$s visualizações
Reproduzir
- Vídeo com restrição de idade. Permissão para vídeos com essa restrição podem ser feitas no menu \"Configurações\".
+ Mostar vídeo com restrição de idade. Permissão para vídeos com essa restrição podem ser feitas no menu Configurações.
Vídeo
Reproduz o vídeo quando o NewPipe for aberto a partir de outro aplicativo
Reproduzir automaticamente
@@ -228,8 +228,8 @@ abrir em modo popup
Nenhum video
- - %s vídeo
- - %s vídeos
+ - %s Vídeo
+ - %s Vídeos
Item excluído
@@ -415,7 +415,7 @@ abrir em modo popup
Cache de metadados foi limpo
Controles de Velocidade de Reprodução
"Tempo "
- Quando desligado miniaturas não carregarão, economizando dados e uso de memória. Alterar esta configuração irá limpar o cache de imagens na memória e em disco.
+ Quando desligado miniaturas não carregarão, economizando uso de dados e memória. Alterar esta configuração irá limpar o cache de imagens na memória e em disco.
Passo
Desvincular (pode causar distorção)
Ação de \'abrir\' preferida
@@ -468,4 +468,69 @@ abrir em modo popup
Listas de reprodução
Faixas
Usuários
-
+ Cancelar inscrição
+ Nova Aba
+ Selecionar aba
+ Gesto de controle do volume
+ Usar gestos para controlar o volume do reprodutor
+ Gesto para controle do brilho
+ Usar gestos para controlar o brilho do reprodutor
+ Debugar
+ Atualizações
+ Eventos
+ Arquivo apagado
+ Notificação de Atualização do Aplicativo
+ Notificações para a versão do NewPipe
+ Armazenamento externo indisponível
+ Baixar para o cartão SD externo ainda não é possivel. Resetar o local da pasta de download\?
+ Usando abas padrão, erro ao ler abas salvas
+ Restaurar padrões
+ Deseja restaurar os padrões\?
+ Contagem de inscritos não disponível
+ Abas que são mostradas na página principal
+ Seleção
+ Conferências
+ Atualizações
+ Mostrar uma notificação para solicitar atualização do aplicativo quando uma nova versão estiver disponível
+ Modo de visualização em lista
+ Lista
+ Grade
+ Automático
+ Alterar visualização
+ Atualização do NewPipe Disponivel!
+ Toque para baixar
+ Finalizado
+ Na fila
+ pausado
+ adicionado na fila
+ pós processamento
+ Fila
+ Ação negada pelo sistema
+ Falha ao baixar
+ Download finalizado
+ %s downloads terminados
+ Gerar nome único
+ "Sobrescrever "
+ Um arquivo baixado com esse nome já existe
+ Existe um download em progresso com esse nome
+ Mostrar erro
+ Código
+ O arquivo não pode ser criado
+ A pasta de destino não pode ser criada
+ Permissão negada pelo sistema
+ "Falha na conexão segura "
+ Não foi possível encontrar o servidor
+ Não foi possível conectar ao servidor
+ O servidor não envia dados
+ "O servidor não aceita downloads em multi-thread, tente com @string/msg_threads = 1 "
+ Intervalo solicitado não satisfazível
+ Não encontrado
+ Falha no pós processamento
+ Limpar downloads finalizados
+ Continuar seus %s downloads pendentes
+ Parar
+ Máximo de tentativas
+ Número máximo de tentativas antes de cancelar o download
+ Pausar quando trocar para dados móveis
+ Downloads que não puderem ser pausados serão reiniciados
+
\ 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 67585ada9..99156d49f 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -65,13 +65,13 @@
Conteúdo
Restringir conteúdo por idade
- Restringir vídeos por idade. É possível configurar estas opções nas \'Definições\'.
+ Mostrar vídeo com restrição de idade. É possível permitir tal material a nas Opções.
Não foi possível processar totalmente o site
Não foi possível configurar o menu de descargas
As emissões em direto ainda não são suportadas
Não foi possível obter a emissão
- Desculpe, isto não deveria ter acontecido.
+ Desculpe mas isto não deveria ter acontecido.
Reportar erro por e-mail
Ocorreram alguns erros.
Relatório
@@ -158,7 +158,7 @@
Lembrar tamanho e posição do \'popup\'
Popup
Filtrar
- Atualizar
+ Recarregar
Limpar
Segundo plano
Remove o áudio em algumas resoluções
@@ -166,7 +166,7 @@
Redimensionar
Controlo de reprodução por gestos
- Usar gestos para controlar o brilho e o volume do reprodutor
+ Utilizar gestos para controlar o brilho e o volume do reprodutor
Sugestões de pesquisa
Mostrar sugestões ao pesquisar
@@ -231,8 +231,8 @@
Sem vídeos
- - %s vídeo
- - %s vídeos
+ - vídeo
+ - vídeos
Descarregar
@@ -482,5 +482,68 @@
Nenhuma
Ativar o reprodutor em segundo plano
Ativar o reprodutor \'popup\'
-
+ Cancelar subscrição
+ Novo separador
+ Escolher separador
+ Gestos para controle de volume
+ Utilizar gestos para controlar o volume do reprodutor
+ Gestos para controlar o brilho
+ Utilizar gestos para controlar o brilho do reprodutor
+ Atualizações
+ Ficheiro apagado
+ Notificação de atualização
+ Notificações para uma nova versão do NewPipe
+ Armazenamento externo indisponível
+ Ainda não é possível descarrgar ao cartão SD. Repor localização da pasta de descargas\?
+ Erro ao ler os separadores guardados e serão usados os separadores padrão
+ Restaurar predefinições
+ Deseja restaurar as predefinições\?
+ Número de subscritores não disponível
+ Separadores a mostrar na página principal
+ Seleção
+ Atualizações
+ Mostrar uma notificação para pedir a atualização da aplicação se existir uma nova versão
+ Modo de exibição de lista
+ Lista
+ Grelha
+ Automático
+ Alternar vista
+ Atualização do NewPipe disponível!
+ Toque para descarregar
+ Terminada
+ Na fila
+ em pausa
+ na fila
+ pós-processamento
+ Fila
+ Ação recusada pelo sistema
+ Falha ao descarregar
+ Descarga terminada
+ %s descargas terminadas
+ Gerar nome único
+ Sobrescrever
+ Um ficheiro descarregado com este nome já existe
+ Já existe uma descarga em curso com este nome
+ Mostrar erro
+ Código
+ O ficheiro não pode ser criado
+ A pasta de destino não pode ser criada
+ Permissão negada pelo sistema
+ Ligação segura falhou
+ Não foi possível encontrar o servidor
+ Não é possível conectar ao servidor
+ O servidor não envia dados
+ O servidor não aceita descargas multi-threaded, tente novamente com @string/msg_threads = 1
+ Intervalo solicitado não satisfatório
+ Não encontrado
+ Pós-processamento falhado
+ Limpar descargas terminadas
+ Continue suas %s transferências pendentes de descarregamentos
+ Parar
+ Máximo de tentativas
+ Número máximo de tentativas antes de cancelar a descarga
+ Pausa na comutação para dados móveis
+ Descarregamentos que não podem ser pausados serão reiniciados
+ Eventos
+ Conferências
\ No newline at end of file
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index b1b0851ab..8e9f83fdf 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -356,8 +356,7 @@ pentru a deschide în mod pop-up
Opţiunea prestabilită când se deschide contentul -%s
Player Video
- Player Fundal
-\n
+ Player Fundal
Player Popup
Întreabă întotdeauna
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 93349cc9d..04b1f83bf 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -32,7 +32,6 @@
Видео и аудио
Внешний вид
Другое
-
Миниатюра видео-превью
Миниатюра видео-превью
Миниатюра аватара пользователя
@@ -44,15 +43,12 @@
Тема
Тёмная
Светлая
-
Воспроизвести
Ошибка сети
-
Использовать Tor
Путь загрузки аудио
Папка для хранения загруженных аудио
Введите путь к папке для загрузки аудио
-
Начните с поиска
Подождите…
Файл уже существует
@@ -62,7 +58,6 @@
Пауза
Удалить
Контрольная сумма
-
Имя файла
Ошибка
Сервер не поддерживается
@@ -71,8 +66,6 @@
Подробнее
Скопировано в буфер обмена
Выберите доступную папку для загрузки
-
-
Контент 18+
Ошибка
Ваш комментарий (English):
@@ -80,12 +73,11 @@
Автовоспроизведение
Воспроизводить видео при вызове NewPipe из другого приложения
Контент
- Видео с возрастными ограничениями. Разрешить подобный контент можно в настройках
+ Видео с возрастными ограничениями. Разрешить подобный контент можно в \"Настройках\".
Трансляция
Загрузки
Загрузки
Отчёт об ошибке
-
Не удалось разобрать веб-сайт
Не удалось полностью разобрать веб-сайт
Контент недоступен
@@ -101,14 +93,10 @@
Информация:
Что произошло:
Подробности:
-
-
(Экспериментально) Загружать через Tor для повышения конфиденциальности (прямые трансляции пока не поддерживаются).
Сообщить об ошибке
Сообщить о нарушении
-
Создана папка для загрузок \"%1$s\"
-
Видео
Аудио
Повторить попытку
@@ -116,13 +104,9 @@
Не удалось загрузить все миниатюры
Не удалось расшифровать подпись URL у видео
Не удалось найти ни одного потока
-
Воспроизвести
-
-
В фоне
В окне
-
Только некоторые устройства поддерживают видео в 2K/4K
Формат видео по умолчанию
Чёрная
@@ -137,34 +121,26 @@
Управление жестами
Всё
Фильтр
-
-
Новая цель
Что:\\nЗапрос:\\nЯзык контента:\\nСервис:\\nВремя по Гринвичу:\\nПакет:\\nВерсия:\\nВерсия ОС:
Это разрешение нужно для
\nвоспроизведения в окне
-
reCAPTCHA
Открыть в режиме окна
Отображать подсказки при поиске
-
Позже
Отключено
Изменение размера
-
В некоторых разрешениях НЕ будет звука, если включено
млн.
млрд.
-
тыс.
Разрешение очереди \"В окне\"
Помнить последние размер и позицию \"В окне\"
Варианты поиска
-Лучшее разрешение
-
+ Лучшее разрешение
Запрос reCAPTCHA
Запрошен ввод reCAPTCHA
-
Высокие разрешения
NewPipe в окне
О NewPipe
@@ -183,35 +159,26 @@
Приветствуется всё — идеи, перевод, изменения дизайна, чистка кода или огромные изменения в коде. Чем больше сделано, тем лучше!
© %1$s %2$s под лицензией %3$s
Помощь проекту
-Подписаться
+ Подписаться
Не удалось изменить подписку
Не удалось обновить подписку
-
Главная
Подписки
-
Что нового
-
История поиска
Хранить запросы поиска локально
История и кэш
Запоминать воспроизведённые потоки
Возобновить при фокусе
Возобновлять воспроизведение после перерывов (например, телефонных звонков)
-
-
Уведомление NewPipe
Уведомление для NewPipe в фоне и во всплывающем окне
-
Загрузки
Допустимые символы имён файлов
-
- Заменяет недопустимые символы>
+ Заменяет недопустимые символы>
Символ для замены
-
Буквы и цифры
Большинство спецсимволов
-
История
История поиска
Просмотрено
@@ -219,40 +186,34 @@
История
История пуста
История очищена
-
-Плеер
+ Плеер
Поведение
История и кэш
Плейлист
Отмена
-
Нет результатов
Ничего нет
-
Нет подписчиков
- - %s подписчик
- - %s подписчика
- - %s подписчиков
-
-
+ - %s подписчик
+ - %s подписчика
+ - %s подписчиков
+
Нет просмотров
- - %s просмотр
- - %s просмотра
- - %s просмотров
-
-
+ - %s просмотр
+ - %s просмотра
+ - %s просмотров
+
Нет видео
- - %s видео
- - %s видео
- - %s видео
-
-
+ - %s видео
+ - %s видео
+ - %s видео
+
Элемент удалён
-Удалить этот элемент из истории поиска?
-Главная страница
+ Удалить этот элемент из истории поиска?
+ Главная страница
Пустая страница
Киоск
Подписки
@@ -260,7 +221,6 @@
Канал
Выберите канал
Выберите киоск
-
Киоск
Тренды
Топ 50
@@ -268,7 +228,6 @@
Добавлено в очередь в фоне
Добавлено в очередь в окне
Играть всё
-
Не удалось воспроизвести этот поток
Сведения
Настройки звука
@@ -279,9 +238,7 @@
\"Зажмите, чтобы добавить\"
Показать подсказку при нажатии \"В окне\" или \"В фоне\" на странице сведений о видео
[Неизвестно]
-
Восстановление после ошибки плеера
-
В фоне
В окне
Зажмите, чтобы добавить в очередь
@@ -290,23 +247,20 @@
Начать отсюда в плеере
Начать отсюда в фоне
Начать отсюда в окне
-Потоковый плеер не найден (можно установить VLC)
+ Потоковый плеер не найден (можно установить VLC)
Страна контента по умолчанию
Сервис
Всегда
Только сейчас
-
Переключить ориентацию
Перейти в фон
Перейти в окно
Перейти в плеер
-
Ошибка плеера без возможности восстановления
Внешние плееры не поддерживают ссылки этих типов
Неверная ссылка
Потоки видео не найдены
Потоки аудио не найдены
-
Пожертвовать
Разработчики NewPipe ценой своего свободного времени делают вашу жизнь чуть удобнее. Отплатите им тем же — наслаждаясь чашечкой кофе, они смогут сделать NewPipe ещё лучше.
Воздать должное
@@ -314,29 +268,21 @@
Для получения более подробной информации и последних новостей о NewPipe посетите наш веб-сайт.
Открыть боковую панель
Закрыть боковую панель
-
Видеоплеер
Фоновый плеер
Плеер в окне
-
Получение сведений…
Загрузка запрошенного контента
-Скачать файл прямой трансляции
+ Скачать файл прямой трансляции
Показать сведения
-
Закладки
-
Добавить к
-
Быстрый поиск позиции
Неточный поиск позволяет плееру искать позицию быстрее, но менее точно
Автодополнение очереди
-
Добавлять похожие потоки в очередь при воспроизведении последнего потока, если не включён повтор
-
Отладка
Файл
-
Импорт данных
Экспорт данных
Текущие подписки, плейлисты и история будут заменены
@@ -346,77 +292,56 @@
Файл не существует или нет разрешения на его чтение или запись
Имя файла не может быть пустым
Произошла ошибка: %1$s
-
Перетащите, чтобы изменить порядок
-
Создать
Удалить одно
Удалить всё
Отклонить
Переименовать
-
Удалить этот элемент из истории поиска?
Удалить все элементы из истории?
Недавно проигранные
Часто проигрываемые
-
Экспорт завершён
Импорт завершён
Нет верного Zip-файла
Внимание: не все файлы были импортированы.
Текущие данные будут заменены.
-
Скоро здесь кое-что появится ;D
-
-
Всегда спрашивать
-
Создать плейлист
Удалить
Переименовать
Имя
Добавить в плейлист
На миниатюру плейлиста
-
Добавить закладку
Удалить закладку
-
Удалить плейлист\?
Плейлист создан
Добавлено в плейлист
Миниатюра плейлиста изменена
Не удалось удалить плейлист
-
Без титров
-
Подогнать
Заполнить
Приблизить
-
Созданы автоматически
-
Синхронизировать
-
Включить LeakCanary
Мониторинг утечки памяти может привести к зависанию приложения
-
Сообщать об ошибках жизненного цикла
Принудительно сообщать о недоставляемых Rx-исключениях вне фрагмента или жизненного цикла после удаления
-
Импорт и экспорт
Импорт
Импорт из
Экспорт в
-
Импорт…
Экспорт…
-
Импорт файла
Предыдущий экспорт
-
Не удалось импортировать подписки
Не удалось экспортировать подписки
-
Импортируйте подписки YouTube, загрузив файл экспорта:
\n
\n1. Перейдите по ссылке %1$s
@@ -429,12 +354,11 @@
\n3. Выполните вход.
\n4. Скопируйте URL профиля из адресной строки.
вашID, soundcloud.com/вашID
-
Это действие может вызвать большой расход трафика.
\n
\nПродолжить?
-Загружать миниатюры
- Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений
+ Загружать миниатюры
+ Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений.
Кэш изображений очищен
Очистить кэш метаданных
Кэш метаданных очищен
@@ -442,16 +366,12 @@
Темп
Тон
Независимо (искажения)
-Удалить все загруженные данные веб-страниц
+ Удалить все загруженные данные веб-страниц
При открытии ссылки на контент — %s
-
Нет потоков, доступных для загрузки
-
Титры
Приложение для воспроизведения этого файла не установлено
-
Изменить размер текста и стиль титров. Нужен перезапуск
-
Очистить историю просмотров
Удалить всю историю просмотров\?
История просмотров удалена
@@ -461,11 +381,9 @@
Удалить всю историю поиска\?
История поиска удалена
1 элемент удалён.
-
NewPipe — свободное программное обеспечение: вы можете использовать, изучать и улучшать его по своему усмотрению. В частности, вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, либо версии 3, либо (по вашему выбору) любой более поздней версии.
При открытии ссылки
Хотите импортировать настройки?
-
Политика конфиденциальности NewPipe
Проект NewPipe очень серьёзно относится к вашей конфиденциальности. Поэтому приложение не собирает никаких данных без вашего согласия.
\nПолитика конфиденциальности NewPipe подробно объясняет, какие данные отправляются и хранятся при отправке отчёта о сбоях.
@@ -474,7 +392,6 @@
\nВам необходимо принять её условия, чтобы отправить нам отчёт об ошибке.
Принять
Отклонить
-
Без ограничений
Предел разрешения в мобильной сети
Каналы
@@ -485,21 +402,18 @@
Проматывать тишину
Шаг
Сброс
-
При сворачивании плеера
При переключении со встроенного плеера на другое приложение — %s
Ничего не делать
Фоновый плеер
Плеер в окне
-
Вид списка
Список
Сетка
- Автоматически
-
+ Автоматически
Менять яркость плеера жестом
Жест яркости
- Загрузка на внешний накопитель невозможна. Сбросить расположение папки загрузки?
+ Загрузка на внешний накопитель пока невозможна. Сбросить расположение папки загрузки\?
Внешний накопитель недоступен
Вкладки, видимые на главной странице
По умолчанию
@@ -513,6 +427,49 @@
Отписаться
Менять громкость плеера жестом
Жест громкости
+ Обновления
+ Файл удален
+ Уведомление об обновлении
+ Уведомления о новой версии NewPipe
+ Обновления
+ Показывать уведомление с подтверждением обновления, когда доступна новая версия
+ Доступна новая версия NewPipe!
+ Нажмите, чтобы скачать
+ Завершено
+ приостановлено
+ Добавлено в очередь
+ Очередь
+ Действие запрещено системой
+ Ошибка скачивания
+ Перезаписать
+ Файл с таким именем уже существует
+ Файл с таким именем уже скачивается
+ Показать текст ошибки
+ Код
+ Файл не может быть создан
+ Целевая папка не может быть создана
+ Доступ запрещен системой
+ Сервер не найден
+ Сервер не поддерживает многопотоковое скачивание, попробуйте с @string/msg_threads = 1
+ Запрашиваемый диапазон недопустим
+ Не найдено
+ Очистить завершенные
+ Остановить
+ События
+ Конференции
+ Завершающая обработка
+ На очереди
+ Загрузка завершена
+ " %s загрузок завершено"
+ Создать уникальное имя
+ Продолжить ожидающие загрузки (%s)
+ Максимум попыток
+ Максимальное число попыток перед отменой загрузки
+ Загрузки, которые невозможно приостановить будут перезапущены
+ Не удалось установить защищенное соединение
+ Не удалось соединиться с сервером
+ Не удалось получить данные с сервера
+ Пост-обработка не удалась
+ Останавливать скачивание при переходе на мобильную сеть
Закрыть
-
\ No newline at end of file
diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml
index 9d07e365d..28c84fc9e 100644
--- a/app/src/main/res/values-ta/strings.xml
+++ b/app/src/main/res/values-ta/strings.xml
@@ -1,6 +1,6 @@
-தொடங்குவதற்கு தேடல் பொத்தானை அழுத்தவும்
+ தொடங்குவதற்கு தேடல் பொத்தானை அழுத்தவும்
"%1$s பார்வைகள்"
"%1$s அன்று வெளியிடப்பட்டது"
ஸ்டீரீம் பிளேயர் கண்டறியப்படவில்லை. வில்சி நிருவ வேண்டுமா?
@@ -27,25 +27,19 @@
குழுசேர்தலை மாற்ற இயலவில்லை
குழுசேர்தலை புதுப்பிக்க இயலவில்லை
தகவல் காண்பி
-
முதன்மை
குழுசேர்ப்புகள்
குறிக்கப்பட்ட காணொலி பட்டியல்கள்
-
புதிதாக
-
பின்னால்
திரைமேல்
சேர்
-
காணிலி தரவிறக்கப் பாதை
தரவிறக்கப்பட்ட காணொலிகளின் சேமிப்புப் பாதை
காணொலியின் தரவிறக்கப் பாதையை உள்ளிடு
-
ஒலி பதிவிறக்க அடைவு
தரவிறக்கப்பட்ட ஒலி இங்கே சேமிக்கப்பட்டுள்ளது
ஒலி கோப்புகளுக்கான தரவிறக்கப் பாதையை உள்ளிடு
-
தானே இயக்கு
NewPipe மற்றொரு செயலியில் இருந்து அழைக்கப்படும் போது காணொலியை இயக்கும்
முதல் பிரிதிறன்
@@ -99,7 +93,6 @@
எப்பொழுதும்
ஒரு முறை
கோப்பு
-
பார்த்த வரலாற்றை நீக்கு
பார்த்த வரலாறு அழிக்கப்பட்டது.
பார்த்த வரலாற்றை நீக்கு
@@ -108,16 +101,12 @@
மன்னியுங்கள். சிறிய பிழை நிகழ்ந்தது.
தகவல்:
விவரங்கள்:
-
-
விருப்பங்கள்
Tor பயன்படுத்து
முடிவுகள் இல்லை
எந்த முடிவுகளும் இல்லை
இழுத்து வரிசைமாற்று
-
தரவிறக்க அடைவு உருவாக்கப்பட்டது \'%1$s\'
-
காணொலி
ஒலி
மீண்டும் முயற்சி
@@ -166,4 +155,5 @@
பாப் அப் இயக்கியின் வரிசையில் சேர்க்கப்பட்டது
"NewPipe பின்னனி மற்றும் பாப்அப் இயக்கிகளின் அறிவிப்புகள்"
"பாப்அப் இயக்கிக்கு மாறு "
+ குழுவிலகு
\ 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 6b76cea4b..a2dd72807 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -1,11 +1,11 @@
-
+
Başlamak için aramaya dokun
%1$s görüntüleme
- Yayımlanma: %1$s
- Akış oynatıcı bulunamadı. VLC\'yi kurmak ister misiniz?
- Kur
- İptal
+ Yayınlanma: %1$s
+ Akış oynatıcısı bulunamadı. VLC\'yi yüklemek istiyor musunuz\?
+ Yükle
+ İptal et
Tarayıcıda aç
Paylaş
İndir
@@ -13,238 +13,198 @@
Ayarlar
Bunu mu demek istediniz: %1$s\?
Şununla paylaş
- Tarayıcı seç
+ Tarayıcı seçin
döndürme
- Harici video oynatıcı kullan
- Harici ses oynatıcı kullan
-
+ Harici video oynatıcı kullanın
+ Harici ses oynatıcı kullanın
Video indirme konumu
- İndirilen videoların saklanacağı konum
- Videolar için indirme konumu girin
-
+ İndirilen videoları saklamak için konum
+ Video indirme konumunu giriniz
Ses indirme klasörü
- İndirilen ses dosyalarını burada depola
- Ses dosyaları için indirme konumu girin
-
- Kendiliğinden Oynat
- NewPipe başka uygulamadan çağrıldığında videoyu oynatır
- Öntanımlı çözünürlük
+ İndirilen sesler burada depolanır
+ Ses dosyaları için indirme konumunu giriniz
+ Otomatik oynat
+ NewPipe başka bir uygulamadan çağrıldığında bir video oynatır
+ Varsayılan çözünürlük
Kodi ile oynat
- Kore uygulaması bulunamadı. Kurulsun mu?
+ Kore uygulaması bulunamadı. Yüklensin mi\?
\"Kodi ile oynat\" seçeneğini göster
- Kodi ortam merkezi aracılığıyla video oynatmak için bir seçenek görüntüler
- Öntanımlı ses biçimi
+ Kodi medya merkezi üzerinden video oynatmak için bir seçenek görüntüleyin
+ Varsayılan ses biçimi
Tema
Koyu
Açık
-
İndir
"Sonraki "
- \'Sonraki\' ve \'benzer\' videoları göster
- URL desteklenmiyor
- Öntanımlı içerik dili
+ \'Sonraki\' ve \'Benzer\' videoları göster
+ Desteklenmeyen URL
+ Varsayılan içerik dili
Ses
- Video ve Ses
+ Video ve ses
Görünüm
Diğer
Arka planda oynatıyor
Oynat
İçerik
- Yaş sınırlı içerik
- Yaş Sınırı olan Videoları göster. Bu gibi materyallere \"Ayarlar\"dan izin verilebilir.
+ Yaş kısıtlamalı içerik
+ Yaş kısıtlamalı videoyu göster. Bu tür materyallere Ayarlar\'dan izin verilebilir.
CANLI
İndirilenler
İndirilenler
Hata bildirimi
-
Hata
Ağ hatası
- Küçük resimlerin tümü yüklenemedi
- Video URL imzası çözülemedi
+ Tüm küçük resimler yüklenemedi
+ Video URL imzasının şifresi çözülemedi
Web sitesi ayrıştırılamadı
- Web sitesi tümüyle ayrıştırılamadı
+ Web sitesi tamamen ayrıştırılamadı
İçerik kullanılamıyor
GEMA tarafından engellendi
Canlı akışlar henüz desteklenmiyor
Herhangi bir akış alınamadı
- Resim yüklenemedi
- Uygulama/arayüz çöktü
+ Görüntü yüklenemedi
+ Uygulama/kullanıcı arayüzü çöktü
Üzgünüz, bu olmamalıydı.
- Hatayı e-postayla bildir
+ Hatayı e-postay aracılığıyla bildir
Üzgünüz, bazı hatalar oluştu.
BİLDİR
Bilgi:
Ne oldu:
Ne:\\nİstek:\\nİçerik Dili:\\nHizmet:\\nGMT Zamanı:\\nPaket:\\nSürüm:\\nİşletim sistemi sürümü:
Video ön izleme küçük resmi
- Yükleyenin küçük resmi
+ Yükleyicinin avatar küçük resmi
Beğeni
Beğenmeme
- Tor kullan
+ Tor kullanın
(Deneysel) Artırılmış gizlilik için indirme trafiğini Tor\'dan geçmesi için zorla (video yayımlama henüz desteklenmemektedir).
Bir hata bildir
- Kullanıcı bildirimi
-
+ Kullanıcı raporu
İndirme dizini \'%1$s\' oluşturulamıyor
- İndirme dizini \'%1$s\' oluşturuldu
-
+ İndirme dizini oluşturuldu \'%1$s\'
Video
Ses
Yeniden dene
Depolama erişim izni reddedildi
-
Başlat
Duraklat
Oynat
Sil
Sağlama
-
Yeni görev
Tamam
-
-
Dosya adı
İş parçacığı
Hata
- Sunucu desteklenmiyor
+ Desteklenmeyen sunucu
Dosya zaten var
- Hatalı biçimlendirilmiş URL veya İnternet yok
- NewPipe İndiriyor
- Ayrıntılar için dokun
+ Hatalı biçimlendirilmiş URL veya İnternet mevcut değil
+ NewPipe İndiriliyor
+ Ayrıntılar için dokunun
Lütfen bekleyin…
Panoya kopyalandı
Lütfen uygun bir indirme klasörü seçin
-
-
İndirme menüsü ayarlanamadı
- Açılır oynatıcı kipinde aç
- NewPipe açılır oynatıcı kipi
-
- Öntanımlı açılır oynatıcı çözünürlüğü
- Daha yüksek çözünürlükleri göster
- Yalnızca bazı aygıtlar 2K/4K video oynatmayı destekler
- Öntanımlı video biçimi
+ Açılır pencere kipinde aç
+ NewPipe açılır pencere kipi
+ Varsayılan açılır pencere çözünürlüğü
+ Yüksek çözünürlükleri göster
+ Sadece bazı cihazlar 2K/4K video oynatmayı destekliyor
+ Varsayılan video biçimi
Siyah
-
- Açılır oynatıcı kipinde oynatılıyor
+ Açılır pencere kipinde oynatılıyor
Tümü
Kanal
Evet
Sonra
Devre dışı
-
Yorumunuz (İngilizce):
Ayrıntılar:
-
-
Video ön izleme küçük resmi
Eski oynatıcıyı kullan
Eski içe gömülü Mediaframework oynatıcısı
-
-
- K
+ B
M
- B
-
- Bu izin açılır oynatıcı kipinde
-\naçmak için gerekli
-
+ MR
+ Bu izin, açılır pencere kipinde
+\naçmak için gereklidir
reCAPTCHA
- "reCAPTCHA "
- reCAPTCHA Formu gerekli
-
- Arka Plan
- Açılır Oynatıcı
-
- Süz
+ reCAPTCHA mücadelesi
+ reCAPTCHA mücadelesi istendi
+ Arka plan
+ Açılır pencere
+ Filtrele
Yenile
Temizle
-
- Açılır oynatıcı boyutunu ve konumunu hatırla
- Açılır oynatıcının ayarlandığı son boyutu ve konumu hatırla
-
- Açılır Oynatıcı
+ Açılır pencere boyutunu ve konumunu hatırla
+ Açılan pencerenin son boyutunu ve konumunu hatırlar
+ Açılır pencere
Boyutlandırılıyor
-
- BAZI çözünürlüklerdeki sesi kaldırır
- Oynatıcının parlaklığını ve sesini yönetmek için el hareketlerini kullan
- Oynatıcı el hareketi denetimleri
+ BAZI çözünürlüklerde ses kaldırılır
+ Oynatıcının parlaklığını ve sesini kontrol etmek için hareketleri kullanın
+ Oynatıcı hareket kontrolü
Arama önerileri
- Aramada önerileri göster
-
-En iyi çözünürlük
-
+ Arama yaparken önerileri göster
+ En iyi çözünürlük
NewPipe Hakkında
Ayarlar
Hakkında
- Üçüncü Taraf Lisanslar
+ Üçüncü Taraf Lisansları
© %1$s, %2$s tarafından %3$s altında
Lisans yüklenemedi
Web sitesini aç
Hakkında
Katkıda bulunanlar
Lisanslar
- Android\'de özgür, hafif akış oynatımı.
+ Libre, Android\'de hafif bir oynatıcı.
GitHub\'da gör
NewPipe\'ın Lisansı
Fikirleriniz; çeviri, tasarım değişiklikleri, kod temizliği ya da gerçek köklü kod değişikleri olsun yardımınıza her zaman açığız. Ne kadar çok yapılırsa o kadar iyi olur!
Lisansı oku
Katkıda bulun
-İndirme
+ İndir
Dosya adlarında izin verilen karakterler
Geçersiz karakterler bu değer ile değiştirilir
Değiştirme karakteri
-
Harfler ve rakamlar
- Özel karakterlerin çoğu
-
+ En özel karakterler
Abone ol
- Abone olundu
+ Abone
Kanal aboneliğinden çıktınız
- Abonelik değiştirilemiyor
- Abonelik güncellenemiyor
-
+ Abonelik değiştirilemedi
+ Abonelik güncellenemedi
Ana
Abonelikler
-
- Neler Yeni
-
+ Yenilikler
Arama geçmişi
- Arama sorgularını yerel olarak sakla
- Geçmiş ve Önbellek
- İzlenen videoların kaydını tut
+ Arama sorgularını yerel olarak saklayın
+ Geçmiş ve önbellek
+ İzlenen videoları takip edin
Odaklanıldığında sürdür
- Kesilmelerden (ör: Telefon çağrıları) sonra oynatmayı sürdür
+ Kesintilerden sonra (örneğin telefon çağrısı) oynatmaya devam et
Oynatıcı
Davranış
- Geçmiş ve Önbellek
+ Geçmiş ve önbellek
Oynatma Listesi
Geri Al
-
NewPipe Bildirimi
- NewPipe arka plan ve açılır oynatıcılar için bildirimler
-
+ NewPipe arka plan ve açılır pencere oynatıcıları için bildirimler
Sonuç yok
- Burada cırcır böceklerinden başka şey yok
-
+ Burada cırcır böceklerinden başka bir şey yok
Abone yok
- - %s abone
- - %s abone
-
-
+ - %s abone
+ - %s abone
+
Görüntüleme yok
- - %s görüntüleme
- - %s görüntüleme
-
-
+ - %s görüntüleme
+ - %s görüntüleme
+
Video yok
- - %s video
- - %s video
-
-
+ - Video
+ - Video
+
Geçmiş
Aranan
İzlenen
@@ -253,171 +213,139 @@
Geçmiş boş
Geçmiş temizlendi
Öge silindi
-Bu içeriği arama geçmişinden silmek istiyor musunuz?
-\"Kuyruğa almak için basılı tut\" ipucunu göster
- Video ayrıntıları sayfasında arka plan veya açılır oynatıcı düğmesine basıldığında ipucu göster
- Arka plan oynatıcıda kuyruğa eklendi
- Açılır oynatıcıda kuyruğa eklendi
+ Bu içeriği arama geçmişinden silmek istiyor musunuz\?
+ \"Eklemek için basılı tutun\" ipucunu göster
+ Video ayrıntıları sayfasında arka plan veya açılır pencere düğmesine basıldığında ipucu gösterilir
+ Arka plan oynatıcı kuyruğuna eklendi
+ Açılır pencere oynatıcısı kuyruğa eklendi
Tümünü Oynat
-
[Bilinmeyen]
-
Bu akış oynatılamadı
- Kurtarılamaz oynatıcı hatası oluştu
+ Kurtarılamayan oynatıcı hatası oluştu
Oynatıcı hatasından kurtarılıyor
-
Ana sayfanın içeriği
Boş Sayfa
- Köşk Sayfası
+ Kiosk Sayfası
Abonelik Sayfası
Besleme Sayfası
Kanal Sayfası
- Kanal seç
- Henüz abone olunan kanal yok
+ Kanal seçin
+ Henüz kanal aboneliği yok
Köşk seç
-
Köşk
- Trendler
- En İyi 50
- Yeni ve sıcak
+ Popüler
+ En iyi 50
+ En yeniler
Arkaplan oynatıcı
Açılır oynatıcı
Kaldır
Ayrıntılar
Ses Ayarları
- Kuyruğa almak için basılı tut
- Arka planda kuyruğa al
- Yeni açılır oynatıcıda sıraya al
+ Kuyruğa eklemek için basılı tutun
+ Arka planda kuyruğa ekle
+ Yeni açılan oynatıcıda kuyruğa al
Burada oynatmaya başla
Burada arka planda başlat
Burada yeni açılır oynatıcıda başlat
-Bağış yapın
- NewPipe, size en iyi deneyimi sunmak için zamanını harcayan gönüllüler tarafından geliştirilmiştir. Bir fincan kahveyi yudumlarken NewPipe\'ı daha da iyi yapmaları için geliştiricilere yardımcı olun.
- Geri ver
+ Bağış yapın
+ NewPipe, size en iyi deneyimi getiren zaman harcama gönüllüler tarafından geliştirilmiştir. Bir fincan kahvenin tadını çıkarırken geliştiricilerin New Pipe\'ı daha iyi hale getirmelerine yardımcı olun.
+ Bağış yap
Web sitesi
- Daha çok bilgi ve haber için NewPipe Web Sitesini ziyaret edin.
- Öntanımlı içerik ülkesi
+ Daha çok bilgi ve haber için NewPipe web sitesini ziyaret edin.
+ Varsayılan içerik ülkesi
Hizmet
- Yönelimi Değiştir
- Arka Plana Geç
- Açılır Oynatıcıya Geç
- Ana Görünüme Geç
-
- Çekmeceyi Aç
- Çekmeceyi Kapat
- Akış oynatıcı bulunamadı (bunun için VLC kurabilirsiniz).
+ Yönlendirmeyi değiştir
+ Arka plana geç
+ Açılır pencereye geç
+ Ana görünüme geç
+ Çekmeceyi aç
+ Çekmeceyi kapat
+ Akış oynatıcı bulunamadı (Bunu oynamak için VLC yükleyebilirsiniz).
Her Zaman
Yalnızca Bir Kez
-
- Harici oynatıcılar bu türdeki bağlantıları desteklemiyor
+ Harici oynatıcılar bu tür bağlantıları desteklemez
Geçersiz URL
Video akışı bulunamadı
Ses akışı bulunamadı
-
Video oynatıcı
Arka plan oynatıcı
Açılır oynatıcı
Her zaman sor
-
Bilgi alınıyor…
İstenen içerik yükleniyor
-Veri tabanını içe aktar
+ Veri tabanını içe aktar
Veri tabanını dışa aktar
- Şu anki geçmişinizi ve aboneliklerinizi geçersiz kılar
+ Geçerli geçmişinizi ve aboneliklerinizi geçersiz kılar
Geçmişi, abonelikleri ve oynatma listelerini dışa aktar
Dışa aktarıldı
İçe aktarıldı
Geçerli ZIP dosyası yok
Uyarı: Tüm dosyalar içe aktarılamadı.
- Bu, şu anki kurulumunuzu geçersiz kılacak.
-
+ Bu, var olan kurulumunuzu geçersiz kılacaktır.
Akış dosyasını indir
- Bilgileri göster
-
- Çalma listeleri yer imlerinde
-
- Listeye Ekle
-
- Yeniden sıralamak için sürükle
-
+ Bilgi göster
+ Yer İmlenen Oynatma Listeleri
+ Ekle
+ Yeniden düzenlemek için sürükleyin
Oluştur
Birini Sil
Tümünü Sil
- Görmezden gel
+ Reddet
Yeniden adlandır
-
- Bu ögeyi izleme geçmişinden silmek ister misiniz?
- Tüm ögeleri geçmişten silmek istediğinize emin misiniz?
+ Bu ögeyi izleme geçmişinden silmek ister misiniz\?
+ Tüm ögeleri geçmişten silmek istediğinize emin misiniz\?
Son Oynatılan
En Çok Oynatılan
-
Her zaman sor
-
- Yeni Oynatma Listesi Oluştur
+ Yeni Oynatma Listesi
Sil
Yeniden adlandır
Ad
Oynatma Listesine Ekle
- Oynatma Listesi Küçük Resmi Olarak Belirle
-
- Oynatma Listesini İmle
- Yer İmini Kaldır
-
+ Oynatma listesi küçük resmi olarak ayarla
+ Oyn. listesini imle
+ Yer imini kaldır
Bu oynatma listesi silinsin mi\?
Oynatma listesi oluşturuldu
Oynatma listesinde
- Oynatma listesi küçük resmi değiştirildi.
+ Oynatma listesinin küçük resmi değiştirildi.
Oynatma listesi silinemedi.
-
- Alt Yazı Yok
-
+ Altyazı yok
Sığdır
Doldur
- Yaklaştır
-
+ Yakınlaştır
Alt yazı boyutu
Daha küçük yazı tipi
Normal yazı tipi
Daha büyük yazı tipi
-Hata Ayıklama
- Yakında burada bir şeyler görünecek :)
-
-
- Kendiliğinden Üretilmiş
- LeakCanary\'i Etkinleştir
- Bellek sızıntı gözlemlemesi, yığın boşaltımı sırasında uygulamanın tepkisiz kalmasına neden olabilir
-
- Olağan dışı işleyiş hatalarını bildir
+ Hata ayıklama
+ Yakında bir şeyler burada görünecek ;D
+ Kendiliğinden Oluşturulan
+ LeakCanary\'i etkinleştir
+ Bellek sızıntısı izleme, yığın boşaltımı sırasında uygulamanın yanıt vermemesine neden olabilir
+ Yaşam dışı döngü hatalarını bildir
Parçanın dışında veya atımdan sonraki etkinlik yaşam döngüsündeki teslim edilemeyen Rx beklentilerinin bildirimini zorla
-
-Hızlı isabetsiz konumlama kullan
- İsabetsiz konumlama, oynatıcının azaltılmış kesinlikle daha hızlı konumlama yapmasını sağlar
- Sonraki akışı kendiliğinden kuyruğa ekle
- Yinelemeyen bir kuyruktaki son akış oynatılırken ilgili bir akışı kendiliğinden sonuna ekle.
+ Hızlı isabetsiz konumlama kullan
+ İsabetsiz konumlama, oynatıcının daha düşük hassasiyetle daha hızlı pozisyon aramasını sağlar
+ Sonraki akışı otomatik kuyruğa ekle
+ Yinelenmeyen bir kuyruktaki son akışı oynatırken ilgili akışı otomatik ekler.
EŞZAMANLA
-
Dosya
-
Böyle bir dizin yok
Dosya/içerik kaynağı değil
- Dosya yok veya okuma yazma izni eksik
+ Dosya yok ya da okuma veya yazma izni yok
Dosya adı boş olamaz
Hata oluştu: %1$s
-
- İçe/Dışa Aktar
- İçe Aktar
+ İçe/dışa aktar
+ İçe aktar
Şuradan içe aktar
Şuna dışa aktar
-
İçe aktarılıyor…
Dışa aktarılıyor…
-
Dosyayı içe aktar
Önceki dışa aktarım
-
Abonelikler içe aktarılamadı
Abonelikler dışa aktarılamadı
-
Dışa aktarım dosyasını indirerek YouTube aboneliklerinizi içe aktarın:
\n
\n1. Şu adrese gidin: %1$s
@@ -430,67 +358,122 @@
\n3. Sorulduğunda giriş yapın
\n4. Yönlendirildiğiniz profil URL\'sini kopyalayın.
kimliginiz, soundcloud.com/kimliginiz
-
Bu sürecin ağa yük olabileceğini unutmayın.
\n
\nDevam etmek istiyor musunuz?
-Küçük resimleri yükle
- Kapalıyken küçük resimler yüklenmez, veri ve bellek kullanımı azaltılır. Değişiklikler hem bellekteki hem diskteki resim önbelleğini temizler.
- Resim önbelleği temizlendi
- Önbelleklenmiş üst veriyi temizle
- Önbelleklenmiş tüm web sayfası verisini kaldır
+ Küçük resimleri yükle
+ Küçük resimlerin yüklenmesini önlemek, veri ve hafıza kullanımından tasarruf etmek için kapatın. Değişiklikler, hem bellek içi hem de diskteki görüntü önbelleğini temizler.
+ Görüntü önbelleği silindi
+ Önbelleğe alınmış meta verilerini temizle
+ Önbelleğe alınmış tüm web sayfası verilerini kaldır
Üst veri önbelleği temizlendi
Oynatım Hızı Denetimleri
Hız
Öntanımlı
-Ses titreşimi
- Bağlantıyı kes (bozulmalara neden olabilir)
+ Ses titreşimi
+ Bağlantısız (bozulmaya neden olabilir)
Nightcore
- İndirmeye uygun akış yok
-
- Yeğlenen \'aç\' eylemi
+ İndirilebilecek akış yok
+ Tercih edilen \'aç\' eylemi
İçerik açılırken öntanımlı eylem — %s
-
- Ek Açıklamalar
- Oynatıcı ek açıklamalar metin boyutunu ve arka plan biçimlerini düzenle. Etki için uygulamayı yeniden başlatmak gerekir.
-
- Bu dosyayı oynatmak için kurulan uygulama yok
-
+ Açıklamalar
+ Oynatıcı altyazı metin ölçeğini ve arka plan biçiimini değiştirin. Etkili olması için uygulama yeniden başlatma gerektirir.
+ Bu dosyayı oynatmak için uygulama yüklü değil
İzleme geçmişini temizle
Oynatılan akışların geçmişini siler
- Tüm izleme geçmişi silinsin mi\?
+ İzleme geçmişinin tamamı silinsin mi\?
İzleme geçmişi silindi.
Arama geçmişini temizle
- Aranan anahtar sözcüklerin geçmişini siler
+ Aramada kullanılan anahtar kelimelerin geçmişini siler
Tüm arama geçmişi silinsin mi\?
Arama geçmişi silindi.
1 öge silindi.
-
- NewPipe, telif haklı özgür yazılımdır: İstediğiniz gibi kullanabilir, öğrenebilir, paylaşabilir, iyileştirebilirsiniz. Özellikle; Özgür Yazılım Vakfı tarafından yayımlanan GNU Genel Kamu Lisansı\'nın, lisansın 3. sürümüyle veya (isterseniz) daha sonraki sürümünün koşulları altında yeniden dağıtabilir ve/veya düzenleyebilirsiniz.
+ NewPipe, telif müsaadeli özgür yazılımdır: İstediğiniz gibi kullanabilir, öğrenebilir, paylaşabilir ve geliştirebilirsiniz. Özellikle, Özgür Yazılım Vakfı tarafından yayımlanan GNU Genel Kamu Lisansı 3. sürümü veya (isterseniz) daha sonraki sürümleri koşulları altında yeniden dağıtabilir ve/veya değiştirebilirsiniz.
Ayarları da içe aktarmak istiyor musunuz?
-
NewPipe\'ın Gizlilik İlkesi
- NewPipe projesi, gizliliğinizi çok ciddiye alır. Bu nedenle, uygulama sizin izniniz olmadan herhangi bir veri toplamaz.
-\nNewPipe\'ın gizlilik ilkesi, bir çökme bildirimi gönderdiğinizde hangi verilerin gönderilip saklandığını ayrıntılı olarak açıklar.
+ NewPipe projesi, gizliliğinizi çok ciddiye alıyor. Bu nedenle, uygulama sizin izniniz olmadan herhangi bir veri toplamaz.
+\nNewPipe\'ın gizlilik ilkesi, çökme raporu gönderdiğinizde hangi verilerin gönderildiğini ve saklandığını ayrıntılı olarak açıklar.
Gizlilik ilkesini oku
Avrupa Genel Veri Koruma Yönetmeliğine (GDPR) uymak için, dikkatinizi NewPipe\'ın gizlilik ilkesine çekiyoruz. Lütfen dikkatlice okuyun.
\nBize hata bildirimini göndermek için kabul etmelisiniz.
Kabul et
- Kabul etme
-Sınırsız
+ Reddet
+ Sınır yok
Mobil veri kullanırken çözünürlüğü sınırla
- Uygulamayı simge durumuna küçült
- Ana video oynatıcıdan başka bir uygulamaya geçişteki eylem — %s
+ Uygulama geçişinde küçült
+ Ana video oynatıcıdan diğer uygulamaya geçiş yaparken eylem — %s
Yok
- Arka plan oynatıcıya küçült
+ Arka plan oynatıcısını küçült
Açılır oynatıcıya küçült
-
-Sessizlik sırasında hızlı ileri
+ Sessizlik sırasında hızlı ileri
Adım
Sıfırla
-
- Kanallar
- Oynatma Listeleri
- Parçalar
- Kullanıcılar
-
+ Kanal
+ Oynatma Listesi
+ Parça
+ Kullanıcı
+ Abonelikten çık
+ Yeni Sekme
+ Sekmeyi Seçin
+ Ses hareketi kontrolü
+ Oynatıcının sesini kontrol etmek için hareketleri kullanın
+ Parlaklık hareket kontrolü
+ Oynatıcının parlaklığını kontrol etmek için hareketleri kullanın
+ Güncellemeler
+ Dosya silindi
+ Uygulama Güncelleme Bildirimi
+ Yeni NewPipe sürümü için bildirimler
+ Harici depolama kullanılamıyor
+ Harici SD karta indirmek henüz mümkün değil. İndirme klasörü konumu sıfırlansın mı\?
+ Varsayılan sekmeleri kullanarak, kaydedilen sekmeleri okurken hata
+ Varsayılanları geri yükle
+ Varsayılanları geri yüklemek istiyor musunuz\?
+ Abone sayısı mevcut değil
+ Ana sayfada hangi sekmeler gösterilir
+ Seçim
+ Güncellemeler
+ Yeni bir sürüm mevcut olduğunda uygulama güncellemesi için bir bildirim göster
+ Liste görünümü modu
+ Liste
+ Izgara
+ Otomatik
+ Görünümü Değiştir
+ NewPipe Güncellemesi Var!
+ İndirmek için dokunun
+ Tamamlandı
+ Sırada
+ durdurulmuş
+ sırada
+ son işlemler uygulanıyor
+ Kuyruk
+ Sistem tarafından reddedilen işlem
+ İndirme başarısız
+ İndirme bitti
+ %s indirme bitti
+ Benzersiz ad oluştur
+ Üzerine yaz
+ Bu ada sahip indirilen bir dosya zaten var
+ Bu ad ile devam eden bir indirme var
+ Hatayı göster
+ Kod
+ Dosya oluşturulamıyor
+ Hedef klasör oluşturulamıyor
+ İzin sistem tarafından reddedildi
+ Güvenli bağlantı başarısız
+ Sunucu bulunamadı
+ Sunucuya bağlanılamıyor
+ Sunucu veri göndermiyor
+ Sunucu, çok iş parçacıklı indirmeleri kabul etmez, @string/msg_threads = 1 ile yeniden deneyin
+ İstenen aralık karşılanamaz
+ Bulunamadı
+ İşlem sonrası başarısız
+ Tamamlanan indirmeleri temizle
+ Beklemedeki %s transferinize İndirmeler\'den devam edin
+ Durdur
+ Maksimum deneme sayısı
+ İndirmeyi iptal etmeden önce maksimum deneme sayısı
+ Mobil veriye geçerken duraklat
+ Duraklatılamayan indirmeler yeniden başlatılacak
+ Olaylar
+ Konferanslar
+
\ 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 b5203fbc0..df246a5df 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -1,33 +1,31 @@
-
-Nhấp tìm kiếm để bắt đầu
+
+
+ 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. Bạn có muốn cài đặt VLC?
+ Không tìm thấy trình phát luồng. Bạn có muốn cài đặt VLC\?
Cài đặt
Hủy
Mở trong trình duyệt
- Mở trong chế độ popup
+ Mở trong trình phát popup
Chia sẻ
Tải về
Tìm kiếm
Cài đặt
- Ý của bạn là %1$s ?
+ Ý của bạn là %1$s\?
Chia sẻ với
Chọn trình duyệt
Sử dụng trình phát video bên ngoài
- Một số độ phân giải sẽ KHÔNG có âm thanh khi chế độ này
- Sử dụng trình phát âm thanh bên ngoài
+ Loại bỏ âm thanh ở một vài độ phân giải video
+ Sử dụng trình phát audio bên ngoài
Chế độ popup của NewPipe
- Chế độ Popup
-
- Đường dẫn tải xuống video
- Đường dẫn để lưu trữ video đã tải xuống
- Nhập đường dẫn tải xuống cho video
-
- Đường dẫn tải audio
- Đường dẫn để lưu trữ âm thanh đã tải xuống
- Nhập đường dẫn tải xuống cho tệp âm thanh
-
+ Popup
+ Đường dẫn tải về video
+ Đường dẫn để lưu video đã tải về
+ Nhập đường dẫn tải về cho video
+ Thư mục tải về audio
+ Audio đã tải về được lưu ở đây
+ Nhập đường dẫn tải về cho audio
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
@@ -35,7 +33,7 @@
Hiển thị độ phân giải cao hơn
Chỉ một số thiết bị hỗ trợ chơi các video 2K / 4K
Phát với Kodi
- Không tìm thấy ứng dụng Kore. Cài đặt nó?
+ Không tìm thấy ứng dụng Kore. Bạn có muốn 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
@@ -46,27 +44,25 @@
Sáng
Tối
Đen
- Nhớ kích thước và vị trí bật lên
- Nhớ kích thước và vị trí bật lên cuối cùng
+ Nhớ kích thước và vị trí của popup
+ Nhớ kích thước và vị trí cuối của popup
Điều khiển cử chỉ trình phát
Sử 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
Hiển thị các đề xuất khi tìm kiếm
-
Tải về
-
- Video tiếp theo
- Hiển thị video \'tiếp theo\' và \'tương tự\'
+ Tiếp
+ Hiển thị video \'Tiếp\' và \'Tương tự\'
URL không được hỗ trợ
Hiển thị
Khác
Phát ở chế độ nền
- Phát ở chế độ cửa sổ bật lên (Popup)
+ Phát ở chế độ popup
Phát
Nội dung
- Hiển thị nội dung bị hạn chế độ tuổi
- 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ếp
+ Nội dung có giới hạn độ tuổi
+ Hiện video có giới hạn độ tuổi. Có thể bật cài đặt này trong phần Cài đặt.
+ TRỰC TIẾP
Tải xuống
Tải xuống
Báo lỗi
@@ -80,7 +76,6 @@
Xóa
Thay đổi kích thước
Độ phân giải tốt nhất
-
Lỗi
Lỗi kết nối mạng
Không thể tải tất cả các thumbnails
@@ -89,8 +84,8 @@
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ể thiết lập menu tải về
+ Livestream chưa được hỗ trợ
Không thể lấy bất kỳ luồng nào
Không thể tải hình ảnh
Ứng dụng / Giao diện người dùng bị lỗi
@@ -103,60 +98,49 @@
Gì: \\nRequest:\\nContent Lang:\\nService:\\nGMT Time:\\nPackage:\\nVersion:\\nOS version:
Nhận xét của bạn (bằng tiếng Anh):
Chi tiết:
-
-
Hình thu nhỏ xem trước video
Hình thu nhỏ xem trước video
- Hình thu nhỏ người dùng của người tải lên
+ Hình thu nhỏ của avatar người tải lên
Lượt thích
Dislike
Dùng Tor
- (Thử nghiệm) Buộc tải thông tin lưu lượng truy cập thông qua Tor để tăng tính riêng tư (streaming video chưa được hỗ trợ).
+ (Thử nghiệm) Buộc tải về thông qua Tor để tăng tính bảo mật (chưa hỗ trợ xem video trực tiếp).
Báo lỗi
Báo cáo người dùng
-
- Không thể tạo thư mục tải xuống \'%1$s\'
- Đã tạo thư mục tải xuống \'%1$s\'
-
+ Không thể tạo thư mục tải về \'%1$s\'
+ Đã tạo thư mục tải về \'%1$s\'
Video
Âm thanh
Thử lại
- Quyền truy cập vào bộ nhớ đã bị từ chối
+ Quyền truy cập bộ nhớ đã bị từ chối
Sử dụng trình phát cũ
Máy nghe nhạc Mediaframework tích hợp sẵn
-
-
ngàn
triệu
tỉ
-
Bắt đầu
Dừng
Chơi
Xóa
checksum
-
Nhiệm vụ mới
- Được
-
+ OK
Tên file
Chủ đề
Lỗi
- Sever không được hỗ trợ
+ Server không được hỗ trợ
Tập tin đã tồn tại
URL không hợp lệ hoặc Internet không khả dụng
NewPipe đang tải xuống
Chạm để biết chi tiết
Vui lòng đợi …
Sao chép vào clipboard
- Hã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
-
+ Chọn một thư mục tải về có sẵn
+ Cần quyền này để
+\nmở trong chế độ popup
ReCAPTCHA
- ReCAPTCHA Challenge
+ reCAPTCHA
Yêu cầu reCAPTCHA
-
Giới thiệu về NewPipe
Cài đặt
Về
@@ -167,64 +151,59 @@
Về
Cộng tác viên
Giấy phép
- Giao diện trực quan nhẹ cho Android.
+ Trình phát nội dung nhẹ và mã nguồn mở cho Android.
Xem trên GitHub
Giấy phép của NewPipe
- Cho 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!
+ Sự đóng góp luôn được hoan nghênh – cho dù bạn dịch, có ý tưởng thiết kế, dọn code, hay thay đổi rất nhiều phần code. Càng làm nhiều thì ứng dụng này sẽ càng tốt!
Đọc giấy phép
- Sự đóng góp
-Quay
+ Đóng góp
+ xoay màn hình
Ngôn ngữ nội dung ưu tiên
- Video & Âm thanh
- Cửa sổ
+ Video & âm thanh
+ Popup
Lịch sử & bộ nhớ cache
Lịch sử & bộ nhớ cache
- Danh sách
+ Playlist
Không tìm thấy
- Theo dõi
- Đang theo dõi
- Đã dừng theo dõi kênh
- Không thể thay đổi tình trạng theo dõi
- Khô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.
+ Đăng ký
+ Đã đăng ký
+ Đã hủy đăng ký kênh
+ Không thể thay đổi tình trạng đăng ký
+ Không thể cập nhật tình trạng đăng ký
+ 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 về tệp luồng
Hiển thị thông tin
-
main
Đăng ký
- Dấu trang
-
+ Playlist đã đánh dấu
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
+ Tắt để không tải về các hình thu nhỏ, tiết kiệm lưu lượng mạng và bộ nhớ. Thay đổi điều này sẽ xóa bộ nhớ đệm hình ảnh cả trong RAM và trong bộ nhớ.
Đã 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
+ 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
+ Hiển thị mẹo \"Giữ để nối thêm\"
+ Hiển thị mẹo khi nhấn nút phát trong nền hoặc phát trên popup trong 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
+ Đã thêm vào hàng chờ của popup
Kênh
- Danh sách phát
+ Playlist
Bản nhạc
Người dùng
Hủy bỏ
@@ -232,28 +211,24 @@
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
-
+ Thông báo cho trình phát popup và trình phát nền
[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
+ Ghi đè lịch sử và danh sách đăng ký hiện tại của bạn
+ Xuất lịch sử, đăng ký và playlist
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 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 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
@@ -261,50 +236,40 @@
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
+ Không tìm thấy luồng audio 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ệp / nguồn nội dung không hợp lệ
+ Tệp không tồn tại hoặc không có quyền đọc / ghi
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ế
+ Không có luồng nào để tải về
+ Không có gì ở đây
Kéo để sắp xếp lại
-
Không có người đăng ký
- - %s người đăng kí
-
-
+ - %s người đăng kí
+
Không có lượt xem nào
- - %s lượt xem
-
-
+ - %s lượt xem
+
Không có video nào
- - %s video
-
-
+ - 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
@@ -314,11 +279,11 @@
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.
+ NewPipe là phần mềm miễn phí copyleft: Bạn có thể sử dụng, nghiên cứu, chia sẻ và cải thiện nó theo ý của bạn. Nói cụ thể hơn, bạn có thể phân phối lại và/hoặc sửa đổi nó theo các điều khoản trong Giấy phép Công cộng GNU (GPL) được xuất bản bởi Quỹ Phần mềm Tự do (FSF), theo phiên bản 3 hoặc bất kì phiên bản nào sau này của Giấy phép (tùy ý bạn).
Lịch sử
Đã tìm kiếm
Đã xem
- Lịch sử bị tắt
+ Đã tắt lịch sử
Lịch sử
Lịch sử trống
Đã xóa lịch sử
@@ -328,7 +293,6 @@
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ủ
@@ -336,98 +300,78 @@
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ưa đăng ký kênh nào
Chọn Trang chủ
- Xuất xong
- Nhập hoàn tất
+ Đã xuất
+ Đã nhập
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
+ 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
-
+ Giữ để nối tiếp
+ Thêm vào trình phát nền
+ Thêm vào trình phát popup
+ Bắt đầu phát ở đây
+ Bắt đầu từ đây trong nền
+ Bắt đầu từ đây trên trình phát 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
+ 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ạo playlist mới
+ Xóa playlist
+ Đổi tên playlist
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
+ Thêm vào playlist
+ Đặt làm hình thu nhỏ của playlist
+ Đánh dấu playlist này
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
-
+ Xóa playlist này\?
+ Đã tạo playlist
+ Đã thêm vào playlist
+ Đã thay đổi hình thu nhỏ của playlist.
+ Không thể xóa playlist.
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
-
+ Sửa cỡ chữ và kiểu màu nền phụ đề. 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
+ Báo các lỗi out-of-lifecycle
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/xuất
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:
+ Nhập danh sách đă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)
+\n2. Đăng nhập khi được yêu cầu
+\n3. Một tệp sẽ được tải về (đó 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)
@@ -437,7 +381,6 @@
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
@@ -445,18 +388,79 @@
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
+ Thu nhỏ khi chuyển qua ứng dụng khác
+ Hành động khi chuyển sang ứng dụng khác từ trình phát 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
-
-
+ Thu nhỏ vào trình phát popup
+ Hủy đăng ký
+ Tab mới
+ Chọn tab
+ Điều khiển âm lượng bằng cử chỉ
+ Sử dụng cử chỉ để điều khiển âm lượng của trình nghe nhạc
+ Điều khiển độ sáng màn hình bằng cử chỉ
+ Sử dụng cử chỉ để điều khiển độ sáng màn hình của trình phát nhạc
+ Cập nhật
+ Sự kiện
+ Đã xóa tập tin
+ Thông báo cập nhật ứng dụng
+ Thông báo phiên bản NewPipe mới
+ Bộ nhớ ngoài không khả dụng
+ Hiện tại chưa thể tải vào thẻ SD ngoài. Đặt lại vị trí tải về\?
+ Khôi phục lại các tab mặc định do danh sách các tab đã lưu không hợp lệ
+ Khôi phục về mặc định
+ Bạn có muốn khôi phục về mặc định\?
+ Số người đăng ký không khả dụng
+ Chọn các tab để hiện trên trang chủ
+ Lựa chọn
+
+ Nhập ID SoundCloud hoặc link soundcloud.com/<ID của bạn>
+ Cập nhật
+ Hiện thông báo khi có bản cập nhật ứng dụng
+ Chế độ hiển thị danh sách
+ Danh sách
+ Lưới
+ Tự động
+ Đổi chế độ hiển thị
+ Đã có bản cập nhật NewPipe!
+ Nhấn để tải về
+ Xong
+ Trong hàng chờ
+ đã tạm dừng
+ trong hàng đợi
+ đang xử lý
+ Hàng chờ
+ Thao tác bị từ chối bởi hệ thống
+ Tải về không thành công
+ Đã tải về
+ %s tải về đã xong
+ Tạo tên riêng biệt
+ Ghi đè
+ Có một tệp đã tải về trùng tên
+ Có một tệp trùng tên đang tải về
+ Hiện lỗi
+ Không thể tạo tệp
+ Không thể tạo thư mục đích
+ Quyền bị từ chối bởi hệ thống
+ Không thể tạo kết nối an toàn
+ Không thể tìm máy chủ
+ Không thế kết nối với máy chủ
+ Máy chủ không gửi dữ liệu về
+ Máy chủ không chấp nhận tải đa luồng, thử lại với số luồng = 1
+ Không thể đáp ứng dãy đã yêu cầu
+ Không tìm thấy
+ Xử lý thất bại
+ Dọn các tải về đã hoàn thành
+ Hãy tiếp tục %s tải về đang chờ
+ Dừng
+ Số lượt thử lại tối đa
+ Số lượt thử lại trước khi hủy tải về
+ Tạm dừng tải khi chuyển qua dữ liệu di động
+ Các tải về không thể tạm dừng được sẽ bắt đầu lại từ đầu
+
\ 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 ae2a1c125..2d46f4516 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -78,7 +78,7 @@
以懸浮視窗播放中
內容
年齡限制內容
- 顯示有年齡限制的影片。可於「設定」中選擇允許此種內容。
+ 顯示有年齡限制的影片。可於設定中選擇允許此種內容。
下載
下載
錯誤回報
@@ -201,7 +201,7 @@
沒有影片
- - %s 部影片
+ - 影片
下載
@@ -422,7 +422,7 @@
\n3. 當被提示時登入帳號
\n4. 複製您被重新導向到的個人設定檔網址。
載入縮圖
- 當關閉時不載入縮圖,減少數據和儲存空間的用量。改變時將清除記憶體和磁碟上的縮圖快取。
+ 關閉以防止載入縮圖,減少數據和儲存空間的用量。改變時將清除記憶體和磁碟上的縮圖快取。
已清除圖片快取
清除快取中介資料
移除所有網頁的快取資料
@@ -480,4 +480,68 @@
播放清單
軌
使用者
-
\ No newline at end of file
+ 取消訂閱
+ 新分頁
+ 選擇分頁
+ 音量手勢控制
+ 使用手勢控制播放器音量
+ 亮度手勢控制
+ 使用手勢控制播放器亮度
+ 更新
+ 已刪除檔案
+ 應用程式更新通知
+ 新 NewPipe 版本通知
+ 外部儲存不可用
+ 目前無法下載到外部 SD 卡。重設下載資料夾位置?
+ 使用預設分頁,讀取已儲存的分頁時發生錯誤
+ 恢復預設值
+ 您想要恢復預設值嗎?
+ 訂閱數不可用
+ 要在首頁顯示哪些分頁
+ 選擇
+ 更新
+ 當有新版本可用時顯示通知以告知應用程式更新
+ 清單檢視模式
+ 清單
+ 網格
+ 自動
+ 切換檢視
+ 有可用的 NewPipe 更新!
+ 輕觸以下載
+ 結束
+ 在佇列中
+ 已暫停
+ 已排入佇列
+ 正在後處理
+ 佇列
+ 動作被系統拒絕
+ 下載失敗
+ 下載已結束
+ %s 個下載已結束
+ 生成獨特的名稱
+ 覆寫
+ 已有此名稱的已下載檔案
+ 已有此名稱的當案的下載正在進行
+ 顯示錯誤
+ 代碼
+ 無法建立檔案
+ 無法建立目的地資料夾
+ 被系統拒絕的權限
+ 安全連線失敗
+ 找不到伺服器
+ 無法連線到伺服器
+ 伺服器沒有傳送資料
+ 伺服器不接受多執行緒下載,請以 @string/msg_threads = 1 重試
+ 請求範圍無法滿足
+ 找不到
+ 後處理失敗
+ 清除已結束的下載
+ 繼續從您所擱置中的下載 %s 傳輸
+ 停止
+ 最高的重試次數
+ 在取消下載前的最大嘗試數
+ 切換到行動數據時暫停
+ 無法暫停下載,將重新開始
+ 事件
+ 會議
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 229c00533..94101cfb0 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -85,4 +85,8 @@
14sp
+
+
+ 12sp
+ 12sp
diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml
index b6c214caf..3861f53d5 100644
--- a/app/src/main/res/values/settings_keys.xml
+++ b/app/src/main/res/values/settings_keys.xml
@@ -139,6 +139,7 @@
show_play_with_kodi
show_next_video
show_comments
+ stream_info_selected_tab
show_hold_to_append
en
GB
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index de91cd09e..90554a04f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,4 @@
-
+
NewPipe
Tap search to get started
@@ -76,9 +76,9 @@
Use fast inexact seek
Inexact seek allows the player to seek to positions faster with reduced precision
Load thumbnails
- When off no thumbnails load, saving data and memory usage. Changes clear both in-memory and on-disk image cache.
Show comments
Disable to stop showing comments
+ Turn off to prevent loading thumbnails, saving data and memory usage. Changes clear both in-memory and on-disk image cache.
Image cache wiped
Wipe cached metadata
Remove all cached webpage data
@@ -126,7 +126,7 @@
Play
Content
Age restricted content
- Show age Restricted Video. Allowing such material is possible from \"Settings\".
+ Show age restricted video. Allowing such material is possible from Settings.
LIVE
LIVE
Downloads
@@ -187,7 +187,7 @@
Error
External storage unavailable
- Download to external SD card is not possible yet. Reset download folder location?
+ Downloading to external SD card not yet possible. Reset download folder location\?
Network error
Could not load all thumbnails
Could not decrypt video URL signature
@@ -274,9 +274,9 @@
No videos
- - %s video
- - %s videos
-
+ - Video
+ - Videos
+
No comments
@@ -419,11 +419,12 @@
Details
Audio Settings
Hold To enqueue
- Enqueue when backgrounded
- Enqueue on new popup
+ Play directly in background
+ Enqueue in the background
+ Enqueue in a new popup
Start playing here
- Start here when backgrounded
- Start here on new popup
+ Start playing in the background
+ Start playing in a new popup
Open Drawer
@@ -585,21 +586,21 @@
The destination folder can not be created
Permission denied by the system
Secure connection failed
- Can not found the server
+ Could not find the server
Can not connect to the server
The server does not send data
The server does not accept multi-threaded downloads, retry with @string/msg_threads = 1
- Requested Range Not Satisfiable
+ Requested range not satisfiable
Not found
Post-processing failed
Clear finished downloads
- You have %s pending downloads, goto Downloads to continue
+ Continue your %s pending transfers from Downloads
Stop
- Maximum retry
+ Maximum retries
Maximum number of attempts before canceling the download
Pause on switching to mobile data
- Not all downloads can be suspended, in those cases, will be restarted
+ Downloads that can not be paused will be restarted
Close
-
+
\ No newline at end of file