Merge branch 'dev' into patch-1

This commit is contained in:
Tobias Groza 2019-09-12 09:23:30 +02:00 committed by GitHub
commit 5e101a4d32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 1781 additions and 334 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
liberapay: TeamNewPipe

View File

@ -8,8 +8,8 @@ android {
applicationId "org.schabi.newpipe" applicationId "org.schabi.newpipe"
minSdkVersion 19 minSdkVersion 19
targetSdkVersion 28 targetSdkVersion 28
versionCode 750 versionCode 760
versionName "0.17.0" versionName "0.17.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
@ -57,7 +57,7 @@ dependencies {
exclude module: 'support-annotations' exclude module: 'support-annotations'
}) })
implementation 'com.github.TeamNewPipe:NewPipeExtractor:5f65788a2f89e' implementation 'com.github.TeamNewPipe:NewPipeExtractor:bfa6b4d14bf'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.23.0' testImplementation 'org.mockito:mockito-core:2.23.0'

View File

@ -164,7 +164,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
final ResponseBody body = response.body(); final ResponseBody body = response.body();
if (response.code() == 429) { if (response.code() == 429) {
throw new ReCaptchaException("reCaptcha Challenge requested"); throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl);
} }
if (body == null) { if (body == null) {
@ -214,7 +214,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
final ResponseBody body = response.body(); final ResponseBody body = response.body();
if (response.code() == 429) { if (response.code() == 429) {
throw new ReCaptchaException("reCaptcha Challenge requested"); throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl);
} }
if (body == null) { if (body == null) {
@ -268,7 +268,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
final ResponseBody body = response.body(); final ResponseBody body = response.body();
if (response.code() == 429) { if (response.code() == 429) {
throw new ReCaptchaException("reCaptcha Challenge requested"); throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl);
} }
if (body == null) { if (body == null) {

View File

@ -60,6 +60,7 @@ import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.KioskTranslator; import org.schabi.newpipe.util.KioskTranslator;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver; import org.schabi.newpipe.util.StateSaver;
import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.util.ThemeHelper;
@ -421,6 +422,17 @@ public class MainActivity extends AppCompatActivity {
return; return;
} }
} }
switch (requestCode) {
case PermissionHelper.DOWNLOADS_REQUEST_CODE:
NavigationHelper.openDownloads(this);
break;
case PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE:
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_holder);
if (fragment instanceof VideoDetailFragment) {
((VideoDetailFragment) fragment).openDownloadDialog();
}
break;
}
} }
/** /**

View File

@ -37,15 +37,24 @@ import android.webkit.WebViewClient;
*/ */
public class ReCaptchaActivity extends AppCompatActivity { public class ReCaptchaActivity extends AppCompatActivity {
public static final int RECAPTCHA_REQUEST = 10; public static final int RECAPTCHA_REQUEST = 10;
public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra";
public static final String TAG = ReCaptchaActivity.class.toString(); public static final String TAG = ReCaptchaActivity.class.toString();
public static final String YT_URL = "https://www.youtube.com"; public static final String YT_URL = "https://www.youtube.com";
private String url;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recaptcha); setContentView(R.layout.activity_recaptcha);
url = getIntent().getStringExtra(RECAPTCHA_URL_EXTRA);
if (url == null || url.isEmpty()) {
url = YT_URL;
}
// Set return to Cancel by default // Set return to Cancel by default
setResult(RESULT_CANCELED); setResult(RESULT_CANCELED);
@ -73,15 +82,12 @@ public class ReCaptchaActivity extends AppCompatActivity {
myWebView.clearHistory(); myWebView.clearHistory();
android.webkit.CookieManager cookieManager = CookieManager.getInstance(); android.webkit.CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.removeAllCookies(new ValueCallback<Boolean>() { cookieManager.removeAllCookies(aBoolean -> {});
@Override
public void onReceiveValue(Boolean aBoolean) {}
});
} else { } else {
cookieManager.removeAllCookie(); cookieManager.removeAllCookie();
} }
myWebView.loadUrl(YT_URL); myWebView.loadUrl(url);
} }
private class ReCaptchaWebViewClient extends WebViewClient { private class ReCaptchaWebViewClient extends WebViewClient {

View File

@ -74,10 +74,13 @@ import static org.schabi.newpipe.util.ThemeHelper.resolveResourceIdFromAttr;
*/ */
public class RouterActivity extends AppCompatActivity { public class RouterActivity extends AppCompatActivity {
@State protected int currentServiceId = -1; @State
protected int currentServiceId = -1;
private StreamingService currentService; private StreamingService currentService;
@State protected LinkType currentLinkType; @State
@State protected int selectedRadioPosition = -1; protected LinkType currentLinkType;
@State
protected int selectedRadioPosition = -1;
protected int selectedPreviously = -1; protected int selectedPreviously = -1;
protected String currentUrl; protected String currentUrl;
@ -382,8 +385,10 @@ public class RouterActivity extends AppCompatActivity {
} }
if (selectedChoiceKey.equals(getString(R.string.download_key))) { if (selectedChoiceKey.equals(getString(R.string.download_key))) {
if (PermissionHelper.checkStoragePermissions(this, PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) {
selectionIsDownload = true; selectionIsDownload = true;
openDownloadDialog(); openDownloadDialog();
}
return; return;
} }
@ -451,11 +456,15 @@ public class RouterActivity extends AppCompatActivity {
return; return;
} }
} }
if (requestCode == PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE) {
openDownloadDialog();
}
} }
private static class AdapterChoiceItem { private static class AdapterChoiceItem {
final String description, key; final String description, key;
@DrawableRes final int icon; @DrawableRes
final int icon;
AdapterChoiceItem(String key, String description, int icon) { AdapterChoiceItem(String key, String description, int icon) {
this.description = description; this.description = description;
@ -553,7 +562,8 @@ public class RouterActivity extends AppCompatActivity {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean isExtVideoEnabled = preferences.getBoolean(getString(R.string.use_external_video_player_key), false); boolean isExtVideoEnabled = preferences.getBoolean(getString(R.string.use_external_video_player_key), false);
boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false);; boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false);
;
PlayQueue playQueue; PlayQueue playQueue;
String playerChoice = choice.playerChoice; String playerChoice = choice.playerChoice;

View File

@ -8,6 +8,7 @@ import android.content.ServiceConnection;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.os.IBinder; import android.os.IBinder;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.annotation.IdRes; import android.support.annotation.IdRes;
@ -33,6 +34,8 @@ import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.nononsenseapps.filepicker.Utils;
import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.MainActivity;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.MediaFormat;
@ -45,13 +48,17 @@ import org.schabi.newpipe.extractor.stream.VideoStream;
import org.schabi.newpipe.extractor.utils.Localization; import org.schabi.newpipe.extractor.utils.Localization;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.settings.NewPipeSettings;
import org.schabi.newpipe.util.FilePickerActivityHelper;
import org.schabi.newpipe.util.FilenameUtils; import org.schabi.newpipe.util.FilenameUtils;
import org.schabi.newpipe.util.ListHelper; import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.SecondaryStreamHelper; import org.schabi.newpipe.util.SecondaryStreamHelper;
import org.schabi.newpipe.util.StreamItemAdapter; import org.schabi.newpipe.util.StreamItemAdapter;
import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper; import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper;
import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.util.ThemeHelper;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -72,7 +79,7 @@ import us.shandian.giga.service.MissionState;
public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheckedChangeListener, AdapterView.OnItemSelectedListener { public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheckedChangeListener, AdapterView.OnItemSelectedListener {
private static final String TAG = "DialogFragment"; private static final String TAG = "DialogFragment";
private static final boolean DEBUG = MainActivity.DEBUG; private static final boolean DEBUG = MainActivity.DEBUG;
private static final int REQUEST_DOWNLOAD_PATH_SAF = 0x1230; private static final int REQUEST_DOWNLOAD_SAVE_AS = 0x1230;
@State @State
protected StreamInfo currentInfo; protected StreamInfo currentInfo;
@ -173,6 +180,11 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
if (DEBUG) if (DEBUG)
Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]"); Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]");
if (!PermissionHelper.checkStoragePermissions(getActivity(), PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) {
getDialog().dismiss();
return;
}
context = getContext(); context = getContext();
setStyle(STYLE_NO_TITLE, ThemeHelper.getDialogTheme(context)); setStyle(STYLE_NO_TITLE, ThemeHelper.getDialogTheme(context));
@ -311,12 +323,18 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_DOWNLOAD_PATH_SAF && resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_DOWNLOAD_SAVE_AS && resultCode == Activity.RESULT_OK) {
if (data.getData() == null) { if (data.getData() == null) {
showFailedDialog(R.string.general_error); showFailedDialog(R.string.general_error);
return; return;
} }
if (FilePickerActivityHelper.isOwnFileUri(context, data.getData())) {
File file = Utils.getFileForUri(data.getData());
checkSelectedDownload(null, Uri.fromFile(file), file.getName(), StoredFileHelper.DEFAULT_MIME);
return;
}
DocumentFile docFile = DocumentFile.fromSingleUri(context, data.getData()); DocumentFile docFile = DocumentFile.fromSingleUri(context, data.getData());
if (docFile == null) { if (docFile == null) {
showFailedDialog(R.string.general_error); showFailedDialog(R.string.general_error);
@ -569,12 +587,27 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
// This part is called if with SAF preferred: // This part is called if with SAF preferred:
// * older android version running // * older android version running
// * save path not defined (via download settings) // * save path not defined (via download settings)
// * the user as checked the "ask where to download" option // * the user checked the "ask where to download" option
if (!askForSavePath) if (!askForSavePath)
Toast.makeText(context, getString(R.string.no_available_dir), Toast.LENGTH_LONG).show(); Toast.makeText(context, getString(R.string.no_available_dir), Toast.LENGTH_LONG).show();
StoredFileHelper.requestSafWithFileCreation(this, REQUEST_DOWNLOAD_PATH_SAF, filename, mime); if (NewPipeSettings.useStorageAccessFramework(context)) {
StoredFileHelper.requestSafWithFileCreation(this, REQUEST_DOWNLOAD_SAVE_AS, filename, mime);
} else {
File initialSavePath;
if (radioStreamsGroup.getCheckedRadioButtonId() == R.id.audio_button)
initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MUSIC);
else
initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MOVIES);
initialSavePath = new File(initialSavePath, filename);
startActivityForResult(
FilePickerActivityHelper.chooseFileToSave(context, initialSavePath.getAbsolutePath()),
REQUEST_DOWNLOAD_SAVE_AS
);
}
return; return;
} }
@ -624,6 +657,11 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
// This part is called if: // This part is called if:
// * using SAF on older android version // * using SAF on older android version
// * save path not defined // * save path not defined
// * if the file exists overwrite it, is not necessary ask
if (!storage.existsAsFile() && !storage.create()) {
showFailedDialog(R.string.error_file_creation);
return;
}
continueSelectedDownload(storage); continueSelectedDownload(storage);
return; return;
} else if (targetFile == null) { } else if (targetFile == null) {
@ -728,7 +766,7 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
try { try {
if (storage.length() > 0) storage.truncate(); if (storage.length() > 0) storage.truncate();
} catch (IOException e) { } catch (IOException e) {
Log.e(TAG, "failed to overwrite the file: " + storage.getUri().toString(), e); Log.e(TAG, "failed to truncate the file: " + storage.getUri().toString(), e);
showFailedDialog(R.string.overwrite_failed); showFailedDialog(R.string.overwrite_failed);
return; return;
} }

View File

@ -180,7 +180,7 @@ public abstract class BaseStateFragment<I> extends BaseFragment implements ViewC
} }
if (exception instanceof ReCaptchaException) { if (exception instanceof ReCaptchaException) {
onReCaptchaException(); onReCaptchaException((ReCaptchaException) exception);
return true; return true;
} else if (exception instanceof IOException) { } else if (exception instanceof IOException) {
showError(getString(R.string.network_error), true); showError(getString(R.string.network_error), true);
@ -190,11 +190,13 @@ public abstract class BaseStateFragment<I> extends BaseFragment implements ViewC
return false; return false;
} }
public void onReCaptchaException() { public void onReCaptchaException(ReCaptchaException exception) {
if (DEBUG) Log.d(TAG, "onReCaptchaException() called"); if (DEBUG) Log.d(TAG, "onReCaptchaException() called");
Toast.makeText(activity, R.string.recaptcha_request_toast, Toast.LENGTH_LONG).show(); Toast.makeText(activity, R.string.recaptcha_request_toast, Toast.LENGTH_LONG).show();
// Starting ReCaptcha Challenge Activity // Starting ReCaptcha Challenge Activity
startActivityForResult(new Intent(activity, ReCaptchaActivity.class), ReCaptchaActivity.RECAPTCHA_REQUEST); Intent intent = new Intent(activity, ReCaptchaActivity.class);
intent.putExtra(ReCaptchaActivity.RECAPTCHA_URL_EXTRA, exception.getUrl());
startActivityForResult(intent, ReCaptchaActivity.RECAPTCHA_REQUEST);
showError(getString(R.string.recaptcha_request_toast), false); showError(getString(R.string.recaptcha_request_toast), false);
} }

View File

@ -384,7 +384,10 @@ public class VideoDetailFragment
} }
break; break;
case R.id.detail_controls_download: case R.id.detail_controls_download:
if (PermissionHelper.checkStoragePermissions(activity,
PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) {
this.openDownloadDialog(); this.openDownloadDialog();
}
break; break;
case R.id.detail_uploader_root_layout: case R.id.detail_uploader_root_layout:
if (TextUtils.isEmpty(currentInfo.getUploaderUrl())) { if (TextUtils.isEmpty(currentInfo.getUploaderUrl())) {
@ -481,7 +484,6 @@ public class VideoDetailFragment
videoDescriptionView.setMovementMethod(LinkMovementMethod.getInstance()); videoDescriptionView.setMovementMethod(LinkMovementMethod.getInstance());
videoDescriptionView.setAutoLinkMask(Linkify.WEB_URLS); videoDescriptionView.setAutoLinkMask(Linkify.WEB_URLS);
//thumbsRootLayout = rootView.findViewById(R.id.detail_thumbs_root_layout);
thumbsUpTextView = rootView.findViewById(R.id.detail_thumbs_up_count_view); thumbsUpTextView = rootView.findViewById(R.id.detail_thumbs_up_count_view);
thumbsUpImageView = rootView.findViewById(R.id.detail_thumbs_up_img_view); thumbsUpImageView = rootView.findViewById(R.id.detail_thumbs_up_img_view);
thumbsDownTextView = rootView.findViewById(R.id.detail_thumbs_down_count_view); thumbsDownTextView = rootView.findViewById(R.id.detail_thumbs_down_count_view);

View File

@ -12,6 +12,7 @@ import android.support.annotation.Nullable;
import android.support.annotation.StringRes; import android.support.annotation.StringRes;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.util.Log; import android.util.Log;
import android.widget.Toast;
import com.nononsenseapps.filepicker.Utils; import com.nononsenseapps.filepicker.Utils;
@ -34,8 +35,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
private String DOWNLOAD_PATH_VIDEO_PREFERENCE; private String DOWNLOAD_PATH_VIDEO_PREFERENCE;
private String DOWNLOAD_PATH_AUDIO_PREFERENCE; private String DOWNLOAD_PATH_AUDIO_PREFERENCE;
private String STORAGE_USE_SAF_PREFERENCE;
private String DOWNLOAD_STORAGE_ASK;
private Preference prefPathVideo; private Preference prefPathVideo;
private Preference prefPathAudio; private Preference prefPathAudio;
@ -49,14 +49,15 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
DOWNLOAD_PATH_VIDEO_PREFERENCE = getString(R.string.download_path_video_key); DOWNLOAD_PATH_VIDEO_PREFERENCE = getString(R.string.download_path_video_key);
DOWNLOAD_PATH_AUDIO_PREFERENCE = getString(R.string.download_path_audio_key); DOWNLOAD_PATH_AUDIO_PREFERENCE = getString(R.string.download_path_audio_key);
DOWNLOAD_STORAGE_ASK = getString(R.string.downloads_storage_ask); STORAGE_USE_SAF_PREFERENCE = getString(R.string.storage_use_saf);
final String downloadStorageAsk = getString(R.string.downloads_storage_ask);
prefPathVideo = findPreference(DOWNLOAD_PATH_VIDEO_PREFERENCE); prefPathVideo = findPreference(DOWNLOAD_PATH_VIDEO_PREFERENCE);
prefPathAudio = findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE); prefPathAudio = findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE);
prefStorageAsk = findPreference(DOWNLOAD_STORAGE_ASK); prefStorageAsk = findPreference(downloadStorageAsk);
updatePreferencesSummary(); updatePreferencesSummary();
updatePathPickers(!defaultPreferences.getBoolean(DOWNLOAD_STORAGE_ASK, false)); updatePathPickers(!defaultPreferences.getBoolean(downloadStorageAsk, false));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
prefStorageAsk.setSummary(R.string.downloads_storage_ask_summary); prefStorageAsk.setSummary(R.string.downloads_storage_ask_summary);
@ -171,7 +172,10 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
String key = preference.getKey(); String key = preference.getKey();
int request; int request;
if (key.equals(DOWNLOAD_PATH_VIDEO_PREFERENCE)) { if (key.equals(STORAGE_USE_SAF_PREFERENCE)) {
Toast.makeText(getContext(), R.string.download_choose_new_path, Toast.LENGTH_LONG).show();
return true;
} else if (key.equals(DOWNLOAD_PATH_VIDEO_PREFERENCE)) {
request = REQUEST_DOWNLOAD_VIDEO_PATH; request = REQUEST_DOWNLOAD_VIDEO_PATH;
} else if (key.equals(DOWNLOAD_PATH_AUDIO_PREFERENCE)) { } else if (key.equals(DOWNLOAD_PATH_AUDIO_PREFERENCE)) {
request = REQUEST_DOWNLOAD_AUDIO_PATH; request = REQUEST_DOWNLOAD_AUDIO_PATH;
@ -180,7 +184,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
} }
Intent i; Intent i;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && NewPipeSettings.useStorageAccessFramework(ctx)) {
i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
.putExtra("android.content.extra.SHOW_ADVANCED", true) .putExtra("android.content.extra.SHOW_ADVANCED", true)
.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | StoredDirectoryHelper.PERMISSION_FLAGS); .addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | StoredDirectoryHelper.PERMISSION_FLAGS);
@ -221,16 +225,17 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
return; return;
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// steps: // revoke permissions on the old save path (required for SAF only)
// 1. revoke permissions on the old save path
// 2. acquire permissions on the new save path
// 3. save the new path, if step(2) was successful
final Context ctx = getContext(); final Context ctx = getContext();
if (ctx == null) throw new NullPointerException("getContext()"); if (ctx == null) throw new NullPointerException("getContext()");
forgetSAFTree(ctx, defaultPreferences.getString(key, "")); forgetSAFTree(ctx, defaultPreferences.getString(key, ""));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !FilePickerActivityHelper.isOwnFileUri(ctx, uri)) {
// steps to acquire the selected path:
// 1. acquire permissions on the new save path
// 2. save the new path, if step(2) was successful
try { try {
ctx.grantUriPermission(ctx.getPackageName(), uri, StoredDirectoryHelper.PERMISSION_FLAGS); ctx.grantUriPermission(ctx.getPackageName(), uri, StoredDirectoryHelper.PERMISSION_FLAGS);
@ -245,7 +250,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
return; return;
} }
} else { } else {
File target = Utils.getFileForUri(data.getData()); File target = Utils.getFileForUri(uri);
if (!target.canWrite()) { if (!target.canWrite()) {
showMessageDialog(R.string.download_to_sdcard_error_title, R.string.download_to_sdcard_error_message); showMessageDialog(R.string.download_to_sdcard_error_title, R.string.download_to_sdcard_error_message);
return; return;

View File

@ -19,6 +19,7 @@ import io.reactivex.disposables.Disposable;
public class HistorySettingsFragment extends BasePreferenceFragment { public class HistorySettingsFragment extends BasePreferenceFragment {
private String cacheWipeKey; private String cacheWipeKey;
private String viewsHistoryClearKey; private String viewsHistoryClearKey;
private String playbackStatesClearKey;
private String searchHistoryClearKey; private String searchHistoryClearKey;
private HistoryRecordManager recordManager; private HistoryRecordManager recordManager;
private CompositeDisposable disposables; private CompositeDisposable disposables;
@ -28,6 +29,7 @@ public class HistorySettingsFragment extends BasePreferenceFragment {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
cacheWipeKey = getString(R.string.metadata_cache_wipe_key); cacheWipeKey = getString(R.string.metadata_cache_wipe_key);
viewsHistoryClearKey = getString(R.string.clear_views_history_key); viewsHistoryClearKey = getString(R.string.clear_views_history_key);
playbackStatesClearKey = getString(R.string.clear_playback_states_key);
searchHistoryClearKey = getString(R.string.clear_search_history_key); searchHistoryClearKey = getString(R.string.clear_search_history_key);
recordManager = new HistoryRecordManager(getActivity()); recordManager = new HistoryRecordManager(getActivity());
disposables = new CompositeDisposable(); disposables = new CompositeDisposable();
@ -63,7 +65,7 @@ public class HistorySettingsFragment extends BasePreferenceFragment {
ErrorActivity.ErrorInfo.make( ErrorActivity.ErrorInfo.make(
UserAction.DELETE_FROM_HISTORY, UserAction.DELETE_FROM_HISTORY,
"none", "none",
"Delete view history", "Delete playback states",
R.string.general_error))); R.string.general_error)));
final Disposable onDelete = recordManager.deleteWholeStreamHistory() final Disposable onDelete = recordManager.deleteWholeStreamHistory()
@ -101,6 +103,33 @@ public class HistorySettingsFragment extends BasePreferenceFragment {
.show(); .show();
} }
if (preference.getKey().equals(playbackStatesClearKey)) {
new AlertDialog.Builder(getActivity())
.setTitle(R.string.delete_playback_states_alert)
.setNegativeButton(R.string.cancel, ((dialog, which) -> dialog.dismiss()))
.setPositiveButton(R.string.delete, ((dialog, which) -> {
final Disposable onDeletePlaybackStates = recordManager.deleteCompelteStreamStateHistory()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
howManyDeleted -> Toast.makeText(getActivity(),
R.string.watch_history_states_deleted,
Toast.LENGTH_SHORT).show(),
throwable -> ErrorActivity.reportError(getContext(),
throwable,
SettingsActivity.class, null,
ErrorActivity.ErrorInfo.make(
UserAction.DELETE_FROM_HISTORY,
"none",
"Delete playback states",
R.string.general_error)));
disposables.add(onDeletePlaybackStates);
}))
.create()
.show();
}
if (preference.getKey().equals(searchHistoryClearKey)) { if (preference.getKey().equals(searchHistoryClearKey)) {
new AlertDialog.Builder(getActivity()) new AlertDialog.Builder(getActivity())
.setTitle(R.string.delete_search_history_alert) .setTitle(R.string.delete_search_history_alert)

View File

@ -22,7 +22,6 @@ package org.schabi.newpipe.settings;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
@ -67,11 +66,9 @@ public class NewPipeSettings {
PreferenceManager.setDefaultValues(context, R.xml.video_audio_settings, true); PreferenceManager.setDefaultValues(context, R.xml.video_audio_settings, true);
PreferenceManager.setDefaultValues(context, R.xml.debug_settings, true); PreferenceManager.setDefaultValues(context, R.xml.debug_settings, true);
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
getVideoDownloadFolder(context); getVideoDownloadFolder(context);
getAudioDownloadFolder(context); getAudioDownloadFolder(context);
} }
}
private static void getVideoDownloadFolder(Context context) { private static void getVideoDownloadFolder(Context context) {
getDir(context, R.string.download_path_video_key, Environment.DIRECTORY_MOVIES); getDir(context, R.string.download_path_video_key, Environment.DIRECTORY_MOVIES);
@ -93,11 +90,19 @@ public class NewPipeSettings {
} }
@NonNull @NonNull
private static File getDir(String defaultDirectoryName) { public static File getDir(String defaultDirectoryName) {
return new File(Environment.getExternalStorageDirectory(), defaultDirectoryName); return new File(Environment.getExternalStorageDirectory(), defaultDirectoryName);
} }
private static String getNewPipeChildFolderPathForDir(File dir) { private static String getNewPipeChildFolderPathForDir(File dir) {
return new File(dir, "NewPipe").toURI().toString(); return new File(dir, "NewPipe").toURI().toString();
} }
public static boolean useStorageAccessFramework(Context context) {
final String key = context.getString(R.string.storage_use_saf);
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(key, false);
}
} }

View File

@ -2,6 +2,7 @@ package org.schabi.newpipe.util;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
@ -73,6 +74,11 @@ public class FilePickerActivityHelper extends com.nononsenseapps.filepicker.File
.putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_NEW_FILE); .putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_NEW_FILE);
} }
public static boolean isOwnFileUri(@NonNull Context context, @NonNull Uri uri) {
if (uri.getAuthority() == null) return false;
return uri.getAuthority().startsWith(context.getPackageName());
}
/*////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////
// Internal // Internal
//////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////*/
@ -109,6 +115,12 @@ public class FilePickerActivityHelper extends com.nononsenseapps.filepicker.File
super.onClickOk(view); super.onClickOk(view);
} }
@Override
protected boolean isItemVisible(@NonNull File file) {
if (file.isDirectory() && file.isHidden()) return true;
return super.isItemVisible(file);
}
public File getBackTop() { public File getBackTop() {
if (getArguments() == null) return Environment.getExternalStorageDirectory(); if (getArguments() == null) return Environment.getExternalStorageDirectory();

View File

@ -446,6 +446,9 @@ public class NavigationHelper {
} }
public static boolean openDownloads(Activity activity) { public static boolean openDownloads(Activity activity) {
if (!PermissionHelper.checkStoragePermissions(activity, PermissionHelper.DOWNLOADS_REQUEST_CODE)) {
return false;
}
Intent intent = new Intent(activity, DownloadActivity.class); Intent intent = new Intent(activity, DownloadActivity.class);
activity.startActivity(intent); activity.startActivity(intent);
return true; return true;

View File

@ -18,6 +18,8 @@ import android.widget.Toast;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
public class PermissionHelper { public class PermissionHelper {
public static final int DOWNLOAD_DIALOG_REQUEST_CODE = 778;
public static final int DOWNLOADS_REQUEST_CODE = 777;
public static boolean checkStoragePermissions(Activity activity, int requestCode) { public static boolean checkStoragePermissions(Activity activity, int requestCode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

View File

@ -1,7 +1,6 @@
package us.shandian.giga.get; package us.shandian.giga.get;
import android.os.Handler; import android.os.Handler;
import android.os.Message;
import android.util.Log; import android.util.Log;
import org.schabi.newpipe.Downloader; import org.schabi.newpipe.Downloader;
@ -264,11 +263,7 @@ public class DownloadMission extends Mission {
private void notify(int what) { private void notify(int what) {
Message m = new Message(); mHandler.obtainMessage(what, this).sendToTarget();
m.what = what;
m.obj = this;
mHandler.sendMessage(m);
} }
synchronized void notifyProgress(long deltaLen) { synchronized void notifyProgress(long deltaLen) {
@ -408,6 +403,7 @@ public class DownloadMission extends Mission {
} }
} }
/** /**
* Start downloading with multiple threads. * Start downloading with multiple threads.
*/ */
@ -416,14 +412,20 @@ public class DownloadMission extends Mission {
// ensure that the previous state is completely paused. // ensure that the previous state is completely paused.
joinForThread(init); joinForThread(init);
if (threads != null) if (threads != null) {
for (Thread thread : threads) joinForThread(thread); for (Thread thread : threads) joinForThread(thread);
threads = null;
}
running = true; running = true;
errCode = ERROR_NOTHING; errCode = ERROR_NOTHING;
if (hasInvalidStorage()) {
notifyError(ERROR_FILE_CREATION, null);
return;
}
if (current >= urls.length) { if (current >= urls.length) {
threads = null;
runAsync(1, this::notifyFinished); runAsync(1, this::notifyFinished);
return; return;
} }
@ -664,7 +666,7 @@ public class DownloadMission extends Mission {
* @return {@code true} is this mission its "healthy", otherwise, {@code false} * @return {@code true} is this mission its "healthy", otherwise, {@code false}
*/ */
public boolean isCorrupt() { public boolean isCorrupt() {
return (isPsFailed() || errCode == ERROR_POSTPROCESSING_HOLD) || isFinished() || hasInvalidStorage(); return (isPsFailed() || errCode == ERROR_POSTPROCESSING_HOLD) || isFinished();
} }
private boolean doPostprocessing() { private boolean doPostprocessing() {

View File

@ -251,6 +251,7 @@ public class StoredFileHelper implements Serializable {
public boolean existsAsFile() { public boolean existsAsFile() {
if (source == null) return false; if (source == null) return false;
// WARNING: DocumentFile.exists() and DocumentFile.isFile() methods are slow
boolean exists = docFile == null ? ioFile.exists() : docFile.exists(); boolean exists = docFile == null ? ioFile.exists() : docFile.exists();
boolean isFile = docFile == null ? ioFile.isFile() : docFile.isFile();// ¿docFile.isVirtual() means is no-physical? boolean isFile = docFile == null ? ioFile.isFile() : docFile.isFile();// ¿docFile.isVirtual() means is no-physical?

View File

@ -35,8 +35,8 @@ public class DownloadManager {
public final static int SPECIAL_PENDING = 1; public final static int SPECIAL_PENDING = 1;
public final static int SPECIAL_FINISHED = 2; public final static int SPECIAL_FINISHED = 2;
static final String TAG_AUDIO = "audio"; public static final String TAG_AUDIO = "audio";
static final String TAG_VIDEO = "video"; public static final String TAG_VIDEO = "video";
private final FinishedMissionStore mFinishedMissionStore; private final FinishedMissionStore mFinishedMissionStore;
@ -424,10 +424,12 @@ public class DownloadManager {
boolean flag = false; boolean flag = false;
for (DownloadMission mission : mMissionsPending) { for (DownloadMission mission : mMissionsPending) {
if (mission.running || !mission.enqueued || mission.isFinished() || mission.hasInvalidStorage()) if (mission.running || !mission.enqueued || mission.isFinished())
continue; continue;
resumeMission(mission); resumeMission(mission);
if (mission.errCode != DownloadMission.ERROR_NOTHING) continue;
if (mPrefQueueLimit) return true; if (mPrefQueueLimit) return true;
flag = true; flag = true;
} }

View File

@ -9,6 +9,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
@ -19,6 +20,7 @@ import android.net.Uri;
import android.os.Binder; import android.os.Binder;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Handler.Callback;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.os.Message; import android.os.Message;
@ -88,14 +90,14 @@ public class DownloadManagerService extends Service {
private Builder downloadDoneNotification = null; private Builder downloadDoneNotification = null;
private StringBuilder downloadDoneList = null; private StringBuilder downloadDoneList = null;
private final ArrayList<Handler> mEchoObservers = new ArrayList<>(1); private final ArrayList<Callback> mEchoObservers = new ArrayList<>(1);
private ConnectivityManager mConnectivityManager; private ConnectivityManager mConnectivityManager;
private BroadcastReceiver mNetworkStateListener = null; private BroadcastReceiver mNetworkStateListener = null;
private ConnectivityManager.NetworkCallback mNetworkStateListenerL = null; private ConnectivityManager.NetworkCallback mNetworkStateListenerL = null;
private SharedPreferences mPrefs = null; private SharedPreferences mPrefs = null;
private final SharedPreferences.OnSharedPreferenceChangeListener mPrefChangeListener = this::handlePreferenceChange; private final OnSharedPreferenceChangeListener mPrefChangeListener = this::handlePreferenceChange;
private boolean mLockAcquired = false; private boolean mLockAcquired = false;
private LockManager mLock = null; private LockManager mLock = null;
@ -128,12 +130,7 @@ public class DownloadManagerService extends Service {
} }
mBinder = new DownloadManagerBinder(); mBinder = new DownloadManagerBinder();
mHandler = new Handler(Looper.myLooper()) { mHandler = new Handler(this::handleMessage);
@Override
public void handleMessage(Message msg) {
DownloadManagerService.this.handleMessage(msg);
}
};
mPrefs = PreferenceManager.getDefaultSharedPreferences(this); mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
@ -272,7 +269,7 @@ public class DownloadManagerService extends Service {
return mBinder; return mBinder;
} }
public void handleMessage(Message msg) { private boolean handleMessage(@NonNull Message msg) {
DownloadMission mission = (DownloadMission) msg.obj; DownloadMission mission = (DownloadMission) msg.obj;
switch (msg.what) { switch (msg.what) {
@ -300,14 +297,12 @@ public class DownloadManagerService extends Service {
mFailedDownloads.delete(mFailedDownloads.indexOfValue(mission)); mFailedDownloads.delete(mFailedDownloads.indexOfValue(mission));
synchronized (mEchoObservers) { synchronized (mEchoObservers) {
for (Handler handler : mEchoObservers) { for (Callback observer : mEchoObservers) {
Message echo = new Message(); observer.handleMessage(msg);
echo.what = msg.what; }
echo.obj = msg.obj; }
handler.sendMessage(echo); return true;
}
}
} }
private void handleConnectivityState(boolean updateOnly) { private void handleConnectivityState(boolean updateOnly) {
@ -515,7 +510,7 @@ public class DownloadManagerService extends Service {
return PendingIntent.getService(this, intent.hashCode(), intent, PendingIntent.FLAG_UPDATE_CURRENT); return PendingIntent.getService(this, intent.hashCode(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
} }
private void manageObservers(Handler handler, boolean add) { private void manageObservers(Callback handler, boolean add) {
synchronized (mEchoObservers) { synchronized (mEchoObservers) {
if (add) { if (add) {
mEchoObservers.add(handler); mEchoObservers.add(handler);
@ -596,11 +591,11 @@ public class DownloadManagerService extends Service {
); );
} }
public void addMissionEventListener(Handler handler) { public void addMissionEventListener(Callback handler) {
manageObservers(handler, true); manageObservers(handler, true);
} }
public void removeMissionEventListener(Handler handler) { public void removeMissionEventListener(Callback handler) {
manageObservers(handler, false); manageObservers(handler, false);
} }

View File

@ -9,7 +9,6 @@ import android.net.Uri;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
@ -77,7 +76,7 @@ import static us.shandian.giga.get.DownloadMission.ERROR_TIMEOUT;
import static us.shandian.giga.get.DownloadMission.ERROR_UNKNOWN_EXCEPTION; import static us.shandian.giga.get.DownloadMission.ERROR_UNKNOWN_EXCEPTION;
import static us.shandian.giga.get.DownloadMission.ERROR_UNKNOWN_HOST; import static us.shandian.giga.get.DownloadMission.ERROR_UNKNOWN_HOST;
public class MissionAdapter extends Adapter<ViewHolder> { public class MissionAdapter extends Adapter<ViewHolder> implements Handler.Callback {
private static final SparseArray<String> ALGORITHMS = new SparseArray<>(); private static final SparseArray<String> ALGORITHMS = new SparseArray<>();
private static final String TAG = "MissionAdapter"; private static final String TAG = "MissionAdapter";
private static final String UNDEFINED_PROGRESS = "--.-%"; private static final String UNDEFINED_PROGRESS = "--.-%";
@ -111,21 +110,7 @@ public class MissionAdapter extends Adapter<ViewHolder> {
mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mLayout = R.layout.mission_item; mLayout = R.layout.mission_item;
mHandler = new Handler(Looper.myLooper()) { mHandler = new Handler(context.getMainLooper());
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case DownloadManagerService.MESSAGE_PROGRESS:
case DownloadManagerService.MESSAGE_ERROR:
case DownloadManagerService.MESSAGE_FINISHED:
onServiceMessage(msg);
break;
}
if (mStartButton != null && mPauseButton != null)
checkMasterButtonsVisibility();
}
};
mEmptyMessage = emptyMessage; mEmptyMessage = emptyMessage;
@ -403,29 +388,40 @@ public class MissionAdapter extends Adapter<ViewHolder> {
return true; return true;
} }
public Handler getMessenger() { @Override
return mHandler; public boolean handleMessage(@NonNull Message msg) {
if (mStartButton != null && mPauseButton != null) {
checkMasterButtonsVisibility();
}
switch (msg.what) {
case DownloadManagerService.MESSAGE_PROGRESS:
case DownloadManagerService.MESSAGE_ERROR:
case DownloadManagerService.MESSAGE_FINISHED:
break;
default:
return false;
} }
private void onServiceMessage(@NonNull Message msg) {
if (msg.what == DownloadManagerService.MESSAGE_PROGRESS) { if (msg.what == DownloadManagerService.MESSAGE_PROGRESS) {
setAutoRefresh(true); setAutoRefresh(true);
return; return true;
} }
for (int i = 0; i < mPendingDownloadsItems.size(); i++) { for (ViewHolderItem h : mPendingDownloadsItems) {
ViewHolderItem h = mPendingDownloadsItems.get(i);
if (h.item.mission != msg.obj) continue; if (h.item.mission != msg.obj) continue;
if (msg.what == DownloadManagerService.MESSAGE_FINISHED) { if (msg.what == DownloadManagerService.MESSAGE_FINISHED) {
// DownloadManager should mark the download as finished // DownloadManager should mark the download as finished
applyChanges(); applyChanges();
return; return true;
} }
updateProgress(h); updateProgress(h);
return; return true;
} }
return false;
} }
private void showError(@NonNull DownloadMission mission) { private void showError(@NonNull DownloadMission mission) {
@ -563,16 +559,15 @@ public class MissionAdapter extends Adapter<ViewHolder> {
updateProgress(h); updateProgress(h);
return true; return true;
case R.id.retry: case R.id.retry:
if (mission.hasInvalidStorage()) { if (mission.isPsRunning()) {
mission.psContinue(true);
} else {
mDownloadManager.tryRecover(mission); mDownloadManager.tryRecover(mission);
if (mission.storage.isInvalid()) if (mission.storage.isInvalid())
mRecover.tryRecover(mission); mRecover.tryRecover(mission);
else else
recoverMission(mission); recoverMission(mission);
return true;
} }
mission.psContinue(true);
return true; return true;
case R.id.cancel: case R.id.cancel:
mission.psContinue(false); mission.psContinue(false);
@ -659,9 +654,13 @@ public class MissionAdapter extends Adapter<ViewHolder> {
public void checkMasterButtonsVisibility() { public void checkMasterButtonsVisibility() {
boolean[] state = mIterator.hasValidPendingMissions(); boolean[] state = mIterator.hasValidPendingMissions();
setButtonVisible(mPauseButton, state[0]);
setButtonVisible(mStartButton, state[1]);
}
mPauseButton.setVisible(state[0]); private static void setButtonVisible(MenuItem button, boolean visible) {
mStartButton.setVisible(state[1]); if (button.isVisible() != visible)
button.setVisible(visible);
} }
public void ensurePausedMissions() { public void ensurePausedMissions() {

View File

@ -7,7 +7,9 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.ServiceConnection; import android.content.ServiceConnection;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.os.IBinder; import android.os.IBinder;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
@ -22,9 +24,14 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Toast; import android.widget.Toast;
import com.nononsenseapps.filepicker.Utils;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.settings.NewPipeSettings;
import org.schabi.newpipe.util.FilePickerActivityHelper;
import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.util.ThemeHelper;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import us.shandian.giga.get.DownloadMission; import us.shandian.giga.get.DownloadMission;
@ -37,7 +44,7 @@ import us.shandian.giga.ui.adapter.MissionAdapter;
public class MissionsFragment extends Fragment { public class MissionsFragment extends Fragment {
private static final int SPAN_SIZE = 2; private static final int SPAN_SIZE = 2;
private static final int REQUEST_DOWNLOAD_PATH_SAF = 0x1230; private static final int REQUEST_DOWNLOAD_SAVE_AS = 0x1230;
private SharedPreferences mPrefs; private SharedPreferences mPrefs;
private boolean mLinear; private boolean mLinear;
@ -72,7 +79,7 @@ public class MissionsFragment extends Fragment {
setAdapterButtons(); setAdapterButtons();
mBinder.addMissionEventListener(mAdapter.getMessenger()); mBinder.addMissionEventListener(mAdapter);
mBinder.enableNotifications(false); mBinder.enableNotifications(false);
updateList(); updateList();
@ -152,7 +159,7 @@ public class MissionsFragment extends Fragment {
super.onDestroy(); super.onDestroy();
if (mBinder == null || mAdapter == null) return; if (mBinder == null || mAdapter == null) return;
mBinder.removeMissionEventListener(mAdapter.getMessenger()); mBinder.removeMissionEventListener(mAdapter);
mBinder.enableNotifications(true); mBinder.enableNotifications(true);
mContext.unbindService(mConnection); mContext.unbindService(mConnection);
mAdapter.deleterDispose(true); mAdapter.deleterDispose(true);
@ -190,12 +197,10 @@ public class MissionsFragment extends Fragment {
return true; return true;
case R.id.start_downloads: case R.id.start_downloads:
item.setVisible(false); item.setVisible(false);
mPause.setVisible(true);
mBinder.getDownloadManager().startAllMissions(); mBinder.getDownloadManager().startAllMissions();
return true; return true;
case R.id.pause_downloads: case R.id.pause_downloads:
item.setVisible(false); item.setVisible(false);
mStart.setVisible(true);
mBinder.getDownloadManager().pauseAllMissions(false); mBinder.getDownloadManager().pauseAllMissions(false);
mAdapter.ensurePausedMissions();// update items view mAdapter.ensurePausedMissions();// update items view
default: default:
@ -242,12 +247,28 @@ public class MissionsFragment extends Fragment {
private void recoverMission(@NonNull DownloadMission mission) { private void recoverMission(@NonNull DownloadMission mission) {
unsafeMissionTarget = mission; unsafeMissionTarget = mission;
if (NewPipeSettings.useStorageAccessFramework(mContext)) {
StoredFileHelper.requestSafWithFileCreation( StoredFileHelper.requestSafWithFileCreation(
MissionsFragment.this, MissionsFragment.this,
REQUEST_DOWNLOAD_PATH_SAF, REQUEST_DOWNLOAD_SAVE_AS,
mission.storage.getName(), mission.storage.getName(),
mission.storage.getType() mission.storage.getType()
); );
} else {
File initialSavePath;
if (DownloadManager.TAG_VIDEO.equals(mission.storage.getType()))
initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MOVIES);
else
initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MUSIC);
initialSavePath = new File(initialSavePath, mission.storage.getName());
startActivityForResult(
FilePickerActivityHelper.chooseFileToSave(mContext, initialSavePath.getAbsolutePath()),
REQUEST_DOWNLOAD_SAVE_AS
);
}
} }
@Override @Override
@ -257,7 +278,7 @@ public class MissionsFragment extends Fragment {
if (mAdapter != null) { if (mAdapter != null) {
mAdapter.deleterDispose(false); mAdapter.deleterDispose(false);
mForceUpdate = true; mForceUpdate = true;
mBinder.removeMissionEventListener(mAdapter.getMessenger()); mBinder.removeMissionEventListener(mAdapter);
} }
} }
@ -273,7 +294,7 @@ public class MissionsFragment extends Fragment {
mAdapter.forceUpdate(); mAdapter.forceUpdate();
} }
mBinder.addMissionEventListener(mAdapter.getMessenger()); mBinder.addMissionEventListener(mAdapter);
mAdapter.checkMasterButtonsVisibility(); mAdapter.checkMasterButtonsVisibility();
} }
if (mBinder != null) mBinder.enableNotifications(false); if (mBinder != null) mBinder.enableNotifications(false);
@ -290,15 +311,20 @@ public class MissionsFragment extends Fragment {
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode != REQUEST_DOWNLOAD_PATH_SAF || resultCode != Activity.RESULT_OK) return; if (requestCode != REQUEST_DOWNLOAD_SAVE_AS || resultCode != Activity.RESULT_OK) return;
if (unsafeMissionTarget == null || data.getData() == null) { if (unsafeMissionTarget == null || data.getData() == null) {
return;// unsafeMissionTarget cannot be null return;
} }
try { try {
Uri fileUri = data.getData();
if (fileUri.getAuthority() != null && FilePickerActivityHelper.isOwnFileUri(mContext, fileUri)) {
fileUri = Uri.fromFile(Utils.getFileForUri(fileUri));
}
String tag = unsafeMissionTarget.storage.getTag(); String tag = unsafeMissionTarget.storage.getTag();
unsafeMissionTarget.storage = new StoredFileHelper(mContext, null, data.getData(), tag); unsafeMissionTarget.storage = new StoredFileHelper(mContext, null, fileUri, tag);
mAdapter.recoverMission(unsafeMissionTarget); mAdapter.recoverMission(unsafeMissionTarget);
} catch (IOException e) { } catch (IOException e) {
Toast.makeText(mContext, R.string.general_error, Toast.LENGTH_LONG).show(); Toast.makeText(mContext, R.string.general_error, Toast.LENGTH_LONG).show();

View File

@ -1,16 +1,27 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:gravity="center_vertical"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar"
app:titleTextAppearance="@style/Toolbar.Title">
</android.support.v7.widget.Toolbar>
<WebView <WebView
android:id="@+id/reCaptchaWebView" android:id="@+id/reCaptchaWebView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"/> android:layout_marginTop="?attr/actionBarSize"/>
<include layout="@layout/toolbar_layout"/>
</RelativeLayout> </RelativeLayout>

View File

@ -20,7 +20,7 @@
<string name="download_path_summary">مسار حفظ تنزيلات الفيديو في</string> <string name="download_path_summary">مسار حفظ تنزيلات الفيديو في</string>
<string name="download_path_title">مسار ملفات الفيديو المحفوظة</string> <string name="download_path_title">مسار ملفات الفيديو المحفوظة</string>
<string name="err_dir_create">"لا يمكن إنشاء مجلد للتنزيلات في '%1$s'"</string> <string name="err_dir_create">"لا يمكن إنشاء مجلد للتنزيلات في '%1$s'"</string>
<string name="info_dir_created">"تم إنشاء مجلد تنزيلات في '%1$s'"</string> <string name="info_dir_created">إنشاء دليل التنزيل \'%1$s\'</string>
<string name="install">تثبيت</string> <string name="install">تثبيت</string>
<string name="kore_not_found">تطبيق Kore غير موجود. هل تريد تثبيته ؟</string> <string name="kore_not_found">تطبيق Kore غير موجود. هل تريد تثبيته ؟</string>
<string name="light_theme_title">مضيء</string> <string name="light_theme_title">مضيء</string>
@ -42,7 +42,7 @@
<string name="share">مشاركة</string> <string name="share">مشاركة</string>
<string name="share_dialog_title">مشاركة بواسطة</string> <string name="share_dialog_title">مشاركة بواسطة</string>
<string name="show_next_and_similar_title">عرض مقاطع الفيديو \"التالية\" و \"المشابهة\"</string> <string name="show_next_and_similar_title">عرض مقاطع الفيديو \"التالية\" و \"المشابهة\"</string>
<string name="show_play_with_kodi_summary">عرض خيار لتشغيل الفيديو بواسطة مشغل كودي</string> <string name="show_play_with_kodi_summary">عرض خيار تشغيل الفيديو عبر مركز وسائط Kodi</string>
<string name="show_play_with_kodi_title">عرض خيار التشغيل بواسطة كودي</string> <string name="show_play_with_kodi_title">عرض خيار التشغيل بواسطة كودي</string>
<string name="theme_title">السمة</string> <string name="theme_title">السمة</string>
<string name="upload_date_text">تم النشر يوم %1$s</string> <string name="upload_date_text">تم النشر يوم %1$s</string>
@ -66,11 +66,11 @@
<string name="controls_background_title">في الخلفية</string> <string name="controls_background_title">في الخلفية</string>
<string name="autoplay_by_calling_app_title">تشغيل تلقائي</string> <string name="autoplay_by_calling_app_title">تشغيل تلقائي</string>
<string name="black_theme_title">اسود</string> <string name="black_theme_title">اسود</string>
<string name="enable_watch_history_title">التاريخ وذاكرة التخزين المؤقت</string> <string name="enable_watch_history_title">مراقبة السجل</string>
<string name="settings_category_history_title">التاريخ و ذاكرة التخزين المؤقت</string> <string name="settings_category_history_title">التاريخ و ذاكرة التخزين المؤقت</string>
<string name="content">محتوى</string> <string name="content">محتوى</string>
<string name="downloads">التنزيلات</string> <string name="downloads">التحميلات</string>
<string name="downloads_title">التحميل</string> <string name="downloads_title">التحميلات</string>
<string name="all">الكل</string> <string name="all">الكل</string>
<string name="channel">القناة</string> <string name="channel">القناة</string>
<string name="video">الفيديو</string> <string name="video">الفيديو</string>
@ -80,7 +80,7 @@
<string name="title_activity_history">التاريخ</string> <string name="title_activity_history">التاريخ</string>
<string name="action_history">التاريخ</string> <string name="action_history">التاريخ</string>
<string name="open_in_popup_mode">فتح في وضع منبثق</string> <string name="open_in_popup_mode">فتح في وضع منبثق</string>
<string name="use_external_video_player_summary">يزيل الصوت في بعض الخيارات</string> <string name="use_external_video_player_summary">"يزيل الصوت في بعض قرارات الدقة"</string>
<string name="popup_mode_share_menu_title">وضع النوافذ المنبثقة NewPipe</string> <string name="popup_mode_share_menu_title">وضع النوافذ المنبثقة NewPipe</string>
<string name="channel_unsubscribed">تم إلغاء الاشتراك في القناة</string> <string name="channel_unsubscribed">تم إلغاء الاشتراك في القناة</string>
<string name="subscription_change_failed">تعذر تغيير حالة الاشتراك</string> <string name="subscription_change_failed">تعذر تغيير حالة الاشتراك</string>
@ -113,11 +113,11 @@
<string name="show_age_restricted_content_title">محتوى مقيد بحسب العمر</string> <string name="show_age_restricted_content_title">محتوى مقيد بحسب العمر</string>
<string name="video_is_age_restricted">"إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"."</string> <string name="video_is_age_restricted">"إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"."</string>
<string name="duration_live">بث مباشر</string> <string name="duration_live">بث مباشر</string>
<string name="error_report_title">تقرير الخطأ</string> <string name="error_report_title">أبلغ عن خطأ</string>
<string name="playlist">قائمة التشغيل</string> <string name="playlist">قائمة التشغيل</string>
<string name="yes">نعم</string> <string name="yes">نعم</string>
<string name="later">لاحقاً</string> <string name="later">لاحقاً</string>
<string name="disabled">مُعطل</string> <string name="disabled">معطل</string>
<string name="filter">فلتر</string> <string name="filter">فلتر</string>
<string name="refresh">تحديث</string> <string name="refresh">تحديث</string>
<string name="clear">تنظيف</string> <string name="clear">تنظيف</string>
@ -158,11 +158,11 @@
<string name="short_billion">بليون</string> <string name="short_billion">بليون</string>
<string name="no_subscribers">ليس هناك مشترِكون</string> <string name="no_subscribers">ليس هناك مشترِكون</string>
<plurals name="subscribers"> <plurals name="subscribers">
<item quantity="zero">%s لا يوجد مشترك</item> <item quantity="zero">%s لا يوجد مشارك</item>
<item quantity="one">%s مشترك</item> <item quantity="one">%s مشترك</item>
<item quantity="two">%s اثنتين مشتركين</item> <item quantity="two">"%s مشتركتين"</item>
<item quantity="few">%s اشتراكات</item> <item quantity="few">%s اشتراكات</item>
<item quantity="many">%s مشتركين</item> <item quantity="many">%s مشاركين</item>
<item quantity="other">%s مشتركون</item> <item quantity="other">%s مشتركون</item>
</plurals> </plurals>
<string name="no_views">دون مشاهدات</string> <string name="no_views">دون مشاهدات</string>
@ -184,7 +184,7 @@
<string name="msg_running_detail">انقر للحصول على التفاصيل</string> <string name="msg_running_detail">انقر للحصول على التفاصيل</string>
<string name="msg_wait">يُرجى الإنتظار…</string> <string name="msg_wait">يُرجى الإنتظار…</string>
<string name="msg_copied">تم نسخه إلى الحافظة</string> <string name="msg_copied">تم نسخه إلى الحافظة</string>
<string name="no_available_dir">الرجاء تحديد مجلد لحفظ التنزيلات</string> <string name="no_available_dir">يرجى تحديد مجلد التنزيل لاحقًا في الإعدادات</string>
<string name="msg_popup_permission">هذا الإذن مطلوب <string name="msg_popup_permission">هذا الإذن مطلوب
\nللفتح في وضع النافذة المنبثقة</string> \nللفتح في وضع النافذة المنبثقة</string>
<string name="reCaptchaActivity">اختبار reCAPTCHA</string> <string name="reCaptchaActivity">اختبار reCAPTCHA</string>
@ -200,7 +200,7 @@
<string name="action_open_website">فتح الموقع</string> <string name="action_open_website">فتح الموقع</string>
<string name="tab_contributors">المساهمون</string> <string name="tab_contributors">المساهمون</string>
<string name="tab_licenses">التراخيص</string> <string name="tab_licenses">التراخيص</string>
<string name="app_description">تطبيق حُر و خفيف لتشغيل اليوتيوب على نظام الأندرويد.</string> <string name="app_description">تطبيق مجاني خفيف الوزن وبث حي على نظام أندرويد.</string>
<string name="contribution_title">ساهم</string> <string name="contribution_title">ساهم</string>
<string name="contribution_encouragement">إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل !</string> <string name="contribution_encouragement">إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل !</string>
<string name="view_on_github">عرض على GitHub</string> <string name="view_on_github">عرض على GitHub</string>
@ -234,7 +234,7 @@
<string name="play_queue_stream_detail">التفاصيل</string> <string name="play_queue_stream_detail">التفاصيل</string>
<string name="play_queue_audio_settings">الإعدادات الصوتية</string> <string name="play_queue_audio_settings">الإعدادات الصوتية</string>
<string name="start_here_on_main">تشغيل هنا</string> <string name="start_here_on_main">تشغيل هنا</string>
<string name="start_here_on_popup">تشغيل في وضع النافذة المنبثقة</string> <string name="start_here_on_popup">تشغيل في وضع نافذة منبثقة</string>
<string name="reCaptcha_title">تحدي الكابتشا</string> <string name="reCaptcha_title">تحدي الكابتشا</string>
<string name="hold_to_append">اضغط للإدراج في قائمة الانتظار</string> <string name="hold_to_append">اضغط للإدراج في قائمة الانتظار</string>
<plurals name="views"> <plurals name="views">
@ -425,11 +425,11 @@
<string name="app_update_notification_channel_name">تتبيه تحديث التطبيق</string> <string name="app_update_notification_channel_name">تتبيه تحديث التطبيق</string>
<string name="volume_gesture_control_title">إيماءة التحكم بالصوت</string> <string name="volume_gesture_control_title">إيماءة التحكم بالصوت</string>
<string name="events">الأحداث</string> <string name="events">الأحداث</string>
<string name="app_update_notification_channel_description">التنبيه بإصدارات newpipe الجديدة</string> <string name="app_update_notification_channel_description">الإخطارات عند تواجد إصدار newpipe جديد</string>
<string name="download_to_sdcard_error_title">ذاكرة التخزين الخارجي غير متوفرة</string> <string name="download_to_sdcard_error_title">وحدة التخزين الخارجية غير متوفرة</string>
<string name="download_to_sdcard_error_message">التحميل إلى بطاقة الذاكرة الخارجية ليس متاحا حتى الآن. إعادة تعيين موقع مجلد التحميل؟</string> <string name="download_to_sdcard_error_message">"التنزيل على بطاقة SD الخارجية غير ممكن. إعادة تعيين موقع مجلد التحميل؟"</string>
<string name="saved_tabs_invalid_json">باستخدام علامات الجدولة الافتراضية، حدث خطأ أثناء قراءة علامات التبويب المحفوظة</string> <string name="saved_tabs_invalid_json">عند إستخدام علامات التبويب الافتراضية ، وقع خطأ أثناء قراءة علامات التبويب المحفوظة</string>
<string name="restore_defaults">استعادة الافتراضيات</string> <string name="restore_defaults">استعادة الضبط الافتراضي</string>
<string name="restore_defaults_confirmation">هل تريد استعادة الإعدادات الافتراضية؟</string> <string name="restore_defaults_confirmation">هل تريد استعادة الإعدادات الافتراضية؟</string>
<string name="subscribers_count_not_available">عدد المشتركين غير متاح</string> <string name="subscribers_count_not_available">عدد المشتركين غير متاح</string>
<string name="main_page_content_summary">ما هي التبويبات التي تظهر على الصفحة الرئيسية</string> <string name="main_page_content_summary">ما هي التبويبات التي تظهر على الصفحة الرئيسية</string>
@ -476,8 +476,8 @@
<string name="stop">توقف</string> <string name="stop">توقف</string>
<string name="max_retry_msg">أقصى عدد للمحاولات</string> <string name="max_retry_msg">أقصى عدد للمحاولات</string>
<string name="max_retry_desc">الحد الأقصى لعدد محاولات قبل إلغاء التحميل</string> <string name="max_retry_desc">الحد الأقصى لعدد محاولات قبل إلغاء التحميل</string>
<string name="pause_downloads_on_mobile">"ايقاف عند التحويل إلى البيانات المتنقلة"</string> <string name="pause_downloads_on_mobile">"إنقطع الإتصال بالشبكة عند التحويل إلى البيانات المتنقلة"</string>
<string name="pause_downloads_on_mobile_desc">سيتم إعادة تحميل التنزيلات التي لا يمكن إيقافها</string> <string name="pause_downloads_on_mobile_desc">مفيد عند التبديل إلى بيانات الجوال ، على الرغم من أنه لا يمكن تعليق بعض التنزيلات</string>
<string name="show_comments_title">إظهار التعليقات</string> <string name="show_comments_title">إظهار التعليقات</string>
<string name="show_comments_summary">تعطيل لإيقاف عرض التعليقات</string> <string name="show_comments_summary">تعطيل لإيقاف عرض التعليقات</string>
<string name="autoplay_title">تشغيل تلقائي</string> <string name="autoplay_title">تشغيل تلقائي</string>
@ -492,4 +492,27 @@
<string name="no_comments">لا توجد تعليقات</string> <string name="no_comments">لا توجد تعليقات</string>
<string name="error_unable_to_load_comments">تعذر تحميل التعليقات</string> <string name="error_unable_to_load_comments">تعذر تحميل التعليقات</string>
<string name="close">إغلاق</string> <string name="close">إغلاق</string>
<string name="enable_playback_resume_title">استئناف التشغيل</string>
<string name="enable_playback_resume_summary">استعادة آخر موقف التشغيل</string>
<string name="enable_playback_state_lists_title">واضع القوائم</string>
<string name="enable_playback_state_lists_summary">إظهار مؤشرات وضع التشغيل في القوائم</string>
<string name="settings_category_clear_data_title">امسح البيانات</string>
<string name="watch_history_states_deleted">تم حذف وضع التشغيل.</string>
<string name="missing_file">نقل الملف أو حذفه</string>
<string name="overwrite_unrelated_warning">يوجد ملف بهذا الاسم مسبقاً</string>
<string name="overwrite_failed">لا يمكن الكتابة فوق الملف</string>
<string name="download_already_pending">هناك تنزيل معلق بهذا الاسم</string>
<string name="error_postprocessing_stopped">تم إغلاق NewPipe أثناء العمل على الملف</string>
<string name="error_insufficient_storage">لم يتبقى مساحة في الجهاز</string>
<string name="error_progress_lost">تم فقد التقدم بسبب حذف الملف</string>
<string name="error_timeout">انتهى وقت الاتصال</string>
<string name="confirm_prompt">هل أنت واثق؟</string>
<string name="enable_queue_limit">حد قائمة انتظار التنزيل</string>
<string name="enable_queue_limit_desc">سيتم تشغيل تنزيل واحد في نفس الوقت</string>
<string name="start_downloads">بدء التنزيلات</string>
<string name="pause_downloads">إيقاف التحميل مؤقتا</string>
<string name="downloads_storage_ask_title">اسأل عن مكان التنزيل</string>
<string name="downloads_storage_ask_summary">سيُطلب منك مكان حفظ كل تنزيل</string>
<string name="downloads_storage_ask_summary_kitkat">سوف يطلب منك مكان حفظ كل تحميل.
\nقم بتشغيل هذا إذا كنت تريد التنزيل إلى بطاقة SD خارجية.</string>
</resources> </resources>

View File

@ -305,7 +305,7 @@
<string name="add">Nova missió</string> <string name="add">Nova missió</string>
<string name="msg_url_malform">L\'URL té un format incorrecte o no hi ha connexió a internet</string> <string name="msg_url_malform">L\'URL té un format incorrecte o no hi ha connexió a internet</string>
<string name="msg_running_detail">Toqueu aquí per a més detalls</string> <string name="msg_running_detail">Toqueu aquí per a més detalls</string>
<string name="no_available_dir">Trieu una carpeta de baixades disponible</string> <string name="no_available_dir">Definiu una carpeta de baixades més endavant a la configuració</string>
<string name="msg_popup_permission">Es necessita aquest permís per a obrir el mode emergent</string> <string name="msg_popup_permission">Es necessita aquest permís per a obrir el mode emergent</string>
<string name="reCaptcha_title">Camp reCAPTCHA</string> <string name="reCaptcha_title">Camp reCAPTCHA</string>
<string name="recaptcha_request_toast">S\'ha sol·licitat l\'emplenament d\'un camp reCAPTCHA</string> <string name="recaptcha_request_toast">S\'ha sol·licitat l\'emplenament d\'un camp reCAPTCHA</string>
@ -451,7 +451,7 @@
<string name="max_retry_msg">Intents màxims</string> <string name="max_retry_msg">Intents màxims</string>
<string name="max_retry_desc">Nombre màxim d\'intents abans de cancel·lar la baixada</string> <string name="max_retry_desc">Nombre màxim d\'intents abans de cancel·lar la baixada</string>
<string name="pause_downloads_on_mobile">Pausa en canviar a dades mòbils</string> <string name="pause_downloads_on_mobile">Pausa en canviar a dades mòbils</string>
<string name="pause_downloads_on_mobile_desc">Les baixades que no es puguin pausar es tornaran a iniciar</string> <string name="pause_downloads_on_mobile_desc">Útil en canviar a les dades mòbils, tot i que algunes baixades no es poden aturar</string>
<string name="unsubscribe">Elimina la subscripció</string> <string name="unsubscribe">Elimina la subscripció</string>
<string name="overwrite">Sobreescriu</string> <string name="overwrite">Sobreescriu</string>
<string name="error_http_not_found">No s\'ha trobat</string> <string name="error_http_not_found">No s\'ha trobat</string>
@ -467,6 +467,18 @@
<string name="error_http_no_content">El servidor no està enviant dades</string> <string name="error_http_no_content">El servidor no està enviant dades</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">Comentaris</item> <item quantity="one">Comentaris</item>
<item quantity="other"></item> <item quantity="other"/>
</plurals> </plurals>
<string name="app_update_notification_channel_name">Notificació d\'actualització de l\'aplicació</string>
<string name="enable_playback_resume_title">Reprèn la reproducció</string>
<string name="overwrite_failed">No es pot sobreescriure el fitxer</string>
<string name="download_already_pending">Hi ha una baixada pendent amb aquest nom</string>
<string name="error_insufficient_storage">No hi ha espai disponible al dispositiu</string>
<string name="error_progress_lost">S\'ha perdut el progrés perquè s\'ha eliminat el fitxer</string>
<string name="error_timeout">S\'ha excedit el temps d\'espera de la connexió</string>
<string name="confirm_prompt">Segur\?</string>
<string name="enable_queue_limit">Limita la cua de baixades</string>
<string name="start_downloads">Inicia les baixades</string>
<string name="pause_downloads">Pausa les baixades</string>
<string name="downloads_storage_ask_summary">Se us demanarà la ubicació de cada baixada</string>
</resources> </resources>

View File

@ -92,7 +92,7 @@
<string name="title_licenses">第三方执照</string> <string name="title_licenses">第三方执照</string>
<string name="action_open_website">打开网页</string> <string name="action_open_website">打开网页</string>
<string name="unbookmark_playlist">删除书签</string> <string name="unbookmark_playlist">删除书签</string>
<string name="delete_playlist_prompt">确定删除该播放列表吗?</string> <string name="delete_playlist_prompt">确定删除该播放列表吗?</string>
<string name="playlist_creation_success">已创建播放列表</string> <string name="playlist_creation_success">已创建播放列表</string>
<string name="playlist_add_stream_success">播放列表</string> <string name="playlist_add_stream_success">播放列表</string>
<string name="playback_step">步骤</string> <string name="playback_step">步骤</string>
@ -115,14 +115,14 @@
<string name="metadata_cache_wipe_complete_notice">已清除缓存的元数据</string> <string name="metadata_cache_wipe_complete_notice">已清除缓存的元数据</string>
<string name="download_thumbnail_summary">不加载缩略图时,可以节省数据和存储空间。更改后将清除存储空间和扩展空间的缓存。</string> <string name="download_thumbnail_summary">不加载缩略图时,可以节省数据和存储空间。更改后将清除存储空间和扩展空间的缓存。</string>
<string name="auto_queue_title">自动排列下一个媒体</string> <string name="auto_queue_title">自动排列下一个媒体</string>
<string name="auto_queue_summary">在非重复排列中播放最后一个媒体时自动推荐相关媒体</string> <string name="auto_queue_summary">在非重复排列中播放最后一个媒体时自动推荐相关媒体</string>
<string name="player_gesture_controls_title">玩家手势控制</string> <string name="player_gesture_controls_title">玩家手势控制</string>
<string name="player_gesture_controls_summary">使用手势控制播放器的亮度和音量</string> <string name="player_gesture_controls_summary">使用手势控制播放器的亮度和音量</string>
<string name="show_search_suggestions_title">搜索建议</string> <string name="show_search_suggestions_title">搜索建议</string>
<string name="show_search_suggestions_summary">搜索时显示建议</string> <string name="show_search_suggestions_summary">搜索时显示建议</string>
<string name="enable_search_history_title">搜索历史记录</string> <string name="enable_search_history_title">搜索历史记录</string>
<string name="enable_search_history_summary">在本地存储搜索</string> <string name="enable_search_history_summary">在本地存储搜索</string>
<string name="enable_watch_history_title">历史记录和缓存数据</string> <string name="enable_watch_history_title">观看历史</string>
<string name="enable_watch_history_summary">记录观看过的视频</string> <string name="enable_watch_history_summary">记录观看过的视频</string>
<string name="resume_on_audio_focus_gain_title">取得视窗焦点时继续播放</string> <string name="resume_on_audio_focus_gain_title">取得视窗焦点时继续播放</string>
<string name="resume_on_audio_focus_gain_summary">在被打断后继续播放(例如有来电)</string> <string name="resume_on_audio_focus_gain_summary">在被打断后继续播放(例如有来电)</string>
@ -255,7 +255,7 @@
<string name="no_videos">没有视频</string> <string name="no_videos">没有视频</string>
<plurals name="videos"> <plurals name="videos">
<item quantity="one">部视频</item> <item quantity="one">部视频</item>
<item quantity="other"/> <item quantity="other"></item>
</plurals> </plurals>
<string name="delete_one">删除</string> <string name="delete_one">删除</string>
<string name="checksum">校验</string> <string name="checksum">校验</string>
@ -266,7 +266,7 @@
<string name="msg_url_malform">错误的网址或网络不可用</string> <string name="msg_url_malform">错误的网址或网络不可用</string>
<string name="msg_running_detail">点按以查看详细信息</string> <string name="msg_running_detail">点按以查看详细信息</string>
<string name="msg_copied">复制到剪贴板</string> <string name="msg_copied">复制到剪贴板</string>
<string name="no_available_dir">选择下载文件夹</string> <string name="no_available_dir">稍后在设置中定义一个下载文件夹</string>
<string name="msg_popup_permission">在悬浮窗模式打开 <string name="msg_popup_permission">在悬浮窗模式打开
\n需要此权限</string> \n需要此权限</string>
<string name="one_item_deleted">已删除一个项目。</string> <string name="one_item_deleted">已删除一个项目。</string>
@ -336,19 +336,19 @@
<string name="play_queue_stream_detail">详细</string> <string name="play_queue_stream_detail">详细</string>
<string name="play_queue_audio_settings">音频设置</string> <string name="play_queue_audio_settings">音频设置</string>
<string name="hold_to_append">长按以新增至队列</string> <string name="hold_to_append">长按以新增至队列</string>
<string name="enqueue_on_background">转到后台时排列</string> <string name="enqueue_on_background">加入后台播放列表</string>
<string name="enqueue_on_popup">排列新的悬浮窗</string> <string name="enqueue_on_popup">加入悬浮窗播放列表</string>
<string name="start_here_on_main">从这里开始播放</string> <string name="start_here_on_main">从这里开始播放</string>
<string name="start_here_on_background">转到后台时从这里开始</string> <string name="start_here_on_background">开始在后台播放</string>
<string name="start_here_on_popup">从新的悬浮窗开始</string> <string name="start_here_on_popup">开始在新悬浮窗播放</string>
<string name="drawer_open">打开抽屉</string> <string name="drawer_open">打开抽屉</string>
<string name="drawer_close">关闭抽屉</string> <string name="drawer_close">关闭抽屉</string>
<string name="drawer_header_action_paceholder_text">某些东西即将在此出现;D</string> <string name="drawer_header_action_paceholder_text">很快就会出现在这里 ;D</string>
<string name="preferred_open_action_settings_title">偏好的「开启」动作</string> <string name="preferred_open_action_settings_title">偏好的「开启」动作</string>
<string name="preferred_open_action_settings_summary">开启内容时的默认动作 - %s</string> <string name="preferred_open_action_settings_summary">开启内容时的默认动作 - %s</string>
<string name="video_player">视频播放器</string> <string name="video_player">视频播放器</string>
<string name="background_player">转到后台播放</string> <string name="background_player">后台播放</string>
<string name="popup_player">悬浮窗播放</string> <string name="popup_player">悬浮窗播放</string>
<string name="always_ask_open_action">总是询问</string> <string name="always_ask_open_action">总是询问</string>
<string name="preferred_player_fetcher_notification_title">正在获取信息…</string> <string name="preferred_player_fetcher_notification_title">正在获取信息…</string>
<string name="preferred_player_fetcher_notification_message">正在载入请求的内容</string> <string name="preferred_player_fetcher_notification_message">正在载入请求的内容</string>
@ -362,12 +362,12 @@
<string name="playlist_thumbnail_change_success">播放列表缩略图已更改。</string> <string name="playlist_thumbnail_change_success">播放列表缩略图已更改。</string>
<string name="playlist_delete_failure">无法删除播放列表。</string> <string name="playlist_delete_failure">无法删除播放列表。</string>
<string name="caption_none">没有字幕</string> <string name="caption_none">没有字幕</string>
<string name="resize_fit">合适</string> <string name="resize_fit">合适</string>
<string name="resize_fill">填满</string> <string name="resize_fill">填满</string>
<string name="resize_zoom">缩放</string> <string name="resize_zoom">缩放</string>
<string name="caption_auto_generated">自动生成</string> <string name="caption_auto_generated">自动生成</string>
<string name="caption_setting_title">字幕</string> <string name="caption_setting_title">字幕</string>
<string name="caption_setting_description">修改播放器标题文本比例和背景样式。需要重启才能生效。</string> <string name="caption_setting_description">修改播放器字幕文本比列和背景样式。需要重启才能生效。</string>
<string name="enable_leak_canary_title">启用 LeakCanary</string> <string name="enable_leak_canary_title">启用 LeakCanary</string>
<string name="enable_leak_canary_summary">内存泄漏监视可能导致应用程序在存储时无响应</string> <string name="enable_leak_canary_summary">内存泄漏监视可能导致应用程序在存储时无响应</string>
<string name="enable_disposed_exceptions_title">报告活动周期外错误</string> <string name="enable_disposed_exceptions_title">报告活动周期外错误</string>
@ -415,7 +415,7 @@
<string name="app_update_notification_channel_name">应用升级通知</string> <string name="app_update_notification_channel_name">应用升级通知</string>
<string name="app_update_notification_channel_description">新 NewPipe 版本通知</string> <string name="app_update_notification_channel_description">新 NewPipe 版本通知</string>
<string name="download_to_sdcard_error_title">外储存不可行</string> <string name="download_to_sdcard_error_title">外储存不可行</string>
<string name="download_to_sdcard_error_message">下载至外置SD卡还未可行。重置下载文件夹位置?</string> <string name="download_to_sdcard_error_message">无法下载到外部SD卡。重置下载文件夹位置?</string>
<string name="restore_defaults">恢复默认</string> <string name="restore_defaults">恢复默认</string>
<string name="restore_defaults_confirmation">您真的要恢复至默认吗?</string> <string name="restore_defaults_confirmation">您真的要恢复至默认吗?</string>
<string name="selection">选择</string> <string name="selection">选择</string>
@ -451,7 +451,7 @@
<string name="stop"></string> <string name="stop"></string>
<string name="max_retry_msg">重试上限</string> <string name="max_retry_msg">重试上限</string>
<string name="max_retry_desc">取消下载前可以尝试的最多次数</string> <string name="max_retry_desc">取消下载前可以尝试的最多次数</string>
<string name="pause_downloads_on_mobile">换成手机数据时暂停</string> <string name="pause_downloads_on_mobile">换成手机数据时中断</string>
<string name="events">事件</string> <string name="events">事件</string>
<string name="saved_tabs_invalid_json">使用默认选项卡, 读取保存的选项卡时出错</string> <string name="saved_tabs_invalid_json">使用默认选项卡, 读取保存的选项卡时出错</string>
<string name="subscribers_count_not_available">订阅者计数不可用</string> <string name="subscribers_count_not_available">订阅者计数不可用</string>
@ -463,8 +463,41 @@
<string name="switch_view">切换视图</string> <string name="switch_view">切换视图</string>
<string name="app_update_notification_content_title">NewPipe 更新可用!</string> <string name="app_update_notification_content_title">NewPipe 更新可用!</string>
<string name="error_path_creation">无法创建目标文件夹</string> <string name="error_path_creation">无法创建目标文件夹</string>
<string name="error_http_unsupported_range">服务器不接受多线程下载, 请重试使用 @string/msg_threads = 1</string> <string name="error_http_unsupported_range">服务器不接受多线程下载, 请使用 @string/msg_threads = 1重试</string>
<string name="error_http_requested_range_not_satisfiable">请求范围无法满足</string> <string name="error_http_requested_range_not_satisfiable">请求范围无法满足</string>
<string name="msg_pending_downloads">继续进行%s个待下载转移</string> <string name="msg_pending_downloads">继续进行%s个待下载转移</string>
<string name="pause_downloads_on_mobile_desc">无法暂停的下载将重新开始</string> <string name="pause_downloads_on_mobile_desc">切换至移动数据时有用,尽管一些下载无法被暂停</string>
<string name="show_comments_title">显示评论</string>
<string name="show_comments_summary">禁用停止显示评论</string>
<string name="autoplay_title">自动播放</string>
<plurals name="comments">
<item quantity="one">评论</item>
<item quantity="other"/>
</plurals>
<string name="no_comments">没有评论</string>
<string name="error_unable_to_load_comments">无法加载评论</string>
<string name="close">关闭</string>
<string name="enable_playback_resume_title">继续播放</string>
<string name="enable_playback_resume_summary">恢复上次播放位置</string>
<string name="enable_playback_state_lists_title">列表中的位置</string>
<string name="enable_playback_state_lists_summary">在列表中显示播放位置指示符</string>
<string name="settings_category_clear_data_title">清除数据</string>
<string name="watch_history_states_deleted">播放位置已删除。</string>
<string name="missing_file">文件被移动或删除</string>
<string name="overwrite_unrelated_warning">已存在具有此名称的文件</string>
<string name="overwrite_failed">无法覆盖该文件</string>
<string name="download_already_pending">同名文件正在等待下载</string>
<string name="error_postprocessing_stopped">处理此文件时 NewPipe 已关闭</string>
<string name="error_insufficient_storage">设备上没有剩余空间</string>
<string name="error_progress_lost">进度丢失,因为文件已被删除</string>
<string name="error_timeout">连接超时</string>
<string name="confirm_prompt">你确定吗?</string>
<string name="enable_queue_limit">限制下载队列</string>
<string name="enable_queue_limit_desc">同时只有一个下载进行</string>
<string name="start_downloads">开始全部下载</string>
<string name="pause_downloads">暂停全部下载</string>
<string name="downloads_storage_ask_title">询问下载位置</string>
<string name="downloads_storage_ask_summary">每次下载将询问保存的位置</string>
<string name="downloads_storage_ask_summary_kitkat">每次下载将询问保存的位置。
\n如果要下载到外部SD卡请选中。</string>
</resources> </resources>

View File

@ -58,7 +58,6 @@
<string name="youtube_signature_decryption_error">Konnte Video-URL-Signatur nicht entschlüsseln</string> <string name="youtube_signature_decryption_error">Konnte Video-URL-Signatur nicht entschlüsseln</string>
<string name="parsing_error">Konnte Webseite nicht analysieren</string> <string name="parsing_error">Konnte Webseite nicht analysieren</string>
<string name="content_not_available">Inhalt nicht verfügbar</string> <string name="content_not_available">Inhalt nicht verfügbar</string>
<string name="content">Inhalt</string> <string name="content">Inhalt</string>
<string name="show_age_restricted_content_title">Altersbeschränkte Inhalte</string> <string name="show_age_restricted_content_title">Altersbeschränkte Inhalte</string>
<string name="video_is_age_restricted">Altersbeschränktes Video anzeigen. Das Zulassen dieses Materials ist von den Einstellungen aus möglich.</string> <string name="video_is_age_restricted">Altersbeschränktes Video anzeigen. Das Zulassen dieses Materials ist von den Einstellungen aus möglich.</string>
@ -98,7 +97,7 @@
<string name="msg_exists">Datei existiert bereits</string> <string name="msg_exists">Datei existiert bereits</string>
<string name="msg_wait">Bitte warten…</string> <string name="msg_wait">Bitte warten…</string>
<string name="msg_copied">In Zwischenablage kopiert</string> <string name="msg_copied">In Zwischenablage kopiert</string>
<string name="no_available_dir">Bitte wähle ein verfügbares Downloadverzeichnis</string> <string name="no_available_dir">Bitte gib später in den Einstellungen einen Downloadverzeichnis an</string>
<string name="start">Starten</string> <string name="start">Starten</string>
<string name="pause">Pause</string> <string name="pause">Pause</string>
<string name="view">Abspielen</string> <string name="view">Abspielen</string>
@ -166,12 +165,12 @@
<string name="charset_letters_and_digits">Buchstaben und Zahlen</string> <string name="charset_letters_and_digits">Buchstaben und Zahlen</string>
<string name="subscribe_button_title">Abonnieren</string> <string name="subscribe_button_title">Abonnieren</string>
<string name="subscribed_button_title">Abonniert</string> <string name="subscribed_button_title">Abonniert</string>
<string name="channel_unsubscribed">Abonnement beendet</string> <string name="channel_unsubscribed">Kanal abbestellt</string>
<string name="tab_subscriptions">Abos</string> <string name="tab_subscriptions">Abos</string>
<string name="fragment_whats_new">Neuigkeiten</string> <string name="fragment_whats_new">Neuigkeiten</string>
<string name="enable_search_history_title">Suchverlauf</string> <string name="enable_search_history_title">Suchverlauf</string>
<string name="enable_search_history_summary">Suchanfragen lokal speichern</string> <string name="enable_search_history_summary">Suchanfragen lokal speichern</string>
<string name="enable_watch_history_title">Verlauf &amp; Cache</string> <string name="enable_watch_history_title">Verlauf ansehen</string>
<string name="enable_watch_history_summary">Speichere den Wiedergabeverlauf</string> <string name="enable_watch_history_summary">Speichere den Wiedergabeverlauf</string>
<string name="title_activity_history">Verlauf</string> <string name="title_activity_history">Verlauf</string>
<string name="title_history_search">Gesucht</string> <string name="title_history_search">Gesucht</string>
@ -277,7 +276,7 @@
<string name="no_valid_zip_file">Keine gültige ZIP-Datei</string> <string name="no_valid_zip_file">Keine gültige ZIP-Datei</string>
<string name="could_not_import_all_files">Warnung: Nicht alle Dateien konnten importiert werden.</string> <string name="could_not_import_all_files">Warnung: Nicht alle Dateien konnten importiert werden.</string>
<string name="override_current_data">Dies wird deine aktuellen Einstellungen überschreiben.</string> <string name="override_current_data">Dies wird deine aktuellen Einstellungen überschreiben.</string>
<string name="show_info">Info anzeigen</string> <string name="show_info">Infos anzeigen</string>
<string name="tab_bookmarks">Lesezeichen für Wiedergabelisten</string> <string name="tab_bookmarks">Lesezeichen für Wiedergabelisten</string>
<string name="controls_add_to_playlist_title">Hinzufügen zu</string> <string name="controls_add_to_playlist_title">Hinzufügen zu</string>
<string name="detail_drag_description">Zum Neuordnen ziehen</string> <string name="detail_drag_description">Zum Neuordnen ziehen</string>
@ -403,7 +402,7 @@
<string name="playlists">Wiedergabelisten</string> <string name="playlists">Wiedergabelisten</string>
<string name="tracks">Titel</string> <string name="tracks">Titel</string>
<string name="users">Benutzer</string> <string name="users">Benutzer</string>
<string name="unsubscribe">Deabonnieren</string> <string name="unsubscribe">Abbestellen</string>
<string name="tab_new">Neuer Tab</string> <string name="tab_new">Neuer Tab</string>
<string name="tab_choose">Tab wählen</string> <string name="tab_choose">Tab wählen</string>
<string name="volume_gesture_control_title">Gestensteuerung für Lautstärke</string> <string name="volume_gesture_control_title">Gestensteuerung für Lautstärke</string>
@ -415,7 +414,7 @@
<string name="app_update_notification_channel_name">Aktualisierungsbenachrichtigung</string> <string name="app_update_notification_channel_name">Aktualisierungsbenachrichtigung</string>
<string name="app_update_notification_channel_description">Benachrichtigung bei neuer NewPipe-Version</string> <string name="app_update_notification_channel_description">Benachrichtigung bei neuer NewPipe-Version</string>
<string name="download_to_sdcard_error_title">Kein externer Speicher verfügbar</string> <string name="download_to_sdcard_error_title">Kein externer Speicher verfügbar</string>
<string name="download_to_sdcard_error_message">Herunterladen auf externe SD-Karte ist noch nicht möglich. Zielverzeichnis zurücksetzen\?</string> <string name="download_to_sdcard_error_message">Herunterladen auf externe SD-Karte ist nicht möglich. Downloadverzeichnis zurücksetzen\?</string>
<string name="saved_tabs_invalid_json">Fehler beim Lesen der gespeicherten Tabs es werden die Voreinstellungen benutzt</string> <string name="saved_tabs_invalid_json">Fehler beim Lesen der gespeicherten Tabs es werden die Voreinstellungen benutzt</string>
<string name="restore_defaults">Voreinstellungen wiederherstellen</string> <string name="restore_defaults">Voreinstellungen wiederherstellen</string>
<string name="restore_defaults_confirmation">Möchtest du die Voreinstellungen wiederherstellen\?</string> <string name="restore_defaults_confirmation">Möchtest du die Voreinstellungen wiederherstellen\?</string>
@ -448,7 +447,7 @@
<string name="show_error">Fehler anzeigen</string> <string name="show_error">Fehler anzeigen</string>
<string name="label_code">Code</string> <string name="label_code">Code</string>
<string name="error_file_creation">Die Datei kann nicht erstellt werden</string> <string name="error_file_creation">Die Datei kann nicht erstellt werden</string>
<string name="error_path_creation">Der Zielordner kann nicht erstellt werden</string> <string name="error_path_creation">Das Zielverzeichnis kann nicht erstellt werden</string>
<string name="error_permission_denied">System verweigert den Zugriff</string> <string name="error_permission_denied">System verweigert den Zugriff</string>
<string name="error_ssl_exception">Sichere Verbindung fehlgeschlagen</string> <string name="error_ssl_exception">Sichere Verbindung fehlgeschlagen</string>
<string name="error_unknown_host">Der Server konnte nicht gefunden werden</string> <string name="error_unknown_host">Der Server konnte nicht gefunden werden</string>
@ -463,8 +462,8 @@
<string name="stop">Anhalten</string> <string name="stop">Anhalten</string>
<string name="max_retry_msg">Maximale Wiederholungen</string> <string name="max_retry_msg">Maximale Wiederholungen</string>
<string name="max_retry_desc">Maximalanzahl der Versuche, bevor der Download abgebrochen wird</string> <string name="max_retry_desc">Maximalanzahl der Versuche, bevor der Download abgebrochen wird</string>
<string name="pause_downloads_on_mobile">Beim Umschalten auf mobile Daten pausieren</string> <string name="pause_downloads_on_mobile">Unterbrechen bei kostenpflichtigen Netzwerken</string>
<string name="pause_downloads_on_mobile_desc">Downloads, die nicht pausiert werden können, werden wiederholt</string> <string name="pause_downloads_on_mobile_desc">Nützlich beim Wechsel zu mobilen Daten, obwohl einige Downloads nicht unterbrochen werden können</string>
<string name="conferences">Konferenzen</string> <string name="conferences">Konferenzen</string>
<string name="events">Ereignisse</string> <string name="events">Ereignisse</string>
<string name="error_timeout">Verbindungszeitüberschreitung</string> <string name="error_timeout">Verbindungszeitüberschreitung</string>
@ -473,9 +472,31 @@
<string name="autoplay_title">Autoplay</string> <string name="autoplay_title">Autoplay</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">Kommentare</item> <item quantity="one">Kommentare</item>
<item quantity="other"></item> <item quantity="other"/>
</plurals> </plurals>
<string name="no_comments">Keine Kommentare</string> <string name="no_comments">Keine Kommentare</string>
<string name="error_unable_to_load_comments">Kommentare konnten nicht geladen werden</string> <string name="error_unable_to_load_comments">Kommentare konnten nicht geladen werden</string>
<string name="close">Schließen</string> <string name="close">Schließen</string>
<string name="enable_playback_resume_title">Wiedergabe fortsetzen</string>
<string name="enable_playback_resume_summary">Wiederherstellen der letzten Wiedergabeposition</string>
<string name="enable_playback_state_lists_title">Positionen in Listen</string>
<string name="enable_playback_state_lists_summary">Wiedergabepositionsanzeigen in Listen anzeigen</string>
<string name="settings_category_clear_data_title">Daten löschen</string>
<string name="watch_history_states_deleted">Wiedergabeposition gelöscht.</string>
<string name="missing_file">Datei verschoben oder gelöscht</string>
<string name="overwrite_finished_warning">Eine heruntergeladene Datei mit diesem Namen existiert bereits</string>
<string name="overwrite_failed">kann die Datei nicht überschreiben</string>
<string name="download_already_pending">Es gibt einen ausstehenden Download mit diesem Namen</string>
<string name="error_postprocessing_stopped">NewPipe wurde während der Verarbeitung der Datei geschlossen</string>
<string name="error_insufficient_storage">Kein Speicherplatz mehr auf dem Gerät</string>
<string name="error_progress_lost">Vorgang abgebrochen, da die Datei gelöscht wurde</string>
<string name="confirm_prompt">Bist du sicher\?</string>
<string name="enable_queue_limit">Downloadwarteschlange begrenzen</string>
<string name="enable_queue_limit_desc">Ein Download wird zur gleichen Zeit ausgeführt</string>
<string name="start_downloads">Downloads starten</string>
<string name="pause_downloads">Downloads anhalten</string>
<string name="downloads_storage_ask_title">Frage, wohin heruntergeladen werden soll</string>
<string name="downloads_storage_ask_summary">Du wirst gefragt, wohin du jeden Download speichern willst</string>
<string name="downloads_storage_ask_summary_kitkat">Du wirst gefragt, wohin du jeden Download speichern willst.
\nAktiviere diese Option, wenn du auf die externe SD-Karte herunterladen möchtest</string>
</resources> </resources>

View File

@ -17,6 +17,7 @@
<string name="download_path_title">Carpeta de descarga de vídeo</string> <string name="download_path_title">Carpeta de descarga de vídeo</string>
<string name="download_path_summary">Ruta para almacenar los vídeos descargados</string> <string name="download_path_summary">Ruta para almacenar los vídeos descargados</string>
<string name="download_path_dialog_title">Introducir directorio de descargas para vídeos</string> <string name="download_path_dialog_title">Introducir directorio de descargas para vídeos</string>
<string name="download_choose_new_path">Cambie las carpetas de descarga para que tenga efecto</string>
<string name="default_resolution_title">Resolución por defecto de vídeo</string> <string name="default_resolution_title">Resolución por defecto de vídeo</string>
<string name="play_with_kodi_title">Reproducir con Kodi</string> <string name="play_with_kodi_title">Reproducir con Kodi</string>
<string name="kore_not_found">Aplicación Kore no encontrada. ¿Instalarla?</string> <string name="kore_not_found">Aplicación Kore no encontrada. ¿Instalarla?</string>
@ -458,7 +459,9 @@ abrir en modo popup</string>
<string name="downloads_storage_ask_title">Preguntar dónde descargar</string> <string name="downloads_storage_ask_title">Preguntar dónde descargar</string>
<string name="downloads_storage_ask_summary">Se preguntará dónde guardar cada descarga</string> <string name="downloads_storage_ask_summary">Se preguntará dónde guardar cada descarga</string>
<string name="downloads_storage_ask_summary_kitkat">Se preguntará dónde guardar cada descarga.\nHabilita esta opción si quieres descargar en la tarjeta SD externa</string> <string name="downloads_storage_ask_summary_kitkat">Se preguntará dónde guardar cada descarga.\nHabilita esta opción junto con SAF si quieres descargar en la tarjeta SD externa</string>
<string name="downloads_storage_use_saf_title">Usar SAF</string>
<string name="downloads_storage_use_saf_summary">El Framework de Acceso al Almacenamiento permite descargar en la tarjeta SD externa.\nNota: Algunos los dispositivos no son compatibles</string>
<string name="unsubscribe">Desuscribirse</string> <string name="unsubscribe">Desuscribirse</string>
<string name="tab_new">Nueva pestaña</string> <string name="tab_new">Nueva pestaña</string>

View File

@ -136,7 +136,7 @@
<string name="msg_running_detail">Ukitu xehetasunetarako</string> <string name="msg_running_detail">Ukitu xehetasunetarako</string>
<string name="msg_wait">Itxaron mesedez…</string> <string name="msg_wait">Itxaron mesedez…</string>
<string name="msg_copied">Arbelera kopiatuta</string> <string name="msg_copied">Arbelera kopiatuta</string>
<string name="no_available_dir">Aukeratu eskuragarri dagoen karpeta bat deskargetarako</string> <string name="no_available_dir">Ezarri deskargetarako karpeta bat ezarpenetan geroago</string>
<string name="msg_popup_permission">Baimen hau beharrezkoa da <string name="msg_popup_permission">Baimen hau beharrezkoa da
\nlaster-leiho moduan irekitzeko</string> \nlaster-leiho moduan irekitzeko</string>
<string name="reCaptchaActivity">reCAPTCHA</string> <string name="reCaptchaActivity">reCAPTCHA</string>
@ -176,7 +176,7 @@
<string name="charset_most_special_characters">Karaktere berezi gehienak</string> <string name="charset_most_special_characters">Karaktere berezi gehienak</string>
<string name="enable_search_history_title">Bilaketa historiala</string> <string name="enable_search_history_title">Bilaketa historiala</string>
<string name="enable_search_history_summary">Gorde bilaketak lokalki</string> <string name="enable_search_history_summary">Gorde bilaketak lokalki</string>
<string name="enable_watch_history_title">Historiala eta katxea</string> <string name="enable_watch_history_title">Ikustaldien historiala</string>
<string name="enable_watch_history_summary">Gorde ikusitako bideoen historiala</string> <string name="enable_watch_history_summary">Gorde ikusitako bideoen historiala</string>
<string name="notification_channel_name">NewPipe jakinarazpena</string> <string name="notification_channel_name">NewPipe jakinarazpena</string>
<string name="settings_category_player_title">Erreproduzigailua</string> <string name="settings_category_player_title">Erreproduzigailua</string>
@ -415,7 +415,7 @@
<string name="app_update_notification_channel_name">Aplikazioaren eguneraketaren jakinarazpena</string> <string name="app_update_notification_channel_name">Aplikazioaren eguneraketaren jakinarazpena</string>
<string name="app_update_notification_channel_description">NewPipe aplikazioaren bertsio berrien jakinarazpena</string> <string name="app_update_notification_channel_description">NewPipe aplikazioaren bertsio berrien jakinarazpena</string>
<string name="download_to_sdcard_error_title">Kanpo biltegiratzea ez dago eskuragarri</string> <string name="download_to_sdcard_error_title">Kanpo biltegiratzea ez dago eskuragarri</string>
<string name="download_to_sdcard_error_message">Oraindik ezin da SD txartel batera deskargatu. Deskargen karpeta berrezarri\?</string> <string name="download_to_sdcard_error_message">Ezin da SD txartel batera deskargatu. Deskargen karpeta berrezarri nahi duzu\?</string>
<string name="saved_tabs_invalid_json">Lehenetsitako fitxak erabiltzen, errorea gordetako fitxak irakurtzean</string> <string name="saved_tabs_invalid_json">Lehenetsitako fitxak erabiltzen, errorea gordetako fitxak irakurtzean</string>
<string name="restore_defaults">Berrezarri lehenetsitakoak</string> <string name="restore_defaults">Berrezarri lehenetsitakoak</string>
<string name="restore_defaults_confirmation">Lehenetsitakoak berrezarri nahi dituzu\?</string> <string name="restore_defaults_confirmation">Lehenetsitakoak berrezarri nahi dituzu\?</string>
@ -464,17 +464,39 @@
<string name="stop">Gelditu</string> <string name="stop">Gelditu</string>
<string name="max_retry_msg">Gehienezko saiakerak</string> <string name="max_retry_msg">Gehienezko saiakerak</string>
<string name="max_retry_desc">Deskarga ezeztatu aurretik saiatu beharreko aldi kopurua</string> <string name="max_retry_desc">Deskarga ezeztatu aurretik saiatu beharreko aldi kopurua</string>
<string name="pause_downloads_on_mobile">Pausatu datu mugikorretara aldatzean</string> <string name="pause_downloads_on_mobile">Eten sare neurtuetan</string>
<string name="pause_downloads_on_mobile_desc">Pausatu ezin daitezkeen deskargak berrekingo dira</string> <string name="pause_downloads_on_mobile_desc">Erabilgarria datu mugikorretara aldatzean, hala ere deskarga batzuk ezin dira pausatu</string>
<string name="error_timeout">Konexioaren denbora muga</string> <string name="error_timeout">Konexioaren denbora muga</string>
<string name="show_comments_title">Erakutsi iruzkinak</string> <string name="show_comments_title">Erakutsi iruzkinak</string>
<string name="show_comments_summary">Desgaitu iruzkinak erakusteari erakusteko</string> <string name="show_comments_summary">Desgaitu iruzkinak erakusteari erakusteko</string>
<string name="autoplay_title">Erreprodukzio automatikoa</string> <string name="autoplay_title">Erreprodukzio automatikoa</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">Iruzkinak</item> <item quantity="one">Iruzkinak</item>
<item quantity="other"></item> <item quantity="other"/>
</plurals> </plurals>
<string name="no_comments">Iruzkinik ez</string> <string name="no_comments">Iruzkinik ez</string>
<string name="error_unable_to_load_comments">Ezin izan dira iruzkinak kargatu</string> <string name="error_unable_to_load_comments">Ezin izan dira iruzkinak kargatu</string>
<string name="close">Itxi</string> <string name="close">Itxi</string>
<string name="enable_playback_resume_title">Berrekin erreprodukzioa</string>
<string name="enable_playback_resume_summary">Berrezarri azken erreprodukzio-posizioa</string>
<string name="enable_playback_state_lists_title">Posizioak zerrendetan</string>
<string name="enable_playback_state_lists_summary">Erakutsi erreprodukzio-posizioen adierazleak zerrendetan</string>
<string name="settings_category_clear_data_title">Garbitu datuak</string>
<string name="watch_history_states_deleted">Erreprodukzio-posizioak ezabatuta.</string>
<string name="missing_file">Fitxategia lekuz aldatu edo ezabatu da</string>
<string name="overwrite_unrelated_warning">Badago izen bereko fitxategi bat</string>
<string name="overwrite_failed">ezin da fitxategia gainidatzi</string>
<string name="download_already_pending">Badago izen bereko deskarga bat burutzeke</string>
<string name="error_postprocessing_stopped">NewPipe itxi egin da fitxategian lanean zegoela</string>
<string name="error_insufficient_storage">Ez dago lekurik gailuan</string>
<string name="error_progress_lost">Progresioa galdu da, fitxategia ezabatu delako</string>
<string name="confirm_prompt">Ziur al zaude\?</string>
<string name="enable_queue_limit">Mugatu deskargen ilara</string>
<string name="enable_queue_limit_desc">Deskarga bakarra aldi berean</string>
<string name="start_downloads">Hasi deskargak</string>
<string name="pause_downloads">Pausatu deskargak</string>
<string name="downloads_storage_ask_title">Galdetu non deskargatu</string>
<string name="downloads_storage_ask_summary">Non gorde galdetuko zaizu deskarga bakoitzean</string>
<string name="downloads_storage_ask_summary_kitkat">Non gorde galdetuko zaizu deskarga bakoitzean.
\nGaitu aukera hau kanpo SD txartelean gorde nahi baduzu</string>
</resources> </resources>

View File

@ -55,7 +55,6 @@
<string name="general_error">Erreur</string> <string name="general_error">Erreur</string>
<string name="parsing_error">Impossible d\'analyser le site web</string> <string name="parsing_error">Impossible d\'analyser le site web</string>
<string name="content_not_available">Contenu non disponible</string> <string name="content_not_available">Contenu non disponible</string>
<string name="error_snackbar_message">Désolé, des erreurs se sont produites.</string> <string name="error_snackbar_message">Désolé, des erreurs se sont produites.</string>
<string name="content">Contenu</string> <string name="content">Contenu</string>
<string name="show_age_restricted_content_title">Contenu avec limite d\'âge</string> <string name="show_age_restricted_content_title">Contenu avec limite d\'âge</string>
@ -103,7 +102,7 @@
<string name="msg_running_detail">Appuyer pour plus de détails</string> <string name="msg_running_detail">Appuyer pour plus de détails</string>
<string name="msg_wait">Veuillez patienter…</string> <string name="msg_wait">Veuillez patienter…</string>
<string name="msg_copied">Copié dans le presse-papiers</string> <string name="msg_copied">Copié dans le presse-papiers</string>
<string name="no_available_dir">Sélectionner un dossier de téléchargement disponible</string> <string name="no_available_dir">Veuillez définir un dossier de téléchargement plus tard dans les paramètres</string>
<string name="could_not_load_image">Impossible de charger l\'image</string> <string name="could_not_load_image">Impossible de charger l\'image</string>
<string name="app_ui_crash">Lapplication a crashé</string> <string name="app_ui_crash">Lapplication a crashé</string>
<string name="reCaptchaActivity">reCAPTCHA</string> <string name="reCaptchaActivity">reCAPTCHA</string>
@ -175,7 +174,7 @@
<string name="settings_file_replacement_character_title">Caractère de remplacement</string> <string name="settings_file_replacement_character_title">Caractère de remplacement</string>
<string name="enable_search_history_title">Historique de recherche</string> <string name="enable_search_history_title">Historique de recherche</string>
<string name="enable_search_history_summary">Conserver les recherches sur l\'appareil</string> <string name="enable_search_history_summary">Conserver les recherches sur l\'appareil</string>
<string name="enable_watch_history_title">Historique et cache</string> <string name="enable_watch_history_title">Voir l \'historique</string>
<string name="title_activity_history">Historique</string> <string name="title_activity_history">Historique</string>
<string name="title_history_search">Recherché</string> <string name="title_history_search">Recherché</string>
<string name="title_history_view">Regardé</string> <string name="title_history_view">Regardé</string>
@ -421,7 +420,7 @@
<string name="selection">Sélection</string> <string name="selection">Sélection</string>
<string name="stop">Arrêter</string> <string name="stop">Arrêter</string>
<string name="events">Événements</string> <string name="events">Événements</string>
<string name="download_to_sdcard_error_message">Télécharger vers la carte SD n\'est pas encore possible. Voulez-vous réinitialiser l\'emplacement du dossier \?</string> <string name="download_to_sdcard_error_message">Télécharger vers la carte SD n\'est pas possible. Voulez-vous réinitialiser l\'emplacement du dossier \?</string>
<string name="main_page_content_summary">Quels onglets seront visibles sur la page principale</string> <string name="main_page_content_summary">Quels onglets seront visibles sur la page principale</string>
<string name="updates_setting_title">Mises à jour</string> <string name="updates_setting_title">Mises à jour</string>
<string name="updates_setting_description">Afficher une notification pour proposer une mise à jour de l\'application lorsqu\'une nouvelle version est disponible</string> <string name="updates_setting_description">Afficher une notification pour proposer une mise à jour de l\'application lorsqu\'une nouvelle version est disponible</string>
@ -432,7 +431,7 @@
<string name="app_update_notification_content_title">Une mise à jour de NewPipe disponible !</string> <string name="app_update_notification_content_title">Une mise à jour de NewPipe disponible !</string>
<string name="app_update_notification_content_text">Appuyez pour télécharger</string> <string name="app_update_notification_content_text">Appuyez pour télécharger</string>
<string name="missions_header_finished">Terminé</string> <string name="missions_header_finished">Terminé</string>
<string name="missions_header_pending">Dans la file d\'attente</string> <string name="missions_header_pending">En attente</string>
<string name="paused">En pause</string> <string name="paused">En pause</string>
<string name="download_failed">Téléchargement échoué</string> <string name="download_failed">Téléchargement échoué</string>
<string name="error_timeout">Délai de connection dépassé</string> <string name="error_timeout">Délai de connection dépassé</string>
@ -447,8 +446,8 @@
<string name="download_already_running">Il y a un téléchargement en cours avec ce nom</string> <string name="download_already_running">Il y a un téléchargement en cours avec ce nom</string>
<string name="show_error">Afficher l\'erreur</string> <string name="show_error">Afficher l\'erreur</string>
<string name="label_code">Code</string> <string name="label_code">Code</string>
<string name="error_path_creation">Le fichier ne peut pas être créé</string> <string name="error_path_creation">Le dossier de destination ne peut pas être créé</string>
<string name="error_file_creation">Le dossier de destination ne peut pas être créé</string> <string name="error_file_creation">Le fichier ne peut pas être créé</string>
<string name="error_permission_denied">Autorisation refusée par le système</string> <string name="error_permission_denied">Autorisation refusée par le système</string>
<string name="error_ssl_exception">Échoué de la connexion sécurisée</string> <string name="error_ssl_exception">Échoué de la connexion sécurisée</string>
<string name="error_unknown_host">Le serveur est introuvable</string> <string name="error_unknown_host">Le serveur est introuvable</string>
@ -457,7 +456,7 @@
<string name="error_http_not_found">Introuvable</string> <string name="error_http_not_found">Introuvable</string>
<string name="clear_finished_download">Effacer les téléchargements terminés</string> <string name="clear_finished_download">Effacer les téléchargements terminés</string>
<string name="pause_downloads_on_mobile">Mettre en pause lors du passage en données mobiles</string> <string name="pause_downloads_on_mobile">Mettre en pause lors du passage en données mobiles</string>
<string name="pause_downloads_on_mobile_desc">Les téléchargements qui ne peuvent pas être mis en pause seront redémarrés</string> <string name="pause_downloads_on_mobile_desc">Utile lors du passage aux données mobiles, bien que certains téléchargements ne peuvent pas être suspendus</string>
<string name="list_view_mode">Mode liste</string> <string name="list_view_mode">Mode liste</string>
<string name="post_processing">post-traitement</string> <string name="post_processing">post-traitement</string>
<string name="enqueue">File dattente</string> <string name="enqueue">File dattente</string>
@ -479,4 +478,21 @@
<string name="no_comments">Pas de commentaires</string> <string name="no_comments">Pas de commentaires</string>
<string name="error_unable_to_load_comments">Impossible de charger les commentaires</string> <string name="error_unable_to_load_comments">Impossible de charger les commentaires</string>
<string name="close">Fermer</string> <string name="close">Fermer</string>
<string name="enable_playback_resume_title">Reprendre la lecture</string>
<string name="settings_category_clear_data_title">Effacer les données</string>
<string name="missing_file">Fichier déplacé ou supprimé</string>
<string name="overwrite_failed">ne peut pas remplacer le fichier</string>
<string name="download_already_pending">Il y a déjà un téléchargement en attente avec ce nom</string>
<string name="error_postprocessing_stopped">NewPipe a été fermé alors qu\'il travaillait sur le fichier</string>
<string name="error_insufficient_storage">Aucun espace disponible sur le périphérique</string>
<string name="error_progress_lost">Progression perdue, car le fichier a été effacé</string>
<string name="confirm_prompt">Êtes-vous certain \?</string>
<string name="enable_queue_limit">Limiter la file d\'attente de téléchargement</string>
<string name="enable_queue_limit_desc">Un téléchargement s\'exécutera en même temps</string>
<string name="start_downloads">Démarrer les téléchargements</string>
<string name="pause_downloads">Mettre en pause les téléchargements</string>
<string name="downloads_storage_ask_title">Demander où télécharger</string>
<string name="downloads_storage_ask_summary">On vous demandera où enregistrer chaque téléchargement</string>
<string name="downloads_storage_ask_summary_kitkat">On vous demandera où enregistrer chaque téléchargement.
\nActivez cette option si vous voulez télécharger sur la carte SD externe</string>
</resources> </resources>

View File

@ -52,7 +52,7 @@
<string name="show_search_suggestions_title">הצעות חיפוש</string> <string name="show_search_suggestions_title">הצעות חיפוש</string>
<string name="show_search_suggestions_summary">הצגת הצעות בעת החיפוש</string> <string name="show_search_suggestions_summary">הצגת הצעות בעת החיפוש</string>
<string name="download_dialog_title">הורדה</string> <string name="download_dialog_title">הורדה</string>
<string name="next_video_title">הבא בתור</string> <string name="next_video_title">הבא</string>
<string name="show_next_and_similar_title">להציג סרטונים דומים ובאים בתור</string> <string name="show_next_and_similar_title">להציג סרטונים דומים ובאים בתור</string>
<string name="url_not_supported_toast">כתובת לא נתמכת</string> <string name="url_not_supported_toast">כתובת לא נתמכת</string>
<string name="content_language_title">שפת התוכן המועדפת</string> <string name="content_language_title">שפת התוכן המועדפת</string>
@ -108,7 +108,7 @@
<string name="fragment_whats_new">מה חדש</string> <string name="fragment_whats_new">מה חדש</string>
<string name="enable_search_history_title">היסטוריית חיפוש</string> <string name="enable_search_history_title">היסטוריית חיפוש</string>
<string name="enable_search_history_summary">שמירת שאילתות החיפוש מקומית</string> <string name="enable_search_history_summary">שמירת שאילתות החיפוש מקומית</string>
<string name="enable_watch_history_title">היסטוריה ומטמון</string> <string name="enable_watch_history_title">היסטוריית צפייה</string>
<string name="enable_watch_history_summary">תיעוד הסרטונים שנצפו</string> <string name="enable_watch_history_summary">תיעוד הסרטונים שנצפו</string>
<string name="resume_on_audio_focus_gain_title">להמשיך את הניגון עם החזרת המיקוד</string> <string name="resume_on_audio_focus_gain_title">להמשיך את הניגון עם החזרת המיקוד</string>
<string name="resume_on_audio_focus_gain_summary">להמשיך לנגן לאחר הפרעות (למשל: שיחות טלפון)</string> <string name="resume_on_audio_focus_gain_summary">להמשיך לנגן לאחר הפרעות (למשל: שיחות טלפון)</string>
@ -168,9 +168,9 @@
<string name="no_videos">אין סרטונים</string> <string name="no_videos">אין סרטונים</string>
<plurals name="videos"> <plurals name="videos">
<item quantity="one">סרטון</item> <item quantity="one">סרטון</item>
<item quantity="two">שני סרטונים</item> <item quantity="two">סרטונים</item>
<item quantity="many">%s סרטונים</item> <item quantity="many">סרטונים</item>
<item quantity="other">%s סרטונים</item> <item quantity="other">סרטונים</item>
</plurals> </plurals>
<string name="start">התחלה</string> <string name="start">התחלה</string>
<string name="pause">השהיה</string> <string name="pause">השהיה</string>
@ -189,7 +189,7 @@
<string name="msg_running_detail">יש לגעת לפרטים נוספים</string> <string name="msg_running_detail">יש לגעת לפרטים נוספים</string>
<string name="msg_wait">נא להמתין…</string> <string name="msg_wait">נא להמתין…</string>
<string name="msg_copied">הועתק ללוח</string> <string name="msg_copied">הועתק ללוח</string>
<string name="no_available_dir">נא לבחור תיקיית הורדה זמינה</string> <string name="no_available_dir">נא לציין תיקיית הורדה בהגדרות בהמשך</string>
<string name="msg_popup_permission">הרשאה זו נדרשת לטובת <string name="msg_popup_permission">הרשאה זו נדרשת לטובת
\nפתיחה בחלון צף</string> \nפתיחה בחלון צף</string>
<string name="reCaptchaActivity">reCAPTCHA</string> <string name="reCaptchaActivity">reCAPTCHA</string>
@ -407,7 +407,7 @@
<string name="app_update_notification_channel_name">התראת עדכון יישומון</string> <string name="app_update_notification_channel_name">התראת עדכון יישומון</string>
<string name="app_update_notification_channel_description">התראות על גרסה חדשה של NewPipe</string> <string name="app_update_notification_channel_description">התראות על גרסה חדשה של NewPipe</string>
<string name="download_to_sdcard_error_title">האחסון החיצוני אינו זמין</string> <string name="download_to_sdcard_error_title">האחסון החיצוני אינו זמין</string>
<string name="download_to_sdcard_error_message">אין עדיין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\?</string> <string name="download_to_sdcard_error_message">אין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\?</string>
<string name="saved_tabs_invalid_json">נעשה שימוש בלשוניות בררת המחדל, אירעה שגיאה בעת קריאת הלשוניות שנשמרו</string> <string name="saved_tabs_invalid_json">נעשה שימוש בלשוניות בררת המחדל, אירעה שגיאה בעת קריאת הלשוניות שנשמרו</string>
<string name="restore_defaults">שחזור בררות מחדל</string> <string name="restore_defaults">שחזור בררות מחדל</string>
<string name="restore_defaults_confirmation">לשחזר את בררות המחדל\?</string> <string name="restore_defaults_confirmation">לשחזר את בררות המחדל\?</string>
@ -469,18 +469,42 @@
<string name="stop">עצירה</string> <string name="stop">עצירה</string>
<string name="max_retry_msg">מספר הניסיונות החוזרים המרבי</string> <string name="max_retry_msg">מספר הניסיונות החוזרים המרבי</string>
<string name="max_retry_desc">מספר הניסיונות החוזרים המרבי בטרם ביטול ההורדה</string> <string name="max_retry_desc">מספר הניסיונות החוזרים המרבי בטרם ביטול ההורדה</string>
<string name="pause_downloads_on_mobile">להשהות בעת מעבר לתקשורת נתונים סלולרית</string> <string name="pause_downloads_on_mobile">לייצר הפרעה ברשתות מדודות</string>
<string name="pause_downloads_on_mobile_desc">הורדות שלא ניתן להשהות יופעלו מחדש</string> <string name="pause_downloads_on_mobile_desc">שימושי בעת מעבר לחיבור רשת סלולרית, למרות שישנן הורדות שלא ניתן להשהות</string>
<string name="show_comments_title">הצגת תגובות</string> <string name="show_comments_title">הצגת תגובות</string>
<string name="show_comments_summary">יש להשבית כדי להפסיק הצגת תגובות</string> <string name="show_comments_summary">יש להשבית כדי להפסיק הצגת תגובות</string>
<string name="autoplay_title">ניגון אוטומטי</string> <string name="autoplay_title">ניגון אוטומטי</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">תגובות</item> <item quantity="one">תגובות</item>
<item quantity="two"></item> <item quantity="two"/>
<item quantity="many"></item> <item quantity="many"/>
<item quantity="other"></item> <item quantity="other"/>
</plurals> </plurals>
<string name="no_comments">אין תגובות</string> <string name="no_comments">אין תגובות</string>
<string name="error_unable_to_load_comments">לא ניתן לטעון תגובות</string> <string name="error_unable_to_load_comments">לא ניתן לטעון תגובות</string>
<string name="close">סגירה</string> <string name="close">סגירה</string>
<string name="missions_header_pending">בהמתנה</string>
<string name="enable_playback_resume_title">להמשיך בנגינה</string>
<string name="enable_playback_resume_summary">לשחזר את מיקום הנגינה האחרון</string>
<string name="enable_playback_state_lists_title">מיקומים ברשימות</string>
<string name="enable_playback_state_lists_summary">להציג מחווני מיקומי נגינה ברשימות</string>
<string name="settings_category_clear_data_title">לנקות את הנתונים</string>
<string name="watch_history_states_deleted">מיקומי הנגינה נמחקו.</string>
<string name="missing_file">הקובץ הועבר או נמחק</string>
<string name="overwrite_unrelated_warning">כבר קיים קובץ בשם הזה</string>
<string name="overwrite_failed">לא ניתן לשכתב על הקובץ</string>
<string name="download_already_pending">כבר יש הורדה ממתינה בשם הזה</string>
<string name="error_postprocessing_stopped">NewPipe נסגר בזמן העבודה על הקובץ</string>
<string name="error_insufficient_storage">לא נשאר מקום במכשיר</string>
<string name="error_progress_lost">התהליך אבד כיוון שהקובץ נמחק</string>
<string name="error_timeout">החיבור המתין זמן רב מדי</string>
<string name="confirm_prompt">בוודאות\?</string>
<string name="enable_queue_limit">הגבלת תור ההורדה</string>
<string name="enable_queue_limit_desc">רק הורדה אחת תרוץ בו־זמנית</string>
<string name="start_downloads">התחלת הורדות</string>
<string name="pause_downloads">השהיית הורדות</string>
<string name="downloads_storage_ask_title">לשאול לאן להוריד</string>
<string name="downloads_storage_ask_summary">תופיע שאלה לאן לשמור כל הורדה</string>
<string name="downloads_storage_ask_summary_kitkat">תוצג שאלה היכן לשמור כל הורדה.
\nיש להפעיל זאת אם ברצונך להוריד לכרטיס SD חיצוני.</string>
</resources> </resources>

View File

@ -97,7 +97,7 @@
<string name="msg_running_detail">Sentuh untuk detail</string> <string name="msg_running_detail">Sentuh untuk detail</string>
<string name="msg_wait">Mohon tunggu…</string> <string name="msg_wait">Mohon tunggu…</string>
<string name="msg_copied">Disalin ke papan klip</string> <string name="msg_copied">Disalin ke papan klip</string>
<string name="no_available_dir">Silakan pilih direktori unduhan yang tersedia</string> <string name="no_available_dir">Silakan pilih folder unduhan di pengaturan</string>
<string name="no_player_found">Pemutar stream tidak ditemukan. Apakah anda ingin memasang VLC\?</string> <string name="no_player_found">Pemutar stream tidak ditemukan. Apakah anda ingin memasang VLC\?</string>
<string name="youtube_signature_decryption_error">Tidak bisa dekripsi tanda tangan URL video</string> <string name="youtube_signature_decryption_error">Tidak bisa dekripsi tanda tangan URL video</string>
<string name="app_ui_crash">App/UI rusak</string> <string name="app_ui_crash">App/UI rusak</string>
@ -171,7 +171,7 @@
<string name="tab_main">Utama</string> <string name="tab_main">Utama</string>
<string name="enable_search_history_title">Riwayat pencarian</string> <string name="enable_search_history_title">Riwayat pencarian</string>
<string name="enable_search_history_summary">Simpan pencarian secara lokal</string> <string name="enable_search_history_summary">Simpan pencarian secara lokal</string>
<string name="enable_watch_history_title">Riwayat &amp; Cache</string> <string name="enable_watch_history_title">Riwayat tontonan</string>
<string name="notification_channel_name">Notifikasi NewPipe</string> <string name="notification_channel_name">Notifikasi NewPipe</string>
<string name="title_activity_history">Riwayat</string> <string name="title_activity_history">Riwayat</string>
<string name="history_disabled">Riwayat dinonaktifkan</string> <string name="history_disabled">Riwayat dinonaktifkan</string>
@ -412,7 +412,7 @@
<string name="app_update_notification_channel_name">Notifikasi Pembaruan Apl</string> <string name="app_update_notification_channel_name">Notifikasi Pembaruan Apl</string>
<string name="app_update_notification_channel_description">Notifikasi untuk versi NewPipe baru</string> <string name="app_update_notification_channel_description">Notifikasi untuk versi NewPipe baru</string>
<string name="download_to_sdcard_error_title">Penyimpanan eksternal tidak tersedia</string> <string name="download_to_sdcard_error_title">Penyimpanan eksternal tidak tersedia</string>
<string name="download_to_sdcard_error_message">Belum bisa mengunduh ke kartu SD eksternal. Setel ulang lokasi folder unduhan\?</string> <string name="download_to_sdcard_error_message">Tidak bisa mengunduh ke kartu SD eksternal. Atur ulang lokasi folder unduhan\?</string>
<string name="saved_tabs_invalid_json">Menggunakan tab baku, ralat saat membaca tab yang disimpan</string> <string name="saved_tabs_invalid_json">Menggunakan tab baku, ralat saat membaca tab yang disimpan</string>
<string name="restore_defaults">Kembali ke awal</string> <string name="restore_defaults">Kembali ke awal</string>
<string name="restore_defaults_confirmation">Apakah anda ingin kembali ke awal\?</string> <string name="restore_defaults_confirmation">Apakah anda ingin kembali ke awal\?</string>
@ -461,8 +461,8 @@
<string name="stop">Berhenti</string> <string name="stop">Berhenti</string>
<string name="max_retry_msg">Percobaan maksimum</string> <string name="max_retry_msg">Percobaan maksimum</string>
<string name="max_retry_desc">Jumlah upaya maksimum sebelum membatalkan unduhan</string> <string name="max_retry_desc">Jumlah upaya maksimum sebelum membatalkan unduhan</string>
<string name="pause_downloads_on_mobile">Berhenti ketika beralih ke data seluler</string> <string name="pause_downloads_on_mobile">Berhenti pada jaringan terbatas</string>
<string name="pause_downloads_on_mobile_desc">Unduhan yang tidak dapat dijeda akan diulang dari awal</string> <string name="pause_downloads_on_mobile_desc">Berguna saat beralih ke data seluler, walaupun beberapa unduhan tidak bisa ditangguhkan</string>
<string name="show_comments_title">Tampilkan komentar</string> <string name="show_comments_title">Tampilkan komentar</string>
<string name="show_comments_summary">Nonaktifkan untuk berhenti menampilkan komentar</string> <string name="show_comments_summary">Nonaktifkan untuk berhenti menampilkan komentar</string>
<string name="autoplay_title">Otomatis putar</string> <string name="autoplay_title">Otomatis putar</string>
@ -472,4 +472,26 @@
<string name="no_comments">Tidak ada komentar</string> <string name="no_comments">Tidak ada komentar</string>
<string name="error_unable_to_load_comments">Tidak bisa memuat komentar</string> <string name="error_unable_to_load_comments">Tidak bisa memuat komentar</string>
<string name="close">Tutup</string> <string name="close">Tutup</string>
<string name="enable_playback_resume_title">Lanjutkan pemutaran</string>
<string name="enable_playback_resume_summary">Pulihkan posisi pemutaran terakhir</string>
<string name="enable_playback_state_lists_title">Posisi dalam daftar</string>
<string name="enable_playback_state_lists_summary">Tampilkan indikator posisi pemutaran di dalam daftar</string>
<string name="settings_category_clear_data_title">Hapus data</string>
<string name="watch_history_states_deleted">Posisi pemutaran dihapus.</string>
<string name="missing_file">Berkas dipindah atau dihapus</string>
<string name="overwrite_unrelated_warning">Berkas dengan nama yang sama sudah ada</string>
<string name="overwrite_failed">tidak bisa menimpa ulang berkas</string>
<string name="download_already_pending">Ada unduhan yang dijeda dengan nama ini</string>
<string name="error_postprocessing_stopped">NewPipe telah ditutup saat sedang memproses berkas</string>
<string name="error_insufficient_storage">Tidak ada ruang kosong tersisa pada perangkat</string>
<string name="error_progress_lost">Kehilangan laju, karena berkas telah dihapus</string>
<string name="confirm_prompt">Apakah anda yakin\?</string>
<string name="enable_queue_limit">Batasi antrean unduhan</string>
<string name="enable_queue_limit_desc">Satu unduhan akan berjalan pada waktu yang bersamaan</string>
<string name="start_downloads">Mulai unduh</string>
<string name="pause_downloads">Jeda unduh</string>
<string name="downloads_storage_ask_title">Tanyakan lokasi unduhan</string>
<string name="downloads_storage_ask_summary">Anda akan ditanya lokasi penyimpanan berkas unduhan</string>
<string name="downloads_storage_ask_summary_kitkat">Anda akan ditanya lokasi penyimpanan berkas unduhan.
\nAktifkan opsi ini jika anda ingin mengunduh ke kartu SD eksternal</string>
</resources> </resources>

View File

@ -57,7 +57,6 @@
<string name="youtube_signature_decryption_error">動画のURLを復号できませんでした</string> <string name="youtube_signature_decryption_error">動画のURLを復号できませんでした</string>
<string name="parsing_error">Webサイトを解析できませんでした</string> <string name="parsing_error">Webサイトを解析できませんでした</string>
<string name="content_not_available">コンテンツが利用できません</string> <string name="content_not_available">コンテンツが利用できません</string>
<string name="could_not_setup_download_menu">保存メニューを設定できませんでした</string> <string name="could_not_setup_download_menu">保存メニューを設定できませんでした</string>
<string name="live_streams_not_supported">生放送にはまだ対応していません</string> <string name="live_streams_not_supported">生放送にはまだ対応していません</string>
<string name="content">コンテンツ</string> <string name="content">コンテンツ</string>
@ -100,7 +99,7 @@
<string name="msg_running_detail">タップして詳細を表示</string> <string name="msg_running_detail">タップして詳細を表示</string>
<string name="msg_wait">お待ちください…</string> <string name="msg_wait">お待ちください…</string>
<string name="msg_copied">クリップボードにコピーしました</string> <string name="msg_copied">クリップボードにコピーしました</string>
<string name="no_available_dir">ダウンロードフォルダを選択して下さい</string> <string name="no_available_dir">後ほど設定でダウンロードフォルダを定義してください</string>
<string name="downloads">ダウンロード</string> <string name="downloads">ダウンロード</string>
<string name="downloads_title">ダウンロード</string> <string name="downloads_title">ダウンロード</string>
<string name="error_report_title">不具合報告</string> <string name="error_report_title">不具合報告</string>
@ -169,7 +168,7 @@
<string name="fragment_whats_new">新着</string> <string name="fragment_whats_new">新着</string>
<string name="enable_search_history_title">検索履歴</string> <string name="enable_search_history_title">検索履歴</string>
<string name="enable_search_history_summary">検索した履歴を記憶します</string> <string name="enable_search_history_summary">検索した履歴を記憶します</string>
<string name="enable_watch_history_title">再生履歴とキャッシュ</string> <string name="enable_watch_history_title">視聴履歴</string>
<string name="enable_watch_history_summary">再生した履歴を記憶します</string> <string name="enable_watch_history_summary">再生した履歴を記憶します</string>
<string name="resume_on_audio_focus_gain_title">オーディオフォーカス復帰で再開する</string> <string name="resume_on_audio_focus_gain_title">オーディオフォーカス復帰で再開する</string>
<string name="resume_on_audio_focus_gain_summary">電話などによる中断の後、再生を再開します</string> <string name="resume_on_audio_focus_gain_summary">電話などによる中断の後、再生を再開します</string>
@ -436,8 +435,8 @@
<string name="download_already_running">同じ名前を持つダウンロードが既に進行中です</string> <string name="download_already_running">同じ名前を持つダウンロードが既に進行中です</string>
<string name="show_error">エラーを表示する</string> <string name="show_error">エラーを表示する</string>
<string name="label_code">コード</string> <string name="label_code">コード</string>
<string name="error_path_creation">ファイルを作成できません</string> <string name="error_path_creation">宛先のフォルダーを作成できません</string>
<string name="error_file_creation">宛先フォルダを作成できません</string> <string name="error_file_creation">ファイルを作成できません</string>
<string name="error_permission_denied">権限がシステムによって拒否されました</string> <string name="error_permission_denied">権限がシステムによって拒否されました</string>
<string name="error_ssl_exception">安全な接続に失敗しました</string> <string name="error_ssl_exception">安全な接続に失敗しました</string>
<string name="error_unknown_host">サーバが見つかりませんでした</string> <string name="error_unknown_host">サーバが見つかりませんでした</string>
@ -457,13 +456,13 @@
<string name="brightness_gesture_control_summary">ジェスチャーを使用して、プレーヤーの明るさを制御します</string> <string name="brightness_gesture_control_summary">ジェスチャーを使用して、プレーヤーの明るさを制御します</string>
<string name="file_deleted">ファイルを削除しました</string> <string name="file_deleted">ファイルを削除しました</string>
<string name="app_update_notification_channel_name">アプリの更新通知</string> <string name="app_update_notification_channel_name">アプリの更新通知</string>
<string name="download_to_sdcard_error_message">まだ外部 SD カードにダウンロードできません。ダウンロードフォルダーの場所をリセットしますか\?</string> <string name="download_to_sdcard_error_message">外部 SD カードにダウンロードできません。ダウンロードフォルダーの場所をリセットしますか\?</string>
<string name="saved_tabs_invalid_json">デフォルトのタブを使用します。保存されたタブの読み込みエラーが発生しました</string> <string name="saved_tabs_invalid_json">デフォルトのタブを使用します。保存されたタブの読み込みエラーが発生しました</string>
<string name="main_page_content_summary">メインページに表示されるタブ</string> <string name="main_page_content_summary">メインページに表示されるタブ</string>
<string name="updates_setting_description">新しいバージョンが利用可能なときにアプリの更新を確認する通知を表示します</string> <string name="updates_setting_description">新しいバージョンが利用可能なときにアプリの更新を確認する通知を表示します</string>
<string name="msg_pending_downloads">ダウンロードから %s の保留中の転送を続行します</string> <string name="msg_pending_downloads">ダウンロードから %s の保留中の転送を続行します</string>
<string name="pause_downloads_on_mobile">モバイルデータ通信に切替時に、一時停止する</string> <string name="pause_downloads_on_mobile">従量制課金ネットワークの割り込み</string>
<string name="pause_downloads_on_mobile_desc">一時停止できない場合は再開して継続されます</string> <string name="pause_downloads_on_mobile_desc">モバイルデータ通信に切り替える場合に便利ですが、一部のダウンロードは一時停止できません</string>
<string name="show_comments_title">コメントを表示</string> <string name="show_comments_title">コメントを表示</string>
<string name="show_comments_summary">無効にするとコメントの表示を停止します</string> <string name="show_comments_summary">無効にするとコメントの表示を停止します</string>
<string name="autoplay_title">自動再生</string> <string name="autoplay_title">自動再生</string>
@ -474,4 +473,25 @@
<string name="error_unable_to_load_comments">コメントを読み込めませんでした</string> <string name="error_unable_to_load_comments">コメントを読み込めませんでした</string>
<string name="close">閉じる</string> <string name="close">閉じる</string>
<string name="error_timeout">接続タイムアウト</string> <string name="error_timeout">接続タイムアウト</string>
<string name="enable_playback_resume_title">再生を再開</string>
<string name="enable_playback_resume_summary">最後に再生した位置を復元します</string>
<string name="enable_playback_state_lists_title">リスト内の位置</string>
<string name="enable_playback_state_lists_summary">リストに再生位置インジケーターを表示します</string>
<string name="settings_category_clear_data_title">データをクリア</string>
<string name="watch_history_states_deleted">再生位置を削除しました。</string>
<string name="missing_file">ファイルが移動または削除されました</string>
<string name="overwrite_failed">ファイルを上書きできません</string>
<string name="download_already_pending">この名前の保留中のダウンロードがあります</string>
<string name="error_postprocessing_stopped">ファイルの作業中に NewPipe が閉じられました</string>
<string name="error_insufficient_storage">デバイスに空き容量がありません</string>
<string name="error_progress_lost">ファイルが削除されたため、進行状況が失われました</string>
<string name="confirm_prompt">よろしいですか\?</string>
<string name="enable_queue_limit">ダウンロード キューの制限</string>
<string name="enable_queue_limit_desc">同時に1つのダウンロードが実行されます</string>
<string name="start_downloads">ダウンロードの開始</string>
<string name="pause_downloads">ダウンロードの一時停止</string>
<string name="downloads_storage_ask_title">ダウンロード先を尋ねる</string>
<string name="downloads_storage_ask_summary">ダウンロードのたびに保存する場所を尋ねます</string>
<string name="downloads_storage_ask_summary_kitkat">ダウンロードのたびに保存する場所を尋ねます。
\n外部 SD カードにダウンロードする場合は、このオプションをオンにしてください。</string>
</resources> </resources>

View File

@ -105,7 +105,7 @@
<string name="start">Start</string> <string name="start">Start</string>
<string name="add">Nytt mål</string> <string name="add">Nytt mål</string>
<string name="msg_url_malform">Feilaktig nettadresse eller manglende internettilknytning</string> <string name="msg_url_malform">Feilaktig nettadresse eller manglende internettilknytning</string>
<string name="no_available_dir">Velg ei tilgjengelig nedlastingsmappe</string> <string name="no_available_dir">Velg nedlastingsmappe senere i innstillingene</string>
<string name="reCaptchaActivity">reCAPTCHA</string> <string name="reCaptchaActivity">reCAPTCHA</string>
<string name="reCaptcha_title">reCAPTCHA-oppgave</string> <string name="reCaptcha_title">reCAPTCHA-oppgave</string>
<string name="open_in_popup_mode">Åpne i oppsprettsmodus</string> <string name="open_in_popup_mode">Åpne i oppsprettsmodus</string>
@ -143,7 +143,7 @@
<string name="show_search_suggestions_summary">Vis søkeforslag ved søk</string> <string name="show_search_suggestions_summary">Vis søkeforslag ved søk</string>
<string name="enable_search_history_title">Søkehistorikk</string> <string name="enable_search_history_title">Søkehistorikk</string>
<string name="enable_search_history_summary">Lagre søkemønster lokalt</string> <string name="enable_search_history_summary">Lagre søkemønster lokalt</string>
<string name="enable_watch_history_title">Historikk og mellomlagring</string> <string name="enable_watch_history_title">Visningshistorikk</string>
<string name="enable_watch_history_summary">Lagre visningshistorikk</string> <string name="enable_watch_history_summary">Lagre visningshistorikk</string>
<string name="settings_category_popup_title">Oppsprett</string> <string name="settings_category_popup_title">Oppsprett</string>
<string name="filter">Filter</string> <string name="filter">Filter</string>
@ -414,7 +414,7 @@
<string name="app_update_notification_channel_name">Programoppgraderingsmerknad</string> <string name="app_update_notification_channel_name">Programoppgraderingsmerknad</string>
<string name="app_update_notification_channel_description">Merknader for nye NewPipe-versjoner</string> <string name="app_update_notification_channel_description">Merknader for nye NewPipe-versjoner</string>
<string name="download_to_sdcard_error_title">Ekstern lagring utilgjengelig</string> <string name="download_to_sdcard_error_title">Ekstern lagring utilgjengelig</string>
<string name="download_to_sdcard_error_message">Nedlasting til eksternt SD-kort er ikke mulig enda. Tilbakestill plassering av nedlastingsmappe\?</string> <string name="download_to_sdcard_error_message">Nedlasting til eksternt SD-kort er ikke mulig. Tilbakestill plassering av nedlastingsmappe\?</string>
<string name="saved_tabs_invalid_json">Bruker forvalgte faner, feil under lagring av lagrede faner.</string> <string name="saved_tabs_invalid_json">Bruker forvalgte faner, feil under lagring av lagrede faner.</string>
<string name="restore_defaults">Gjenopprett forvalg</string> <string name="restore_defaults">Gjenopprett forvalg</string>
<string name="restore_defaults_confirmation">Ønsker du å gjenopprette alt til forvalgene\?</string> <string name="restore_defaults_confirmation">Ønsker du å gjenopprette alt til forvalgene\?</string>
@ -462,8 +462,8 @@
<string name="stop">Stopp</string> <string name="stop">Stopp</string>
<string name="max_retry_msg">Maksimalt antall forsøk</string> <string name="max_retry_msg">Maksimalt antall forsøk</string>
<string name="max_retry_desc">Maksimalt antall tilkoblingsforsøk før nedlastingen avblåses</string> <string name="max_retry_desc">Maksimalt antall tilkoblingsforsøk før nedlastingen avblåses</string>
<string name="pause_downloads_on_mobile">Pause ved veksling til mobildata</string> <string name="pause_downloads_on_mobile">Pause ved veksling til kvotebasert nett</string>
<string name="pause_downloads_on_mobile_desc">Nedlastinger som ikke kan pauses vil bli startet på nytt</string> <string name="pause_downloads_on_mobile_desc">Nyttig ved veksling til mobildata, selv om noen nedlastinger ikke kan settes på pause</string>
<string name="show_comments_title">Vis kommentarer</string> <string name="show_comments_title">Vis kommentarer</string>
<string name="show_comments_summary">Skru av for å stoppe visning i kommentarer</string> <string name="show_comments_summary">Skru av for å stoppe visning i kommentarer</string>
<string name="autoplay_title">Spill av automatisk</string> <string name="autoplay_title">Spill av automatisk</string>
@ -474,4 +474,28 @@
<string name="no_comments">Ingen kommenterer</string> <string name="no_comments">Ingen kommenterer</string>
<string name="error_unable_to_load_comments">Kunne ikke laste inn kommentarer</string> <string name="error_unable_to_load_comments">Kunne ikke laste inn kommentarer</string>
<string name="close">Lukk</string> <string name="close">Lukk</string>
<string name="missions_header_pending">Venter</string>
<string name="enable_playback_resume_title">Gjenoppta avspilling</string>
<string name="enable_playback_resume_summary">Fortsett der du slapp</string>
<string name="enable_playback_state_lists_title">Posisjon i lister</string>
<string name="enable_playback_state_lists_summary">Vis avspillingsposisjonsindikator i lister</string>
<string name="settings_category_clear_data_title">Tøm data</string>
<string name="watch_history_states_deleted">Avspillingsposisjon slettet</string>
<string name="missing_file">Fil flyttet eller slettet</string>
<string name="overwrite_unrelated_warning">En fil ved dette navnet finnes allerede</string>
<string name="overwrite_failed">Kan ikke overskrive filen</string>
<string name="download_already_pending">Det finnes en ventende nedlasting ved dette navnet</string>
<string name="error_postprocessing_stopped">NewPipe ble lukket under arbeid med filen</string>
<string name="error_insufficient_storage">Ingen ledig plass på enheten</string>
<string name="error_progress_lost">Framdrift gikk tapt, fordi filen ble slettet</string>
<string name="error_timeout">Tilkoblingsavbrudd</string>
<string name="confirm_prompt">Er du sikker\?</string>
<string name="enable_queue_limit">Begrens nedlastingskø</string>
<string name="enable_queue_limit_desc">Én nedlasting av gangen</string>
<string name="start_downloads">Start nedlastinger</string>
<string name="pause_downloads">Sett nedlastinger på pause</string>
<string name="downloads_storage_ask_title">Spør om hvor ting skal lastes ned til</string>
<string name="downloads_storage_ask_summary">Du vil bli spurt om hvor hver nedlasting skal plasseres</string>
<string name="downloads_storage_ask_summary_kitkat">Du vil bli spurt om hvor hver nedlasting skal plasseres.
\nSkru på dette valget hvis du vil laste ned til eksternt SD-kort.</string>
</resources> </resources>

View File

@ -1,31 +1,500 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version="1.0" encoding="utf-8"?>
<resources><string name="main_bg_subtitle">ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸਰਚ ਦਬਾਓ</string> <resources>
<string name="view_count_text">%1$s ਦੇਖੇ</string> <string name="main_bg_subtitle">ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸਰਚ ਦਬਾਓ</string>
<string name="upload_date_text">%1$s ਤੇ ਪਬਲਿਸ਼ ਕੀਤਾ</string> <string name="view_count_text">%1$s VIEWS</string>
<string name="no_player_found">ਸਟਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ . ਤੁਸੀ VLC ਭਰਨਾ ਚਾਹੋਗੇ?</string> <string name="upload_date_text">%1$s ਨੂੰ ਪਬਲਿਸ਼ ਕੀਤੀ ਗਈ</string>
<string name="no_player_found_toast">ਸਟਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ (ਤੁਸੀਂ vlc ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ)</string> <string name="no_player_found">"ਸਟ੍ਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ। ਤੁਸੀਂ VLC ਭਰਨਾ ਚਾਹੋਗੇ \?"</string>
<string name="install">ਭਰੋ</string> <string name="no_player_found_toast">ਸਟ੍ਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ ਤੁਸੀਂ VLC ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ.</string>
<string name="cancel">ਨਹੀਂ</string> <string name="install">ਇੰਸਟਾਲ</string>
<string name="open_in_browser">Browser ਚ ਖੋਲੋ</string> <string name="cancel">ਰੱਦ ਕਰੋ</string>
<string name="open_in_popup_mode">Popup ਚ ਖੋਲੋ</string> <string name="open_in_browser">ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲੋ</string>
<string name="share">ਭੇਜੋ</string> <string name="open_in_popup_mode">ਪੌਪ-ਅਪ ਵਿਚ ਖੋਲੋ</string>
<string name="share">ਸਾਂਝਾ ਕਰੋ</string>
<string name="download">ਡਾਊਨਲੋਡ</string> <string name="download">ਡਾਊਨਲੋਡ</string>
<string name="controls_download_desc">ਡਾਊਨਲੋਡ ਸਟਰੀਮ ਫਾਈਲ.</string> <string name="controls_download_desc">ਡਾਊਨਲੋਡ ਸਟਰੀਮ ਫਾਈਲ</string>
<string name="search">ਖੋਜੋ</string> <string name="search">ਖੋਜੋ</string>
<string name="settings">ਟਿੰਗਾਂ</string> <string name="settings">ਟਿੰਗਾਂ</string>
<string name="did_you_mean">ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ: %1$s\?</string> <string name="did_you_mean">ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ: %1$s\?</string>
<string name="share_dialog_title">ਭੇਜ</string> <string name="share_dialog_title">ਸਾਂਝਾ ਕਰ</string>
<string name="choose_browser">Browser ਚੁਣੋ</string> <string name="choose_browser">ਬ੍ਰਾਊਜ਼ਰ ਚੁਣੋ</string>
<string name="screen_rotation">ਉਲਟਾਨਾ</string> <string name="screen_rotation">ਰੋਟੇਸ਼ਨ</string>
<string name="use_external_video_player_title">ਹੋਰ ਪਲੇਅਰ ਵਰਤਤ</string> <string name="use_external_video_player_title">ਹੋਰ ਵੀਡੀਓ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰ</string>
<string name="use_external_video_player_summary">ਕੁਝ ਵੀਡੀਓ ਰੈਸੋਲੂਸ਼ਨ ਚੁਣਨ ਨਾਲ ਆਡੀਓ ਮੌਜੂਦ ਨਹੀਂ ਹੋਵੇਗੀ</string> <string name="use_external_video_player_summary">ਕੁਝ ਰੇਸੋਲਿਯੁਸ਼ਨ ਤੇ ਆਵਾਜ਼ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ</string>
<string name="use_external_audio_player_title">ਬਾਹਰੀ ਆਡੀਓ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰੋ</string> <string name="use_external_audio_player_title">ਬਾਹਰੀ ਆਡੀਓ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰੋ</string>
<string name="popup_mode_share_menu_title">NewPipe ਪੋਪਉਪ ਮੋਡ</string> <string name="popup_mode_share_menu_title">NewPipe ਪੌਪ-ਅਪ ਮੋਡ</string>
<string name="subscribe_button_title">ਸਅਬਸਕਰਾਇਬ</string> <string name="subscribe_button_title">ਸਬਸਕ੍ਰਾਈਬ</string>
<string name="subscribed_button_title">ਮੈਂਬਰ ਬਣਏ</string> <string name="subscribed_button_title">ਸਬਸਕ੍ਰਾਈਬ ਕੀਤਾ ਹੈ</string>
<string name="channel_unsubscribed">ਚੈਨਲ ਸਦੱਸਤਾ ਰੱਦ ਕੀਤੀ ਗਈ</string> <string name="channel_unsubscribed">ਚੈਨਲ ਅਨ-ਸਬਸਕ੍ਰਾਈਬ</string>
<string name="subscription_change_failed">ਸਦੱਸਤਾ ਨੂੰ ਬਦਲਣ ਵਿਚ ਅਸਮਰੱਥ ਹੈ</string> <string name="subscription_change_failed">ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਨੂੰ ਬਦਲਣ ਵਿਚ ਅਸਮਰੱਥ</string>
<string name="show_info">ਜਾਣਕਾਰੀ</string> <string name="show_info">ਜਾਣਕਾਰੀ ਵੇਖੋ</string>
<string name="tab_main">ਮੁੱਖ</string> <string name="tab_main">ਮੁੱਖ</string>
<string name="subscription_update_failed">ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਅੱਪਡੇਟ ਕਰਨ ਵਿਚ ਅਸਮਰੱਥ</string>
<string name="tab_subscriptions">ਸਬਸਕ੍ਰਿਪਸ਼ਨ</string>
<string name="tab_bookmarks">ਬੁੱਕਮਾਰਕ ਪਲੇਲਿਸਟਾਂ</string>
<string name="fragment_whats_new">ਨਵਾਂ ਕੀ ਹੈ</string>
<string name="controls_background_title">ਬੈਕਗਰਾਊਂਡ</string>
<string name="controls_popup_title">ਪੋਪ-ਅਪ</string>
<string name="controls_add_to_playlist_title">ਸ਼ਾਮਿਲ ਕਰੋ</string>
<string name="download_path_title">ਵੀਡੀਓ ਦਾ ਡਾਊਨਲੋਡ ਮਾਰਗ</string>
<string name="download_path_summary">ਡਾਉਨਲੋਡ ਕੀਤੇ ਵੀਡੀਓ ਨੂੰ ਸਟੋਰ ਕਰਨ ਦਾ ਮਾਰਗ</string>
<string name="download_path_dialog_title">ਵੀਡੀਓ ਲਈ ਡਾਊਨਲੋਡ ਮਾਰਗ ਭਰੋ</string>
<string name="download_path_audio_title">ਆਡੀਓ ਦਾ ਡਾਊਨਲੋਡ ਫੋਲਡਰ</string>
<string name="download_path_audio_summary">ਡਾਊਨਲੋਡ ਕੀਤੇ ਆਡੀਓ ਇੱਥੇ ਸਟੋਰ ਹਨ</string>
<string name="download_path_audio_dialog_title">ਆਡੀਓ ਫਾਈਲਾਂ ਲਈ ਡਾਊਨਲੋਡ ਮਾਰਗ ਭਰੋ</string>
<string name="autoplay_by_calling_app_title">ਆਟੋ ਪਲੇ</string>
<string name="autoplay_by_calling_app_summary">ਜਦੋਂ ਕਿਸੇ ਹੋਰ ਐਪ ਜਰੀਏ NewPipe ਨੂੰ ਖੋਲਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇਹ ਵੀਡੀਓ ਚਲਾਉਂਦਾ ਹੈ</string>
<string name="default_resolution_title">Default Resolution</string>
<string name="default_popup_resolution_title">Default ਪੌਪ-ਅਪ Resolution</string>
<string name="show_higher_resolutions_title">ਉੱਚ ਰੇਸੋਲਿਯੁਸ਼ਨਾਂ ਵੀ ਦਿਖਾਓ</string>
<string name="show_higher_resolutions_summary">ਸਿਰਫ ਕੁੱਝ ਉਪਕਰਣ ਹੀ 2K/4K ਵੀਡੀਓ ਵਿਖਾਉਣ ਵਿਚ ਸਮਰਥਨ ਹੁੰਦੇ ਹਨ</string>
<string name="play_with_kodi_title">Kodi ਨਾਲ ਚਲਾਓ</string>
<string name="kore_not_found">Kore ਐਪ ਮੌਜੂਦ ਨਹੀਂ ਹੈ। ਕੀ ਤੁਸੀਂ ਇਸਨੂੰ ਇੰਸਟਾਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ \?</string>
<string name="show_play_with_kodi_title">\"Kodi ਨਾਲ ਚਲਾਓ\" ਵਿਕਲਪ ਦਿਖਾਓ</string>
<string name="show_play_with_kodi_summary">Kodi ਮੀਡੀਆ ਸੈਂਟਰ ਰਾਹੀਂ ਵੀਡੀਓ ਚਲਾਉਣ ਲਈ ਇੱਕ ਵਿਕਲਪ ਵਿਖਾਓ</string>
<string name="play_audio">ਆਡੀਓ</string>
<string name="default_audio_format_title">Default ਆਡੀਓ ਫਾਰਮੈਟ</string>
<string name="default_video_format_title">"Default ਵੀਡੀਓ ਫਾਰਮੈਟ"</string>
<string name="theme_title">ਥੀਮ</string>
<string name="light_theme_title">ਸਫੈਦ</string>
<string name="dark_theme_title">ਗੂੜਾ</string>
<string name="black_theme_title">ਕਾਲਾ</string>
<string name="popup_remember_size_pos_title">ਪੌਪ-ਅਪ ਦਾ ਆਕਾਰ ਅਤੇ ਸਥਿਤੀ ਯਾਦ ਰੱਖੋ</string>
<string name="popup_remember_size_pos_summary">ਪੌਪ-ਅਪ ਦਾ ਆਖਰੀ ਅਕਾਰ ਅਤੇ ਸਥਿਤੀ ਯਾਦ ਰੱਖੋ</string>
<string name="use_inexact_seek_title">ਤੇਜ਼ ਪਰ inexact seek ਵਰਤੋ</string>
<string name="use_inexact_seek_summary">Inexact seek ਵੀਡੀਓ ਨੂੰ ਤੇਜ਼ ਪਰ ਅਣ-ਸਟੀਕ ਢੰਗ ਨਾਲ ਅੱਗੇ-ਪਿੱਛੇ ਲਿਜਾਂਦਾ ਹੈ</string>
<string name="download_thumbnail_title">ਥੰਬਨੇਲ ਲੋਡ ਕਰੋ</string>
<string name="download_thumbnail_summary">ਥੰਬਨੇਲ ਲੋਡ, ਡਾਟਾ ਦੀ ਬਚਤ ਅਤੇ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਨੂੰ ਰੋਕਣ ਲਈ ਇਸਨੂੰ ਬੰਦ ਕਰੋ। ਇਸ ਵਿਚ ਤਬਦੀਲੀ ਕਰਨ ਨਾਲ ਇਨ-ਮੈਮੋਰੀ ਅਤੇ ਆਨ-ਡਿਸਕ ਚਿੱਤਰ cache ਦੋਵੇਂ ਮਿਟ ਜਾਣਗੇ।</string>
<string name="thumbnail_cache_wipe_complete_notice">ਚਿੱਤਰ cache ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ</string>
<string name="metadata_cache_wipe_title">Cached metadata ਮਿਟਾਓ</string>
<string name="metadata_cache_wipe_summary">ਸਾਰੇ cached ਵੈੱਬ-ਪੇਜਾਂ ਦਾ ਡਾਟਾ ਮਿਟਾਓ</string>
<string name="metadata_cache_wipe_complete_notice">Metadata cache ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ</string>
<string name="auto_queue_title">ਅਗਲੀ ਸਟ੍ਰੀਮ ਨੂੰ ਆਟੋ-ਕਤਾਰਬੱਧ ਕਰੋ</string>
<string name="auto_queue_summary">"ਇੱਕ ਨਾ-ਦੁਹਰਾਉਣ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਆਖਰੀ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਉਣ ਵੇਲੇ ਆਪਣੇ-ਆਪ ਸ਼ਾਮਿਲ ਕਰੋ"</string>
<string name="player_gesture_controls_title">ਵੀਡੀਓ ਪਲੇਯਰ gesture ਕੰਟਰੋਲ</string>
<string name="player_gesture_controls_summary">ਸਕ੍ਰੀਨ ਲਾਈਟ ਅਤੇ ਆਵਾਜ਼ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ gestures ਦੀ ਵਰਤੋਂ ਕਰੋ</string>
<string name="show_search_suggestions_title">ਖੋਜ ਸੁਝਾਅ</string>
<string name="show_search_suggestions_summary">ਖੋਜ ਕਰਨ ਵੇਲੇ ਸੁਝਾਅ ਦਿਖਾਓ</string>
<string name="enable_search_history_title">ਖੋਜ ਸੂਚੀ</string>
<string name="enable_search_history_summary">ਖੋਜ ਸੂਚੀ ਨੂੰ locally ਸਟੋਰ ਕਰੋ</string>
<string name="enable_watch_history_title">ਪਹਿਲਾਂ ਤੋਂ ਵੇਖੀਆਂ ਹੋਈਆਂ ਚੀਜ਼ਾਂ ਦੀ ਸੂਚੀ</string>
<string name="enable_watch_history_summary">ਦੇਖੇ ਗਏ ਵਿਡੀਓਜ਼ ਦੀ ਸੂਚੀ ਰੱਖੋ</string>
<string name="resume_on_audio_focus_gain_title">Focus gain ਹੋਣ ਤੇ ਦੋਬਾਰਾ ਚਲਾਓ</string>
<string name="resume_on_audio_focus_gain_summary">ਰੁਕਾਵਟਾਂ (ਜਿਵੇਂ ਕਿ ਫੋਨ ਕਾਲਾਂ,ਮੈਸੇਜ) ਤੋਂ ਬਾਅਦ ਪਲੇਅ-ਬੈਕ ਜਾਰੀ ਰੱਖੋ</string>
<string name="download_dialog_title">ਡਾਊਨਲੋਡ</string>
<string name="next_video_title">ਅੱਗੇ</string>
<string name="show_next_and_similar_title">\'ਅੱਗੇ\' ਅਤੇ \'ਸਮਾਨਅੰਤਰ\' ਵੀਡੀਓ ਦਿਖਾਓ</string>
<string name="show_hold_to_append_title">\"Hold to append\" ਸੁਝਾਅ ਦਿਖਾਓ</string>
<string name="show_hold_to_append_summary">ਵੀਡੀਓ ਵੇਰਵੇ ਪੰਨੇ ਤੇ ਬੈਕਗ੍ਰਾਉਂਡ ਜਾਂ ਪੌਪ-ਅਪ ਬਟਨ ਦਬਾਉਣ ਤੇ ਸੰਕੇਤ ਦਿਖਾਓ</string>
<string name="url_not_supported_toast">ਅਣ-ਸਹਾਇਕ URL</string>
<string name="default_content_country_title">ਮੂਲ ਦੇਸ਼ Content</string>
<string name="service_title">ਸੇਵਾ</string>
<string name="settings_category_player_title">ਪਲੇਯਰ</string>
<string name="settings_category_player_behavior_title">ਵਿਵਹਾਰ</string>
<string name="settings_category_video_audio_title">ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ</string>
<string name="settings_category_history_title">ਹਿਸਟਰੀ ਅਤੇ cache</string>
<string name="settings_category_popup_title">ਪੌਪ-ਅਪ</string>
<string name="settings_category_appearance_title">ਦਿੱਖ</string>
<string name="settings_category_other_title">ਹੋਰ</string>
<string name="settings_category_debug_title">ਡੀ-ਬੱਗ</string>
<string name="background_player_playing_toast">ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ</string>
<string name="popup_playing_toast">ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ</string>
<string name="background_player_append">ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ ਕਤਾਰਬੱਧ</string>
<string name="popup_playing_append">ਪੌਪ-ਅਪ ਪਲੇਯਰ ਵਿੱਚ ਕਤਾਰਬੱਧ</string>
<string name="play_btn_text">ਪਲੇ</string>
<string name="content">Content</string>
<string name="show_age_restricted_content_title">ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ Content</string>
<string name="video_is_age_restricted">ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਦਿਖਾਓ ਸੈਟਿੰਗਸ ਤੋਂ ਅਜਿਹੀ ਸਮੱਗਰੀ ਦੀ ਆਗਿਆ ਦੇਣੀ ਸੰਭਵ ਹੈ.</string>
<string name="duration_live">ਲਾਈਵ</string>
<string name="downloads">ਡਾਊਨਲੋਡਸ</string>
<string name="downloads_title">ਡਾਊਨਲੋਡਸ</string>
<string name="error_report_title">Error ਰਿਪੋਰਟ</string>
<string name="all">ਸਾਰੇ</string>
<string name="channel">ਚੈਨਲ</string>
<string name="playlist">ਪਲੇ ਸੂਚੀ</string>
<string name="yes">ਹਾਂ</string>
<string name="later">ਬਾਅਦ ਵਿੱਚ</string>
<string name="disabled">ਬੰਦ ਕੀਤਾ</string>
<string name="filter">ਫਿਲਟਰ</string>
<string name="refresh">ਤਾਜ਼ਾ ਕਰੋ</string>
<string name="clear">ਮਿਟਾਓ</string>
<string name="popup_resizing_indicator_title">ਮੁੜ ਆਕਾਰ</string>
<string name="best_resolution">ਵਧੀਆ Resolution</string>
<string name="undo">ਵਾਪਿਸ</string>
<string name="play_all">ਸਾਰੇ ਚਲਾਓ</string>
<string name="always">ਹਮੇਸ਼ਾ</string>
<string name="just_once">ਸਿਰਫ਼ ਇਸ ਬਾਰ</string>
<string name="file">ਫਾਈਲ</string>
<string name="notification_channel_name">NewPipe ਨੋਟੀਫਿਕੇਸ਼ਨ</string>
<string name="notification_channel_description">NewPipe ਬੈਕਗ੍ਰਾਉਂਡ ਅਤੇ ਪੌਪ-ਅਪ ਪਲੇਅਰਾਂ ਲਈ ਸੂਚਨਾਵਾਂ</string>
<string name="unknown_content">ਅਣਜਾਣ</string>
<string name="toggle_orientation">Orientation ਬਦਲੋ</string>
<string name="switch_to_background">ਬੈਕਗਰਾਊਂਡ ਵਿੱਚ ਬਦਲੋ</string>
<string name="switch_to_popup">ਪੌਪ-ਅਪ ਵਿੱਚ ਬਦਲੋ</string>
<string name="switch_to_main">ਮੁੱਖ ਵਿੱਚ ਬਦਲੋ</string>
<string name="import_data_title">Database ਆਯਾਤ ਕਰੋ</string>
<string name="export_data_title">Database ਨਿਰਯਾਤ ਕਰੋ</string>
<string name="import_data_summary">ਤੁਹਾਡੀ ਮੌਜੂਦਾ ਹਿਸਟਰੀ ਅਤੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨਸ ਨੂੰ Override ਕਰਦਾ ਹੈ</string>
<string name="export_data_summary">ਹਿਸਟਰੀ, ਸੁਬਸਕ੍ਰਿਪਸ਼ਨਸ ਅਤੇ ਪਲੇ-ਸੂਚੀ ਨਿਰਯਾਤ ਕਰੋ</string>
<string name="clear_views_history_title">Watch ਹਿਸਟਰੀ ਮਿਟਾਓ</string>
<string name="clear_views_history_summary">ਚਲਾਈਆਂ ਗਈਆਂ ਸਟ੍ਰੀਮਾਂ ਦੀ ਸੂਚੀ ਮਿਟਾਉਂਦਾ ਹੈ</string>
<string name="delete_view_history_alert">ਕੀ ਸਾਰੀ watch ਹਿਸਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਜਾਵੇ \?</string>
<string name="clear_search_history_title">ਖੋਜ ਸੂਚੀ ਮਿਟਾਓ</string>
<string name="clear_search_history_summary">ਖੋਜ ਸ਼ਬਦਾਂ ਦੀ ਸੂਚੀ ਮਿਟਾਉਂਦਾ ਹੈ</string>
<string name="delete_search_history_alert">ਕੀ ਸਾਰੀ ਖੋਜ ਸੂਚੀ ਮਿਟਾ ਦਿਤੀ ਜਾਵੇ \?</string>
<string name="search_history_deleted">ਖੋਜ ਸੂਚੀ ਮਿਟਾ ਦਿਤੀ ਗਈ ਹੈ.</string>
<string name="general_error">ERROR</string>
<string name="network_error">ਨੈੱਟਵਰਕ ERROR</string>
<string name="could_not_load_thumbnails">ਸਾਰੇ ਥੰਬਨੇਲ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ</string>
<string name="youtube_signature_decryption_error">ਵੀਡੀਓ URL ਦਸਤਖਤ ਡੀਕ੍ਰਿਪਟ ਨਹੀਂ ਹੋ ਸਕਿਆ</string>
<string name="parsing_error">ਵੈਬਸਾਈਟ parse ਨਹੀਂ ਹੋ ਸਕੀ</string>
<string name="light_parsing_error">ਵੈਬਸਾਈਟ ਪੂਰੀ ਤਰਾਂ Parse ਨਹੀਂ ਹੋ ਸਕੀ</string>
<string name="content_not_available">Content ਉਪਲਬਧ ਨਹੀਂ ਹੈ</string>
<string name="could_not_setup_download_menu">ਡਾਊਨਲੋਡ ਮੀਨੂੰ ਸੈਟ-ਅਪ ਨਹੀਂ ਹੋ ਸਕਿਆ</string>
<string name="live_streams_not_supported">ਲਾਈਵ ਸਟ੍ਰੀਮ ਅਜੇ supported ਨਹੀਂ ਹਨ</string>
<string name="could_not_get_stream">ਕੋਈ ਸਟ੍ਰੀਮ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋ ਸਕੀ</string>
<string name="could_not_load_image">ਚਿੱਤਰ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕਿਆ</string>
<string name="app_ui_crash">ਐਪ/UI crashed</string>
<string name="player_stream_failure">ਇਸ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ</string>
<string name="player_unrecoverable_failure">ਅਣਚਾਹਾ ਪਲੇਅਰ ERROR ਆਇਆ ਹੈ</string>
<string name="player_recoverable_failure">ਪਲੇਅਰ ERROR ਤੋਂ Recover ਹੋ ਰਿਹਾ ਹੈ</string>
<string name="external_player_unsupported_link_type">External ਪਲੇਅਰ ਇਸ ਕਿਸਮ ਦੇ ਲਿੰਕਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ</string>
<string name="invalid_url_toast">ਅਵੈਧ URL</string>
<string name="video_streams_empty">ਕੋਈ ਵੀ ਵੀਡੀਓ ਸਟ੍ਰੀਮ ਨਹੀਂ ਮਿਲੀ</string>
<string name="audio_streams_empty">ਕੋਈ ਵੀ ਆਡੀਓ ਸਟ੍ਰੀਮ ਨਹੀਂ ਮਿਲੀ</string>
<string name="invalid_directory">ਅਜਿਹਾ ਕੋਈ ਫੋਲਡਰ ਨਹੀਂ</string>
<string name="invalid_source">ਅਜਿਹਾ ਕੋਈ ਫਾਈਲ/Content ਸਰੋਤ ਨਹੀਂ ਹੈ</string>
<string name="invalid_file">ਫਾਈਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ ਜਾਂ ਇਸ ਨੂੰ ਪੜ੍ਹਨ ਜਾਂ ਲਿਖਣ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ</string>
<string name="file_name_empty_error">ਫਾਈਲ ਨਾਮ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ</string>
<string name="error_occurred_detail">ਇੱਕ ERROR ਆਇਆ ਹੈ: %1$s</string>
<string name="no_streams_available_download">ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਕੋਈ ਸਟ੍ਰੀਮ ਉਪਲਬਧ ਨਹੀਂ ਹੈ</string>
<string name="sorry_string">ਮੁਆਫ ਕਰਨਾ, ਅਜਿਹਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਸੀ.</string>
<string name="error_report_button_text">ਈ-ਮੇਲ ਦੁਆਰਾ ERROR ਦੀ ਰਿਪੋਰਟ ਕਰੋ</string>
<string name="error_snackbar_message">ਮੁਆਫ ਕਰਨਾ, ਕੁਝ ERROR ਹੋਏ ਹਨ.</string>
<string name="error_snackbar_action">ਰਿਪੋਰਟ</string>
<string name="what_device_headline">ਜਾਣਕਾਰੀ:</string>
<string name="what_happened_headline">ਕੀ ਹੋਇਆ ਹੈ:</string>
<string name="info_labels">ਕਿਸ ਬਾਰੇ:\\nRequest:\\nContent ਭਾਸ਼ਾ:\\nService:\\nGMT ਸਮਾਂ:\\nPackage:\\nVersion:\\nOS version:</string>
<string name="your_comment">ਤੁਹਾਡੀ ਟਿੱਪਣੀ (ਅੰਗਰੇਜ਼ੀ ਵਿਚ):</string>
<string name="error_details_headline">ਵੇਰਵੇ:</string>
<string name="list_thumbnail_view_description">ਵੀਡੀਓ preview thumbnail</string>
<string name="detail_thumbnail_view_description">ਵੀਡੀਓ preview thumbnail</string>
<string name="detail_uploader_thumbnail_view_description">ਅਪਲੋਡਰ ਦਾ ਅਵਤਾਰ thumbnail</string>
<string name="detail_likes_img_view_description">ਪਸੰਦ</string>
<string name="detail_dislikes_img_view_description">ਨਾਪਸੰਦ</string>
<string name="use_tor_title">TOR ਦੀ ਵਰਤੋਂ ਕਰੋ</string>
<string name="use_tor_summary">(ਪ੍ਰਯੋਗ ਅਧੀਨ) ਗੋਪਨੀਯਤਾ ਲਈ TOR ਦੁਆਰਾ ਟਰੈਫਿਕ ਨੂੰ ਜਬਰੀ Download ਹੋਣ ਲਈ ਮਜਬੂਰ ਕਰੋ (ਸਟ੍ਰੀਮਿੰਗ ਵੀਡੀਓ ਅਜੇ supported ਨਹੀਂ ਹਨ).</string>
<string name="report_error">ERROR ਰਿਪੋਰਟ ਕਰੋ</string>
<string name="user_report">ਯੂਸਰ ਰਿਪੋਰਟ</string>
<string name="search_no_results">ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ</string>
<string name="empty_subscription_feed_subtitle">ਇਥੇ ਦਾ ਸੁੰਨਾਪਨ ਦੂਰ ਕਰਨ ਲਈ ਕੋਈ ਚੈਨਲ ਸਬਸਕ੍ਰਾਇਬ ਕਰੋ</string>
<string name="detail_drag_description">ਕਤਾਰਬੱਧ ਕਰਨ ਲਈ ਖਿੱਚੋ</string>
<string name="err_dir_create">ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਬਣਾਈ ਜਾ ਸਕਦੀ \'%1$s\'</string>
<string name="info_dir_created">ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਗਈ \'%1$s\'</string>
<string name="video">ਵੀਡੀਓ</string>
<string name="audio">ਆਡੀਓ</string>
<string name="retry">ਦੋਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</string>
<string name="storage_permission_denied">ਸਟੋਰੇਜ਼ Access ਨੂੰ ਅਸਵੀਕਾਰ ਕੀਤਾ ਗਿਆ</string>
<string name="short_thousand">ਹਜ਼ਾਰ</string>
<string name="short_million">ਮਿਲੀਅਨ</string>
<string name="short_billion">ਬਿਲੀਅਨ</string>
<string name="no_subscribers">ਕੋਈ ਸਬਸਕ੍ਰਾਇਬਰ ਨਹੀਂ</string>
<plurals name="subscribers">
<item quantity="one">ਸਬਸਕ੍ਰਾਇਬਰ</item>
<item quantity="other">ਸਬਸਕ੍ਰਾਇਬਰਸ</item>
</plurals>
<string name="no_views">ਕੋਈ views ਨਹੀਂ</string>
<plurals name="views">
<item quantity="one">%s view</item>
<item quantity="other">%s views</item>
</plurals>
<string name="no_videos">ਕੋਈ ਵੀਡੀਓ ਨਹੀਂ</string>
<plurals name="videos">
<item quantity="one">ਵੀਡੀਓ</item>
<item quantity="other">ਵੀਡੀਓਜ਼</item>
</plurals>
<string name="start">ਸ਼ੁਰੂ ਕਰੋ</string>
<string name="pause">ਰੋਕੋ</string>
<string name="view">ਪਲੇ</string>
<string name="create">ਬਣਾਓ</string>
<string name="delete">ਮਿਟਾਓ</string>
<string name="delete_one">ਇੱਕ ਮਿਟਾਓ</string>
<string name="delete_all">ਸਾਰਾ ਮਿਟਾਓ</string>
<string name="checksum">ਚੈੱਕ-ਸਮ</string>
<string name="dismiss">ਬਰਖਾਸਤ ਕਰੋ</string>
<string name="rename">ਨਾਮ ਬਦਲੋ</string>
<string name="add">ਨਵਾਂ ਮਿਸ਼ਨ</string>
<string name="finish">ਠੀਕ ਹੈ</string>
<string name="msg_name">ਫਾਈਲ ਦਾ ਨਾਮ</string>
<string name="msg_threads">threads</string>
<string name="msg_error">ERROR</string>
<string name="msg_server_unsupported">Unsupported ਸਰਵਰ</string>
<string name="msg_exists">ਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
<string name="msg_url_malform">ਖਰਾਬ URL ਜਾਂ ਇੰਟਰਨੈਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ</string>
<string name="msg_running">NewPipe ਡਾਊਨਲੋਡ ਹੋ ਰਿਹਾ ਹੈ</string>
<string name="msg_running_detail">ਵੇਰਵਿਆਂ ਲਈ ਖੋਲੋ</string>
<string name="msg_wait">ਕ੍ਰਿਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ…</string>
<string name="msg_copied">ਕਲਿਪ-ਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਹੋ ਗਿਆ ਹੈ</string>
<string name="no_available_dir">ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਵਿਚੋਂ ਇੱਕ ਡਾਉਨਲੋਡ ਫੋਲਡਰ ਨੂੰ ਚੁਣੋ</string>
<string name="msg_popup_permission">ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ ਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</string>
<string name="one_item_deleted">1 ਆਈਟਮ ਮਿਟਾਈ ਗਈ.</string>
<string name="reCaptchaActivity">ReCaptcha</string>
<string name="reCaptcha_title">ReCaptcha ਚੁਣੌਤੀ</string>
<string name="recaptcha_request_toast">ReCaptcha ਚੁਣੌਤੀ ਲਈ ਬੇਨਤੀ</string>
<string name="settings_category_downloads_title">ਡਾਊਨਲੋਡ</string>
<string name="settings_file_charset_title">ਫਾਈਲ ਨਾਮ ਵਿੱਚ ਪ੍ਰਵਾਨਿਤ ਅੱਖਰ</string>
<string name="settings_file_replacement_character_summary">ਗਲਤ ਅੱਖਰ ਇਸ Value ਨਾਲ ਤਬਦੀਲ ਕੀਤੇ ਜਾਣਗੇ</string>
<string name="settings_file_replacement_character_title">Replacement ਅੱਖਰ</string>
<string name="charset_letters_and_digits">ਅੱਖਰ ਅਤੇ ਅੰਕ</string>
<string name="charset_most_special_characters">ਬਹੁਤੇ ਖ਼ਾਸ ਅੱਖਰ</string>
<string name="toast_no_player">ਇਸ ਫਾਈਲ ਨੂੰ ਚਲਾਉਣ ਲਈ ਕੋਈ ਐਪ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ</string>
<string name="title_activity_about">NewPipe ਬਾਰੇ</string>
<string name="action_settings">ਸੈਟਿੰਗਾਂ</string>
<string name="action_about">ਐਪ ਬਾਰੇ</string>
<string name="title_licenses">ਥਰਡ-ਪਾਰਟੀ ਲਾਇਸੈਂਸ</string>
<string name="copyright" formatted="true">© %1$s ਵਲੋਂ %2$s, %3$s ਅਧੀਨ</string>
<string name="error_unable_to_load_license">ਲਾਇਸੈਂਸ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕਿਆ</string>
<string name="action_open_website">ਵੈਬਸਾਈਟ ਖੋਲ੍ਹੋ</string>
<string name="tab_about">ਐਪ ਬਾਰੇ</string>
<string name="tab_contributors">ਯੋਗਦਾਨ ਪਾਉਣ ਵਾਲੇ</string>
<string name="tab_licenses">ਲਾਇਸੈਂਸ</string>
<string name="app_description">ਐਂਡਰਾਇਡ ਤੇ ਮੁਫਤ ਲਾਈਟਵੇਟ ਸਟ੍ਰੀਮਿੰਗ.</string>
<string name="contribution_title">ਯੋਗਦਾਨ ਪਾਓ</string>
<string name="contribution_encouragement">ਭਾਵੇਂ ਤੁਹਾਡੇ ਕੋਲ ਵਿਚਾਰ ਹਨ; ਅਨੁਵਾਦ, ਡਿਜ਼ਾਈਨ ਬਦਲਾਵ, ਕੋਡ ਦੀ ਸਫਾਈ, ਜਾਂ ਅਸਲ ਭਾਰੀ ਕੋਡ ਬਦਲਾਵ — ਹਰ ਮਦਦ ਦਾ ਸਦਾ ਸਵਾਗਤ ਹੈ. ਜਿੰਨਾ ਇਸ ਨੂੰ ਜ਼ਿਆਦਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਉੱਨਾ ਹੀ ਇਹ ਬਿਹਤਰ ਹੁੰਦਾ ਹੈ!</string>
<string name="view_on_github">GitHub ਤੇ ਵੇਖੋ</string>
<string name="donation_title">ਦਾਨ ਕਰੋ</string>
<string name="donation_encouragement">NewPipe ਵਲੰਟੀਅਰਾਂ ਦੁਆਰਾ ਵਿਕਸਤ ਕੀਤੀ ਗਈ ਹੈ ਜੋ ਤੁਹਾਡੇ ਲਈ ਬਿਹਤਰ ਅਨੁਭਵ ਲਿਆਉਣ ਲਈ ਸਮਾਂ ਬਿਤਾਉਂਦੇ ਹਨ. ਇੱਕ ਕੱਪ ਕਾਫੀ ਦਾ ਆਨੰਦ ਲੈਂਦੇ ਹੋਏ ਡਿਵੈਲਪਰਾਂ ਨੂੰ NewPipe ਨੂੰ ਹੋਰ ਵਧੀਆ ਬਣਾਉਣ ਵਿੱਚ ਸਹਾਇਤਾ ਲਈ ਵਾਪਸ ਦਿਓ.</string>
<string name="give_back">ਵਾਪਸ ਦਿਓ</string>
<string name="website_title">ਵੈਬਸਾਈਟ</string>
<string name="website_encouragement">ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਅਤੇ ਖ਼ਬਰਾਂ ਲਈ NewPipe ਵੈਬਸਾਈਟ ਵੇਖੋ.</string>
<string name="app_license_title">NewPipe\'s ਲਾਇਸੈਂਸ</string>
<string name="app_license">NewPipe ਇੱਕ ਕਾੱਪੀਲਿਫਟ ਮੁਫ਼ਤ ਸਾੱਫਟਵੇਅਰ ਹੈ: ਤੁਸੀਂ ਇਸ ਦੀ ਵਰਤੋਂ, ਅਧਿਐਨ ਅਤੇ ਇਸ ਨੂੰ ਸਾਂਝਾ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸ ਵਿੱਚ ਆਪਣੀ ਮਰਜ਼ੀ ਅਨੁਸਾਰ ਸੁਧਾਰ ਸਕਦੇ ਹੋ. ਖਾਸ ਤੌਰ \'ਤੇ ਤੁਸੀਂ ਇਸ ਨੂੰ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਇਸੈਂਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਦੇ ਅਧੀਨ ਵੰਡ ਸਕਦੇ ਹੋ / ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਮੁਫਤ ਸਾੱਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਾਂ ਤਾਂ ਲਾਇਸੈਂਸ ਦਾ ਵਰਜ਼ਨ 3, ਜਾਂ (ਤੁਹਾਡੇ ਵਿਕਲਪ\' ਤੇ) ਬਾਅਦ ਦਾ ਕੋਈ ਸੰਸਕਰਣ.</string>
<string name="read_full_license">ਲਾਇਸੈਂਸ ਪੜ੍ਹੋ</string>
<string name="title_activity_history">ਹਿਸਟਰੀ</string>
<string name="title_history_search">ਖੋਜਿਆ ਗਿਆ</string>
<string name="title_history_view">ਵੇਖਿਆ ਗਿਆ</string>
<string name="history_disabled">ਹਿਸਟਰੀ ਬੰਦ ਕੀਤੀ ਹੋਈ ਹੈ</string>
<string name="action_history">ਹਿਸਟਰੀ</string>
<string name="history_empty">ਹਿਸਟਰੀ ਖ਼ਾਲੀ ਹੈ</string>
<string name="history_cleared">ਹਿਸਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ</string>
<string name="item_deleted">ਆਈਟਮ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ</string>
<string name="delete_item_search_history">ਕੀ ਤੁਸੀਂ ਇਸ ਚੀਜ਼ ਨੂੰ ਖੋਜ ਸੂਚੀ ਵਿੱਚੋਂ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ\?</string>
<string name="delete_stream_history_prompt">ਕੀ ਤੁਸੀਂ ਇਸ ਨੂੰ ਵੇਖੀ ਗਈ ਸੂਚੀ ਵਿੱਚੋਂ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ \?</string>
<string name="delete_all_history_prompt">ਕੀ ਤੁਸੀਂ ਸੱਚਮੁੱਚ ਹਿਸਟਰੀ ਤੋਂ ਸਾਰੀਆਂ ਆਈਟਮਾਂ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ\?</string>
<string name="title_last_played">ਆਖਰੀ ਚਲਾਈ ਗਈ</string>
<string name="title_most_played">ਸਭ ਤੋਂ ਜਿਆਦਾ ਚਲਾਈ ਗਈ</string>
<string name="main_page_content">ਮੁੱਖ ਪੰਨੇ ਦੀ ਸਮੱਗਰੀ</string>
<string name="blank_page_summary">ਖਾਲੀ ਪੇਜ</string>
<string name="kiosk_page_summary">Kiosk ਪੇਜ</string>
<string name="subscription_page_summary">ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਪੇਜ</string>
<string name="feed_page_summary">ਫੀਡ ਪੇਜ</string>
<string name="channel_page_summary">ਚੈਨਲ ਪੇਜ</string>
<string name="select_a_channel">ਚੈਨਲ ਚੁਣੋ</string>
<string name="no_channel_subscribed_yet">ਅਜੇ ਤੱਕ ਕੋਈ ਚੈਨਲ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਨਹੀਂ</string>
<string name="select_a_kiosk">ਇੱਕ Kiosk ਚੁਣੋ</string>
<string name="export_complete_toast">ਐਕਸਪੋਰਟ ਕੀਤਾ ਗਿਆ</string>
<string name="import_complete_toast">ਇੰਪੋਰਟ ਕੀਤਾ ਗਿਆ</string>
<string name="no_valid_zip_file">ਕੋਈ ਵੈਧ ZIP ਫਾਈਲ ਨਹੀਂ ਹੈ</string>
<string name="could_not_import_all_files">ਚੇਤਾਵਨੀ: ਸਾਰੀਆਂ ਫਾਈਲਾਂ ਇੰਪੋਰਟ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ.</string>
<string name="override_current_data">ਇਹ ਤੁਹਾਡੇ ਮੌਜੂਦਾ ਸੈਟ-ਅਪ ਨੂੰ Override ਕਰ ਦੇਵੇਗਾ.</string>
<string name="kiosk">kiosk</string>
<string name="trending">ਰੁਝਾਨ ਵਿੱਚ</string>
<string name="top_50">ਟੌਪ 50</string>
<string name="new_and_hot">ਨਵਾਂ ਅਤੇ ਗਰਮਾ-ਗਰਮ</string>
<string name="title_activity_background_player">ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ</string>
<string name="title_activity_popup_player">ਪੌਪ-ਅਪ ਪਲੇਅਰ</string>
<string name="play_queue_remove">ਹਟਾਓ</string>
<string name="play_queue_stream_detail">ਵੇਰਵੇ</string>
<string name="play_queue_audio_settings">ਆਡੀਓ ਸੈਟਿੰਗਾਂ</string>
<string name="hold_to_append">ਕਤਾਰਬੱਧ ਕਰਨ ਵਾਸਤੇ ਦਬਾ ਕੇ ਰੱਖੋ</string>
<string name="enqueue_on_background">ਬੈਕਗ੍ਰਆਊਂਡ ਵਿੱਚ ਕਤਾਰਬੱਧ ਕਰੋ</string>
<string name="enqueue_on_popup">ਨਵੇਂ ਪੌਪ-ਅਪ ਵਿੱਚ ਕਤਾਰਬੱਧ ਕਰੋ</string>
<string name="start_here_on_main">ਇਥੇ ਚਲਾਉ</string>
<string name="start_here_on_background">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਉ"</string>
<string name="start_here_on_popup">ਨਵੇਂ ਪੌਪ-ਅਪ ਵਿੱਚ ਚਲਾਓ</string>
<string name="drawer_open">Drawer ਖੋਲੋ</string>
<string name="drawer_close">Drawer ਬੰਦ ਕਰੋ</string>
<string name="drawer_header_action_paceholder_text">ਜਲਦੀ ਹੀ ਇੱਥੇ ਕੁੱਝ ਦਿਖਾਈ ਦੇਵੇਗਾ ;D</string>
<string name="preferred_open_action_settings_title">ਤਰਜੀਹੀ \'OPEN\' ਐਕਸ਼ਨ</string>
<string name="preferred_open_action_settings_summary">Content ਖੋਲ੍ਹਣ ਵੇਲੇ Default ਕਾਰਵਾਈ — %s</string>
<string name="video_player">ਵੀਡੀਓ ਪਲੇਅਰ</string>
<string name="background_player">ਬੈਕਗ੍ਰਾਊਂਡ ਪਲੇਅਰ</string>
<string name="popup_player">ਪੌਪ-ਅਪ ਪਲੇਅਰ</string>
<string name="always_ask_open_action">ਹਮੇਸ਼ਾ ਪੁੱਛੋ</string>
<string name="preferred_player_fetcher_notification_title">ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਾਂ…</string>
<string name="preferred_player_fetcher_notification_message">ਬੇਨਤੀ ਕੀਤਾ Content ਲੋਡ ਕੀਤੀ ਜਾ ਰਿਹਾ ਹੈ</string>
<string name="create_playlist">ਨਵੀਂ ਪਲੇ-ਲਿਸਟ</string>
<string name="delete_playlist">ਮਿਟਾਓ</string>
<string name="rename_playlist">ਨਾਮ ਬਦਲੋ</string>
<string name="playlist_name_input">ਨਾਮ</string>
<string name="append_playlist">ਪਲੇ-ਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ ਕਰੋ</string>
<string name="set_as_playlist_thumbnail">ਪਲੇ-ਲਿਸਟ thumbnail ਦੇ ਤੌਰ ਤੇ ਸੈੱਟ ਕਰੋ</string>
<string name="bookmark_playlist">ਬੁੱਕਮਾਰਕ ਪਲੇ-ਲਿਸਟ</string>
<string name="unbookmark_playlist">ਬੁੱਕਮਾਰਕ ਹਟਾਓ</string>
<string name="delete_playlist_prompt">ਇਸ ਪਲੇ-ਲਿਸਟ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ \?</string>
<string name="playlist_creation_success">ਪਲੇ-ਲਿਸਟ ਬਣਾਈ ਗਈ</string>
<string name="playlist_add_stream_success">ਪਲੇ-ਲਿਸਟ ਕੀਤਾ ਗਿਆ</string>
<string name="playlist_thumbnail_change_success">ਪਲੇ-ਲਿਸਟ thumbnail ਬਦਲਿਆ ਗਿਆ.</string>
<string name="playlist_delete_failure">ਪਲੇ-ਲਿਸਟ ਨੂੰ ਮਿਟਾ ਨਹੀਂ ਸਕੇ.</string>
<string name="caption_none">No captions</string>
<string name="resize_fit">ਫਿੱਟ</string>
<string name="resize_fill">ਭਰੋ</string>
<string name="resize_zoom">ਜ਼ੂਮ</string>
<string name="caption_auto_generated">Auto-Generated</string>
<string name="caption_setting_title">captions</string>
<string name="caption_setting_description">ਪਲੇਅਰ caption, text ਸਕੇਲ ਅਤੇ ਬੈਕਗ੍ਰਾਉਂਡ ਸਟਾਈਲ ਨੂੰ ਸੋਧੋ. ਪ੍ਰਭਾਵ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਐਪ ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ.</string>
<string name="enable_leak_canary_title">LeakCanary ਚਲਾਓ</string>
<string name="enable_leak_canary_summary">ਮੈਮੋਰੀ ਲੀਕ monitoring, ਐਪ ਨੂੰ Unresponsive ਬਣਾ ਸਕਦੀ ਹੈ ਜਦੋਂ ਹੀਪ dumping ਹੁੰਦੀ ਹੈ</string>
<string name="enable_disposed_exceptions_title">Out-of-lifecycle ERROR ਰਿਪੋਰਟ ਕਰੋ</string>
<string name="enable_disposed_exceptions_summary">ਨਿਪਟਾਰੇ ਦੇ ਬਾਅਦ ਟੁਕੜੇ ਜਾਂ ਗਤੀਵਿਧੀਆਂ ਦੇ lifecycle ਤੋਂ ਬਾਹਰ undeliverable Rx ਅਪਵਾਦਾਂ ਬਾਰੇ ਜ਼ਬਰੀ ਰਿਪੋਰਟ ਕਰਨਾ</string>
<string name="import_export_title">ਇੰਪੋਰਟ/ਐਕਸਪੋਰਟ</string>
<string name="import_title">ਇੰਪੋਰਟ</string>
<string name="import_from">ਇੰਪੋਰਟ ਕਰੋ</string>
<string name="export_to">ਐਕਸਪੋਰਟ ਕਰੋ</string>
<string name="import_ongoing">ਇੰਪੋਰਟ ਹੋ ਰਿਹਾ ਹੈ…</string>
<string name="export_ongoing">ਐਕਸਪੋਰਟ ਹੋ ਰਿਹਾ ਹੈ…</string>
<string name="import_file_title">ਇੰਪੋਰਟ ਫਾਈਲ</string>
<string name="previous_export">ਪਿੱਛਲਾ ਐਕਸਪੋਰਟ</string>
<string name="subscriptions_import_unsuccessful">ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ</string>
<string name="subscriptions_export_unsuccessful">ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਐਕਸਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ</string>
<string name="import_youtube_instructions">ਯੂ ਟਿਊਬ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਐਕਸਪੋਰਟ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ:
\n
\n1. ਇਸ URL ਤੇ ਜਾਓ: %1$s
\n2. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ
\n3. ਇੱਕ ਡਾਉਨਲੋਡ ਸ਼ੁਰੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਇਹੀ ਐਕਸਪੋਰਟ ਫਾਈਲ ਹੈ)</string>
<string name="import_soundcloud_instructions">URL ਜਾਂ ਆਪਣੀ ID ਟਾਈਪ ਕਰਕੇ ਸਾਉੰਡ ਕਲਾਉਡ ਪ੍ਰੋਫਾਈਲ ਇੰਪੋਰਟ ਕਰੋ:
\n
\n1. ਇੱਕ ਵੈਬ-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ \"ਡੈਸਕਟਾਪ ਮੋਡ\" ਨੂੰ ਚਾਲੂ ਕਰੋ (ਸਾਈਟ ਮੋਬਾਈਲ ਉਪਕਰਣਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ)
\n2. ਇਸ URL ਤੇ ਜਾਓ: %1$s
\n3. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ
\n4. ਨਿਰਦੇਸ਼ਤ ਕੀਤੇ ਗਏ ਪ੍ਰੋਫਾਈਲ URL ਨੂੰ ਕਾਪੀ ਕਰੋ.</string>
<string name="import_soundcloud_instructions_hint">yourID, Soundcloud.com/yourid</string>
<string name="import_network_expensive_warning">ਯਾਦ ਰੱਖੋ ਕਿ ਇਹ ਕਾਰਜ ਡਾਟਾ consuming ਹੋ ਸਕਦਾ ਹੈ.
\n
\nਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ\?</string>
<string name="playback_speed_control">ਪਲੇਅਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ</string>
<string name="playback_tempo">tempo</string>
<string name="playback_pitch">pitch</string>
<string name="unhook_checkbox">ਅਨਲਿੰਕ (distortion ਪੈਦਾ ਹੋ ਸਕਦੀ ਹੈ)</string>
<string name="import_settings">ਕੀ ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੀ ਇੰਪੋਰਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ\?</string>
<string name="privacy_policy_title">NewPipe\'s ਗੋਪਨੀਯਤਾ ਨੀਤੀ</string>
<string name="privacy_policy_encouragement">NewPipe ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਹੁਤ ਗੰਭੀਰਤਾ ਨਾਲ ਲੈਂਦਾ ਹੈ. ਇਸ ਲਈ ਐਪ ਤੁਹਾਡੀ ਸਹਿਮਤੀ ਤੋਂ ਬਿਨਾਂ ਕੋਈ ਵੀ ਡਾਟਾ ਇੱਕਠਾ ਨਹੀਂ ਕਰਦਾ.
\nNewPipe ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਦੀ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਕਰੈਸ਼ ਰਿਪੋਰਟ ਭੇਜਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਡੇਟਾ ਭੇਜਿਆ ਜਾਂ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ.</string>
<string name="read_privacy_policy">ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਪੜ੍ਹੋ</string>
<string name="start_accept_privacy_policy">ਯੂਰਪੀਅਨ ਜਨਰਲ ਡੇਟਾ ਪ੍ਰੋਟੈਕਸ਼ਨ ਰੈਗੂਲੇਸ਼ਨ (ਜੀਡੀਪੀਆਰ) ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਤੁਹਾਡਾ ਧਿਆਨ NewPipe ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵੱਲ ਖਿੱਚਦੇ ਹਾਂ. ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ.
\nਸਾਨੂੰ BUG ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਪਵੇਗਾ.</string>
<string name="accept">ਸਵੀਕਾਰ ਕਰੋ</string>
<string name="decline">ਅਸਵੀਕਾਰ</string>
<string name="limit_data_usage_none_description">ਕੋਈ ਸੀਮਾ ਨਹੀਂ</string>
<string name="limit_mobile_data_usage_title">ਮੋਬਾਈਲ ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ Resolution ਨੂੰ ਸੀਮਿਤ ਕਰੋ</string>
<string name="minimize_on_exit_title">ਐਪ switch ਕਰਨ ਤੇ minimize ਕਰੋ</string>
<string name="minimize_on_exit_summary">ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਤੋਂ ਦੂਜੇ ਐਪ \'ਤੇ ਜਾਣ ਵੇਲੇ ਐਕਸ਼ਨ</string>
<string name="minimize_on_exit_none_description">ਕੋਈ ਨਹੀਂ</string>
<string name="minimize_on_exit_background_description">ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ Minimize ਕਰੋ</string>
<string name="minimize_on_exit_popup_description">ਪੌਪ-ਅਪ ਪਲੇਅਰ ਵਿੱਚ minimize ਕਰੋ</string>
<string name="skip_silence_checkbox">ਚੁੱਪ ਦੌਰਾਨ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਕਰੋ</string>
<string name="playback_step">ਸਟੇਪ</string>
<string name="playback_reset">ਰੀਸੈੱਟ</string>
<string name="channels">ਚੈਨਲਾਂ</string>
<string name="playlists">ਪਲੇ ਸੂਚੀਆਂ</string>
<string name="tracks">ਟਰੈਕਸ</string>
<string name="users">ਯੂਜ਼ਰਸ</string>
<string name="unsubscribe">ਅਨ-ਸਬਸਕ੍ਰਾਈਬ</string>
<string name="tab_new">ਨਵਾਂ ਟੈਬ</string>
<string name="tab_choose">ਟੈਬ ਚੁਣੋ</string>
<string name="volume_gesture_control_title">ਆਵਾਜ਼ gesture ਕੰਟਰੋਲ</string>
<string name="volume_gesture_control_summary">ਆਵਾਜ਼ ਕੰਟਰੋਲ ਕਰਨ ਲਈ gestures ਦੀ ਵਰਤੋਂ ਕਰੋ</string>
<string name="brightness_gesture_control_title">ਸਕ੍ਰੀਨ ਲਾਈਟ gesture ਕੰਟਰੋਲ</string>
<string name="brightness_gesture_control_summary">ਵੀਡੀਓ ਸਕ੍ਰੀਨ ਲਾਈਟ ਕੰਟਰੋਲ ਕਰਨ ਲਈ gestures ਦੀ ਵਰਤੋਂ ਕਰੋ</string>
<string name="content_language_title">ਮੂਲ ਭਾਸ਼ਾ Content</string>
<string name="settings_category_updates_title">ਅਪਡੇਟਾਂ</string>
<string name="file_deleted">ਫਾਈਲ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ</string>
<string name="app_update_notification_channel_name">ਐਪ ਅੱਪਡੇਟ ਨੋਟੀਫਿਕੇਸ਼ਨ</string>
<string name="app_update_notification_channel_description">ਨਵੇਂ NewPipe ਸੰਸਕਰਣ ਲਈ ਸੂਚਨਾਵਾਂ</string>
<string name="download_to_sdcard_error_title">ਬਾਹਰੀ ਸਟੋਰੇਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ</string>
<string name="download_to_sdcard_error_message">ਬਾਹਰੀ SD ਕਾਰਡ ਤੇ ਡਾਊਨਲੋਡ ਕਰਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ. ਕੀ ਡਾਊਨਲੋਡ ਫੋਲਡਰ ਦੀ ਸਥਿਤੀ ਨੂੰ ਰੀਸੈਟ ਕੀਤਾ ਜਾਵੇ \?</string>
<string name="saved_tabs_invalid_json">Default ਟੈਬ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ, save ਕੀਤੇ ਟੈਬਾਂ ਨੂੰ ਪੜ੍ਹਨ ਵੇਲੇ ERROR</string>
<string name="restore_defaults">Default ਮੁੜ-ਪ੍ਰਾਪਤ ਕਰੋ</string>
<string name="restore_defaults_confirmation">ਕੀ ਤੁਸੀਂ Default ਲਾਗੂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ \?</string>
<string name="subscribers_count_not_available">ਸਬਸਕ੍ਰਾਇਬਰਾਂ ਦੀ ਗਿਣਤੀ ਉਪਲਬਧ ਨਹੀਂ ਹੈ</string>
<string name="main_page_content_summary">ਮੁੱਖ ਪੰਨੇ ਤੇ ਕਿਹੜੇ ਟੈਬ ਦਿਖਾਏ ਜਾਣਗੇ</string>
<string name="selection">ਚੋਣ</string>
<string name="updates_setting_title">ਅਪਡੇਟਾਂ</string>
<string name="updates_setting_description">ਜਦੋਂ ਨਵਾਂ ਸੰਸਕਰਣ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ ਤਾਂ ਐਪ ਅਪਡੇਟ ਨੂੰ ਪੁੱਛਣ ਲਈ ਇੱਕ ਨੋਟੀਫਿਕੇਸ਼ਨ ਦਿਖਾਓ</string>
<string name="list_view_mode">ਲਿਸਟ view ਮੋਡ</string>
<string name="list">ਲਿਸਟ</string>
<string name="grid">ਗਰਿੱਡ</string>
<string name="auto">ਆਟੋ</string>
<string name="switch_view">ਸਵਿੱਚ view</string>
<string name="app_update_notification_content_title">NewPipe ਅੱਪਡੇਟ ਉਪਲਬੱਧ!</string>
<string name="app_update_notification_content_text">ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਦਬਾਓ</string>
<string name="missions_header_finished">ਮੁਕੰਮਲ ਹੋਇਆ</string>
<string name="missions_header_pending">ਬਕਾਇਆ</string>
<string name="paused">ਰੁਕਿਆ</string>
<string name="queued">ਕਤਾਰਬੱਧ</string>
<string name="post_processing">Post-processing</string>
<string name="enqueue">ਕਤਾਰ</string>
<string name="permission_denied">ਸਿਸਟਮ ਦੁਆਰਾ ਕਾਰਵਾਈ ਤੋਂ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ</string>
<string name="download_failed">ਡਾਊਨਲੋਡ ਫੇਲ੍ਹ</string>
<string name="download_finished">ਡਾਊਨਲੋਡ ਮੁਕੰਮਲ</string>
<string name="download_finished_more">%s ਡਾਊਨਲੋਡ ਮੁਕੰਮਲ</string>
<string name="generate_unique_name">ਵਿਲੱਖਣ ਨਾਮ Generate ਕਰੋ</string>
<string name="overwrite">overwrite</string>
<string name="download_already_running">ਇਸ ਨਾਮ ਦੇ ਨਾਲ ਇੱਕ ਡਾਊਨਲੋਡ ਪਹਿਲਾਂ ਤੋਂ ਜਾਰੀ ਹੈ</string>
<string name="show_error">ERROR ਵਿਖਾਓ</string>
<string name="label_code">ਕੋਡ</string>
<string name="error_path_creation">Destination ਫੋਲਡਰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ</string>
<string name="error_file_creation">ਫਾਈਲ ਨਹੀਂ ਬਣਾਈ ਜਾ ਸਕਦੀ</string>
<string name="error_permission_denied">ਸਿਸਟਮ ਦੁਆਰਾ permission Deny ਕੀਤੀ ਗਈ</string>
<string name="error_ssl_exception">ਸੁਰੱਖਿਅਤ ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ</string>
<string name="error_unknown_host">ਸਰਵਰ ਨਹੀਂ ਲੱਭ ਸਕਿਆ</string>
<string name="error_connect_host">ਸਰਵਰ ਨਾਲ ਜੁੜ ਨਹੀਂ ਸਕਦਾ</string>
<string name="error_http_no_content">ਸਰਵਰ ਨੇ ਡਾਟਾ ਨਹੀਂ ਭੇਜਿਆ</string>
<string name="error_http_unsupported_range">ਸਰਵਰ ਮਲਟੀ-Threaded ਡਾਊਨਲੋਡਸ ਨੂੰ ਸਵੀਕਾਰ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਨਾਲ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ @string/msg_threads = 1</string>
<string name="error_http_requested_range_not_satisfiable">ਬੇਨਤੀ ਕੀਤੀ ਸੀਮਾ ਤਸੱਲੀਬਖਸ਼ ਨਹੀਂ ਹੈ</string>
<string name="error_http_not_found">ਨਹੀਂ ਲਭਿਆ</string>
<string name="error_postprocessing_failed">Post-processing ਫੇਲ੍ਹ</string>
<string name="clear_finished_download">ਮੁਕੰਮਲ ਹੋਈਆਂ ਡਾਊਨਲੋਡ ਸਾਫ਼ ਕਰੋ</string>
<string name="msg_pending_downloads">ਡਾਉਨਲੋਡਸ ਤੋਂ ਆਪਣੀਆਂ %s ਬਕਾਇਆ ਟ੍ਰਾਂਸਫਰ ਜਾਰੀ ਰੱਖੋ</string>
<string name="stop">ਰੁੱਕੋ</string>
<string name="max_retry_msg">ਵੱਧ ਤੋਂ ਵੱਧ ਕੋਸ਼ਿਸ਼ਾਂ</string>
<string name="max_retry_desc">ਡਾਉਨਲੋਡ ਰੱਦ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵੱਧ ਤੋਂ ਵੱਧ ਕੋਸ਼ਿਸ਼ਾਂ</string>
<string name="pause_downloads_on_mobile">Metered ਨੈਟਵਰਕਸ ਤੇ ਰੁਕਾਵਟ</string>
<string name="pause_downloads_on_mobile_desc">ਮੋਬਾਈਲ ਡਾਟਾ ਤੇ switch ਕਰਨ ਵੇਲੇ ਲਾਭਦਾਇਕ ਹੈ, ਹਾਲਾਂਕਿ ਕੁਝ ਡਾਉਨਲੋਡਾਂ ਨੂੰ suspend ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ</string>
<string name="events">ਇਵੇੰਟਸ</string>
<string name="conferences">ਕਾਨਫਰੰਸਾਂ</string>
<string name="show_comments_title">ਟਿੱਪਣੀਆਂ ਦਿਖਾਓ</string>
<string name="show_comments_summary">ਟਿੱਪਣੀਆਂ ਵਿਖਾਉਣਾ ਬੰਦ ਕਰਨ ਲਈ ਇਸਨੂੰ ਬੰਦ ਕਰੋ</string>
<string name="autoplay_title">ਆਟੋ-ਪਲੇ</string>
<plurals name="comments">
<item quantity="one">ਟਿਪਣੀਆਂ</item>
<item quantity="other"></item>
</plurals>
<string name="no_comments">ਕੋਈ ਟਿੱਪਣੀ ਨਹੀਂ ਕੀਤੀ ਗਈ</string>
<string name="error_unable_to_load_comments">ਟਿੱਪਣੀਆਂ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੀਆਂ</string>
<string name="close">ਬੰਦ ਕਰੋ</string>
<string name="enable_playback_resume_title">ਪਲੇਅਬੈਕ ਦੋਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ</string>
<string name="enable_playback_resume_summary">ਪਿਛਲੀ ਪਲੇਅਬੈਕ ਸਥਿਤੀ ਤੋਂ ਮੁੜ ਚਲਾਓ</string>
<string name="enable_playback_state_lists_title">ਸੂਚੀਆਂ ਦੀ ਸਥਿਤੀ</string>
<string name="enable_playback_state_lists_summary">ਸੂਚੀਆਂ ਵਿੱਚ ਪਲੇਅਬੈਕ ਸਥਿਤੀ ਸੂਚਕ ਦਿਖਾਓ</string>
<string name="settings_category_clear_data_title">ਡਾਟਾ ਮਿਟਾਓ</string>
<string name="watch_history_deleted">Watch ਹਿਸਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ.</string>
<string name="watch_history_states_deleted">ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ.</string>
<string name="missing_file">ਫਾਈਲ ਮੂਵ ਕੀਤੀ ਜਾਂ ਮਿਟਾਈ ਗਈ ਹੈ</string>
<string name="overwrite_unrelated_warning">ਇਸ ਨਾਮ ਵਾਲੀ ਇੱਕ ਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
<string name="overwrite_finished_warning">ਇਸ ਨਾਮ ਨਾਲ ਡਾਉਨਲੋਡ ਕੀਤੀ ਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
<string name="overwrite_failed">ਫਾਈਲ Overwrite ਨਹੀਂ ਹੋ ਸਕਦੀ</string>
<string name="download_already_pending">ਇਸ ਨਾਮ ਦੇ ਨਾਲ ਇੱਥੇ ਇੱਕ ਬਕਾਇਆ ਡਾਊਨਲੋਡ ਹੈ</string>
<string name="error_postprocessing_stopped">ਫਾਈਲ ਤੇ ਕੰਮ ਕਰਦੇ ਸਮੇਂ NewPipe ਬੰਦ ਕੀਤੀ ਗਈ ਸੀ</string>
<string name="error_insufficient_storage">ਡਿਵਾਈਸ ਤੇ ਕੋਈ ਜਗ੍ਹਾ ਨਹੀਂ ਬਚੀ ਹੈ</string>
<string name="error_progress_lost">Progress lost, ਕਿਉਂਕਿ ਫਾਈਲ ਮਿਟ ਗਈ ਸੀ</string>
<string name="error_timeout">ਕੁਨੈਕਸ਼ਨ timeout</string>
<string name="confirm_prompt">are you sure\?</string>
<string name="enable_queue_limit">ਡਾਊਨਲੋਡ ਸੀਮਾ ਕਤਾਰ ਵਿੱਚ</string>
<string name="enable_queue_limit_desc">one download will run at the same time</string>
<string name="start_downloads">ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰੋ</string>
<string name="pause_downloads">ਡਾਊਨਲੋਡਸ ਰੋਕੋ</string>
<string name="downloads_storage_ask_title">ਪੁੱਛੋ ਕਿੱਥੇ ਡਾਊਨਲੋਡ ਕਰਨਾ ਹੈ</string>
<string name="downloads_storage_ask_summary">ਤੁਹਾਨੂੰ ਪੁੱਛਿਆ ਜਾਵੇਗਾ ਕਿ ਹਰ ਡਾਉਨਲੋਡ ਨੂੰ ਕਿੱਥੇ save ਕਰਨਾ ਹੈ</string>
<string name="downloads_storage_ask_summary_kitkat">ਤੁਹਾਨੂੰ ਪੁੱਛਿਆ ਜਾਵੇਗਾ ਕਿ ਹਰ ਡਾਉਨਲੋਡ ਨੂੰ ਕਿੱਥੇ save ਕਰਨਾ ਹੈ.
\nਜੇ ਤੁਸੀਂ ਬਾਹਰੀ SD ਕਾਰਡ ਤੇ ਡਾਊਨਲੋਡ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਇਸ ਨੂੰ ਚਾਲੂ ਕਰੋ.</string>
</resources> </resources>

View File

@ -96,7 +96,7 @@
<string name="msg_exists">Arquivo já existe</string> <string name="msg_exists">Arquivo já existe</string>
<string name="msg_threads">Threads</string> <string name="msg_threads">Threads</string>
<string name="msg_url_malform">URL inválida ou internet indisponível</string> <string name="msg_url_malform">URL inválida ou internet indisponível</string>
<string name="no_available_dir">Selecione uma pasta para download</string> <string name="no_available_dir">Selecione uma pasta para download posteriormente nas configurações</string>
<string name="no_player_found">Nenhum player de stream encontrado. Deseja instalar o VLC?</string> <string name="no_player_found">Nenhum player de stream encontrado. Deseja instalar o VLC?</string>
<string name="parsing_error">Não foi possível interpretar o site</string> <string name="parsing_error">Não foi possível interpretar o site</string>
<string name="play_audio">Áudio</string> <string name="play_audio">Áudio</string>
@ -177,7 +177,7 @@ abrir em modo popup</string>
<string name="resume_on_audio_focus_gain_summary">Continuar reproduzindo depois de interrupções (exemplo: ligações)</string> <string name="resume_on_audio_focus_gain_summary">Continuar reproduzindo depois de interrupções (exemplo: ligações)</string>
<string name="enable_search_history_title">Histórico de pesquisas</string> <string name="enable_search_history_title">Histórico de pesquisas</string>
<string name="enable_search_history_summary">Armazenar histórico de pesquisa localmente</string> <string name="enable_search_history_summary">Armazenar histórico de pesquisa localmente</string>
<string name="enable_watch_history_title">Histórico &amp; Cache</string> <string name="enable_watch_history_title">Histórico de visualização</string>
<string name="enable_watch_history_summary">Armazenar histórico de vídeos assistidos</string> <string name="enable_watch_history_summary">Armazenar histórico de vídeos assistidos</string>
<string name="title_activity_history">Histórico</string> <string name="title_activity_history">Histórico</string>
<string name="title_history_search">Pesquisado</string> <string name="title_history_search">Pesquisado</string>
@ -416,7 +416,7 @@ abrir em modo popup</string>
<string name="app_update_notification_channel_name">Notificação de Atualização do Aplicativo</string> <string name="app_update_notification_channel_name">Notificação de Atualização do Aplicativo</string>
<string name="app_update_notification_channel_description">Notificações para a versão do NewPipe</string> <string name="app_update_notification_channel_description">Notificações para a versão do NewPipe</string>
<string name="download_to_sdcard_error_title">Armazenamento externo indisponível</string> <string name="download_to_sdcard_error_title">Armazenamento externo indisponível</string>
<string name="download_to_sdcard_error_message">Baixar para o cartão SD externo ainda não é possivel. Resetar o local da pasta de download\?</string> <string name="download_to_sdcard_error_message">Não é possivel baixar para o cartão SD externo . Resetar o local da pasta de download\?</string>
<string name="saved_tabs_invalid_json">Usando abas padrão, erro ao ler abas salvas</string> <string name="saved_tabs_invalid_json">Usando abas padrão, erro ao ler abas salvas</string>
<string name="restore_defaults">Restaurar padrões</string> <string name="restore_defaults">Restaurar padrões</string>
<string name="restore_defaults_confirmation">Deseja restaurar os padrões\?</string> <string name="restore_defaults_confirmation">Deseja restaurar os padrões\?</string>
@ -465,7 +465,7 @@ abrir em modo popup</string>
<string name="max_retry_msg">Tentativas máximas</string> <string name="max_retry_msg">Tentativas máximas</string>
<string name="max_retry_desc">Número máximo de tentativas antes de cancelar o download</string> <string name="max_retry_desc">Número máximo de tentativas antes de cancelar o download</string>
<string name="pause_downloads_on_mobile">Pausar quando trocar para dados móveis</string> <string name="pause_downloads_on_mobile">Pausar quando trocar para dados móveis</string>
<string name="pause_downloads_on_mobile_desc">Downloads que não puderem ser pausados serão reiniciados</string> <string name="pause_downloads_on_mobile_desc">Útil quando trocar para dados móveis, porém alguns downloads não podem ser suspensos</string>
<string name="missions_header_pending">Pendente</string> <string name="missions_header_pending">Pendente</string>
<string name="show_comments_title">Exibir comentários</string> <string name="show_comments_title">Exibir comentários</string>
<string name="show_comments_summary">Desabilitar para parar de exibir comentários</string> <string name="show_comments_summary">Desabilitar para parar de exibir comentários</string>
@ -477,4 +477,27 @@ abrir em modo popup</string>
<string name="no_comments">Não há comentários</string> <string name="no_comments">Não há comentários</string>
<string name="error_unable_to_load_comments">Não foi possível carregar comentários</string> <string name="error_unable_to_load_comments">Não foi possível carregar comentários</string>
<string name="close">Fechar</string> <string name="close">Fechar</string>
<string name="enable_playback_resume_title">Retomar a reprodução</string>
<string name="enable_playback_resume_summary">Restaurar para a última posição da reprodução</string>
<string name="enable_playback_state_lists_title">Posições em listas</string>
<string name="enable_playback_state_lists_summary">Mostrar indicadoers de posição da reprodução nas listas</string>
<string name="settings_category_clear_data_title">Limpar dados</string>
<string name="watch_history_states_deleted">Posições da reprodução apagadas.</string>
<string name="missing_file">Arquivo movido ou apagado</string>
<string name="overwrite_unrelated_warning">Já existe um arquivo com este nome</string>
<string name="overwrite_failed">não é possível sobrescrever o arquivo</string>
<string name="download_already_pending">Existe um download pendente com este nome</string>
<string name="error_postprocessing_stopped">NewPipe foi fechado enquanto manipulava o arquivo</string>
<string name="error_insufficient_storage">Não há espaço disponível no dispositivo</string>
<string name="error_progress_lost">Progresso perdido devido ao arquivo ter sido apagado</string>
<string name="error_timeout">Tempo limite de conexão</string>
<string name="confirm_prompt">Tem certeza\?</string>
<string name="enable_queue_limit">Limitar tamanho da fila de download</string>
<string name="enable_queue_limit_desc">Um download será executado ao mesmo tempo</string>
<string name="start_downloads">Iniciar downloads</string>
<string name="pause_downloads">Pausar downloads</string>
<string name="downloads_storage_ask_title">Perguntar onde salvar o arquivo do download</string>
<string name="downloads_storage_ask_summary">Você será questionado onde salvar o arquivo a cada download</string>
<string name="downloads_storage_ask_summary_kitkat">Você será questionado onde salvar o arquivo a cada download
\nAtive esta opção caso queira fazer o download para um cartão de memória SD externo.</string>
</resources> </resources>

View File

@ -27,7 +27,7 @@
<string name="play_audio">Áudio</string> <string name="play_audio">Áudio</string>
<string name="default_audio_format_title">Formato áudio padrão</string> <string name="default_audio_format_title">Formato áudio padrão</string>
<string name="download_dialog_title">Descarregar</string> <string name="download_dialog_title">Descarregar</string>
<string name="next_video_title">A seguir</string> <string name="next_video_title">Seguinte</string>
<string name="show_next_and_similar_title">Mostrar vídeos \'Seguintes\' e \'Semelhantes\'</string> <string name="show_next_and_similar_title">Mostrar vídeos \'Seguintes\' e \'Semelhantes\'</string>
<string name="url_not_supported_toast">URL não suportado</string> <string name="url_not_supported_toast">URL não suportado</string>
<string name="content_language_title">Idioma padrão do conteúdo</string> <string name="content_language_title">Idioma padrão do conteúdo</string>
@ -57,7 +57,6 @@
<string name="youtube_signature_decryption_error">Incapaz de descodificar a assinatura do vídeo</string> <string name="youtube_signature_decryption_error">Incapaz de descodificar a assinatura do vídeo</string>
<string name="parsing_error">Incapaz de processar o site</string> <string name="parsing_error">Incapaz de processar o site</string>
<string name="content_not_available">Conteúdo não disponível</string> <string name="content_not_available">Conteúdo não disponível</string>
<string name="content">Conteúdo</string> <string name="content">Conteúdo</string>
<string name="show_age_restricted_content_title">Restringir conteúdo por idade</string> <string name="show_age_restricted_content_title">Restringir conteúdo por idade</string>
<string name="video_is_age_restricted">Mostrar vídeo com restrição de idade. É possível permitir tal material nas Configurações.</string> <string name="video_is_age_restricted">Mostrar vídeo com restrição de idade. É possível permitir tal material nas Configurações.</string>
@ -100,7 +99,7 @@
<string name="msg_running_detail">Toque para detalhes</string> <string name="msg_running_detail">Toque para detalhes</string>
<string name="msg_wait">Por favor aguarde…</string> <string name="msg_wait">Por favor aguarde…</string>
<string name="msg_copied">Copiado para a área de transferência</string> <string name="msg_copied">Copiado para a área de transferência</string>
<string name="no_available_dir">Por favor selecione a pasta para as descargas</string> <string name="no_available_dir">Por favor selecione nas configurações a pasta para as descargas</string>
<string name="finish">OK</string> <string name="finish">OK</string>
<string name="msg_threads">Processos</string> <string name="msg_threads">Processos</string>
<string name="msg_running">Descarga do NewPipe</string> <string name="msg_running">Descarga do NewPipe</string>
@ -169,7 +168,7 @@
<string name="fragment_whats_new">Novidades</string> <string name="fragment_whats_new">Novidades</string>
<string name="enable_search_history_title">Histórico de pesquisa</string> <string name="enable_search_history_title">Histórico de pesquisa</string>
<string name="enable_search_history_summary">Guardar termos de pesquisa localmente</string> <string name="enable_search_history_summary">Guardar termos de pesquisa localmente</string>
<string name="enable_watch_history_title">Histórico e cache</string> <string name="enable_watch_history_title">Ver história</string>
<string name="enable_watch_history_summary">Guardar histórico de vídeos assistidos</string> <string name="enable_watch_history_summary">Guardar histórico de vídeos assistidos</string>
<string name="resume_on_audio_focus_gain_title">Retomar ao ganhar foco</string> <string name="resume_on_audio_focus_gain_title">Retomar ao ganhar foco</string>
<string name="resume_on_audio_focus_gain_summary">Continuar reprodução após interrupções (ex. chamadas)</string> <string name="resume_on_audio_focus_gain_summary">Continuar reprodução após interrupções (ex. chamadas)</string>
@ -194,8 +193,8 @@
</plurals> </plurals>
<string name="no_videos">Sem vídeos</string> <string name="no_videos">Sem vídeos</string>
<plurals name="videos"> <plurals name="videos">
<item quantity="one">vídeo</item> <item quantity="one">Vídeo</item>
<item quantity="other">vídeos</item> <item quantity="other">Vídeos</item>
</plurals> </plurals>
<string name="settings_category_downloads_title">Descarregar</string> <string name="settings_category_downloads_title">Descarregar</string>
<string name="settings_file_charset_title">Caracteres permitidos em nomes de ficheiros</string> <string name="settings_file_charset_title">Caracteres permitidos em nomes de ficheiros</string>
@ -414,7 +413,7 @@
<string name="app_update_notification_channel_name">Notificação de atualização</string> <string name="app_update_notification_channel_name">Notificação de atualização</string>
<string name="app_update_notification_channel_description">Notificações para uma nova versão do NewPipe</string> <string name="app_update_notification_channel_description">Notificações para uma nova versão do NewPipe</string>
<string name="download_to_sdcard_error_title">Armazenamento externo indisponível</string> <string name="download_to_sdcard_error_title">Armazenamento externo indisponível</string>
<string name="download_to_sdcard_error_message">Ainda não é possível descarrgar ao cartão SD. Repor localização da pasta de descargas\?</string> <string name="download_to_sdcard_error_message">Não é possível descarregar ao cartão SD. Repor a localização da pasta de descargas\?</string>
<string name="saved_tabs_invalid_json">Erro ao ler os separadores guardados e serão usados os separadores padrão</string> <string name="saved_tabs_invalid_json">Erro ao ler os separadores guardados e serão usados os separadores padrão</string>
<string name="restore_defaults">Restaurar predefinições</string> <string name="restore_defaults">Restaurar predefinições</string>
<string name="restore_defaults_confirmation">Deseja restaurar as predefinições\?</string> <string name="restore_defaults_confirmation">Deseja restaurar as predefinições\?</string>
@ -461,8 +460,8 @@
<string name="stop">Parar</string> <string name="stop">Parar</string>
<string name="max_retry_msg">Tentativas máximas</string> <string name="max_retry_msg">Tentativas máximas</string>
<string name="max_retry_desc">Número máximo de tentativas antes de cancelar a descarga</string> <string name="max_retry_desc">Número máximo de tentativas antes de cancelar a descarga</string>
<string name="pause_downloads_on_mobile">Pausa na comutação para dados móveis</string> <string name="pause_downloads_on_mobile">Interromper em redes limitadas</string>
<string name="pause_downloads_on_mobile_desc">Descarregamentos que não podem ser pausados serão reiniciados</string> <string name="pause_downloads_on_mobile_desc">Útil ao mudar para dados móveis, embora alguns descarregamentos não possam ser suspensos</string>
<string name="events">Eventos</string> <string name="events">Eventos</string>
<string name="conferences">Conferências</string> <string name="conferences">Conferências</string>
<string name="missions_header_pending">Pendente</string> <string name="missions_header_pending">Pendente</string>
@ -471,9 +470,32 @@
<string name="autoplay_title">Reprodução automática</string> <string name="autoplay_title">Reprodução automática</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">Comentários</item> <item quantity="one">Comentários</item>
<item quantity="other"></item> <item quantity="other"/>
</plurals> </plurals>
<string name="no_comments">Sem comentários</string> <string name="no_comments">Sem comentários</string>
<string name="error_unable_to_load_comments">Não foi possível carregar comentários</string> <string name="error_unable_to_load_comments">Não foi possível carregar comentários</string>
<string name="close">Fechar</string> <string name="close">Fechar</string>
<string name="enable_playback_resume_title">Continuar a reprodução</string>
<string name="enable_playback_resume_summary">Restaurar a última posição de reprodução</string>
<string name="enable_playback_state_lists_title">Posições nas listas</string>
<string name="enable_playback_state_lists_summary">Mostrar indicadores de posição de reprodução em listas</string>
<string name="settings_category_clear_data_title">Limpar dados</string>
<string name="watch_history_states_deleted">Posições de reprodução apagadas.</string>
<string name="missing_file">Ficheiro movido ou apagado</string>
<string name="overwrite_unrelated_warning">Um ficheiro com este nome já existe</string>
<string name="overwrite_failed">não é possível sobrescrever o ficheiro</string>
<string name="download_already_pending">Há um descarregamento pendente com este nome</string>
<string name="error_postprocessing_stopped">NewPipe foi fechado enquanto trabalhava no ficheiro</string>
<string name="error_insufficient_storage">Não há espaço disponível no aparelho</string>
<string name="error_progress_lost">Progresso perdido, porque o fiheiro foi apagado</string>
<string name="error_timeout">Tempo limite de conexão</string>
<string name="confirm_prompt">Tem certeza\?</string>
<string name="enable_queue_limit">Limitar a fila de descarregamentos</string>
<string name="enable_queue_limit_desc">Descarregar um só ao mesmo tempo</string>
<string name="start_downloads">Iniciar descarregamentos</string>
<string name="pause_downloads">Pausa descarregamentos</string>
<string name="downloads_storage_ask_title">Perguntar para onde descarregar</string>
<string name="downloads_storage_ask_summary">Você será perguntado para onde gravar cada descarregamento</string>
<string name="downloads_storage_ask_summary_kitkat">Você será perguntado para onde gravar cada descarregamento.
\nAtive-o se pretender descarregar para um cartão SD externo.</string>
</resources> </resources>

View File

@ -1,2 +1,447 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources></resources> <resources>
<string name="main_bg_subtitle">แตะที่ปุ่มค้นหาเพื่อเริ่มต้น</string>
<string name="view_count_text">%1$s วิว</string>
<string name="upload_date_text">เผยแพร่เมื่อ %1$s</string>
<string name="no_player_found">ไม่พบแอปที่สามารถสตรีมสื่อวีดีโอได้ คุณต้องการติดตั้ง VLC หรือไม่\?</string>
<string name="no_player_found_toast">ไม่พบแอปที่สามารถสตรีมสื่อวีดีโอได้ (คุณสามารถติดตั้ง VLC เพื่อดูวีดีโอ)</string>
<string name="install">ติดตั้ง</string>
<string name="cancel">ยกเลิก</string>
<string name="open_in_browser">เปิดด้วยเว็บบราวเซอร์</string>
<string name="open_in_popup_mode">เปิดในโหมดป๊อปอัพ</string>
<string name="share">แชร์</string>
<string name="download">ดาวน์โหลด</string>
<string name="controls_download_desc">ดาวน์โหลดไฟล์สตรีม</string>
<string name="search">ค้นหา</string>
<string name="settings">ตั้งค่า</string>
<string name="did_you_mean">หรือคุณหมายถึง: %1$s\?</string>
<string name="share_dialog_title">แชร์ด้วย</string>
<string name="choose_browser">เลือกบราวเซอร์</string>
<string name="screen_rotation">หมุน</string>
<string name="use_external_video_player_title">ใช้แอปเล่นวีดีโอภายนอก</string>
<string name="use_external_audio_player_title">ใช้แอปเล่นเสียงภายนอก</string>
<string name="popup_mode_share_menu_title">NewPipe โหมดป๊อปอัพ</string>
<string name="subscribe_button_title">บอกรับ</string>
<string name="subscribed_button_title">บอกรับแล้ว</string>
<string name="unsubscribe">ยกเลิกการบอกรับ</string>
<string name="channel_unsubscribed">ยกเลิกการบอกรับช่องแล้ว</string>
<string name="subscription_change_failed">ไม่สามารถเปลี่ยนสถานะการบอกรับได้</string>
<string name="subscription_update_failed">ไม่สามารถอัปเดตการบอกรับข้อมูล</string>
<string name="show_info">แสดงข้อมูล</string>
<string name="tab_main">หน้าหลัก</string>
<string name="tab_subscriptions">การสมัครรับข้อมูล</string>
<string name="tab_bookmarks">เพลย์ลิสต์ที่เก็บไว้</string>
<string name="tab_new">แท็บใหม่</string>
<string name="tab_choose">เลือกแท็บ</string>
<string name="fragment_whats_new">มีอะไรใหม่</string>
<string name="controls_background_title">พื้นหลัง</string>
<string name="controls_popup_title">ป๊อปอัพ</string>
<string name="controls_add_to_playlist_title">เพิ่มไปยัง</string>
<string name="download_path_title">เส้นทางการดาวน์โหลดวิดีโอ</string>
<string name="download_path_summary">เส้นทางในการจัดเก็บวิดีโอที่ดาวน์โหลดมา</string>
<string name="download_path_dialog_title">ป้อนเส้นทางการดาวน์โหลดสำหรับวิดีโอ</string>
<string name="download_path_audio_title">โฟลเดอร์ที่ดาวน์โหลดเสียง</string>
<string name="download_path_audio_summary">เสียงที่ดาวน์โหลดจะถูกเก็บไว้ที่นี่</string>
<string name="download_path_audio_dialog_title">ป้อนเส้นทางการดาวน์โหลดสำหรับไฟล์เสียง</string>
<string name="autoplay_by_calling_app_title">เล่นอัตโนมัติ</string>
<string name="autoplay_by_calling_app_summary">เล่นวิดีโอเมื่อ NewPipe ถูกเรียกจากแอปอื่น</string>
<string name="default_resolution_title">ความละเอียดเริ่มต้น</string>
<string name="default_popup_resolution_title">ความละเอียดเริ่มต้นในโหมดป๊อปอัพ</string>
<string name="show_higher_resolutions_title">แสดงความละเอียดที่สูงขึ้น</string>
<string name="show_higher_resolutions_summary">เฉพาะบางอุปกรณ์ที่รองรับการเล่นวิดีโอ 2K/4K</string>
<string name="play_with_kodi_title">เปิดด้วย Kodi</string>
<string name="kore_not_found">ไม่พบแอป Kore จะติดตั้งหรือไม่\?</string>
<string name="show_play_with_kodi_title">แสดงตัวเลือก \"เปิดด้วย Kodi\"</string>
<string name="show_play_with_kodi_summary">แสดงตัวเลือกในการเล่นวิดีโอผ่าน Kodi media center</string>
<string name="play_audio">เสียง</string>
<string name="default_audio_format_title">ฟอร์แมตเสียงเริ่มต้น</string>
<string name="default_video_format_title">ฟอร์แมตวีดีโอเริ่มต้น</string>
<string name="theme_title">ธีม</string>
<string name="light_theme_title">สว่าง</string>
<string name="dark_theme_title">มืด</string>
<string name="black_theme_title">สีดำ</string>
<string name="popup_remember_size_pos_title">จำขนาดและตำแหน่งของป๊อปอัพ</string>
<string name="popup_remember_size_pos_summary">จำขนาดและตำแหน่งสุดท้ายของป๊อปอัพ</string>
<string name="use_inexact_seek_title">ใช้การข้ามที่ไม่แม่นยำ</string>
<string name="use_inexact_seek_summary">การข้ามช่วงที่ไม่แม่นยำจะทำให้เลื่อนไปยังตำแหน่งเวลาที่ต้องการได้เร็วขึ้น แต่จะลดความแม่นยำในการลากตำแหน่งลง</string>
<string name="download_thumbnail_title">โหลดภาพขนาดย่อ</string>
<string name="show_comments_title">แสดงความคิดเห็น</string>
<string name="show_comments_summary">ปิดใช้งานเพื่อซ่อนความคิดเห็น</string>
<string name="download_thumbnail_summary">ปิดเพื่อป้องกันการโหลดรูปขนาดย่อ ลดการใช้ข้อมูลและหน่วยความจำ การเปลี่ยนแปลงล้างแคชภาพในหน่วยความจำและบนดิสก์</string>
<string name="thumbnail_cache_wipe_complete_notice">ล้างแคชของรูปภาพแล้ว</string>
<string name="metadata_cache_wipe_summary">ลบข้อมูลเว็บเพจที่แคชไว้ทั้งหมด</string>
<string name="auto_queue_title">คิววีดีโอถัดไปโดยอัตโนมัติ</string>
<string name="auto_queue_summary">ต่อท้ายวีดีโอที่เกี่ยวข้องโดยอัตโนมัติเมื่อเล่นถึงรายการสุดท้ายในกรณีที่ไม่ได้ตั้งให้เล่นซ้ำ</string>
<string name="volume_gesture_control_title">การควบคุมระดับเสียงด้วยท่าทาง</string>
<string name="volume_gesture_control_summary">ใช้ท่าทางสัมผัสเพื่อควบคุมระดับเสียงของเครื่องเล่น</string>
<string name="brightness_gesture_control_title">การควบคุมความสว่างด้วยท่าทาง</string>
<string name="brightness_gesture_control_summary">ใช้ท่าทางสัมผัสเพื่อควบคุมความสว่างของเครื่องเล่น</string>
<string name="player_gesture_controls_title">ตัวควบคุมท่าทางของโปรแกรมเล่น</string>
<string name="player_gesture_controls_summary">ใช้ท่าทางสัมผัสเพื่อควบคุมความสว่างและระดับเสียงของเครื่องเล่น</string>
<string name="show_search_suggestions_title">คำแนะนำการค้นหา</string>
<string name="show_search_suggestions_summary">แสดงคำแนะนำเมื่อทำการค้นหา</string>
<string name="enable_search_history_title">ประวัติการค้นหา</string>
<string name="enable_search_history_summary">จัดเก็บคำที่เคยค้นหาไว้ในเครื่อง</string>
<string name="enable_watch_history_title">ประวัติและแคช</string>
<string name="enable_watch_history_summary">ติดตามวิดีโอที่ดคยดู</string>
<string name="resume_on_audio_focus_gain_summary">เล่นต่อหลังการขัดจังหวะ (เช่น การรับโทรศัพท์)</string>
<string name="download_dialog_title">ดาวน์โหลด</string>
<string name="next_video_title">วีดีโอถัดไป</string>
<string name="autoplay_title">เล่นอัตโนมัติ</string>
<string name="show_next_and_similar_title">แสดงวิดีโอ \'ถัดไป\' และ \'ที่คล้ายกัน\'</string>
<string name="show_hold_to_append_title">แสดงเคล็ดลับ \"แตะค้างเพื่อเพิ่ม\"</string>
<string name="show_hold_to_append_summary">แสดงเคล็ดลับเมื่อกดปุ่มพื้นหลังหรือป๊อปอัพในหน้ารายละเอียดวิดีโอ</string>
<string name="url_not_supported_toast">URL ที่ไม่สนับสนุน</string>
<string name="default_content_country_title">ประเทศเริ่มต้นของเนื้อหา</string>
<string name="service_title">บริการ</string>
<string name="content_language_title">ภาษาของเนื้อหาเริ่มต้น</string>
<string name="settings_category_player_title">เครื่องเล่น</string>
<string name="settings_category_player_behavior_title">พฤติกรรม</string>
<string name="settings_category_video_audio_title">วิดีโอและเสียง</string>
<string name="settings_category_history_title">ประวัติและแคช</string>
<string name="settings_category_popup_title">ป๊อปอัพ</string>
<string name="settings_category_appearance_title">ลักษณะ</string>
<string name="settings_category_other_title">อื่นๆ</string>
<string name="settings_category_debug_title">แก้จุดบกพร่อง</string>
<string name="settings_category_updates_title">อัพเดท</string>
<string name="background_player_playing_toast">กำลังเล่นในโหมดพื้นหลัง</string>
<string name="popup_playing_toast">กำลังเล่นในโหมดป๊อปอัพ</string>
<string name="background_player_append">จัดคิวลงในการเล่นโหมดพื้นหลังแล้ว</string>
<string name="popup_playing_append">จัดคิวลงในการเล่นโหมดป๊อปอัพแล้ว</string>
<string name="play_btn_text">เล่น</string>
<string name="content">เนื้อหา</string>
<string name="show_age_restricted_content_title">เนื้อหาที่จำกัดอายุ</string>
<string name="video_is_age_restricted">แสดงวิดีโอที่จำกัดอายุ การอนุญาตดังกล่าวเป็นไปได้จากการตั้งค่า</string>
<string name="duration_live">สด</string>
<string name="downloads">ดาวน์โหลด</string>
<string name="downloads_title">ดาวน์โหลด</string>
<string name="error_report_title">รายงานข้อผิดพลาด</string>
<string name="all">ทั้งหมด</string>
<string name="channel">ช่อง</string>
<string name="channels">ช่อง</string>
<string name="playlist">เพลย์ลิสต์</string>
<string name="playlists">เพลย์ลิสต์</string>
<plurals name="videos">
<item quantity="other">วิดีโอ</item>
</plurals>
<plurals name="comments">
<item quantity="other">ความคิดเห็น</item>
</plurals>
<string name="tracks">แทร็ค</string>
<string name="users">ผู้ใช้</string>
<string name="events">เหตุการณ์</string>
<string name="yes">ใช่</string>
<string name="later">ในภายหลัง</string>
<string name="disabled">ปิดการใช้งาน</string>
<string name="filter">ตัวกรอง</string>
<string name="refresh">เรียกใหม่</string>
<string name="clear">ล้าง</string>
<string name="popup_resizing_indicator_title">กำลังปรับขนาด</string>
<string name="best_resolution">ความละเอียดที่ดีที่สุด</string>
<string name="undo">เลิกทำ</string>
<string name="file_deleted">ลบไฟล์แล้ว</string>
<string name="play_all">เล่นทั้งหมด</string>
<string name="always">ตลอดเวลา</string>
<string name="just_once">เพียงครั้งเดียว</string>
<string name="file">ไฟล์</string>
<string name="notification_channel_name">การแจ้งเตือน NewPipe</string>
<string name="notification_channel_description">การแจ้งเตือนของแอป NewPipe เมื่อเล่นสื่อในโหมดพื้นหลังและป๊อปอัพ</string>
<string name="app_update_notification_channel_name">การแจ้งเตือนการอัปเดตแอป</string>
<string name="app_update_notification_channel_description">การแจ้งเตือนสำหรับ NewPipe เวอร์ชั่นใหม่</string>
<string name="unknown_content">[ไม่ทราบ]</string>
<string name="toggle_orientation">เปลี่ยนการวางแนว</string>
<string name="switch_to_background">สลับไปยังโหมดพื้นหลัง</string>
<string name="switch_to_popup">สลับไปยังโหมดป๊อปอัพ</string>
<string name="switch_to_main">สลับไปยังโหมดหลัก</string>
<string name="import_data_title">นำเข้าฐานข้อมูล</string>
<string name="export_data_title">ส่งออกฐานข้อมูล</string>
<string name="import_data_summary">แทนที่ประวัติการดูและการสมัครรับข้อมูลของคุณ</string>
<string name="export_data_summary">ส่งออกประวัติการดู ช่องที่ได้บอกรับและเพลย์ลิสต์</string>
<string name="clear_views_history_title">ล้างประวัติการดู</string>
<string name="clear_views_history_summary">ลบประวัติของวีดีโอที่เคยเล่น</string>
<string name="delete_view_history_alert">ลบประวัติการดูทั้งหมดหรือไม่\?</string>
<string name="view_history_deleted">ลบประวัติการดูแล้ว</string>
<string name="clear_search_history_title">ล้างประวัติการค้นหา</string>
<string name="clear_search_history_summary">ลบประวัติของคำที่เคยค้นหา</string>
<string name="delete_search_history_alert">ลบประวัติการค้นหาทั้งหมดหรือไม่\?</string>
<string name="search_history_deleted">ลบประวัติการค้นหาแล้ว</string>
<string name="general_error">เกิดข้อผิดพลาด</string>
<string name="download_to_sdcard_error_title">พื้นที่เก็บข้อมูลภายนอกไม่พร้อมใช้งาน</string>
<string name="download_to_sdcard_error_message">การดาวน์โหลดไปยังการ์ดความจำภายนอกยังไม่สามารถทำได้ รีเซ็ตตำแหน่งโฟลเดอร์ดาวน์โหลดหรือไม่\?</string>
<string name="network_error">ข้อผิดพลาดของเครือข่าย</string>
<string name="could_not_load_thumbnails">ไม่สามารถโหลดรูปขนาดย่อทั้งหมด</string>
<string name="youtube_signature_decryption_error">ไม่สามารถถอดรหัสลายเซ็น URL ของวิดีโอ</string>
<string name="parsing_error">ไม่สามารถแยกวิเคราะห์เว็บไซต์</string>
<string name="light_parsing_error">ไม่สามารถแยกวิเคราะห์เว็บไซต์ได้อย่างสมบูรณ์</string>
<string name="content_not_available">เนื้อหาไม่พร้อมใช้งาน</string>
<string name="blocked_by_gema">ถูกบล็อกโดย GEMA</string>
<string name="could_not_setup_download_menu">ไม่สามารถตั้งค่าเมนูดาวน์โหลด</string>
<string name="live_streams_not_supported">ยังไม่รองรับสตรีมแบบสดในขณะนี้</string>
<string name="could_not_get_stream">ไม่สามารถรับสตรีมใดๆ</string>
<string name="could_not_load_image">ไม่สามารถโหลดรูปภาพ</string>
<string name="app_ui_crash">แอป / UI ขัดข้อง</string>
<string name="player_stream_failure">ไม่สามารถเล่นสตรีมนี้</string>
<string name="player_unrecoverable_failure">เกิดข้อผิดพลาดของตัวเล่นที่ไม่สามารถกู้คืนได้</string>
<string name="player_recoverable_failure">กำลังกู้คืนจากข้อผิดพลาดของตัวเล่น</string>
<string name="external_player_unsupported_link_type">ตัวเล่นภายนอกไม่สนับสนุนลิงก์ประเภทนี้</string>
<string name="invalid_url_toast">URL ไม่ถูกต้อง</string>
<string name="video_streams_empty">ไม่พบสตรีมวิดีโอ</string>
<string name="audio_streams_empty">ไม่พบสตรีมเสียง</string>
<string name="invalid_directory">ไม่มีโฟลเดอร์ตามที่ระบุ</string>
<string name="invalid_source">ไม่มีแหล่งแฟ้ม/เนื้อหาดังกล่าว</string>
<string name="invalid_file">ไฟล์นี้ไม่มีอยู่หรือไม่ได้รับอนุญาตให้อ่านหรือเขียนไฟล์</string>
<string name="file_name_empty_error">ชื่อไฟล์ต้องไม่ว่างเปล่า</string>
<string name="error_occurred_detail">เกิดข้อผิดพลาด: %1$s</string>
<string name="no_streams_available_download">ไม่มีสตรีมให้ดาวน์โหลด</string>
<string name="saved_tabs_invalid_json">เรียกคืนการวางตำแหน่งแท็บเป็นค่าเดิม เนื่องจากพบข้อผิดพลาดในการอ่านการวางตำแหน่งแท็บที่บันทึกไว้</string>
<string name="restore_defaults">คืนค่าเริ่มต้น</string>
<string name="restore_defaults_confirmation">คุณต้องการคืนค่าเริ่มต้นหรือไม่\?</string>
<string name="error_report_button_text">รายงานข้อผิดพลาดผ่านทาง e-mail</string>
<string name="what_device_headline">ข้อมูล:</string>
<string name="what_happened_headline">เกิดอะไรขึ้น:</string>
<string name="your_comment">ความคิดเห็นของคุณ (เป็นภาษาอังกฤษ):</string>
<string name="error_details_headline">รายละเอียด:</string>
<string name="list_thumbnail_view_description">ภาพขนาดย่อของตัวอย่างวิดีโอ</string>
<string name="detail_thumbnail_view_description">ภาพของตัวอย่างวิดีโอขนาดย่อ</string>
<string name="detail_uploader_thumbnail_view_description">รูปขนาดย่อของผู้อัปโหลด</string>
<string name="detail_likes_img_view_description">ชอบ</string>
<string name="detail_dislikes_img_view_description">ไม่ชอบ</string>
<string name="use_tor_title">ใช้ Tor</string>
<string name="use_tor_summary">(ทดลอง) บังคับให้ใช้การเชื่อมต่อผ่าน Tor เพื่อเพิ่มความเป็นส่วนตัว (ยังไม่รองรับวิดีโอสตรีมมิ่ง)</string>
<string name="report_error">รายงานข้อผิดพลาด</string>
<string name="search_no_results">ไม่มีผลลัพธ์</string>
<string name="empty_subscription_feed_subtitle">ไม่มีอะไรที่นี่นอกจากจิ้งหรีด</string>
<string name="detail_drag_description">ลากเพื่อจัดลำดับใหม่</string>
<string name="err_dir_create">ไม่สามารถสร้างไดเรกทอรีดาวน์โหลด \'%1$s\'</string>
<string name="info_dir_created">สร้างไดเรกทอรีดาวน์โหลด \'%1$s\'</string>
<string name="video">วิดีโอ</string>
<string name="audio">เสียง</string>
<string name="retry">ลองอีกครั้ง</string>
<string name="storage_permission_denied">สิทธิ์การเข้าถึงการจัดเก็บข้อมูลถูกปฏิเสธ</string>
<string name="short_thousand">พัน</string>
<string name="short_million">ล้าน</string>
<string name="short_billion">พันล้าน</string>
<string name="no_subscribers">ไม่มีสมาชิกที่สมัครรับ</string>
<plurals name="subscribers">
<item quantity="other">%s บอกรับ</item>
</plurals>
<string name="subscribers_count_not_available">ไม่สามารถนับจำนวนสมาชิกได้</string>
<string name="no_views">ไม่มียอดวิว</string>
<plurals name="views">
<item quantity="other">%s วิว</item>
</plurals>
<string name="no_videos">ไม่มีวิดีโอ</string>
<string name="no_comments">ไม่มีความคิดเห็น</string>
<string name="start">เริ่ม</string>
<string name="pause">หยุดพัก</string>
<string name="view">เล่น</string>
<string name="create">สร้าง</string>
<string name="delete">ลบ</string>
<string name="delete_one">ลบหนึ่งรายการ</string>
<string name="delete_all">ลบทั้งหมด</string>
<string name="dismiss">ไม่สนใจ</string>
<string name="rename">เปลี่ยนชื่อ</string>
<string name="add">ภารกิจใหม่</string>
<string name="msg_name">ชื่อไฟล์</string>
<string name="msg_server_unsupported">เซิร์ฟเวอร์ที่ไม่รองรับ</string>
<string name="msg_exists">ไฟล์มีอยู่แล้ว</string>
<string name="msg_running">NewPipe กำลังดาวน์โหลด</string>
<string name="msg_running_detail">แตะเพื่อดูรายละเอียด</string>
<string name="msg_wait">โปรดรอ…</string>
<string name="msg_copied">คัดลอกไปที่คลิปบอร์ดแล้ว</string>
<string name="no_available_dir">โปรดเลือกโฟลเดอร์ดาวน์โหลดที่พร้อมใช้งาน</string>
<string name="msg_popup_permission">การอนุญาตนี้เป็นสิ่งจำเป็นเพื่อ
\nเปิดในโหมดป๊อปอัป</string>
<string name="one_item_deleted">ลบ 1 รายการแล้ว</string>
<string name="settings_category_downloads_title">ดาวน์โหลด</string>
<string name="settings_file_charset_title">อักขระที่อนุญาตในชื่อไฟล์</string>
<string name="settings_file_replacement_character_summary">อักขระที่ไม่ถูกต้องจะถูกแทนที่ด้วยค่านี้</string>
<string name="settings_file_replacement_character_title">อักขระทดแทน</string>
<string name="charset_letters_and_digits">ตัวอักษรและตัวเลข</string>
<string name="charset_most_special_characters">อักขระพิเศษส่วนใหญ่</string>
<string name="toast_no_player">ไม่มีแอพที่ติดตั้งเพื่อให้เล่นไฟล์นี้ได้</string>
<string name="title_activity_about">เกี่ยวกับ NewPipe</string>
<string name="action_settings">การตั้งค่า</string>
<string name="action_about">เกี่ยวกับ</string>
<string name="title_licenses">สัญญาอนุญาตของบุคคลที่สาม</string>
<string name="copyright" formatted="true">© %1$s โดย %2$s ภายใต้ %3$s</string>
<string name="error_unable_to_load_license">ไม่สามารถโหลดสัญญาอนุญาต</string>
<string name="action_open_website">เปิดเว็บไซต์</string>
<string name="tab_about">เกี่ยวกับ</string>
<string name="tab_contributors">ผู้มีส่วนร่วม</string>
<string name="tab_licenses">สัญญาอนุญาต</string>
<string name="app_description">แอปสตรีมมิ่งที่เล็กและเสรีบน Android</string>
<string name="contribution_title">สนับสนุน</string>
<string name="contribution_encouragement">ไม่ว่าคุณจะมีความคิดที่จะช่วยแปลภาษา เปลี่ยนดีไซน์ แก้ไขโค้ดของโปรแกรมให้ดีขึ้นทั้งในระดับเล็กน้อยหรือจะเปลี่ยนแปลงกันแบบขนานใหญ่ เรายินดีให้คุณได้ร่วมช่วยเหลือเสมอ… ยิ่งทำมาก ยิ่งช่วยให้ดีขึ้นมาก!</string>
<string name="view_on_github">ดูบน GitHub</string>
<string name="donation_title">บริจาค</string>
<string name="give_back">คืนให้</string>
<string name="website_title">เว็บไซต์</string>
<string name="website_encouragement">เยี่ยมชมเว็บไซต์ NewPipe สำหรับข้อมูลเพิ่มเติมและข่าวสาร</string>
<string name="privacy_policy_title">นโยบายความเป็นส่วนตัวของ NewPipe</string>
<string name="privacy_policy_encouragement">โครงการ NewPipe คำนึงถึงความเป็นส่วนตัวของคุณอย่างจริงจัง ดังนั้นแอปจะไม่เก็บรวบรวมข้อมูลใดๆ โดยไม่ได้รับความยินยอมจากคุณ
\nนโยบายความเป็นส่วนตัวของ NewPipe มีการอธิบายในรายละเอียดเกี่ยวกับข้อมูลที่จะถูกส่งออกไปและเก็บไว้เมื่อคุณรายงานความผิดพลาดของแอป</string>
<string name="read_privacy_policy">อ่านนโยบายความเป็นส่วนตัว</string>
<string name="app_license_title">สัญญาอนุญาตของ NewPipe</string>
<string name="read_full_license">อ่านสัญญาอนุญาต</string>
<string name="title_activity_history">ประวัติ</string>
<string name="title_history_search">สืบค้นแล้ว</string>
<string name="title_history_view">ดูแล้ว</string>
<string name="history_disabled">ประวัติการดูได้ปิดใช้งานอยู่</string>
<string name="action_history">ประวัติ</string>
<string name="history_empty">ประวัติว่างเปล่า</string>
<string name="history_cleared">ล้างประวัติแล้ว</string>
<string name="item_deleted">ลบรายการแล้ว</string>
<string name="delete_item_search_history">คุณต้องการลบรายการนี้ออกจากประวัติการค้นหาหรือไม่\?</string>
<string name="delete_stream_history_prompt">คุณต้องการลบรายการนี้ออกจากประวัติการดูหรือไม่\?</string>
<string name="delete_all_history_prompt">คุณแน่ใจหรือไม่ว่าต้องการลบรายการประวัติทั้งหมด\?</string>
<string name="title_last_played">เล่นครั้งล่าสุด</string>
<string name="title_most_played">เล่นมากที่สุด</string>
<string name="main_page_content">เนื้อหาของหน้าหลัก</string>
<string name="main_page_content_summary">แท็บใดบ้างที่ต้องการให้แสดงบนหน้าหลัก</string>
<string name="selection">การเลือก</string>
<string name="blank_page_summary">หน้าว่าง</string>
<string name="kiosk_page_summary">หน้า Kiosk</string>
<string name="subscription_page_summary">หน้าการสมัครสมาชิก</string>
<string name="feed_page_summary">หน้าฟีด</string>
<string name="channel_page_summary">หน้าของช่อง</string>
<string name="select_a_channel">เลือกช่อง</string>
<string name="no_channel_subscribed_yet">ยังไม่มีการสมัครรับข้อมูลช่องในตอนนี้</string>
<string name="select_a_kiosk">เลือกหน้า Kiosk</string>
<string name="export_complete_toast">ส่งออกแล้ว</string>
<string name="import_complete_toast">นำเข้าแล้ว</string>
<string name="no_valid_zip_file">ไม่มีไฟล์ ZIP ที่ถูกต้อง</string>
<string name="could_not_import_all_files">คำเตือน: ไม่สามารถนำเข้าไฟล์ทั้งหมดได้</string>
<string name="override_current_data">สิ่งนี้จะแทนที่การตั้งค่าปัจจุบันของคุณ</string>
<string name="import_settings">คุณยังต้องการนำเข้าการตั้งค่าด้วยหรือไม่\?</string>
<string name="error_unable_to_load_comments">ไม่สามารถโหลดความคิดเห็นได้</string>
<string name="trending">ได้รับความนิยม</string>
<string name="top_50">50 อันดับแรก</string>
<string name="new_and_hot">ใหม่และมาแรง</string>
<string name="conferences">การประชุม</string>
<string name="title_activity_background_player">เครื่องเล่นพื้นหลัง</string>
<string name="title_activity_popup_player">เครื่องเล่นป๊อปอัพ</string>
<string name="play_queue_remove">เอาออก</string>
<string name="play_queue_stream_detail">รายละเอียด</string>
<string name="play_queue_audio_settings">การตั้งค่าเสียง</string>
<string name="hold_to_append">กดค้างไว้เพื่อเพิ่มลงในคิว</string>
<string name="direct_on_background">เล่นโดยตรงในโหมดพื้นหลัง</string>
<string name="enqueue_on_background">เพิ่มคิวในโหมดพื้นหลัง</string>
<string name="enqueue_on_popup">เพิ่มคิวในโหมดป๊อปอัพ</string>
<string name="start_here_on_main">เริ่มเล่นจากตรงนี้</string>
<string name="start_here_on_background">เล่นจากจุดนี้ในโหมดพื้นหลัง</string>
<string name="start_here_on_popup">เล่นจากจุดนี้ในโหมดป๊อปอัพ</string>
<string name="drawer_header_action_paceholder_text">บางสิ่งบางอย่างจะปรากฏที่นี่เร็วๆ นี้ ;D</string>
<string name="preferred_open_action_settings_title">การดำเนินการ \'เปิด\' ที่ต้องการ</string>
<string name="preferred_open_action_settings_summary">การดำเนินการเริ่มต้นเมื่อเปิดเนื้อหา — %s</string>
<string name="video_player">เครื่องเล่นวิดีโอ</string>
<string name="background_player">เครื่องเล่นพื้นหลัง</string>
<string name="popup_player">เครื่องเล่นป๊อปอัพ</string>
<string name="always_ask_open_action">ถามเสมอ</string>
<string name="preferred_player_fetcher_notification_title">กำลังรับข้อมูล…</string>
<string name="preferred_player_fetcher_notification_message">กำลังโหลดเนื้อหาที่ร้องขอ</string>
<string name="create_playlist">เพลย์ลิสต์ใหม่</string>
<string name="delete_playlist">ลบ</string>
<string name="rename_playlist">เปลี่ยนชื่อ</string>
<string name="playlist_name_input">ชื่อ</string>
<string name="append_playlist">เพิ่มในเพลย์ลิสต์</string>
<string name="set_as_playlist_thumbnail">ตั้งเป็นรูปขนาดย่อของเพลย์ลิสต์</string>
<string name="bookmark_playlist">เก็บเพลย์ลิสต์</string>
<string name="unbookmark_playlist">เอาที่คั่นหน้าออก</string>
<string name="delete_playlist_prompt">ลบเพลย์ลิสต์นี้หรือไม่\?</string>
<string name="playlist_creation_success">สร้างเพลย์ลิสต์แล้ว</string>
<string name="playlist_add_stream_success">เพิ่มลงในเพลย์ลิสต์แล้ว</string>
<string name="playlist_thumbnail_change_success">เปลี่ยนภาพย่อของเพลย์ลิสต์แล้ว</string>
<string name="playlist_delete_failure">ไม่สามารถลบเพลย์ลิสต์ได้</string>
<string name="caption_none">ไม่มีคำอธิบายภาพ</string>
<string name="resize_fit">พอดี</string>
<string name="resize_fill">เติม</string>
<string name="resize_zoom">ขยาย</string>
<string name="caption_auto_generated">สร้างขึ้นโดยอัตโนมัติ</string>
<string name="caption_setting_title">คำบรรยายภาพ</string>
<string name="caption_setting_description">ปรับเปลี่ยนขนาดตัวอักษร สีของข้อความหรือพื้นหลังของคำอธิบายภาพ (จำเป็นตองปิดและเปิดแอปใหม่เพื่อให้การเปลี่ยนแปลงมีผล)</string>
<string name="enable_leak_canary_title">เปิดใช้งาน LeakCanary</string>
<string name="enable_leak_canary_summary">การตรวจสอบการรั่วไหลของหน่วยความจำอาจทำให้แอปจะไม่ตอบสนองเมื่อมีการดึงข้อมูลจากหน่วยความจำ</string>
<string name="import_export_title">นำเข้า/ส่งออก</string>
<string name="import_title">นำเข้า</string>
<string name="import_from">นำเข้าจาก</string>
<string name="export_to">ส่งออกไปยัง</string>
<string name="import_ongoing">กำลังนำเข้า…</string>
<string name="export_ongoing">กำลังส่งออก…</string>
<string name="import_file_title">นำเข้าไฟล์</string>
<string name="previous_export">การส่งออกก่อนหน้านี้</string>
<string name="subscriptions_import_unsuccessful">ไม่สามารถนำเข้าการสมัครรับข้อมูล</string>
<string name="subscriptions_export_unsuccessful">ไม่สามารถส่งออกการสมัครรับข้อมูล</string>
<string name="import_youtube_instructions">นำเข้ารายการช่องที่บอกรับใน YouTube โดยการดาวน์โหลดไฟล์การส่งออก:
\n
\n1. ไปที่ URL นี้: %1$s
\n2. เข้าสู่ระบบเมื่อระบบถาม
\n3. การดาวน์โหลดควรเริ่มต้น (นั่นคือไฟล์ที่ส่งออก)</string>
<string name="import_soundcloud_instructions">นำเข้าโปรไฟล์ SoundCloud โดยการพิมพ์ URL หรือรหัสไอดีผู้ใช้ของคุณ:
\n
\n1. เปิดใช้งาน \"โหมดเดสก์ท็อป\" ในเว็บเบราว์เซอร์ (เว็บไซต์ไม่สามารถใช้ได้สำหรับอุปกรณ์มือถือ)
\n2. ไปที่ URL นี้: %1$s
\n3. เข้าสู่ระบบเมื่อระบบถาม
\n4. คัดลอก URL ของโปรไฟล์ที่คุณถูกเปลี่ยนเส้นทางไป</string>
<string name="import_network_expensive_warning">โปรดทราบว่าการดำเนินการนี้อาจใช้งานข้อมูลมือถือที่มีค่าใช้จ่าย
\n
\nคุณต้องการที่จะทำต่อไปหรือไม่\?</string>
<string name="playback_speed_control">การควบคุมความเร็วในการเล่น</string>
<string name="playback_tempo">จังหวะ</string>
<string name="playback_pitch">เสียงสูงต่ำ</string>
<string name="unhook_checkbox">ยกเลิกการเชื่อมโยง (อาจทำให้เสียงมีการบิดเบือน)</string>
<string name="skip_silence_checkbox">กรอไปข้างหน้าระหว่างความเงียบ</string>
<string name="playback_step">ทีละ</string>
<string name="playback_reset">รีเซ็ต</string>
<string name="start_accept_privacy_policy">เพื่อให้สอดคล้องกับระเบียบข้อบังคับว่าด้วยการป้องกันข้อมูลทั่วไปของยุโรป (GDPR) เราขอแนะนำให้คุณอ่านนโยบายความเป็นส่วนตัวของ NewPipe อย่างระมัดระวังและถี่ถ้วน
\nคุณต้องยอมรับข้อตกลงเพื่ออนุญาตให้ส่งรายงานข้อผิดพลาดถึงเรา</string>
<string name="accept">ยอมรับ</string>
<string name="decline">ปฏิเสธ</string>
<string name="limit_data_usage_none_description">ไม่จำกัด</string>
<string name="limit_mobile_data_usage_title">จำกัดความละเอียดเมื่อใช้ข้อมูลมือถือ</string>
<string name="updates_setting_title">อัพเดท</string>
<string name="updates_setting_description">แสดงการแจ้งเตือนการปรับปรุงให้ทราบก่อนอัพเดทแอพ เมื่อมีเวอร์ชั่นใหม่ให้พร้อมใช้งาน</string>
<string name="minimize_on_exit_title">ย่อเล็กสุดเมื่อสลับแอป</string>
<string name="minimize_on_exit_summary">การดำเนินการเมื่อสลับไปยังแอปอื่นๆ จากโปรแกรมเล่นวิดีโอหลัก — %s</string>
<string name="minimize_on_exit_none_description">ไม่มี</string>
<string name="minimize_on_exit_background_description">ย่อเล็กสุดไปยังการเล่นพื้นหลัง</string>
<string name="minimize_on_exit_popup_description">ย่อเล็กสุดไปยังการเล่นป๊อปอัพ</string>
<string name="list_view_mode">โหมดมุมมองรายการ</string>
<string name="list">รายการ</string>
<string name="grid">ตาราง</string>
<string name="auto">อัตโนมัติ</string>
<string name="switch_view">สลับมุมมอง</string>
<string name="app_update_notification_content_title">NewPipe พร้อมให้อัพเดทแล้ว!</string>
<string name="app_update_notification_content_text">แตะเพื่อดาวน์โหลด</string>
<string name="missions_header_finished">เสร็จแล้ว</string>
<string name="missions_header_pending">อยู่ในคิว</string>
<string name="paused">หยุดชั่วคราว</string>
<string name="queued">อยู่ในคิวแล้ว</string>
<string name="enqueue">คิว</string>
<string name="permission_denied">การดำเนินการถูกปฏิเสธโดยระบบ</string>
<string name="download_failed">การดาวน์โหลดล้มเหลว</string>
<string name="download_finished">การดาวน์โหลดเสร็จสิ้น</string>
<string name="download_finished_more">%s การดาวน์โหลดเสร็จสิ้น</string>
<string name="generate_unique_name">สร้างชื่อเฉพาะ</string>
<string name="overwrite">เขียนทับ</string>
<string name="overwrite_warning">ไฟล์ที่ดาวน์โหลดด้วยชื่อนี้มีอยู่แล้ว</string>
<string name="download_already_running">มีการดาวน์โหลดที่กำลังดำเนินการอยู่ด้วยไฟล์ชื่อนี้อยู่แล้ว</string>
<string name="show_error">แสดงข้อผิดพลาด</string>
<string name="label_code">โค้ด</string>
<string name="error_path_creation">ไม่สามารถสร้างไฟล์ได้</string>
<string name="error_file_creation">ไม่สามารถสร้างโฟลเดอร์ปลายทางได้</string>
<string name="error_permission_denied">การอนุญาตถูกปฏิเสธโดยระบบ</string>
<string name="error_ssl_exception">ล้มเหลวในการสร้างการเชื่อมต่อที่ปลอดภัย</string>
<string name="error_unknown_host">ไม่พบเซิร์ฟเวอร์</string>
<string name="error_connect_host">ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์</string>
<string name="error_http_no_content">เซิร์ฟเวอร์ไม่ส่งข้อมูล</string>
<string name="error_http_unsupported_range">เซิร์ฟเวอร์ไม่รองรับการดาวน์โหลดแบบพร้อมกันหลายส่วน โปรดลองอีกครั้งด้วย @string/msg_threads = 1</string>
<string name="error_http_not_found">ไม่พบ</string>
<string name="clear_finished_download">ล้างการดาวน์โหลดที่เสร็จสิ้นแล้ว</string>
<string name="stop">หยุด</string>
<string name="max_retry_msg">จำนวนครั้งสูงสุดที่จะลองใหม่</string>
<string name="max_retry_desc">จำนวนครั้งสูงสุดที่จะลองใหม่ก่อนจะยกเลิกการดาวน์โหลด</string>
<string name="pause_downloads_on_mobile">หยุดชั่วคราวเมื่อเปลี่ยนเป็นข้อมูลมือถือ</string>
<string name="pause_downloads_on_mobile_desc">การดาวน์โหลดที่ไม่สามารถหยุดพักได้จะเริ่มต้นใหม่</string>
<string name="close">ปิด</string>
</resources>

View File

@ -107,7 +107,7 @@
<string name="msg_running_detail">Подробиці</string> <string name="msg_running_detail">Подробиці</string>
<string name="msg_wait">Зачекайте…</string> <string name="msg_wait">Зачекайте…</string>
<string name="msg_copied">Скопійовано до буферу обміну</string> <string name="msg_copied">Скопійовано до буферу обміну</string>
<string name="no_available_dir">Оберіть доступну теку для завантажень</string> <string name="no_available_dir">Вкажіть теку для завантажень пізніше у налаштуваннях</string>
<string name="no_player_found_toast">Програвач потокового відео не знайдений (ви можете встановити VLC для програвання).</string> <string name="no_player_found_toast">Програвач потокового відео не знайдений (ви можете встановити VLC для програвання).</string>
<string name="open_in_popup_mode">Відкрити у віконному режимі</string> <string name="open_in_popup_mode">Відкрити у віконному режимі</string>
<string name="use_external_video_player_summary">Прибирає звук при ПЕВНИХ роздільних здатностях</string> <string name="use_external_video_player_summary">Прибирає звук при ПЕВНИХ роздільних здатностях</string>
@ -436,7 +436,7 @@
<string name="app_update_notification_content_title">Доступна нова версія NewPipe!</string> <string name="app_update_notification_content_title">Доступна нова версія NewPipe!</string>
<string name="app_update_notification_content_text">Натисніть для завантаження</string> <string name="app_update_notification_content_text">Натисніть для завантаження</string>
<string name="missions_header_finished">Завершено</string> <string name="missions_header_finished">Завершено</string>
<string name="missions_header_pending">У черзі</string> <string name="missions_header_pending">Очікує</string>
<string name="paused">призупинено</string> <string name="paused">призупинено</string>
<string name="queued">додано в чергу</string> <string name="queued">додано в чергу</string>
<string name="post_processing">пост-обробка</string> <string name="post_processing">пост-обробка</string>
@ -452,8 +452,8 @@
<string name="download_already_running">Файл з такою назвою вже завантажується</string> <string name="download_already_running">Файл з такою назвою вже завантажується</string>
<string name="show_error">Показати помилку</string> <string name="show_error">Показати помилку</string>
<string name="label_code">Код</string> <string name="label_code">Код</string>
<string name="error_path_creation">Файл не може бути створений</string> <string name="error_path_creation">Цільова тека не може бути створена</string>
<string name="error_file_creation">Цільова тека не може бути створена</string> <string name="error_file_creation">Файл не може бути створений</string>
<string name="error_permission_denied">Доступ заборонено системою</string> <string name="error_permission_denied">Доступ заборонено системою</string>
<string name="error_ssl_exception">Захищене з\'єднання не встановлено</string> <string name="error_ssl_exception">Захищене з\'єднання не встановлено</string>
<string name="error_unknown_host">Сервер не знайдено</string> <string name="error_unknown_host">Сервер не знайдено</string>
@ -466,23 +466,40 @@
<string name="stop">Зупинити</string> <string name="stop">Зупинити</string>
<string name="max_retry_msg">Максимум спроб</string> <string name="max_retry_msg">Максимум спроб</string>
<string name="max_retry_desc">Максимальна кількість спроб перед скасуванням завантаження</string> <string name="max_retry_desc">Максимальна кількість спроб перед скасуванням завантаження</string>
<string name="pause_downloads_on_mobile">Призупиняти завантаження при переході на стільникові дані</string> <string name="pause_downloads_on_mobile">Переривати завантаження на небезлімітних з\'єднаннях</string>
<string name="download_to_sdcard_error_message">Завантаження до зовнішньої SD-карти поки що неможливе. Скинути розташування теки для завантажень\?</string> <string name="download_to_sdcard_error_message">Завантаження до зовнішньої SD-карти неможливе. Скинути розташування теки для завантажень\?</string>
<string name="saved_tabs_invalid_json">Помилка зчитування збережених вкладок. Використовую типові вкладки.</string> <string name="saved_tabs_invalid_json">Помилка зчитування збережених вкладок. Використовую типові вкладки.</string>
<string name="main_page_content_summary">Вкладки, що відображаються на головній сторінці</string> <string name="main_page_content_summary">Вкладки, що відображаються на головній сторінці</string>
<string name="updates_setting_description">Показувати сповіщення з пропозицією оновити застосунок за наявності нової версії</string> <string name="updates_setting_description">Показувати сповіщення з пропозицією оновити застосунок за наявності нової версії</string>
<string name="error_http_requested_range_not_satisfiable">Запитуваний діапазон неприпустимий</string> <string name="error_http_requested_range_not_satisfiable">Запитуваний діапазон неприпустимий</string>
<string name="msg_pending_downloads">Продовжити ваші %s відкладених переміщень із Завантажень</string> <string name="msg_pending_downloads">Продовжити ваші %s відкладених переміщень із Завантажень</string>
<string name="pause_downloads_on_mobile_desc">Завантаження, що не можуть бути призупинені, будуть перезапущені</string> <string name="pause_downloads_on_mobile_desc">Корисно під час переходу на мобільні дані, хоча деякі завантаження не можуть бути призупинені</string>
<string name="show_comments_title">Показувати коментарі</string> <string name="show_comments_title">Показувати коментарі</string>
<string name="show_comments_summary">Вимнути відображення дописів</string> <string name="show_comments_summary">Вимнути відображення дописів</string>
<string name="autoplay_title">Автопрогравання</string> <string name="autoplay_title">Автопрогравання</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">Коментарі</item> <item quantity="one">Коментарі</item>
<item quantity="few"></item> <item quantity="few"/>
<item quantity="many"></item> <item quantity="many"/>
</plurals> </plurals>
<string name="no_comments">Коментарі відсутні</string> <string name="no_comments">Коментарі відсутні</string>
<string name="error_unable_to_load_comments">Не вдалося підвантажити коментарів</string> <string name="error_unable_to_load_comments">Не вдалося підвантажити коментарів</string>
<string name="close">Закрити</string> <string name="close">Закрити</string>
<string name="watch_history_states_deleted">Позиції відтворення видалено.</string>
<string name="missing_file">Файл переміщено або видалено</string>
<string name="overwrite_failed">не можу перезаписати файл</string>
<string name="download_already_pending">Завантаження з таким ім\'ям вже є в черзі</string>
<string name="error_postprocessing_stopped">NewPipe був закритий під час роботи над файлом</string>
<string name="error_insufficient_storage">На пристрої не залишилося вільного місця</string>
<string name="error_progress_lost">Прогрес втрачено через видалення файлу</string>
<string name="error_timeout">Час очікування з\'єднання вичерпано</string>
<string name="confirm_prompt">Ви впевнені\?</string>
<string name="enable_queue_limit">Обмежити чергу завантажень</string>
<string name="enable_queue_limit_desc">В кожен момент часу виконуватиметься одне завантаження</string>
<string name="start_downloads">Почати завантаження</string>
<string name="pause_downloads">Призупинити завантаження</string>
<string name="downloads_storage_ask_title">Запитувати, куди завантажувати</string>
<string name="downloads_storage_ask_summary">Вас питатимуть, куди зберігати кожне завантаження</string>
<string name="downloads_storage_ask_summary_kitkat">Вас питатимуть, куди зберігати кожне завантаження.
\nУвімкніть цю опцію, якщо бажаєте завантажувати на зовнішню SD-картку</string>
</resources> </resources>

View File

@ -12,11 +12,11 @@
<string name="download">Tải về</string> <string name="download">Tải về</string>
<string name="search">Tìm kiếm</string> <string name="search">Tìm kiếm</string>
<string name="settings">Cài đặt</string> <string name="settings">Cài đặt</string>
<string name="did_you_mean">Ý của bạn là %1$s\?</string> <string name="did_you_mean">Ý của bạn là: %1$s\?</string>
<string name="share_dialog_title">Chia sẻ với</string> <string name="share_dialog_title">Chia sẻ với</string>
<string name="choose_browser">Chọn trình duyệt</string> <string name="choose_browser">Chọn trình duyệt</string>
<string name="use_external_video_player_title">Sử dụng trình phát video bên ngoài</string> <string name="use_external_video_player_title">Sử dụng trình phát video bên ngoài</string>
<string name="use_external_video_player_summary">Âm thanh có thể không có ở *một vài* độ phân giải video</string> <string name="use_external_video_player_summary">Loại bỏ âm thanh trên *MỘT SỐ* độ phân giải video</string>
<string name="use_external_audio_player_title">Sử dụng trình phát audio bên ngoài</string> <string name="use_external_audio_player_title">Sử dụng trình phát audio bên ngoài</string>
<string name="popup_mode_share_menu_title">Chế độ popup của NewPipe</string> <string name="popup_mode_share_menu_title">Chế độ popup của NewPipe</string>
<string name="controls_popup_title">Trình phát nổi</string> <string name="controls_popup_title">Trình phát nổi</string>
@ -45,13 +45,13 @@
<string name="dark_theme_title">Tối</string> <string name="dark_theme_title">Tối</string>
<string name="black_theme_title">Đen</string> <string name="black_theme_title">Đen</string>
<string name="popup_remember_size_pos_title">Nhớ kích thước và vị trí của popup</string> <string name="popup_remember_size_pos_title">Nhớ kích thước và vị trí của popup</string>
<string name="popup_remember_size_pos_summary">Nhớ kích thước và vị trí cuối của popup</string> <string name="popup_remember_size_pos_summary">Nhớ kích thước và vị trí lần trước của popup</string>
<string name="player_gesture_controls_title">Điều khiển cử chỉ trình phát</string> <string name="player_gesture_controls_title">Điều khiển cử chỉ trình phát</string>
<string name="player_gesture_controls_summary">Sử dụng cử chỉ để kiểm soát độ sáng và âm lượng của trình phát</string> <string name="player_gesture_controls_summary">Sử dụng cử chỉ để kiểm soát độ sáng và âm lượng của trình phát</string>
<string name="show_search_suggestions_title">Đề xuất tìm kiếm</string> <string name="show_search_suggestions_title">Đề xuất tìm kiếm</string>
<string name="show_search_suggestions_summary">Hiển thị các đề xuất khi tìm kiếm</string> <string name="show_search_suggestions_summary">Hiển thị các đề xuất khi tìm kiếm</string>
<string name="download_dialog_title">Tải về</string> <string name="download_dialog_title">Tải về</string>
<string name="next_video_title">Tiếp</string> <string name="next_video_title">Tiếp theo</string>
<string name="show_next_and_similar_title">Hiển thị video \"Tiếp theo\" và \"Tương tự\"</string> <string name="show_next_and_similar_title">Hiển thị video \"Tiếp theo\" và \"Tương tự\"</string>
<string name="url_not_supported_toast">URL không được hỗ trợ</string> <string name="url_not_supported_toast">URL không được hỗ trợ</string>
<string name="settings_category_appearance_title">Hiển thị</string> <string name="settings_category_appearance_title">Hiển thị</string>
@ -78,7 +78,7 @@
<string name="best_resolution">Độ phân giải tốt nhất</string> <string name="best_resolution">Độ phân giải tốt nhất</string>
<string name="general_error">Lỗi</string> <string name="general_error">Lỗi</string>
<string name="network_error">Lỗi kết nối mạng</string> <string name="network_error">Lỗi kết nối mạng</string>
<string name="could_not_load_thumbnails">Không thể tải tất cả các thumbnails</string> <string name="could_not_load_thumbnails">Không thể tải tất cả hình thu nhỏ</string>
<string name="youtube_signature_decryption_error">Không thể giải mã chữ ký URL video</string> <string name="youtube_signature_decryption_error">Không thể giải mã chữ ký URL video</string>
<string name="parsing_error">Không thể phân tích cú pháp trang web</string> <string name="parsing_error">Không thể phân tích cú pháp trang web</string>
<string name="light_parsing_error">Không thể phân tích cú pháp hoàn toàn trang web</string> <string name="light_parsing_error">Không thể phân tích cú pháp hoàn toàn trang web</string>
@ -132,7 +132,7 @@
<string name="msg_running_detail">Chạm để biết chi tiết</string> <string name="msg_running_detail">Chạm để biết chi tiết</string>
<string name="msg_wait">Vui lòng đợi …</string> <string name="msg_wait">Vui lòng đợi …</string>
<string name="msg_copied">Sao chép vào clipboard</string> <string name="msg_copied">Sao chép vào clipboard</string>
<string name="no_available_dir">Chọn một thư mục tải về có sẵn</string> <string name="no_available_dir">Chọn một thư mục tải về có sẵn trong cài đặt</string>
<string name="msg_popup_permission">Cần quyền này để <string name="msg_popup_permission">Cần quyền này để
\nmở trong chế độ popup</string> \nmở trong chế độ popup</string>
<string name="reCaptchaActivity">ReCAPTCHA</string> <string name="reCaptchaActivity">ReCAPTCHA</string>
@ -158,7 +158,7 @@
<string name="content_language_title">Ngôn ngữ nội dung ưu tiên</string> <string name="content_language_title">Ngôn ngữ nội dung ưu tiên</string>
<string name="settings_category_video_audio_title">Video &amp; âm thanh</string> <string name="settings_category_video_audio_title">Video &amp; âm thanh</string>
<string name="settings_category_popup_title">Trình phát nổi</string> <string name="settings_category_popup_title">Trình phát nổi</string>
<string name="enable_watch_history_title">Lịch sử &amp; bộ nhớ cache</string> <string name="enable_watch_history_title">Lịch sử xem</string>
<string name="settings_category_history_title">Lịch sử &amp; bộ nhớ cache</string> <string name="settings_category_history_title">Lịch sử &amp; bộ nhớ cache</string>
<string name="playlist">Playlist</string> <string name="playlist">Playlist</string>
<string name="search_no_results">Không tìm thấy</string> <string name="search_no_results">Không tìm thấy</string>
@ -170,13 +170,13 @@
<string name="no_player_found_toast">Không tìm thấy trình phát luồng nào (bạn có thể cài đặt VLC để phát).</string> <string name="no_player_found_toast">Không tìm thấy trình phát luồng nào (bạn có thể cài đặt VLC để phát).</string>
<string name="controls_download_desc">Tải về tệp luồng</string> <string name="controls_download_desc">Tải về tệp luồng</string>
<string name="show_info">Hiển thị thông tin</string> <string name="show_info">Hiển thị thông tin</string>
<string name="tab_main">main</string> <string name="tab_main">Trang chủ</string>
<string name="tab_subscriptions">Đăng ký</string> <string name="tab_subscriptions">Đăng ký</string>
<string name="tab_bookmarks">Playlist đã đánh dấu</string> <string name="tab_bookmarks">Danh sách phát được đánh dấu</string>
<string name="fragment_whats_new">Có gì mới</string> <string name="fragment_whats_new">Có gì mới</string>
<string name="controls_add_to_playlist_title">Thêm vào</string> <string name="controls_add_to_playlist_title">Thêm vào</string>
<string name="use_inexact_seek_title">Sử dụng tìm kiếm nhanh không chính xác</string> <string name="use_inexact_seek_title">Sử dụng tìm kiếm nhanh không chính xác</string>
<string name="use_inexact_seek_summary">Tìm kiếm không chính xác cho phép trình phát tua đến vị trí nhanh hơn với độ chính xác bị hạn chế</string> <string name="use_inexact_seek_summary">Tìm kiếm không chính xác cho phép trình phát tìm đến vị trí nhanh hơn với độ chính xác bị hạn chế</string>
<string name="download_thumbnail_title">Tải hình thu nhỏ</string> <string name="download_thumbnail_title">Tải hình thu nhỏ</string>
<string name="download_thumbnail_summary">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ớ.</string> <string name="download_thumbnail_summary">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ớ.</string>
<string name="thumbnail_cache_wipe_complete_notice">Đã xóa bộ nhớ cache hình ảnh</string> <string name="thumbnail_cache_wipe_complete_notice">Đã xóa bộ nhớ cache hình ảnh</string>
@ -184,7 +184,7 @@
<string name="metadata_cache_wipe_summary">Xóa tất cả dữ liệu trang web được lưu trong bộ nhớ cache</string> <string name="metadata_cache_wipe_summary">Xóa tất cả dữ liệu trang web được lưu trong bộ nhớ cache</string>
<string name="metadata_cache_wipe_complete_notice">Đã xóa bộ nhớ cache siêu dữ liệu</string> <string name="metadata_cache_wipe_complete_notice">Đã xóa bộ nhớ cache siêu dữ liệu</string>
<string name="auto_queue_title">Tự động phát tiếp theo theo hàng</string> <string name="auto_queue_title">Tự động phát tiếp theo theo hàng</string>
<string name="auto_queue_summary">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.</string> <string name="auto_queue_summary">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</string>
<string name="enable_search_history_title">Lịch sử tìm kiếm</string> <string name="enable_search_history_title">Lịch sử tìm kiếm</string>
<string name="enable_search_history_summary">Lưu trữ truy vấn tìm kiếm cục bộ</string> <string name="enable_search_history_summary">Lưu trữ truy vấn tìm kiếm cục bộ</string>
<string name="enable_watch_history_summary">Theo dõi các video đã xem</string> <string name="enable_watch_history_summary">Theo dõi các video đã xem</string>
@ -252,7 +252,7 @@
</plurals> </plurals>
<string name="no_videos">Không có video nào</string> <string name="no_videos">Không có video nào</string>
<plurals name="videos"> <plurals name="videos">
<item quantity="other">Video</item> <item quantity="other">Videos</item>
</plurals> </plurals>
<string name="create">Tạo nên</string> <string name="create">Tạo nên</string>
<string name="delete_one">Xóa một</string> <string name="delete_one">Xóa một</string>
@ -315,10 +315,10 @@
<string name="play_queue_audio_settings">Cài đặt âm thanh</string> <string name="play_queue_audio_settings">Cài đặt âm thanh</string>
<string name="hold_to_append">Giữ để nối tiếp</string> <string name="hold_to_append">Giữ để nối tiếp</string>
<string name="enqueue_on_background">Thêm vào trình phát nền</string> <string name="enqueue_on_background">Thêm vào trình phát nền</string>
<string name="enqueue_on_popup">Thêm vào trình phát popup</string> <string name="enqueue_on_popup">Thêm vào trình phát popup mới</string>
<string name="start_here_on_main">Bắt đầu phát ở đây</string> <string name="start_here_on_main">Bắt đầu phát ở đây</string>
<string name="start_here_on_background">Bắt đầu từ đây trong nền</string> <string name="start_here_on_background">Bắt đầu phát từ đây trong nền</string>
<string name="start_here_on_popup">Bắt đầu từ đây trên trình phát popup</string> <string name="start_here_on_popup">Bắt đầu phát từ đây trên trình phát popup mới</string>
<string name="drawer_open">Mở ngăn kéo</string> <string name="drawer_open">Mở ngăn kéo</string>
<string name="drawer_close">Đóng ngăn</string> <string name="drawer_close">Đóng ngăn</string>
<string name="drawer_header_action_paceholder_text">Một cái gì đó sẽ xuất hiện ở đây sớm ;D</string> <string name="drawer_header_action_paceholder_text">Một cái gì đó sẽ xuất hiện ở đây sớm ;D</string>
@ -409,7 +409,7 @@
<string name="app_update_notification_channel_name">Thông báo cập nhật ứng dụng</string> <string name="app_update_notification_channel_name">Thông báo cập nhật ứng dụng</string>
<string name="app_update_notification_channel_description">Thông báo phiên bản NewPipe mới</string> <string name="app_update_notification_channel_description">Thông báo phiên bản NewPipe mới</string>
<string name="download_to_sdcard_error_title">Bộ nhớ ngoài không khả dụng</string> <string name="download_to_sdcard_error_title">Bộ nhớ ngoài không khả dụng</string>
<string name="download_to_sdcard_error_message">Hiện tại chưa thể tải vào thẻ SD ngoài. Đặt lại vị trí tải về\?</string> <string name="download_to_sdcard_error_message">Không thể tải vào thẻ SD ngoài. Đặt lại vị trí tải về\?</string>
<string name="saved_tabs_invalid_json">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ệ</string> <string name="saved_tabs_invalid_json">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ệ</string>
<string name="restore_defaults">Khôi phục về mặc định</string> <string name="restore_defaults">Khôi phục về mặc định</string>
<string name="restore_defaults_confirmation">Bạn có muốn khôi phục về mặc định\?</string> <string name="restore_defaults_confirmation">Bạn có muốn khôi phục về mặc định\?</string>
@ -457,9 +457,41 @@
<string name="stop">Dừng</string> <string name="stop">Dừng</string>
<string name="max_retry_msg">Số lượt thử lại tối đa</string> <string name="max_retry_msg">Số lượt thử lại tối đa</string>
<string name="max_retry_desc">Số lượt thử lại trước khi hủy tải về</string> <string name="max_retry_desc">Số lượt thử lại trước khi hủy tải về</string>
<string name="pause_downloads_on_mobile">Tạm dừng tải khi chuyển qua dữ liệu di động</string> <string name="pause_downloads_on_mobile">Tạm dừng tải khi trên dữ liệu di động</string>
<string name="pause_downloads_on_mobile_desc">Các tải về không thể tạm dừng được sẽ bắt đầu lại từ đầu</string> <string name="pause_downloads_on_mobile_desc">Hữu ích khi chuyển sang dữ liệu di động, nhưng một số tải xuống không thể bị đình chỉ</string>
<string name="missions_header_pending">Đang chờ xử lý</string> <string name="missions_header_pending">Đang chờ xử lý</string>
<string name="conferences">Hội thảo</string> <string name="conferences">Hội thảo</string>
<string name="label_code"></string> <string name="label_code"></string>
<string name="show_comments_title">Hiện nhận xét</string>
<string name="show_comments_summary">Vô hiệu hoá để dừng nhận xét xuất hiện</string>
<string name="autoplay_title">Tự động phát</string>
<plurals name="comments">
<item quantity="other">Nhận xét</item>
</plurals>
<string name="no_comments">Không có nhận xét</string>
<string name="error_unable_to_load_comments">Không thể tải nhận xét</string>
<string name="close">Đóng</string>
<string name="enable_playback_resume_title">Tiếp tục phát</string>
<string name="enable_playback_resume_summary">Phục hồi vị trí phát lại</string>
<string name="enable_playback_state_lists_title">Vị trí phát trong danh sách</string>
<string name="enable_playback_state_lists_summary">Hiện vị trí phát lại trong danh sách</string>
<string name="settings_category_clear_data_title">Xoá dữ liệu</string>
<string name="watch_history_states_deleted">Đã xoá vị trí phát lại.</string>
<string name="missing_file">Tệp đã di chuyển hoặc đã xoá</string>
<string name="overwrite_unrelated_warning">Tên file này đã tồn tại</string>
<string name="overwrite_failed">Không thể ghi đè lên tệp</string>
<string name="download_already_pending">Có một bản tải xuống đang chờ xử lí với tên này</string>
<string name="error_postprocessing_stopped">Newpipe đã bị đóng khi đang xử lí tệp</string>
<string name="error_insufficient_storage">Không đủ dung lượng trên máy</string>
<string name="error_progress_lost">Quá trình mất, vì tập tin đã bị xoá</string>
<string name="error_timeout">Kết nối hết thời gian</string>
<string name="confirm_prompt">Bạn có chắc không\?</string>
<string name="enable_queue_limit">Giới hạn hàng chờ tải xuống</string>
<string name="enable_queue_limit_desc">Chỉ một tải xuống sẽ chạy</string>
<string name="start_downloads">Bắt đầu tải xuống</string>
<string name="pause_downloads">Tạm dừng tải xuống</string>
<string name="downloads_storage_ask_title">Hỏi vị trí tải xuống</string>
<string name="downloads_storage_ask_summary">Bạn sẽ được hỏi vị trí lưu mỗi lần tải xuống</string>
<string name="downloads_storage_ask_summary_kitkat">Bạn sẽ được hỏi vị trí lưu mỗi lần tải xuống.
\nBật tính năng này nếu bạn muốn tải xuống sang thẻ SD ngoài.</string>
</resources> </resources>

View File

@ -153,16 +153,18 @@
<string name="enable_playback_resume_key" translatable="false">enable_playback_resume</string> <string name="enable_playback_resume_key" translatable="false">enable_playback_resume</string>
<string name="enable_playback_state_lists_key" translatable="false">enable_playback_state_lists</string> <string name="enable_playback_state_lists_key" translatable="false">enable_playback_state_lists</string>
<string name="import_data">import_data</string> <string name="import_data" translatable="false">import_data</string>
<string name="export_data">export_data</string> <string name="export_data" translatable="false">export_data</string>
<string name="download_thumbnail_key" translatable="false">download_thumbnail_key</string> <string name="download_thumbnail_key" translatable="false">download_thumbnail_key</string>
<string name="metadata_cache_wipe_key" translatable="false">cache_wipe_key</string> <string name="metadata_cache_wipe_key" translatable="false">cache_wipe_key</string>
<string name="clear_views_history_key" translatable="false">clear_play_history</string> <string name="clear_views_history_key" translatable="false">clear_play_history</string>
<string name="clear_playback_states_key" translatable="false">clear_playback_states</string>
<string name="clear_search_history_key" translatable="false">clear_search_history</string> <string name="clear_search_history_key" translatable="false">clear_search_history</string>
<string name="downloads_storage_ask" translatable="false">downloads_storage_ask</string> <string name="downloads_storage_ask" translatable="false">downloads_storage_ask</string>
<string name="storage_use_saf" translatable="false">storage_use_saf</string>
<!-- FileName Downloads --> <!-- FileName Downloads -->
<string name="settings_file_charset_key" translatable="false">file_rename_charset</string> <string name="settings_file_charset_key" translatable="false">file_rename_charset</string>

View File

@ -47,6 +47,7 @@
<string name="download_path_audio_title">Audio download folder</string> <string name="download_path_audio_title">Audio download folder</string>
<string name="download_path_audio_summary">Downloaded audio is stored here</string> <string name="download_path_audio_summary">Downloaded audio is stored here</string>
<string name="download_path_audio_dialog_title">Enter download path for audio files</string> <string name="download_path_audio_dialog_title">Enter download path for audio files</string>
<string name="download_choose_new_path">Change the download folders to take effect</string>
<string name="autoplay_by_calling_app_title">Autoplay</string> <string name="autoplay_by_calling_app_title">Autoplay</string>
<string name="autoplay_by_calling_app_summary">Plays a video when NewPipe is called from another app</string> <string name="autoplay_by_calling_app_summary">Plays a video when NewPipe is called from another app</string>
<string name="default_resolution_title">Default resolution</string> <string name="default_resolution_title">Default resolution</string>
@ -99,7 +100,7 @@
<string name="resume_on_audio_focus_gain_title">Resume on focus gain</string> <string name="resume_on_audio_focus_gain_title">Resume on focus gain</string>
<string name="resume_on_audio_focus_gain_summary">Continue playing after interruptions (e.g. phone calls)</string> <string name="resume_on_audio_focus_gain_summary">Continue playing after interruptions (e.g. phone calls)</string>
<string name="download_dialog_title">Download</string> <string name="download_dialog_title">Download</string>
<string name="next_video_title">Up next</string> <string name="next_video_title">Next</string>
<string name="autoplay_title">Autoplay</string> <string name="autoplay_title">Autoplay</string>
<string name="show_next_and_similar_title">Show \'Next\' and \'Similar\' videos</string> <string name="show_next_and_similar_title">Show \'Next\' and \'Similar\' videos</string>
<string name="show_hold_to_append_title">Show \"Hold to append\" tip</string> <string name="show_hold_to_append_title">Show \"Hold to append\" tip</string>
@ -171,9 +172,12 @@
<string name="import_data_summary">Overrides your current history and subscriptions</string> <string name="import_data_summary">Overrides your current history and subscriptions</string>
<string name="export_data_summary">Export history, subscriptions and playlists</string> <string name="export_data_summary">Export history, subscriptions and playlists</string>
<string name="clear_views_history_title">Clear watch history</string> <string name="clear_views_history_title">Clear watch history</string>
<string name="clear_views_history_summary">Deletes the history of played streams</string> <string name="clear_views_history_summary">Deletes the history of played streams and the playback positions</string>
<string name="delete_view_history_alert">Delete entire watch history?</string> <string name="delete_view_history_alert">Delete entire watch history?</string>
<string name="watch_history_deleted">Watch history deleted.</string> <string name="watch_history_deleted">Watch history deleted.</string>
<string name="clear_playback_states_title">Delete playback positions</string>
<string name="clear_playback_states_summary">Deletes all playback positions</string>
<string name="delete_playback_states_alert">Delete all playback positions?</string>
<string name="watch_history_states_deleted">Playback positions deleted.</string> <string name="watch_history_states_deleted">Playback positions deleted.</string>
<string name="clear_search_history_title">Clear search history</string> <string name="clear_search_history_title">Clear search history</string>
<string name="clear_search_history_summary">Deletes history of search keywords</string> <string name="clear_search_history_summary">Deletes history of search keywords</string>
@ -260,16 +264,14 @@
</plurals> </plurals>
<string name="no_videos">No videos</string> <string name="no_videos">No videos</string>
<plurals name="videos"> <plurals name="videos">
<item quantity="one">Video</item> <item quantity="one">Videos</item>
<item quantity="other">Videos</item> <item quantity="other">Videos</item>
</plurals> </plurals>
<string name="no_comments">No comments</string> <string name="no_comments">No comments</string>
<plurals name="comments"> <plurals name="comments">
<item quantity="one">%s comment</item> <item quantity="one">%s comment</item>
<item quantity="other">%s comments</item> <item quantity="other">%s comments</item>
</plurals> </plurals>
<!-- Missions --> <!-- Missions -->
<string name="start">Start</string> <string name="start">Start</string>
<string name="pause">Pause</string> <string name="pause">Pause</string>
@ -295,7 +297,7 @@
<string name="msg_running_detail">Tap for details</string> <string name="msg_running_detail">Tap for details</string>
<string name="msg_wait">Please wait…</string> <string name="msg_wait">Please wait…</string>
<string name="msg_copied">Copied to clipboard</string> <string name="msg_copied">Copied to clipboard</string>
<string name="no_available_dir">Please define an download folder later in settings</string> <string name="no_available_dir">Please define a download folder later in settings</string>
<string name="msg_popup_permission">This permission is needed to\nopen in popup mode</string> <string name="msg_popup_permission">This permission is needed to\nopen in popup mode</string>
<string name="one_item_deleted">1 item deleted.</string> <string name="one_item_deleted">1 item deleted.</string>
<!-- Checksum types --> <!-- Checksum types -->
@ -310,7 +312,6 @@
<string name="settings_file_charset_title">Allowed characters in filenames</string> <string name="settings_file_charset_title">Allowed characters in filenames</string>
<string name="settings_file_replacement_character_summary">Invalid characters are replaced with this value</string> <string name="settings_file_replacement_character_summary">Invalid characters are replaced with this value</string>
<string name="settings_file_replacement_character_title">Replacement character</string> <string name="settings_file_replacement_character_title">Replacement character</string>
<string name="charset_letters_and_digits">Letters and digits</string> <string name="charset_letters_and_digits">Letters and digits</string>
<string name="charset_most_special_characters">Most special characters</string> <string name="charset_most_special_characters">Most special characters</string>
<string name="toast_no_player">No app installed to play this file</string> <string name="toast_no_player">No app installed to play this file</string>
@ -377,7 +378,6 @@
<string name="override_current_data">This will override your current setup.</string> <string name="override_current_data">This will override your current setup.</string>
<string name="import_settings">Do you want to also import settings?</string> <string name="import_settings">Do you want to also import settings?</string>
<string name="error_unable_to_load_comments">Could not load comments</string> <string name="error_unable_to_load_comments">Could not load comments</string>
<!-- Kiosk Names --> <!-- Kiosk Names -->
<string name="kiosk">Kiosk</string> <string name="kiosk">Kiosk</string>
<string name="trending">Trending</string> <string name="trending">Trending</string>
@ -397,7 +397,6 @@
<string name="start_here_on_main">Start playing here</string> <string name="start_here_on_main">Start playing here</string>
<string name="start_here_on_background">Start playing in the background</string> <string name="start_here_on_background">Start playing in the background</string>
<string name="start_here_on_popup">Start playing in a new popup</string> <string name="start_here_on_popup">Start playing in a new popup</string>
<!-- Drawer --> <!-- Drawer -->
<string name="drawer_open">Open Drawer</string> <string name="drawer_open">Open Drawer</string>
<string name="drawer_close">Close Drawer</string> <string name="drawer_close">Close Drawer</string>
@ -520,7 +519,6 @@
<string name="overwrite_failed">cannot overwrite the file</string> <string name="overwrite_failed">cannot overwrite the file</string>
<string name="download_already_running">There is a download in progress with this name</string> <string name="download_already_running">There is a download in progress with this name</string>
<string name="download_already_pending">There is a pending download with this name</string> <string name="download_already_pending">There is a pending download with this name</string>
<!-- message dialog about download error --> <!-- message dialog about download error -->
<string name="show_error">Show error</string> <string name="show_error">Show error</string>
<string name="label_code">Code</string> <string name="label_code">Code</string>
@ -539,7 +537,6 @@
<string name="error_insufficient_storage">No space left on device</string> <string name="error_insufficient_storage">No space left on device</string>
<string name="error_progress_lost">Progress lost, because the file was deleted</string> <string name="error_progress_lost">Progress lost, because the file was deleted</string>
<string name="error_timeout">Connection timeout</string> <string name="error_timeout">Connection timeout</string>
<string name="clear_finished_download">Clear finished downloads</string> <string name="clear_finished_download">Clear finished downloads</string>
<string name="confirm_prompt">Are you sure?</string> <string name="confirm_prompt">Are you sure?</string>
<string name="msg_pending_downloads">Continue your %s pending transfers from Downloads</string> <string name="msg_pending_downloads">Continue your %s pending transfers from Downloads</string>
@ -553,9 +550,9 @@
<string name="enable_queue_limit_desc">One download will run at the same time</string> <string name="enable_queue_limit_desc">One download will run at the same time</string>
<string name="start_downloads">Start downloads</string> <string name="start_downloads">Start downloads</string>
<string name="pause_downloads">Pause downloads</string> <string name="pause_downloads">Pause downloads</string>
<string name="downloads_storage_ask_title">Ask where to download</string> <string name="downloads_storage_ask_title">Ask where to download</string>
<string name="downloads_storage_ask_summary">You will be asked where to save each download</string> <string name="downloads_storage_ask_summary">You will be asked where to save each download</string>
<string name="downloads_storage_ask_summary_kitkat">You will be asked where to save each download.\nEnable this option if you want download to the external SD Card</string> <string name="downloads_storage_ask_summary_kitkat">You will be asked where to save each download.\nChoose SAF if you want to download to an external SD card</string>
<string name="downloads_storage_use_saf_title">Use SAF</string>
<string name="downloads_storage_use_saf_summary">The Storage Access Framework allows downloads to an external SD card.\nNote: some devices are not compatible</string>
</resources> </resources>

View File

@ -12,6 +12,13 @@
android:summary="@string/downloads_storage_ask_summary_kitkat" android:summary="@string/downloads_storage_ask_summary_kitkat"
android:title="@string/downloads_storage_ask_title" /> android:title="@string/downloads_storage_ask_title" />
<SwitchPreference
app:iconSpaceReserved="false"
android:defaultValue="false"
android:key="@string/storage_use_saf"
android:summary="@string/downloads_storage_use_saf_summary"
android:title="@string/downloads_storage_use_saf_title" />
<Preference <Preference
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
android:dialogTitle="@string/download_path_dialog_title" android:dialogTitle="@string/download_path_dialog_title"

View File

@ -51,6 +51,12 @@
android:title="@string/clear_views_history_title" android:title="@string/clear_views_history_title"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<Preference
android:key="@string/clear_playback_states_key"
android:summary="@string/clear_playback_states_summary"
android:title="@string/clear_playback_states_title"
app:iconSpaceReserved="false" />
<Preference <Preference
android:key="@string/clear_search_history_key" android:key="@string/clear_search_history_key"
android:summary="@string/clear_search_history_summary" android:summary="@string/clear_search_history_summary"

View File

@ -0,0 +1,44 @@
Changes in 0.17.1
New
• Thai localization
Improved
• Add start playing here action in long-press menus for playlists again #2518
• Add switch for SAF / legacy file picker #2521
Fixed
• Fix disappearing buttons in downloads view when switching apps #2487
• Fix playback position is stored although watch history is disabled
• Fix reduced performance caused by playback position in list views #2517
• [Extractor] Fix ReCaptchaActivity #2527, TeamNewPipe/NewPipeExtractor#186
• [Extractor] [YouTube] Fix casual search error when playlists are in results TeamNewPipe/NewPipeExtractor#185
Changes in 0.17.0
New
Playback resume #2288
• Resume streams where you stopped last time
Downloader Enhancements #2149
• Use Storage Access Framework to store downloads on external SD-cards
• New mp4 muxer
• Optionally change the download directory before starting a download
• Respect metered networks
Improved
• Removed gema strings #2295
• Handle (auto)rotation changes during activity lifecycle #2444
• Make long-press menus consistent #2368
Fixed
• Fixed selected subtitle track name not being shown #2394
• Do not crash when check for app update fails (GitHub version) #2423
• Fixed downloads stuck at 99.9% #2440
• Update play queue metadata #2453
• [SoundCloud] Fixed crash when loading playlists TeamNewPipe/NewPipeExtractor#170
• [YouTube] Fixed duration can not be paresd TeamNewPipe/NewPipeExtractor#177