2
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-08-22 10:09:39 +00:00

Merge pull request #12462 from Isira-Seneviratne/Merge-dev-to-refactor

Merge dev to refactor
This commit is contained in:
Isira Seneviratne 2025-07-25 06:23:19 +05:30 committed by GitHub
commit 2915ab6aef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
177 changed files with 1635 additions and 699 deletions

View File

@ -72,8 +72,8 @@ jobs:
- api-level: 21
target: default
arch: x86
- api-level: 33
target: google_apis # emulator API 33 only exists with Google APIs
- api-level: 35
target: default
arch: x86_64
permissions:

View File

@ -9,12 +9,8 @@
<p align="center">
<a href="https://github.com/TeamNewPipe/NewPipe/releases" alt="GitHub NewPipe releases"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe.svg" ></a>
<a href="https://github.com/TeamNewPipe/NewPipe-nightly/releases" alt="GitHub NewPipe nightly releases">
<img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe-nightly.svg?labelColor=purple&label=dev%20nightly" >
</a>
<a href="https://github.com/TeamNewPipe/NewPipe-refactor-nightly/releases" alt="GitHub NewPipe refactor nightly releases">
<img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe-refactor-nightly.svg?labelColor=purple&label=refactor%20nightly" >
</a>
<a href="https://github.com/TeamNewPipe/NewPipe-nightly/releases" alt="GitHub NewPipe nightly releases"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe-nightly.svg?labelColor=purple&label=dev%20nightly"></a>
<a href="https://github.com/TeamNewPipe/NewPipe-refactor-nightly/releases" alt="GitHub NewPipe refactor nightly releases"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe-refactor-nightly.svg?labelColor=purple&label=refactor%20nightly"></a>
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Build Status"><img src="https://github.com/TeamNewPipe/NewPipe/actions/workflows/ci.yml/badge.svg?branch=dev&event=push"></a>
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>

View File

@ -17,14 +17,14 @@ plugins {
}
android {
compileSdk 35
compileSdk 36
namespace 'org.schabi.newpipe'
defaultConfig {
applicationId "org.schabi.newpipe"
resValue "string", "app_name", "NewPipe"
minSdk 21
targetSdk 33
targetSdk 35
if (System.properties.containsKey('versionCodeOverride')) {
versionCode System.getProperty('versionCodeOverride') as Integer
} else {

View File

@ -10,6 +10,7 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- We need to be able to open links in the browser on API 30+ -->
@ -58,6 +59,15 @@
</intent-filter>
</receiver>
<service
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
android:enabled="false"
android:exported="false">
<meta-data
android:name="autoStoreLocales"
android:value="true" />
</service>
<service
android:name=".player.PlayerService"
android:exported="true"
@ -95,7 +105,10 @@
android:name="androidx.work.impl.foreground.SystemForegroundService"
android:foregroundServiceType="dataSync"
tools:node="merge" />
<service android:name=".local.feed.service.FeedLoadService" />
<service
android:name=".local.feed.service.FeedLoadService"
android:foregroundServiceType="dataSync" />
<activity
android:name=".PanicResponderActivity"
@ -127,7 +140,9 @@
android:label="@string/app_name"
android:launchMode="singleTask" />
<service android:name="us.shandian.giga.service.DownloadManagerService" />
<service
android:name="us.shandian.giga.service.DownloadManagerService"
android:foregroundServiceType="dataSync" />
<activity
android:name=".util.FilePickerActivityHelper"

View File

@ -97,7 +97,7 @@ open class App :
Localization.getPreferredLocalization(this),
Localization.getPreferredContentCountry(this),
)
Localization.initPrettyTime(Localization.resolvePrettyTime(this))
Localization.initPrettyTime(Localization.resolvePrettyTime())
BridgeStateSaverInitializer.init(this)
StateSaver.init(this)

View File

@ -20,8 +20,6 @@
package org.schabi.newpipe;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@ -49,6 +47,7 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
@ -76,6 +75,7 @@ import org.schabi.newpipe.player.Player;
import org.schabi.newpipe.player.event.OnKeyDownListener;
import org.schabi.newpipe.player.helper.PlayerHolder;
import org.schabi.newpipe.player.playqueue.PlayQueue;
import org.schabi.newpipe.settings.SettingMigrations;
import org.schabi.newpipe.settings.UpdateSettingsFragment;
import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.DeviceUtils;
@ -137,6 +137,7 @@ public class MainActivity extends AppCompatActivity {
+ "savedInstanceState = [" + savedInstanceState + "]");
}
Localization.migrateAppLanguageSettingIfNecessary(getApplicationContext());
ThemeHelper.setDayNightMode(this);
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
@ -153,7 +154,6 @@ public class MainActivity extends AppCompatActivity {
}
}
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceState);
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPrefEditor = sharedPreferences.edit();
@ -192,7 +192,7 @@ public class MainActivity extends AppCompatActivity {
UpdateSettingsFragment.askForConsentToUpdateChecks(this);
}
Localization.migrateAppLanguageSettingIfNecessary(getApplicationContext());
SettingMigrations.showUserInfoIfPresent(this);
}
@Override
@ -498,9 +498,8 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onResume() {
assureCorrectAppLanguage(this);
// Change the date format to match the selected language on resume
Localization.initPrettyTime(Localization.resolvePrettyTime(getApplicationContext()));
Localization.initPrettyTime(Localization.resolvePrettyTime());
super.onResume();
// Close drawer on return, and don't show animation,
@ -870,7 +869,8 @@ public class MainActivity extends AppCompatActivity {
};
final IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(VideoDetailFragment.ACTION_PLAYER_STARTED);
registerReceiver(broadcastReceiver, intentFilter);
ContextCompat.registerReceiver(this, broadcastReceiver, intentFilter,
ContextCompat.RECEIVER_EXPORTED);
// If the PlayerHolder is not bound yet, but the service is running, try to bind to it.
// Once the connection is established, the ACTION_PLAYER_STARTED will be sent.

View File

@ -84,7 +84,6 @@ import org.schabi.newpipe.util.ChannelTabHelper;
import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.DeviceUtils;
import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.ThemeHelper;
@ -132,7 +131,6 @@ public class RouterActivity extends AppCompatActivity {
ThemeHelper.setDayNightMode(this);
setTheme(ThemeHelper.isLightThemeSelected(this)
? R.style.RouterActivityThemeLight : R.style.RouterActivityThemeDark);
Localization.assureCorrectAppLanguage(this);
// Pass-through touch events to background activities
// so that our transparent window won't lock UI in the mean time

View File

@ -9,11 +9,9 @@ import org.schabi.newpipe.R
import org.schabi.newpipe.ui.components.common.ScaffoldWithToolbar
import org.schabi.newpipe.ui.screens.AboutScreen
import org.schabi.newpipe.ui.theme.AppTheme
import org.schabi.newpipe.util.Localization
class AboutActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
Localization.assureCorrectAppLanguage(this)
enableEdgeToEdge()
super.onCreate(savedInstanceState)

View File

@ -20,8 +20,6 @@ import org.schabi.newpipe.views.FocusOverlayView;
import us.shandian.giga.service.DownloadManagerService;
import us.shandian.giga.ui.fragment.MissionsFragment;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
public class DownloadActivity extends AppCompatActivity {
private static final String MISSIONS_FRAGMENT_TAG = "fragment_tag";
@ -33,7 +31,6 @@ public class DownloadActivity extends AppCompatActivity {
i.setClass(this, DownloadManagerService.class);
startService(i);
assureCorrectAppLanguage(this);
ThemeHelper.setTheme(this);
super.onCreate(savedInstanceState);

View File

@ -2,7 +2,6 @@ package org.schabi.newpipe.download;
import static org.schabi.newpipe.extractor.stream.DeliveryMethod.PROGRESSIVE_HTTP;
import static org.schabi.newpipe.util.ListHelper.getStreamsOfSpecifiedDelivery;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.app.Activity;
import android.content.ComponentName;
@ -751,7 +750,6 @@ public class DownloadDialog extends DialogFragment
}
private void showFailedDialog(@StringRes final int msg) {
assureCorrectAppLanguage(requireContext());
new AlertDialog.Builder(context)
.setTitle(R.string.general_error)
.setMessage(msg)

View File

@ -1,7 +1,5 @@
package org.schabi.newpipe.error;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@ -79,7 +77,6 @@ public class ErrorActivity extends AppCompatActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceState);
ThemeHelper.setDayNightMode(this);
@ -306,7 +303,7 @@ public class ErrorActivity extends AppCompatActivity {
}
private String getAppLanguage() {
return Localization.getAppLocale(getApplicationContext()).toString();
return Localization.getAppLocale().toString();
}
private String getOsString() {

View File

@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit
class ErrorPanelHelper(
private val fragment: Fragment,
rootView: View,
onRetry: Runnable
onRetry: Runnable?,
) {
private val context: Context = rootView.context!!
@ -56,13 +56,16 @@ class ErrorPanelHelper(
errorPanelRoot.findViewById(R.id.error_open_in_browser)
private var errorDisposable: Disposable? = null
private var retryShouldBeShown: Boolean = (onRetry != null)
init {
if (onRetry != null) {
errorDisposable = errorRetryButton.clicks()
.debounce(300, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe { onRetry.run() }
}
}
private fun ensureDefaultVisibility() {
errorTextView.isVisible = true
@ -101,7 +104,7 @@ class ErrorPanelHelper(
errorActionButton.setOnClickListener(null)
}
errorRetryButton.isVisible = true
errorRetryButton.isVisible = retryShouldBeShown
showAndSetOpenInBrowserButtonAction(errorInfo)
} else if (errorInfo.throwable is AccountTerminatedException) {
errorTextView.setText(R.string.account_terminated)
@ -130,7 +133,7 @@ class ErrorPanelHelper(
errorInfo.throwable !is ContentNotSupportedException
) {
// show retry button only for content which is not unavailable or unsupported
errorRetryButton.isVisible = true
errorRetryButton.isVisible = retryShouldBeShown
}
showAndSetOpenInBrowserButtonAction(errorInfo)
}

View File

@ -10,6 +10,7 @@ import android.widget.Toast
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.PendingIntentCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.preference.PreferenceManager
import com.google.android.material.snackbar.Snackbar
@ -136,10 +137,12 @@ class ErrorUtil {
NotificationManagerCompat.from(context)
.notify(ERROR_REPORT_NOTIFICATION_ID, notificationBuilder.build())
ContextCompat.getMainExecutor(context).execute {
// since the notification is silent, also show a toast, otherwise the user is confused
Toast.makeText(context, R.string.error_report_notification_toast, Toast.LENGTH_SHORT)
.show()
}
}
private fun getErrorActivityIntent(context: Context, errorInfo: ErrorInfo): Intent {
val intent = Intent(context, ErrorActivity::class.java)

View File

@ -32,7 +32,8 @@ public enum UserAction {
PREFERENCES_MIGRATION("migration of preferences"),
SHARE_TO_NEWPIPE("share to newpipe"),
CHECK_FOR_NEW_APP_VERSION("check for new app version"),
OPEN_INFO_ITEM_DIALOG("open info item dialog");
OPEN_INFO_ITEM_DIALOG("open info item dialog"),
GETTING_MAIN_SCREEN_TAB("getting main screen tab");
private final String message;

View File

@ -7,16 +7,57 @@ import android.view.ViewGroup;
import androidx.annotation.Nullable;
import com.evernote.android.state.State;
import org.schabi.newpipe.BaseFragment;
import org.schabi.newpipe.R;
import org.schabi.newpipe.error.ErrorInfo;
import org.schabi.newpipe.error.ErrorPanelHelper;
public class BlankFragment extends BaseFragment {
@State
@Nullable
ErrorInfo errorInfo;
@Nullable
ErrorPanelHelper errorPanel = null;
/**
* Builds a blank fragment that just says the app name and suggests clicking on search.
*/
public BlankFragment() {
this(null);
}
/**
* @param errorInfo if null acts like {@link BlankFragment}, else shows an error panel.
*/
public BlankFragment(@Nullable final ErrorInfo errorInfo) {
this.errorInfo = errorInfo;
}
@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container,
final Bundle savedInstanceState) {
setTitle("NewPipe");
return inflater.inflate(R.layout.fragment_blank, container, false);
final View view = inflater.inflate(R.layout.fragment_blank, container, false);
if (errorInfo != null) {
errorPanel = new ErrorPanelHelper(this, view, null);
errorPanel.showError(errorInfo);
view.findViewById(R.id.blank_page_content).setVisibility(View.GONE);
}
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
if (errorPanel != null) {
errorPanel.dispose();
errorPanel = null;
}
}
@Override

View File

@ -36,8 +36,9 @@ import com.google.android.material.tabs.TabLayout;
import org.schabi.newpipe.BaseFragment;
import org.schabi.newpipe.R;
import org.schabi.newpipe.databinding.FragmentMainBinding;
import org.schabi.newpipe.error.ErrorInfo;
import org.schabi.newpipe.error.ErrorUtil;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.error.UserAction;
import org.schabi.newpipe.local.playlist.LocalPlaylistFragment;
import org.schabi.newpipe.settings.tabs.Tab;
import org.schabi.newpipe.settings.tabs.TabsManager;
@ -303,9 +304,9 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte
final Fragment fragment;
try {
fragment = tab.getFragment(context);
} catch (final ExtractionException e) {
ErrorUtil.showUiErrorSnackbar(context, "Getting fragment item", e);
return new BlankFragment();
} catch (final Throwable t) {
return new BlankFragment(new ErrorInfo(t, UserAction.GETTING_MAIN_SCREEN_TAB,
"Tab " + tab.getClass().getSimpleName() + ":" + tab.getTabName(context)));
}
if (fragment instanceof BaseFragment) {

View File

@ -93,7 +93,7 @@ public class DescriptionFragment extends BaseDescriptionFragment {
if (streamInfo.getLanguageInfo() != null) {
addMetadataItem(inflater, layout, false, R.string.metadata_language,
streamInfo.getLanguageInfo().getDisplayLanguage(getAppLocale(getContext())));
streamInfo.getLanguageInfo().getDisplayLanguage(getAppLocale()));
}
addMetadataItem(inflater, layout, true, R.string.metadata_support,

View File

@ -1302,7 +1302,7 @@ class VideoDetailFragment :
intentFilter.addAction(ACTION_SHOW_MAIN_PLAYER)
intentFilter.addAction(ACTION_HIDE_MAIN_PLAYER)
intentFilter.addAction(ACTION_PLAYER_STARTED)
activity.registerReceiver(broadcastReceiver, intentFilter)
ContextCompat.registerReceiver(activity, broadcastReceiver, intentFilter, ContextCompat.RECEIVER_EXPORTED)
}
/*//////////////////////////////////////////////////////////////////////////

View File

@ -8,6 +8,7 @@ import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.evernote.android.state.State;
@ -42,6 +43,7 @@ public abstract class BaseListInfoFragment<I extends InfoItem, L extends ListInf
private final UserAction errorUserAction;
protected L currentInfo;
@Nullable
protected Page currentNextPage;
protected Disposable currentWorker;

View File

@ -81,9 +81,7 @@ public class ChannelAboutFragment extends BaseDescriptionFragment {
if (channelInfo.getSubscriberCount() != UNKNOWN_SUBSCRIBER_COUNT) {
addMetadataItem(inflater, layout, false, R.string.metadata_subscribers,
Localization.localizeNumber(
requireContext(),
channelInfo.getSubscriberCount()));
Localization.localizeNumber(channelInfo.getSubscriberCount()));
}
addImagesMetadataItem(inflater, layout, R.string.metadata_avatars,

View File

@ -146,6 +146,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
private final SparseArrayCompat<String> menuItemToFilterName = new SparseArrayCompat<>();
private StreamingService service;
@Nullable
private Page nextPage;
private boolean showLocalSuggestions = true;
private boolean showRemoteSuggestions = true;
@ -221,6 +222,15 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
public void onViewCreated(@NonNull final View rootView, final Bundle savedInstanceState) {
searchBinding = FragmentSearchBinding.bind(rootView);
super.onViewCreated(rootView, savedInstanceState);
updateService();
// Add the service name to search string hint
// to make it more obvious which platform is being searched.
if (service != null) {
searchEditText.setHint(
getString(R.string.search_with_service_name,
service.getServiceInfo().getName()));
}
showSearchOnStart();
initSearchListeners();
}
@ -942,6 +952,20 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
filterItemCheckedId = item.getItemId();
item.setChecked(true);
if (service != null) {
final boolean isNotFiltered = theContentFilter.isEmpty()
|| "all".equals(theContentFilter.get(0));
if (isNotFiltered) {
searchEditText.setHint(
getString(R.string.search_with_service_name,
service.getServiceInfo().getName()));
} else {
searchEditText.setHint(getString(R.string.search_with_service_name_and_filter,
service.getServiceInfo().getName(),
item.getTitle()));
}
}
contentFilter = theContentFilter.toArray(new String[0]);
if (!TextUtils.isEmpty(searchString)) {
@ -1073,7 +1097,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
infoListAdapter.addInfoItemList(result.getItems());
nextPage = result.getNextPage();
if (!result.getErrors().isEmpty()) {
if (!result.getErrors().isEmpty() && nextPage != null) {
showSnackBarError(new ErrorInfo(result.getErrors(), UserAction.SEARCHED,
"\"" + searchString + "\" → pageUrl: " + nextPage.getUrl() + ", "
+ "pageIds: " + nextPage.getIds() + ", "

View File

@ -31,6 +31,7 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.PendingIntentCompat
import androidx.core.app.ServiceCompat
import androidx.core.content.ContextCompat
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.disposables.Disposable
@ -200,7 +201,7 @@ class FeedLoadService : Service() {
}
}
}
registerReceiver(broadcastReceiver, IntentFilter(ACTION_CANCEL))
ContextCompat.registerReceiver(this, broadcastReceiver, IntentFilter(ACTION_CANCEL), ContextCompat.RECEIVER_NOT_EXPORTED)
}
// /////////////////////////////////////////////////////////////////////////

View File

@ -1,7 +1,5 @@
package org.schabi.newpipe.local.subscription;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.app.Dialog;
import android.os.Bundle;
@ -39,7 +37,6 @@ public class ImportConfirmationDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
final var context = requireContext();
assureCorrectAppLanguage(context);
return new AlertDialog.Builder(context)
.setMessage(R.string.import_network_expensive_warning)
.setCancelable(true)

View File

@ -2,7 +2,6 @@ package org.schabi.newpipe.player;
import static org.schabi.newpipe.QueueItemMenuUtil.openPopupMenu;
import static org.schabi.newpipe.player.helper.PlayerHelper.formatSpeed;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.content.ComponentName;
import android.content.Intent;
@ -84,7 +83,6 @@ public final class PlayQueueActivity extends AppCompatActivity
@Override
protected void onCreate(final Bundle savedInstanceState) {
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceState);
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));

View File

@ -44,7 +44,6 @@ import static org.schabi.newpipe.player.notification.NotificationConstants.ACTIO
import static org.schabi.newpipe.player.notification.NotificationConstants.ACTION_SHUFFLE;
import static org.schabi.newpipe.util.ListHelper.getPopupResolutionIndex;
import static org.schabi.newpipe.util.ListHelper.getResolutionIndex;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static coil3.Image_androidKt.toBitmap;
@ -61,6 +60,7 @@ import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.math.MathUtils;
import androidx.preference.PreferenceManager;
@ -756,7 +756,6 @@ public final class Player implements PlaybackListener, Listener {
toggleShuffleModeEnabled();
break;
case Intent.ACTION_CONFIGURATION_CHANGED:
assureCorrectAppLanguage(service);
if (DEBUG) {
Log.d(TAG, "ACTION_CONFIGURATION_CHANGED received");
}
@ -769,7 +768,8 @@ public final class Player implements PlaybackListener, Listener {
private void registerBroadcastReceiver() {
// Try to unregister current first
unregisterBroadcastReceiver();
context.registerReceiver(broadcastReceiver, intentFilter);
ContextCompat.registerReceiver(context, broadcastReceiver, intentFilter,
ContextCompat.RECEIVER_EXPORTED);
}
private void unregisterBroadcastReceiver() {

View File

@ -34,7 +34,6 @@ import org.schabi.newpipe.player.mediabrowser.MediaBrowserImpl
import org.schabi.newpipe.player.mediabrowser.MediaBrowserPlaybackPreparer
import org.schabi.newpipe.player.mediasession.MediaSessionPlayerUi
import org.schabi.newpipe.player.notification.NotificationPlayerUi
import org.schabi.newpipe.util.Localization
import org.schabi.newpipe.util.ThemeHelper
import java.lang.ref.WeakReference
import java.util.function.Consumer
@ -76,7 +75,6 @@ class PlayerService : MediaBrowserServiceCompat() {
if (DEBUG) {
Log.d(TAG, "onCreate() called")
}
Localization.assureCorrectAppLanguage(this)
ThemeHelper.setTheme(this)
mediaBrowserImpl = MediaBrowserImpl(this, this::notifyChildrenChanged)

View File

@ -2,7 +2,6 @@ package org.schabi.newpipe.player.helper;
import static org.schabi.newpipe.ktx.ViewUtils.animateRotation;
import static org.schabi.newpipe.player.Player.DEBUG;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import static org.schabi.newpipe.util.ThemeHelper.resolveDrawable;
import android.app.Dialog;
@ -145,7 +144,6 @@ public class PlaybackParameterDialog extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
assureCorrectAppLanguage(getContext());
Bridge.restoreInstanceState(this, savedInstanceState);
binding = DialogPlaybackParameterBinding.inflate(getLayoutInflater());

View File

@ -11,6 +11,7 @@ import androidx.annotation.DrawableRes
import androidx.core.net.toUri
import androidx.core.os.bundleOf
import androidx.media.MediaBrowserServiceCompat
import androidx.media.MediaBrowserServiceCompat.BrowserRoot.EXTRA_RECENT
import androidx.media.MediaBrowserServiceCompat.Result
import androidx.media.utils.MediaConstants
import io.reactivex.rxjava3.core.Flowable
@ -48,6 +49,7 @@ class MediaBrowserImpl(
private val context: Context,
notifyChildrenChanged: (parentId: String) -> Unit,
) {
private val packageValidator = PackageValidator(context)
private val database = NewPipeDatabase.getInstance(context)
private var disposables = CompositeDisposable()
@ -67,11 +69,22 @@ class MediaBrowserImpl(
clientPackageName: String,
clientUid: Int,
rootHints: Bundle?
): MediaBrowserServiceCompat.BrowserRoot {
): MediaBrowserServiceCompat.BrowserRoot? {
if (DEBUG) {
Log.d(TAG, "onGetRoot($clientPackageName, $clientUid, $rootHints)")
}
if (!packageValidator.isKnownCaller(clientPackageName, clientUid)) {
// this is a caller we can't trust (see PackageValidator's rules taken from uamp)
return null
}
if (rootHints?.getBoolean(EXTRA_RECENT, false) == true) {
// the system is asking for a root to do media resumption, but we can't handle that yet,
// see https://developer.android.com/media/implement/surfaces/mobile#mediabrowserservice_implementation
return null
}
val extras = Bundle()
extras.putBoolean(
MediaConstants.BROWSER_SERVICE_EXTRAS_KEY_SEARCH_SUPPORTED, true

View File

@ -6,6 +6,7 @@ import android.os.Bundle
import android.os.ResultReceiver
import android.support.v4.media.session.PlaybackStateCompat
import android.util.Log
import androidx.core.content.ContextCompat
import androidx.core.net.toUri
import com.google.android.exoplayer2.Player
import com.google.android.exoplayer2.ext.mediasession.MediaSessionConnector.PlaybackPreparer
@ -109,14 +110,14 @@ class MediaBrowserPlaybackPreparer(
//region Errors
private fun onUnsupportedError() {
setMediaSessionError.accept(
context.getString(R.string.content_not_supported),
ContextCompat.getString(context, R.string.content_not_supported),
PlaybackStateCompat.ERROR_CODE_NOT_SUPPORTED
)
}
private fun onPrepareError() {
setMediaSessionError.accept(
context.getString(R.string.error_snackbar_message),
ContextCompat.getString(context, R.string.error_snackbar_message),
PlaybackStateCompat.ERROR_CODE_APP_ERROR
)
}

View File

@ -0,0 +1,240 @@
/*
* Copyright 2018 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE WAS TAKEN FROM UAMP, EXCEPT FOR THINGS RELATED TO THE WHITELIST. UPDATE IT WHEN NEEDED.
// https://github.com/android/uamp/blob/329a21b63c247e9bd35f6858d4fc0e448fa38603/common/src/main/java/com/example/android/uamp/media/PackageValidator.kt
package org.schabi.newpipe.player.mediabrowser
import android.Manifest.permission.MEDIA_CONTENT_CONTROL
import android.annotation.SuppressLint
import android.content.Context
import android.content.pm.PackageInfo
import android.content.pm.PackageInfo.REQUESTED_PERMISSION_GRANTED
import android.content.pm.PackageManager
import android.os.Process
import android.support.v4.media.session.MediaSessionCompat
import android.util.Log
import androidx.core.app.NotificationManagerCompat
import androidx.media.MediaBrowserServiceCompat
import org.schabi.newpipe.BuildConfig
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
/**
* Validates that the calling package is authorized to browse a [MediaBrowserServiceCompat].
*
* The list of allowed signing certificates and their corresponding package names is defined in
* res/xml/allowed_media_browser_callers.xml.
*
* If you want to add a new caller to allowed_media_browser_callers.xml and you don't know
* its signature, this class will print to logcat (INFO level) a message with the proper
* xml tags to add to allow the caller.
*
* For more information, see res/xml/allowed_media_browser_callers.xml.
*/
internal class PackageValidator(context: Context) {
private val context: Context = context.applicationContext
private val packageManager: PackageManager = this.context.packageManager
private val platformSignature: String = getSystemSignature()
private val callerChecked = mutableMapOf<String, Pair<Int, Boolean>>()
/**
* Checks whether the caller attempting to connect to a [MediaBrowserServiceCompat] is known.
* See [MusicService.onGetRoot] for where this is utilized.
*
* @param callingPackage The package name of the caller.
* @param callingUid The user id of the caller.
* @return `true` if the caller is known, `false` otherwise.
*/
fun isKnownCaller(callingPackage: String, callingUid: Int): Boolean {
// If the caller has already been checked, return the previous result here.
val (checkedUid, checkResult) = callerChecked[callingPackage] ?: Pair(0, false)
if (checkedUid == callingUid) {
return checkResult
}
/**
* Because some of these checks can be slow, we save the results in [callerChecked] after
* this code is run.
*
* In particular, there's little reason to recompute the calling package's certificate
* signature (SHA-256) each call.
*
* This is safe to do as we know the UID matches the package's UID (from the check above),
* and app UIDs are set at install time. Additionally, a package name + UID is guaranteed to
* be constant until a reboot. (After a reboot then a previously assigned UID could be
* reassigned.)
*/
// Build the caller info for the rest of the checks here.
val callerPackageInfo = buildCallerInfo(callingPackage)
?: throw IllegalStateException("Caller wasn't found in the system?")
// Verify that things aren't ... broken. (This test should always pass.)
if (callerPackageInfo.uid != callingUid) {
throw IllegalStateException("Caller's package UID doesn't match caller's actual UID?")
}
val callerSignature = callerPackageInfo.signature
val isCallerKnown = when {
// If it's our own app making the call, allow it.
callingUid == Process.myUid() -> true
// If the system is making the call, allow it.
callingUid == Process.SYSTEM_UID -> true
// If the app was signed by the same certificate as the platform itself, also allow it.
callerSignature == platformSignature -> true
/**
* [MEDIA_CONTENT_CONTROL] permission is only available to system applications, and
* while it isn't required to allow these apps to connect to a
* [MediaBrowserServiceCompat], allowing this ensures optimal compatability with apps
* such as Android TV and the Google Assistant.
*/
callerPackageInfo.permissions.contains(MEDIA_CONTENT_CONTROL) -> true
/**
* If the calling app has a notification listener it is able to retrieve notifications
* and can connect to an active [MediaSessionCompat].
*
* It's not required to allow apps with a notification listener to
* connect to your [MediaBrowserServiceCompat], but it does allow easy compatibility
* with apps such as Wear OS.
*/
NotificationManagerCompat.getEnabledListenerPackages(this.context)
.contains(callerPackageInfo.packageName) -> true
// If none of the previous checks succeeded, then the caller is unrecognized.
else -> false
}
if (!isCallerKnown) {
logUnknownCaller(callerPackageInfo)
}
// Save our work for next time.
callerChecked[callingPackage] = Pair(callingUid, isCallerKnown)
return isCallerKnown
}
/**
* Logs an info level message with details of how to add a caller to the allowed callers list
* when the app is debuggable.
*/
private fun logUnknownCaller(callerPackageInfo: CallerPackageInfo) {
if (BuildConfig.DEBUG) {
Log.w(TAG, "Unknown caller $callerPackageInfo")
}
}
/**
* Builds a [CallerPackageInfo] for a given package that can be used for all the
* various checks that are performed before allowing an app to connect to a
* [MediaBrowserServiceCompat].
*/
private fun buildCallerInfo(callingPackage: String): CallerPackageInfo? {
val packageInfo = getPackageInfo(callingPackage) ?: return null
val appName = packageInfo.applicationInfo?.loadLabel(packageManager).toString()
val uid = packageInfo.applicationInfo?.uid ?: -1
val signature = getSignature(packageInfo)
val requestedPermissions = packageInfo.requestedPermissions?.asSequence().orEmpty()
val permissionFlags = packageInfo.requestedPermissionsFlags?.asSequence().orEmpty()
val activePermissions = (requestedPermissions zip permissionFlags)
.filter { (permission, flag) -> flag and REQUESTED_PERMISSION_GRANTED != 0 }
.mapTo(mutableSetOf()) { (permission, flag) -> permission }
return CallerPackageInfo(appName, callingPackage, uid, signature, activePermissions.toSet())
}
/**
* Looks up the [PackageInfo] for a package name.
* This requests both the signatures (for checking if an app is on the allow list) and
* the app's permissions, which allow for more flexibility in the allow list.
*
* @return [PackageInfo] for the package name or null if it's not found.
*/
@Suppress("deprecation")
@SuppressLint("PackageManagerGetSignatures")
private fun getPackageInfo(callingPackage: String): PackageInfo? =
packageManager.getPackageInfo(
callingPackage,
PackageManager.GET_SIGNATURES or PackageManager.GET_PERMISSIONS
)
/**
* Gets the signature of a given package's [PackageInfo].
*
* The "signature" is a SHA-256 hash of the public key of the signing certificate used by
* the app.
*
* If the app is not found, or if the app does not have exactly one signature, this method
* returns `null` as the signature.
*/
@Suppress("deprecation")
private fun getSignature(packageInfo: PackageInfo): String? =
if (packageInfo.signatures == null || packageInfo.signatures!!.size != 1) {
// Security best practices dictate that an app should be signed with exactly one (1)
// signature. Because of this, if there are multiple signatures, reject it.
null
} else {
val certificate = packageInfo.signatures!![0].toByteArray()
getSignatureSha256(certificate)
}
/**
* Finds the Android platform signing key signature. This key is never null.
*/
private fun getSystemSignature(): String =
getPackageInfo(ANDROID_PLATFORM)?.let { platformInfo ->
getSignature(platformInfo)
} ?: throw IllegalStateException("Platform signature not found")
/**
* Creates a SHA-256 signature given a certificate byte array.
*/
private fun getSignatureSha256(certificate: ByteArray): String {
val md: MessageDigest
try {
md = MessageDigest.getInstance("SHA256")
} catch (noSuchAlgorithmException: NoSuchAlgorithmException) {
Log.e(TAG, "No such algorithm: $noSuchAlgorithmException")
throw RuntimeException("Could not find SHA256 hash algorithm", noSuchAlgorithmException)
}
md.update(certificate)
// This code takes the byte array generated by `md.digest()` and joins each of the bytes
// to a string, applying the string format `%02x` on each digit before it's appended, with
// a colon (':') between each of the items.
// For example: input=[0,2,4,6,8,10,12], output="00:02:04:06:08:0a:0c"
return md.digest().joinToString(":") { String.format("%02x", it) }
}
/**
* Convenience class to hold all of the information about an app that's being checked
* to see if it's a known caller.
*/
private data class CallerPackageInfo(
val name: String,
val packageName: String,
val uid: Int,
val signature: String?,
val permissions: Set<String>
)
}
private const val TAG = "PackageValidator"
private const val ANDROID_PLATFORM = "android"

View File

@ -3,6 +3,7 @@ package org.schabi.newpipe.player.playqueue;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.schabi.newpipe.extractor.InfoItem;
import org.schabi.newpipe.extractor.ListExtractor;
@ -23,6 +24,7 @@ abstract class AbstractInfoPlayQueue<T extends ListInfo<? extends InfoItem>>
final int serviceId;
final String baseUrl;
@Nullable
Page nextPage;
private transient Disposable fetchReactor;

View File

@ -1,7 +1,6 @@
package org.schabi.newpipe.settings;
import static org.schabi.newpipe.extractor.utils.Utils.isBlank;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.app.Activity;
import android.app.AlertDialog;
@ -122,7 +121,6 @@ public class BackupRestoreSettingsFragment extends BasePreferenceFragment {
}
private void requestExportPathResult(final ActivityResult result) {
assureCorrectAppLanguage(requireContext());
if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) {
// will be saved only on success
final Uri lastExportDataUri = result.getData().getData();
@ -135,7 +133,6 @@ public class BackupRestoreSettingsFragment extends BasePreferenceFragment {
}
private void requestImportPathResult(final ActivityResult result) {
assureCorrectAppLanguage(requireContext());
if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) {
// will be saved only on success
final Uri lastImportDataUri = result.getData().getData();

View File

@ -10,13 +10,13 @@ import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.os.LocaleListCompat;
import androidx.preference.Preference;
import org.schabi.newpipe.DownloaderImpl;
import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.localization.ContentCountry;
import org.schabi.newpipe.extractor.localization.Localization;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.image.ImageStrategy;
import org.schabi.newpipe.util.image.PreferredImageQuality;
@ -27,26 +27,27 @@ import coil3.SingletonImageLoader;
public class ContentSettingsFragment extends BasePreferenceFragment {
private String youtubeRestrictedModeEnabledKey;
private String initialLanguage;
@Override
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
youtubeRestrictedModeEnabledKey = getString(R.string.youtube_restricted_mode_enabled);
addPreferencesFromResourceRegistry();
initialLanguage = defaultPreferences.getString(getString(R.string.app_language_key), "en");
setupAppLanguagePreferences();
setupImageQualityPref();
}
private void setupAppLanguagePreferences() {
final Preference appLanguagePref = requirePreference(R.string.app_language_key);
// Android 13+ allows to set app specific languages
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
appLanguagePref.setVisible(false);
if (Build.VERSION.SDK_INT >= 33) {
requirePreference(R.string.app_language_key).setVisible(false);
final Preference newAppLanguagePref =
requirePreference(R.string.app_language_android_13_and_up_key);
newAppLanguagePref.setSummaryProvider(preference -> {
final Locale customLocale = AppCompatDelegate.getApplicationLocales().get(0);
if (customLocale != null) {
return customLocale.getDisplayName();
}
return getString(R.string.systems_language);
final Locale loc = AppCompatDelegate.getApplicationLocales().get(0);
return loc != null ? loc.getDisplayName() : getString(R.string.systems_language);
});
newAppLanguagePref.setOnPreferenceClickListener(preference -> {
final Intent intent = new Intent(Settings.ACTION_APP_LOCALE_SETTINGS)
@ -55,10 +56,20 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
return true;
});
newAppLanguagePref.setVisible(true);
return;
}
final Preference imageQualityPreference = requirePreference(R.string.image_quality_key);
imageQualityPreference.setOnPreferenceChangeListener(
appLanguagePref.setOnPreferenceChangeListener((preference, newValue) -> {
final String language = (String) newValue;
final String systemLang = getString(R.string.default_localization_key);
final String tag = systemLang.equals(language) ? null : language;
AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(tag));
return true;
});
}
private void setupImageQualityPref() {
requirePreference(R.string.image_quality_key).setOnPreferenceChangeListener(
(preference, newValue) -> {
ImageStrategy.setPreferredImageQuality(PreferredImageQuality
.fromPreferenceKey(requireContext(), (String) newValue));
@ -91,22 +102,9 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
public void onDestroy() {
super.onDestroy();
final String selectedLanguage =
defaultPreferences.getString(getString(R.string.app_language_key), "en");
if (!selectedLanguage.equals(initialLanguage)) {
if (Build.VERSION.SDK_INT < 33) {
Toast.makeText(
requireContext(),
R.string.localization_changes_requires_app_restart,
Toast.LENGTH_LONG
).show();
}
final Localization selectedLocalization = org.schabi.newpipe.util.Localization
.getPreferredLocalization(requireContext());
final ContentCountry selectedContentCountry = org.schabi.newpipe.util.Localization
.getPreferredContentCountry(requireContext());
NewPipe.setupLocalization(selectedLocalization, selectedContentCountry);
}
final Context context = requireContext();
NewPipe.setupLocalization(
Localization.getPreferredLocalization(context),
Localization.getPreferredContentCountry(context));
}
}

View File

@ -1,7 +1,5 @@
package org.schabi.newpipe.settings;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
@ -209,8 +207,6 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
}
private void requestDownloadPathResult(final ActivityResult result, final String key) {
assureCorrectAppLanguage(getContext());
if (result.getResultCode() != Activity.RESULT_OK) {
return;
}

View File

@ -1,12 +1,12 @@
package org.schabi.newpipe.settings;
import static org.schabi.newpipe.MainActivity.DEBUG;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.util.Consumer;
import androidx.preference.PreferenceManager;
import org.schabi.newpipe.App;
@ -14,11 +14,19 @@ import org.schabi.newpipe.R;
import org.schabi.newpipe.error.ErrorInfo;
import org.schabi.newpipe.error.ErrorUtil;
import org.schabi.newpipe.error.UserAction;
import org.schabi.newpipe.settings.tabs.Tab;
import org.schabi.newpipe.settings.tabs.TabsManager;
import org.schabi.newpipe.util.DeviceUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static org.schabi.newpipe.MainActivity.DEBUG;
import static org.schabi.newpipe.extractor.ServiceList.SoundCloud;
/**
* In order to add a migration, follow these steps, given P is the previous version:<br>
@ -32,6 +40,12 @@ public final class SettingMigrations {
private static final String TAG = SettingMigrations.class.toString();
private static SharedPreferences sp;
/**
* List of UI actions that are performed after the UI is initialized (e.g. showing alert
* dialogs) to inform the user about changes that were applied by migrations.
*/
private static final List<Consumer<Context>> MIGRATION_INFO = new ArrayList<>();
private static final Migration MIGRATION_0_1 = new Migration(0, 1) {
@Override
public void migrate(@NonNull final Context context) {
@ -129,7 +143,7 @@ public final class SettingMigrations {
}
};
public static final Migration MIGRATION_5_6 = new Migration(5, 6) {
private static final Migration MIGRATION_5_6 = new Migration(5, 6) {
@Override
protected void migrate(@NonNull final Context context) {
final boolean loadImages = sp.getBoolean("download_thumbnail_key", true);
@ -143,6 +157,32 @@ public final class SettingMigrations {
}
};
private static final Migration MIGRATION_6_7 = new Migration(6, 7) {
@Override
protected void migrate(@NonNull final Context context) {
// The SoundCloud Top 50 Kiosk was removed in the extractor,
// so we remove the corresponding tab if it exists.
final TabsManager tabsManager = TabsManager.getManager(context);
final List<Tab> tabs = tabsManager.getTabs();
final List<Tab> cleanedTabs = tabs.stream()
.filter(tab -> !(tab instanceof Tab.KioskTab kioskTab
&& kioskTab.getKioskServiceId() == SoundCloud.getServiceId()
&& kioskTab.getKioskId().equals("Top 50")))
.collect(Collectors.toUnmodifiableList());
if (tabs.size() != cleanedTabs.size()) {
tabsManager.saveTabs(cleanedTabs);
// create an AlertDialog to inform the user about the change
MIGRATION_INFO.add((Context uiContext) -> new AlertDialog.Builder(uiContext)
.setTitle(R.string.migration_info_6_7_title)
.setMessage(R.string.migration_info_6_7_message)
.setPositiveButton(R.string.ok, null)
.setCancelable(false)
.create()
.show());
}
}
};
/**
* List of all implemented migrations.
* <p>
@ -156,12 +196,13 @@ public final class SettingMigrations {
MIGRATION_3_4,
MIGRATION_4_5,
MIGRATION_5_6,
MIGRATION_6_7
};
/**
* Version number for preferences. Must be incremented every time a migration is necessary.
*/
private static final int VERSION = 6;
private static final int VERSION = 7;
public static void runMigrationsIfNeeded(@NonNull final Context context) {
@ -208,6 +249,21 @@ public final class SettingMigrations {
sp.edit().putInt(lastPrefVersionKey, currentVersion).apply();
}
/**
* Perform UI actions informing about migrations that took place if they are present.
* @param context Context that can be used to show dialogs/snackbars/toasts
*/
public static void showUserInfoIfPresent(@NonNull final Context context) {
for (final Consumer<Context> consumer : MIGRATION_INFO) {
try {
consumer.accept(context);
} catch (final Exception e) {
ErrorUtil.showUiErrorSnackbar(context, "Showing migration info to the user", e);
}
}
MIGRATION_INFO.clear();
}
private SettingMigrations() { }
abstract static class Migration {

View File

@ -1,7 +1,5 @@
package org.schabi.newpipe.settings;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
@ -89,7 +87,6 @@ public class SettingsActivity extends AppCompatActivity implements
@Override
protected void onCreate(final Bundle savedInstanceBundle) {
setTheme(ThemeHelper.getSettingsThemeStyle(this));
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceBundle);
Bridge.restoreInstanceState(this, savedInstanceBundle);
@ -228,7 +225,6 @@ public class SettingsActivity extends AppCompatActivity implements
// Build search items
final Context searchContext = getApplicationContext();
assureCorrectAppLanguage(searchContext);
final PreferenceParser parser = new PreferenceParser(searchContext, config);
final PreferenceSearcher searcher = new PreferenceSearcher(config);

View File

@ -24,6 +24,7 @@ public final class ChannelTabHelper {
switch (tab) {
case ChannelTabs.VIDEOS:
case ChannelTabs.TRACKS:
case ChannelTabs.LIKES:
case ChannelTabs.SHORTS:
case ChannelTabs.LIVESTREAMS:
return true;
@ -62,6 +63,8 @@ public final class ChannelTabHelper {
return R.string.show_channel_tabs_playlists;
case ChannelTabs.ALBUMS:
return R.string.show_channel_tabs_albums;
case ChannelTabs.LIKES:
return R.string.show_channel_tabs_likes;
default:
return -1;
}
@ -78,6 +81,8 @@ public final class ChannelTabHelper {
return R.string.fetch_channel_tabs_shorts;
case ChannelTabs.LIVESTREAMS:
return R.string.fetch_channel_tabs_livestreams;
case ChannelTabs.LIKES:
return R.string.fetch_channel_tabs_likes;
default:
return -1;
}
@ -100,6 +105,8 @@ public final class ChannelTabHelper {
return R.string.channel_tab_playlists;
case ChannelTabs.ALBUMS:
return R.string.channel_tab_albums;
case ChannelTabs.LIKES:
return R.string.channel_tab_likes;
default:
return R.string.unknown_content;
}

View File

@ -322,7 +322,7 @@ public final class ListHelper {
}
// Sort collected streams by name
return collectedStreams.values().stream().sorted(getAudioTrackNameComparator(context))
return collectedStreams.values().stream().sorted(getAudioTrackNameComparator())
.collect(Collectors.toList());
}
@ -359,7 +359,7 @@ public final class ListHelper {
}
// Sort tracks alphabetically, sort track streams by quality
final Comparator<AudioStream> nameCmp = getAudioTrackNameComparator(context);
final Comparator<AudioStream> nameCmp = getAudioTrackNameComparator();
final Comparator<AudioStream> formatCmp = getAudioFormatComparator(context);
return collectedStreams.values().stream()
@ -867,12 +867,10 @@ public final class ListHelper {
* Get a {@link Comparator} to compare {@link AudioStream}s by their languages and track types
* for alphabetical sorting.
*
* @param context app context for localization
* @return Comparator
*/
private static Comparator<AudioStream> getAudioTrackNameComparator(
@NonNull final Context context) {
final Locale appLoc = Localization.getAppLocale(context);
private static Comparator<AudioStream> getAudioTrackNameComparator() {
final Locale appLoc = Localization.getAppLocale();
return Comparator.comparing(AudioStream::getAudioLocale, Comparator.nullsLast(
Comparator.comparing(locale -> locale.getDisplayName(appLoc))))

View File

@ -5,14 +5,12 @@ import static org.schabi.newpipe.MainActivity.DEBUG;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.icu.text.CompactDecimalFormat;
import android.os.Build;
import android.text.BidiFormatter;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.BidiFormatter;
import android.util.DisplayMetrics;
import android.util.Log;
import androidx.annotation.NonNull;
@ -43,7 +41,6 @@ import java.time.format.FormatStyle;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.stream.Collectors;
@ -120,39 +117,35 @@ public final class Localization {
return getLocaleFromPrefs(context, R.string.content_language_key);
}
public static Locale getAppLocale(@NonNull final Context context) {
if (Build.VERSION.SDK_INT >= 33) {
public static Locale getAppLocale() {
final Locale customLocale = AppCompatDelegate.getApplicationLocales().get(0);
return Objects.requireNonNullElseGet(customLocale, Locale::getDefault);
}
return getLocaleFromPrefs(context, R.string.app_language_key);
return customLocale != null ? customLocale : Locale.getDefault();
}
public static String localizeNumber(@NonNull final Context context, final long number) {
return localizeNumber(context, (double) number);
public static String localizeNumber(final long number) {
return localizeNumber((double) number);
}
public static String localizeNumber(@NonNull final Context context, final double number) {
final NumberFormat nf = NumberFormat.getInstance(getAppLocale(context));
public static String localizeNumber(final double number) {
final NumberFormat nf = NumberFormat.getInstance(getAppLocale());
return nf.format(number);
}
public static String formatDate(@NonNull final Context context,
@NonNull final OffsetDateTime offsetDateTime) {
public static String formatDate(@NonNull final OffsetDateTime offsetDateTime) {
return DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(getAppLocale(context)).format(offsetDateTime
.withLocale(getAppLocale()).format(offsetDateTime
.atZoneSameInstant(ZoneId.systemDefault()));
}
@SuppressLint("StringFormatInvalid")
public static String localizeUploadDate(@NonNull final Context context,
@NonNull final OffsetDateTime offsetDateTime) {
return context.getString(R.string.upload_date_text, formatDate(context, offsetDateTime));
return context.getString(R.string.upload_date_text, formatDate(offsetDateTime));
}
public static String localizeViewCount(@NonNull final Context context, final long viewCount) {
return getQuantity(context, R.plurals.views, R.string.no_views, viewCount,
localizeNumber(context, viewCount));
localizeNumber(viewCount));
}
public static String localizeStreamCount(@NonNull final Context context,
@ -166,7 +159,7 @@ public final class Localization {
return context.getResources().getString(R.string.more_than_100_videos);
default:
return getQuantity(context, R.plurals.videos, R.string.no_videos, streamCount,
localizeNumber(context, streamCount));
localizeNumber(streamCount));
}
}
@ -187,27 +180,27 @@ public final class Localization {
public static String localizeWatchingCount(@NonNull final Context context,
final long watchingCount) {
return getQuantity(context, R.plurals.watching, R.string.no_one_watching, watchingCount,
localizeNumber(context, watchingCount));
localizeNumber(watchingCount));
}
public static String shortCount(@NonNull final Context context, final long count) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return CompactDecimalFormat.getInstance(getAppLocale(context),
return CompactDecimalFormat.getInstance(getAppLocale(),
CompactDecimalFormat.CompactStyle.SHORT).format(count);
}
final double value = (double) count;
if (count >= 1000000000) {
return localizeNumber(context, round(value / 1000000000))
return localizeNumber(round(value / 1000000000))
+ context.getString(R.string.short_billion);
} else if (count >= 1000000) {
return localizeNumber(context, round(value / 1000000))
return localizeNumber(round(value / 1000000))
+ context.getString(R.string.short_million);
} else if (count >= 1000) {
return localizeNumber(context, round(value / 1000))
return localizeNumber(round(value / 1000))
+ context.getString(R.string.short_thousand);
} else {
return localizeNumber(context, value);
return localizeNumber(value);
}
}
@ -372,8 +365,8 @@ public final class Localization {
prettyTime.removeUnit(Decade.class);
}
public static PrettyTime resolvePrettyTime(@NonNull final Context context) {
return new PrettyTime(getAppLocale(context));
public static PrettyTime resolvePrettyTime() {
return new PrettyTime(getAppLocale());
}
public static String relativeTime(@NonNull final OffsetDateTime offsetDateTime) {
@ -405,14 +398,6 @@ public final class Localization {
}
}
public static void assureCorrectAppLanguage(final Context c) {
final Resources res = c.getResources();
final DisplayMetrics dm = res.getDisplayMetrics();
final Configuration conf = res.getConfiguration();
conf.setLocale(getAppLocale(c));
res.updateConfiguration(conf, dm);
}
private static Locale getLocaleFromPrefs(@NonNull final Context context,
@StringRes final int prefKey) {
final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
@ -447,24 +432,28 @@ public final class Localization {
return context.getResources().getQuantityString(pluralId, safeCount, formattedCount);
}
public static void migrateAppLanguageSettingIfNecessary(@NonNull final Context context) {
// Starting with pull request #12093, NewPipe on Android 13+ exclusively uses Android's
// Starting with pull request #12093, NewPipe exclusively uses Android's
// public per-app language APIs to read and set the UI language for NewPipe.
// If running on Android 13+, the following code will migrate any existing custom
// app language in SharedPreferences to use the public per-app language APIs instead.
if (Build.VERSION.SDK_INT >= 33) {
// The following code will migrate any existing custom app language in SharedPreferences to
// use the public per-app language APIs instead.
// For reference, see
// https://android-developers.googleblog.com/2022/11/per-app-language-preferences-part-1.html
public static void migrateAppLanguageSettingIfNecessary(@NonNull final Context context) {
final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
final String appLanguageKey = context.getString(R.string.app_language_key);
final String appLanguageValue = sp.getString(appLanguageKey, null);
if (appLanguageValue != null) {
// The app language key is used on Android versions < 33
// for more info, see ContentSettingsFragment
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
sp.edit().remove(appLanguageKey).apply();
}
final String appLanguageDefaultValue =
context.getString(R.string.default_localization_key);
if (!appLanguageValue.equals(appLanguageDefaultValue)) {
try {
AppCompatDelegate.setApplicationLocales(
LocaleListCompat.forLanguageTags(appLanguageValue)
);
LocaleListCompat.forLanguageTags(appLanguageValue));
} catch (final RuntimeException e) {
Log.e(TAG, "Failed to migrate previous custom app language "
+ "setting to public per-app language APIs"
@ -473,5 +462,4 @@ public final class Localization {
}
}
}
}
}

View File

@ -4,7 +4,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/main_bg" />
<include
android:id="@+id/blank_page_content"
layout="@layout/main_bg" />
<include
android:id="@+id/error_panel"

View File

@ -227,7 +227,6 @@
<string name="featured">المميزة</string>
<string name="show_age_restricted_content_summary">عرض المحتوى الذي يُحتمل أن يكون غير مناسب للأطفال لأن له حدًا عمريًا (مثل 18+)</string>
<string name="start_here_on_background">بدأ التشغيل في الخلفية</string>
<string name="localization_changes_requires_app_restart">ستتغير اللغة بمجرد إعادة تشغيل التطبيق</string>
<string name="channel_tab_shorts">القصيرة</string>
<string name="playlists">قوائم التشغيل</string>
<string name="clear">تنظيف</string>

View File

@ -37,7 +37,7 @@
<string name="show_play_with_kodi_summary">اعرض خيار لتشغيل الفيديو عبر مركز وسائط Kodi</string>
<string name="show_play_with_kodi_title">عرض خيار التشغيل بواسطة كودي</string>
<string name="theme_title">السمة</string>
<string name="upload_date_text">تم النشر في %1$s</string>
<string name="upload_date_text">منشورة على %1$s</string>
<string name="unsupported_url">رابط غير مدعوم</string>
<string name="use_external_audio_player_title">استخدام مشغل صوت خارجي</string>
<string name="use_external_video_player_title">استخدام مشغل فيديو خارجي</string>
@ -427,7 +427,6 @@
<string name="default_kiosk_page_summary">الكشك الافتراضي</string>
<string name="no_one_watching">لا توجد مشاهدة</string>
<string name="no_one_listening">لا أحد يستمع</string>
<string name="localization_changes_requires_app_restart">ستتغير اللغة بمجرد إعادة تشغيل التطبيق</string>
<plurals name="watching">
<item quantity="zero">%s مشاهدة</item>
<item quantity="one">%s مشاهدة</item>
@ -879,4 +878,9 @@
<string name="no">لا</string>
<string name="import_settings_vulnerable_format">تستخدم الإعدادات الموجودة في عملية التصدير التي يتم استيرادها تنسيقًا عرضة للاختراق تم إهماله منذ NewPipe 0.27.0. تأكد من أن التصدير الذي يتم استيراده من مصدر موثوق به، ويفضل استخدام عمليات التصدير التي تم الحصول عليها من NewPipe 0.27.0 أو الأحدث في المستقبل فقط. سيتم قريبًا إزالة دعم استيراد الإعدادات بهذا التنسيق الضعيف تمامًا، وبعد ذلك لن تتمكن الإصدارات القديمة من NewPipe من استيراد إعدادات التصدير من الإصدارات الجديدة بعد الآن.</string>
<string name="audio_track_type_secondary">الثانوي</string>
<string name="share_playlist_as_youtube_temporary_playlist">المشاركة كقائمة تشغيل مؤقتة على YouTube</string>
<string name="tab_bookmarks_short">قوائم التشغيل</string>
<string name="feed_group_page_summary">صفحة مجموعة القناة</string>
<string name="select_a_feed_group">حدد مجموعة المحتوى</string>
<string name="no_feed_group_created_yet">لم تنشئ مجموعة محتوى</string>
</resources>

View File

@ -342,7 +342,6 @@
<string name="no_valid_zip_file">Etibarlı ZIP faylı yoxdur</string>
<string name="could_not_import_all_files">Xəbərdarlıq: Bütün faylları idxal etmək mümkün olmadı.</string>
<string name="import_settings">Tənzimləmələri də idxal etmək istəyirsiniz\?</string>
<string name="localization_changes_requires_app_restart">Tətbiq yenidən başladıldıqdan sonra dil dəyişəcəkdir</string>
<string name="top_50">Ən yaxşı 50</string>
<string name="new_and_hot">Yeni və populyar</string>
<string name="local">Yerli</string>
@ -801,4 +800,9 @@
<string name="image_quality_summary">Məlumat və yaddaş istifadəsini azaltmaq üçün şəkillərin keyfiyyətini və ya şəkillərin əsla yüklənib-yüklənilməməsini seçin. Dəyişikliklər həm yaddaşdaxili, həm də diskdə olan təsvir qalığın təmizləyir — %s</string>
<string name="share_playlist_with_list">URL siyahısını paylaşın</string>
<string name="audio_track_type_secondary">ikinci dərəcəli</string>
<string name="share_playlist_as_youtube_temporary_playlist">YouTube müvəqqəti pleylisti kimi paylaş</string>
<string name="tab_bookmarks_short">Pleylistlər</string>
<string name="select_a_feed_group">Axın qrupu seçin</string>
<string name="no_feed_group_created_yet">Hələ heç bir axın qrupu yaradılmayıb</string>
<string name="feed_group_page_summary">Kanal qrupu səhifəsi</string>
</resources>

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@ -223,7 +223,6 @@
<string name="privacy_policy_title">Política de privacidá de NewPipe</string>
<string name="error_file_creation">El ficheru nun pue crease</string>
<string name="error_http_no_content">El sirvidor nun unvia datos</string>
<string name="localization_changes_requires_app_restart">La llingua va camudar namás que se reanicie l\'aplicación.</string>
<string name="search">Buscar</string>
<string name="share_dialog_title">Compartir con</string>
<string name="subscribed_button_title">Soscribiéstite</string>

View File

@ -551,7 +551,6 @@
<string name="new_and_hot">Yangi va qaynoqlari</string>
<string name="top_50">Top 50</string>
<string name="trending">Ommabop</string>
<string name="localization_changes_requires_app_restart">Ilova qayta ishga tushirilgandan so\'ng til o\'zgaradi.</string>
<string name="error_unable_to_load_comments">Fikrlarni yuklab bolmadi</string>
<string name="import_settings">Sozlamalarni ham import qilmoqchimisiz\?</string>
<string name="override_current_data">Bu sizning joriy sozlamangizni bekor qiladi.</string>

View File

@ -92,7 +92,7 @@
<string name="error_report_title">Справаздача пра памылку</string>
<string name="all">Усе</string>
<string name="channels">Каналы</string>
<string name="playlists">Плэйлісты</string>
<string name="playlists">Плэй-лісты</string>
<string name="tracks">Трэкі</string>
<string name="users">Карыстальнікі</string>
<string name="disabled">Адключана</string>
@ -111,8 +111,8 @@
<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="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>
@ -135,7 +135,7 @@
<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_source">Такога файла або крыніцы кантэнту не існуе</string>
<string name="invalid_file">Файл не існуе або няма дазволу на яго чытанне ці запіс</string>
<string name="file_name_empty_error">Імя файла не можа быць пустым</string>
<string name="error_occurred_detail">Адбылася памылка: %1$s</string>
@ -147,7 +147,7 @@
<string name="what_device_headline">Інфармацыя:</string>
<string name="what_happened_headline">Што адбылося:</string>
<string name="info_labels">Што:\\nЗапыт:\\nМова кантэнту:\\nКраіна кантэнту:\\nМова праграмы:\\nСэрвіс:\\nЧас GMT:\\nПакет:\\nВерсія:\\nВерсія АС:</string>
<string name="your_comment">Ваш каментарый (на англійскай):</string>
<string name="your_comment">Ваш каментарый (па-англійску):</string>
<string name="error_details_headline">Падрабязнасці:</string>
<string name="detail_thumbnail_view_description">Прайграць відэа, працягласць:</string>
<string name="detail_uploader_thumbnail_view_description">Мініяцюра аватара карыстальніка</string>
@ -266,17 +266,17 @@
<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="create_playlist">Стварыць плэй-ліст</string>
<string name="rename_playlist">Перайменаваць</string>
<string name="name">Імя</string>
<string name="add_to_playlist">Дадаць у плэйліст</string>
<string name="set_as_playlist_thumbnail">Зрабіць мініяцюрай плэйліста</string>
<string name="bookmark_playlist">Дадаць плэйліст у закладкі</string>
<string name="add_to_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="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="caption_none">Без субцітраў</string>
<string name="resize_fit">Падагнаць</string>
<string name="resize_fill">Запоўніць</string>
@ -330,7 +330,7 @@
<string name="saved_tabs_invalid_json">Памылка чытання захаваных укладак. Выкарыстоўваюцца ўкладкі па змаўчанні</string>
<string name="restore_defaults">Аднавіць прадвызначаныя значэнні</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="updates_setting_title">Абнаўленні</string>
<string name="updates_setting_description">Паказваць апавяшчэнне пры наяўнасці новай версіі</string>
@ -379,7 +379,7 @@
<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="missing_file">Файл перамешчаны або выдалены</string>
<string name="overwrite_unrelated_warning">Файл з такім імем ужо існуе</string>
<string name="overwrite_finished_warning">Файл з такім імем ужо існуе</string>
<string name="overwrite_failed">немагчыма перазапісаць файл</string>
@ -388,7 +388,7 @@
<string name="error_insufficient_storage_left">На прыладзе скончылася вольнае месца</string>
<string name="error_progress_lost">Прагрэс страчаны, бо файл быў выдалены</string>
<string name="error_timeout">Скончыўся час злучэння</string>
<string name="confirm_prompt">Вы хочаце ачысціць гісторыю спампоўвання ці выдаліць спампаваныя файлы?</string>
<string name="confirm_prompt">Ачысціць гісторыю спампоўвання або выдаліць спампаваныя файлы?</string>
<string name="enable_queue_limit">Абмежаваць чаргу спампоўвання</string>
<string name="enable_queue_limit_desc">Толькі адно адначасовае спампоўванне</string>
<string name="start_downloads">Пачаць спампоўванне</string>
@ -397,7 +397,7 @@
<string name="downloads_storage_ask_summary">Пры кожным спампоўванні вам будзе прапанавана выбраць месца захавання. \nУключыце сістэмны сродак выбару папак (SAF), калі хочаце спампоўваць файлы на знешнюю SD-карту</string>
<string name="downloads_storage_use_saf_title">Выкарыстоўваць сістэмны сродак выбару папак (SAF)</string>
<string name="downloads_storage_use_saf_summary">«Storage Access Framework» дазваляе выконваць спампоўванне на знешнюю SD-карту</string>
<string name="drawer_header_description">Пераключыць службу, выбраную ў дадзены момант:</string>
<string name="drawer_header_description">Пераключэнне сэрвісу, зараз выбраны:</string>
<string name="clear_playback_states_summary">Выдаліць усе пазіцыі прайгравання</string>
<string name="youtube_restricted_mode_enabled_title">Уключыць «Абмежаваны рэжым» YouTube</string>
<string name="peertube_instance_add_https_only">Падтрымліваюцца толькі URL-адрасы HTTPS</string>
@ -435,15 +435,15 @@
<string name="most_liked">Найбольш папулярнае</string>
<string name="local">Лакальнае</string>
<string name="recently_added">Нядаўна дададзенае</string>
<string name="no_playlist_bookmarked_yet">Плэйлісты яшчэ не дададзены</string>
<string name="select_a_playlist">Выберыце плэйліст</string>
<string name="no_playlist_bookmarked_yet">Плэй-лісты яшчэ не дададзены</string>
<string name="select_a_playlist">Выберыце плэй-ліст</string>
<string name="default_kiosk_page_summary">Прадвызначаны кіёск</string>
<string name="done">Так</string>
<string name="subtitle_activity_recaptcha">Па завяршэнні націсніце «Гатова»</string>
<string name="infinite_videos">∞ відэа</string>
<string name="more_than_100_videos">100+ відэа</string>
<string name="error_report_open_issue_button_text">Багрэпарт на GitHub</string>
<string name="copy_for_github">Скапіруйце адфарматаваны багрэпарт</string>
<string name="error_report_open_issue_button_text">Паведаміць на GitHub</string>
<string name="copy_for_github">Скапіяваць адфарматаваную справаздачу</string>
<string name="permission_display_over_apps">Дайце дазвол на адлюстраванне паверх іншых праграм</string>
<string name="delete_playback_states_alert">Выдаліць усе пазіцыі прайгравання\?</string>
<string name="clear_playback_states_title">Выдаліць пазіцыі прайгравання</string>
@ -485,7 +485,7 @@
<string name="night_theme_summary">Выберыце любімую начную тэму - %s</string>
<string name="description_select_enable">Дазвол вылучэння тэксту ў апісанні</string>
<string name="select_night_theme_toast">Вы можаце выбраць сваю любімую начную тэму ніжэй</string>
<string name="night_theme_available">Гэта опцыя даступна толькі тады, калі %s будзе выбранай тэмаю</string>
<string name="night_theme_available">Параметр даступны, толькі калі выбрана тэма %s</string>
<string name="download_has_started">Спампоўванне пачалося</string>
<string name="notifications_disabled">Апавяшчэнні адключаны</string>
<string name="tablet_mode_title">Рэжым планшэта</string>
@ -505,7 +505,7 @@
<string name="night_theme_title">Начная тэма</string>
<string name="open_website_license">Адкрыць вэб-сайт</string>
<string name="description_select_note">Цяпер можна вылучаць тэкст у апісанні. Звярніце ўвагу, што ў рэжыме вылучэння старонка можа мільгаць, а спасылкі не націскацца.</string>
<string name="start_main_player_fullscreen_title">Запускаць галоўны прайгравальнік у поўнаэкранным рэжыме</string>
<string name="start_main_player_fullscreen_title">Запускаць асноўны прайгравальнік у поўнаэкранным рэжыме</string>
<string name="show_channel_details">Паказаць дэталі канала</string>
<string name="low_quality_smaller">Нізкая якасць (менш)</string>
<string name="hash_channel_name">Апавяшчэнне пра відэахэшаванне</string>
@ -537,7 +537,6 @@
<item quantity="other">%d дзён</item>
</plurals>
<string name="clear_download_history">Ачысціць гісторыю спампоўвання</string>
<string name="localization_changes_requires_app_restart">Мова зменіцца пасля перазапуску праграмы</string>
<string name="no_one_listening">Ніхто не слухае</string>
<string name="on">Уключыць</string>
<string name="hash_channel_description">Апавяшчэнні пра ход відэахэшавання</string>
@ -576,12 +575,12 @@
<string name="error_report_channel_name">Апавяшчэнне аб памылцы</string>
<string name="error_report_channel_description">Апавяшчэнні для паведамлення аб памылках</string>
<string name="error_report_notification_title">Адбылася памылка NewPipe, націсніце, каб адправіць справаздачу</string>
<string name="start_main_player_fullscreen_summary">Запускаць відэа ва ўвесь экран, калі адключаны аўтапаварот. Міні-плэер даступны пры выхадзе з поўнаэкраннага рэжыму</string>
<string name="start_main_player_fullscreen_summary">Калі аўтапаварот адключаны, відэа адразу запускаецца ў поўнаэкранным рэжыме. Міні-плэер застаецца даступным, трэба толькі выйсці з поўнаэкраннага рэжыму</string>
<string name="peertube_instance_url_help">Шукайце серверы, якія вам даспадобы, на %s</string>
<string name="show_meta_info_title">Паказваць метаданыя</string>
<string name="ignore_hardware_media_buttons_title">Ігнараваць падзеі апаратных медыякнопак</string>
<string name="show_age_restricted_content_summary">Паказваць змесціва, магчыма непрыдатнае для дзяцей, таму што яно мае ўзроставыя абмежаванні (напрыклад, 18+)</string>
<string name="error_report_open_github_notice">Калі ласка, праверце, ці існуе ўжо праблема з абмеркаваннем вашага збою. Пры стварэнні дублікатаў тыкетаў вы забіраеце ў нас час, які мы маглі б патраціць на выпраўленне фактычнай памылкі.</string>
<string name="error_report_open_github_notice">Праверце, ці не існуе заяўкі з абмеркаваннем вашай праблемы. Дублікаты марнуюць наш час і праз гэта адцягваецца вырашэнне сапраўдных задач.</string>
<string name="error_report_notification_toast">Адбылася памылка, глядзіце апавяшчэнне</string>
<string name="crash_the_player">Збой плэера</string>
<string name="ignore_hardware_media_buttons_summary">Карысна, напрыклад, калі вы карыстаецеся гарнітурай са зламанымі фізічнымі кнопкамі</string>
@ -593,7 +592,7 @@
<string name="msg_calculating_hash">Разлік хэша</string>
<string name="recaptcha_solve">Вырашана</string>
<string name="playlist_no_uploader">Створана аўтаматычна (запампавальнік не знойдзены)</string>
<string name="duplicate_in_playlist">Плэйлісты, якія пазначаны шэрым, ужо ўтрымліваюць гэты элемент.</string>
<string name="duplicate_in_playlist">Плэй-лісты, якія пазначаны шэрым, ужо ўтрымліваюць гэты элемент.</string>
<plurals name="new_streams">
<item quantity="one">%s новая трансляцыя</item>
<item quantity="few">%s новыя трансляцыі</item>
@ -667,13 +666,13 @@
</plurals>
<string name="feed_update_threshold_option_always_update">Заўсёды абнаўляць</string>
<string name="feed_update_threshold_title">Парог абнаўлення стужкі</string>
<string name="feed_load_error_account_info">Немагчыма загрузіць канал для «%s».</string>
<string name="feed_load_error_account_info">Не ўдалося загрузіць канал для «%s».</string>
<string name="settings_category_feed_title">Стужка</string>
<string name="feed_update_threshold_summary">Час пасля апошняга абнаўлення, перш чым падпіска лічыцца састарэлай — %s</string>
<string name="feed_load_error">Памылка загрузкі канала</string>
<string name="feed_load_error_terminated">Уліковы запіс аўтара быў спынены. \nNewPipe не зможа загрузіць гэты канал у будучыні. \nАдпісацца ад канала?</string>
<string name="feed_load_error_fast_unknown">Рэжым хуткай загрузкі стужкі не дае дадатковай інфармацыі аб гэтым.</string>
<string name="feed_use_dedicated_fetch_method_title">Атрымлівайце са спецыяльнага канала, калі ён даступны</string>
<string name="feed_use_dedicated_fetch_method_title">Атрыманне даных са спецыяльнага канала, калі ён ёсць</string>
<string name="feed_use_dedicated_fetch_method_enable_button">Уключыць хуткі рэжым</string>
<string name="metadata_category">Катэгорыя</string>
<string name="metadata_tags">Тэгі</string>
@ -686,7 +685,7 @@
<string name="streams_not_yet_supported_removed">Трансляцыі, спампоўванне якіх яшчэ не падтрымліваецца, не паказваюцца</string>
<string name="detail_sub_channel_thumbnail_view_description">Мініяцюра аватара канала</string>
<string name="video_detail_by">Аўтар: %s</string>
<string name="detail_heart_img_view_description">Аўтару відэа спадабалася гэта</string>
<string name="detail_heart_img_view_description">Спадабалася аўтару відэа</string>
<string name="channel_created_by">Створана %s</string>
<string name="feed_use_dedicated_fetch_method_disable_button">Адключыць хуткі рэжым</string>
<string name="metadata_privacy_public">Публічная</string>
@ -699,7 +698,7 @@
<string name="content_not_supported">Гэты кантэнт яшчэ не падтрымліваецца NewPipe.
\n
\nСпадзяюся, ён будзе падтрымлівацца ў наступных версіях.</string>
<string name="playlist_page_summary">Старонка плэйліста</string>
<string name="playlist_page_summary">Старонка плэй-ліста</string>
<string name="show_thumbnail_title">Паказваць мініяцюру</string>
<string name="show_thumbnail_summary">Выкарыстоўваць мініяцюру як фон для экрана блакіроўкі і апавяшчэнняў</string>
<string name="no_appropriate_file_manager_message">Для гэтага дзеяння не знойдзены прыдатны файлавы менеджар. \nУсталюйце файлавы менеджар або паспрабуйце адключыць «%s» у наладах спампоўвання</string>
@ -713,7 +712,7 @@
<string name="metadata_privacy_internal">Унутраная</string>
<string name="feed_show_watched">Прагледжаныя цалкам</string>
<string name="paid_content">Гэты кантэнт даступны толькі для аплачаных карыстальнікаў, таму NewPipe не можа яго трансляваць або спампоўваць.</string>
<string name="feed_use_dedicated_fetch_method_summary">Даступны ў некаторых службах, звычайна нашмат хутчэй, але можа вяртаць абмежаваную колькасць элементаў і часта няпоўную інфармацыю (напрыклад, без працягласці, тыпу элемента, без актыўнага стану)</string>
<string name="feed_use_dedicated_fetch_method_summary">Даступна для некаторых сэрвісаў, звычайна значна хутчэй, але можа перадаваць абмежаваную колькасць элементаў і не ўсю інфармацыю (можа адсутнічаць працягласць, тып элемента, паказчык трансляцыі)</string>
<string name="metadata_age_limit">Узроставае абмежаванне</string>
<string name="no_appropriate_file_manager_message_android_10">Для гэтага дзеяння не знойдзены прыдатны файлавы менеджар. \nУсталюйце файлавы менеджар, сумяшчальны з Storage Access Framework</string>
<string name="no_app_to_open_intent">Ніякая праграма на вашай прыладзе не можа адкрыць гэта</string>
@ -774,16 +773,16 @@
<string name="image_quality_none">Не загружаць выявы</string>
<string name="image_quality_high">Высокая якасць</string>
<string name="channel_tab_about">Аб канале</string>
<string name="share_playlist">Абагуліць плэйліст</string>
<string name="share_playlist">Абагуліць плэй-ліст</string>
<string name="forward">Пераматаць наперад</string>
<string name="channel_tab_albums">Альбомы</string>
<string name="rewind">Пераматаць назад</string>
<string name="replay">Паўтарыць</string>
<string name="feed_fetch_channel_tabs_summary">Атрыманыя ўкладкі пры абнаўленні стужкі. Гэты параметр не прымяняецца, калі канал абнаўляецца ў хуткім рэжыме.</string>
<string name="feed_fetch_channel_tabs_summary">Укладкі, для якіх атрымліваюцца даныя пры абнаўленні стужкі. Гэты параметр не дзейнічае, калі канал абнаўляецца з выкарыстаннем хуткага рэжыму.</string>
<string name="image_quality_medium">Сярэдняя якасць</string>
<string name="metadata_uploader_avatars">Загрузнік аватараў</string>
<string name="metadata_banners">Банеры</string>
<string name="channel_tab_playlists">Плэйлісты</string>
<string name="channel_tab_playlists">Плэй-лісты</string>
<string name="video_details_list_item">- %1$s: %2$s</string>
<string name="main_tabs_position_summary">Перамясціць панэль укладак уніз</string>
<string name="no_live_streams">Няма жывых трансляцый</string>
@ -816,4 +815,9 @@
<string name="reset_settings_summary">Скінуць усе налады на іх прадвызначаныя значэнні</string>
<string name="reset_all_settings">Пры скіданні ўсіх налад будуць адхілены ўсе вашы змены налад і праграма перазапусціцца. \n \nСапраўды хочаце працягнуць?</string>
<string name="audio_track_type_secondary">другасны</string>
<string name="share_playlist_as_youtube_temporary_playlist">Абагуліць як часовы плэйліст YouTube</string>
<string name="tab_bookmarks_short">Плэй-лісты</string>
<string name="select_a_feed_group">Выберыце групу каналаў</string>
<string name="no_feed_group_created_yet">Група каналаў яшчэ не створана</string>
<string name="feed_group_page_summary">Старонка групы каналаў</string>
</resources>

View File

@ -432,7 +432,6 @@
<string name="most_liked">Най-харесвани</string>
<string name="done">Готово</string>
<string name="comments_tab_description">Коментари</string>
<string name="localization_changes_requires_app_restart">Езикът ще се смени след рестартиране на приложението</string>
<string name="metadata_privacy_unlisted">Скрит</string>
<string name="metadata_privacy_private">Частен</string>
<string name="remote_search_suggestions">Предложения за отдалечено търсене</string>
@ -809,4 +808,12 @@
<string name="always_use_exoplayer_set_output_surface_workaround_title">Винаги използвайте заобикаляне на настройката на повърхността на видеоизхода на ExoPlayer</string>
<string name="clear_playback_states_title">Изтрий позиции за възпроизвеждане</string>
<string name="audio_track_type_secondary">вторичен</string>
<string name="share_playlist_as_youtube_temporary_playlist">Споделяне като временен плейлист в YouTube</string>
<string name="tab_bookmarks_short">Плейлисти</string>
<string name="no_feed_group_created_yet">Все още няма създадена група за емисии</string>
<string name="feed_group_page_summary">Страница на групата канали</string>
<string name="select_a_feed_group">Изберете група емисии</string>
<string name="search_with_service_name">Търсене %1$s</string>
<string name="search_with_service_name_and_filter">Търсене %1$s (%2$s)</string>
<string name="channel_tab_likes">Харесвания</string>
</resources>

View File

@ -534,7 +534,6 @@
<string name="downloads_storage_ask_summary">প্রত্যেক ডাউনলোড কোথায় রাখা হবে তা জিজ্ঞেস করা হবে।
\nমেমোরি কার্ডে ডাউনলোড করতে সিস্টেম ফোল্ডার পিকার (SAF) এনেবল করুন</string>
<string name="download_already_running">এই নামের একটি ডাউনলোড চলমান</string>
<string name="localization_changes_requires_app_restart">অ্যাপ আবার শুরু হলে ভাষা পাল্টাবে</string>
<string name="disable_media_tunneling_title">মিডিয়া সুরঙ্গকরণ অক্ষম</string>
<string name="feed_load_error_fast_unknown">দ্রুত ফিড অবস্থা এ বিষয়ে এর বেশি তথ্য দেয় না।</string>
<string name="no_dir_yet">কোনো ডাউনলোড ফোল্ডার নির্দিষ্ট করা হয়নি, এখনই একটা সহজাত ডাউনলোড ফোল্ডার নির্বাচন করো</string>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="cancel">Nullañ</string>
<string name="ok">Mat eo</string>
<string name="no">Ket</string>
<string name="open_in_browser">Digeriñ e-barzh ar merdeer</string>
<string name="open_with">Digeriñ gant</string>
<string name="share">Rannañ</string>
<string name="download">Pellgargañ</string>
<string name="did_you_mean">Klask a raec\'h \"%1$s\"?</string>
<string name="share_dialog_title">Rannañ gant</string>
<string name="use_external_audio_player_title">Arverañ ul lenner aodio diavaez</string>
<string name="subscribe_button_title">Koumanantiñ</string>
<string name="unsubscribe">Digoumanantiñ</string>
<string name="subscription_change_failed">N\'haller ket kemmañ ar c\'houmanant</string>
<string name="subscription_update_failed">N\'haller ket hizivaat ar c\'houmanant</string>
<string name="show_info">Diskouez an titouroù</string>
<string name="tab_bookmarks">Rolloù-lenn enrollet</string>
<string name="tab_bookmarks_short">Rolloù-lenn</string>
<string name="tab_choose">Dibab un ivinell</string>
<string name="controls_background_title">Drekleur</string>
<string name="controls_popup_title">Diflugell</string>
<string name="controls_add_to_playlist_title">Ouzhpennañ da</string>
<string name="download_path_title">Teuliad pellgargañ ar videoioù</string>
<string name="download_path_audio_summary">Amañ e vez kadavet ar restroù aodio pellgarget</string>
<string name="download_path_summary">Amañ e vez kadavet ar restroù video pellgarget</string>
<string name="notification_action_buffering">O kargañ</string>
<string name="notification_action_nothing">Netra</string>
<string name="default_audio_format_title">Mentrezh aodio dre ziouer</string>
<string name="theme_title">Dodenn</string>
<string name="night_theme_title">Dodenn noz</string>
<string name="light_theme_title">Sklaer</string>
<string name="dark_theme_title">Teñval</string>
<string name="volume">Tregern</string>
<string name="enable_search_history_title">Roll istor enklask</string>
<string name="download_dialog_title">Pellgargañ</string>
<string name="start_main_player_fullscreen_title">Lañsañ al lenner pennañ e mod skramm a-bezh</string>
<string name="autoplay_title">Lenn emgefreek</string>
<string name="default_content_country_title">Bro an endalc\'had dre ziouer</string>
<string name="peertube_instance_url_title">Erioloù PeerTube</string>
<string name="none">Tra ebet</string>
<string name="default_video_format_title">Mentrezh video dre ziouer</string>
<string name="notification_action_shuffle">Lenn mell-divell</string>
<string name="play_audio">Aodio</string>
<string name="play_with_kodi_title">Lenn gant Kodi</string>
<string name="brightness">Lintr</string>
<string name="settings_category_clear_data_title">Skarzhañ ar roadennoù</string>
<string name="search">Klask</string>
<string name="use_external_video_player_title">Arverañ ul lenner video diavaez</string>
<string name="download_path_audio_title">Teuliad pellgargañ ar restroù aodio</string>
<string name="black_theme_title">Du</string>
<string name="show_search_suggestions_title">Kinnigoù enklask</string>
<string name="resume_on_audio_focus_gain_title">Kenderc\'hel al lenn</string>
<string name="unsupported_url">URL anskor</string>
<string name="content_language_title">Yezh an endalc\'had dre ziouer</string>
<string name="controls_download_desc">Pellgargañ restr al lanv</string>
<string name="install">Staliañ</string>
<string name="yes">Ya</string>
<string name="tab_subscriptions">Koumanantoù</string>
<string name="settings">Arventennoù</string>
<string name="search_showing_result_for">Setu an disoc\'hoù evit: %s</string>
<string name="use_external_video_player_summary">Lamet e vez an aodio gant diarunustedoù \'zo</string>
<string name="channel_unsubscribed">Digoumanantet oc\'h bet d\'ar chadenn</string>
<string name="enable_watch_history_title">Sellet ouzh ar roll istor</string>
<string name="subscribed_button_title">Koumanantet</string>
<string name="default_resolution_title">Diarunusted dre ziouer</string>
<string name="peertube_instance_url_summary">Diuzit hoc\'h erioloù PeerTube gwell ganeoc\'h</string>
<string name="peertube_instance_url_help">Kavit an erioloù a blij deoc\'h war %s</string>
<string name="peertube_instance_add_title">Ouzhpennañ un eriol</string>
<string name="settings_category_player_title">Lenner</string>
<string name="settings_category_video_audio_title">Video hag aodio</string>
<string name="settings_category_history_title">Roll istor ha krubuilh</string>
<string name="settings_category_appearance_title">Neuz</string>
<string name="settings_category_debug_title">Diveugañ</string>
<string name="settings_category_updates_title">Hizivadurioù</string>
<string name="settings_category_player_notification_title">Rebuzadur al lenner</string>
<string name="settings_category_backup_restore_title">Assav ha gwarediñ</string>
<string name="duration_live">War-eeun</string>
<string name="downloads_title">Pellgargadurioù</string>
<string name="all">Pep tra</string>
<string name="channels">Chadennoù</string>
<string name="videos_string">Videoioù</string>
<string name="tracks">Loabroù</string>
<string name="users">Arveriaded</string>
<string name="events">Degouezhioù</string>
<string name="songs">Tonioù</string>
<string name="albums">Albomoù</string>
<string name="artists">Arzourien</string>
<string name="disabled">Diweredekaet</string>
<string name="clear">Skarzhañ</string>
<string name="undo">Dizober</string>
<string name="file_deleted">Dilamet eo bet ar restr</string>
<string name="play_all">Lenn pep tra</string>
<string name="always">Atav</string>
<string name="file">Restr</string>
<string name="notifications">Rebuzadurioù</string>
<string name="notification_channel_name">Rebuzadur NewPipe</string>
<string name="notification_channel_description">Rebuzadurioù evit al lenner NewPipe</string>
<string name="app_update_notification_channel_description">Rebuzadurioù evit handelvoù nevez NewPipe</string>
<string name="streams_notification_channel_name">Lanvioù nevez</string>
<string name="just_once">Ur wech nemetken</string>
<string name="best_resolution">Diarunusted wellañ</string>
<string name="general_error">Fazi</string>
<string name="app_update_notification_channel_name">Rebuzadur hizivadur an arload</string>
<string name="content">Endalc\'had</string>
<string name="settings_category_player_behavior_title">Emzalc\'h</string>
<string name="playlists">Rolloù-lenn</string>
<string name="downloads">Pellgargadurioù</string>
<string name="error_snackbar_action">Sevel un danevell</string>
<string name="error_details_headline">Munudoù:</string>
<string name="audio">Aodio</string>
<string name="retry">Klask en-dro</string>
<string name="description_tab_description">Deskrivadur</string>
<string name="search_no_results">Disoc\'h ebet</string>
<string name="empty_list_subtitle">Endalchad ebet</string>
<string name="what_happened_headline">Petra zo c\'hoarvezet:</string>
<string name="detail_thumbnail_view_description">Lenn ar video, pad:</string>
<string name="what_device_headline">Titouroù:</string>
<string name="video">Video</string>
<string name="streams_notification_channel_description"></string>
</resources>

View File

@ -54,6 +54,7 @@
<string name="audio">Àudio</string>
<plurals name="subscribers">
<item quantity="one">%s subscriptor</item>
<item quantity="many">%s subscriptors</item>
<item quantity="other">%s subscriptors</item>
</plurals>
<string name="ok">D\'acord</string>
@ -169,11 +170,13 @@
<string name="no_views">Cap reproducció</string>
<plurals name="views">
<item quantity="one">%s reproducció</item>
<item quantity="many">%s reproduccions</item>
<item quantity="other">%s reproduccions</item>
</plurals>
<string name="no_videos">Cap vídeo</string>
<plurals name="videos">
<item quantity="one">%s vídeo</item>
<item quantity="many">%s vídeos</item>
<item quantity="other">%s vídeos</item>
</plurals>
<string name="pause">Pausa</string>
@ -274,15 +277,7 @@
<string name="enable_leak_canary_summary">La supervisió de fugues de memòria pot fer que l\'aplicació deixi de respondre mentre es bolca la memòria</string>
<string name="enable_disposed_exceptions_title">Informa d\'errors fora del cicle de vida</string>
<string name="enable_disposed_exceptions_summary">Força l\'informe d\'excepcions Rx que no es puguin transmetre que tinguin lloc fora del cicle de vida d\'un fragment o activitat després de disposar-los</string>
<string name="import_youtube_instructions">Importeu les vostres subscripcions de YouTube mitjançant la còpia de contingut de Google Takeout:
\n
\n1. Aneu a : %1$s
\n2. Inicieu la sessió si se us demana
\n3. Premeu \"Totes les dades incloses\", després \"Dessel·lecciona-ho tot\", llavors sel·leccioneu només \"Subscripcions\" i finalment premeu \"D\'acord\".
\n4. Premeu \"Pas següent\" i llavors a \"Crea una exportació\"
\n5. Premeu el botó \"Baixa\" un cop hagi aparegut
\n6. Premeu a IMPORTA EL FITXER i sel·leccioneu el fitxer .zip descarregat
\n7. [En cas que la importació del fitxer .zip hagi fallat] extreieu-ne el fitxer subscripcions.csv (es troba generalment a \"Takeout/YouTube i YouTube Music/subscripcions/subscripcions.csv\"), premeu a IMPORTA EL FITXER i sel·leccioneu el fitxer .csv extret.</string>
<string name="import_youtube_instructions">Importeu les vostres subscripcions de YouTube mitjançant la còpia de contingut de Google Takeout: \n \n1. Aneu a : %1$s \n2. Inicieu la sessió si se us demana \n3. Premeu \"Totes les dades incloses\", després \"Dessel·lecciona-ho tot\", llavors sel·leccioneu només \"Subscripcions\" i finalment premeu \"D\'acord\". \n4. Premeu \"Pas següent\" i llavors a \"Crea una exportació\" \n5. Premeu el botó \"Baixa\" un cop hagi aparegut \n6. Premeu a IMPORTA EL FITXER i sel·leccioneu el fitxer .zip descarregat \n7. [En cas que la importació del fitxer .zip hagi fallat] extreieu-ne el fitxer subscripcions.csv (es troba generalment a \"Takeout/YouTube i YouTube Music/subscripcions/subscripcions.csv\"), premeu a IMPORTA EL FITXER i sel·leccioneu el fitxer .csv extret</string>
<string name="import_soundcloud_instructions">Importeu un perfil del SoundCloud mitjançant l\'URL o l\'identificador del vostre perfil:
\n
\n1. Activeu el «Mode d\'ordinador» en un navegador (el lloc web no està disponible per a dispositius mòbils)
@ -407,7 +402,7 @@
<string name="missing_file">El fitxer s\'ha mogut o suprimit</string>
<string name="enable_queue_limit_desc">Només una baixada alhora</string>
<string name="downloads_storage_use_saf_title">Fes servir el SAF</string>
<string name="downloads_storage_use_saf_summary">El SAF (Storage Access Framework; estructura d\'accés a l\'emmagatzematge) us permet realitzar baixades a una memòria externa com una targeta SD.</string>
<string name="downloads_storage_use_saf_summary">El SAF (Storage Access Framework; estructura d\'accés a l\'emmagatzematge) us permet realitzar baixades a una memòria externa com una targeta SD</string>
<string name="clear_playback_states_title">Esborra les posicions de reproducció</string>
<string name="clear_playback_states_summary">Esborra totes les posicions de reproducció</string>
<string name="delete_playback_states_alert">Voleu suprimir tots els punts de reproducció\?</string>
@ -415,14 +410,15 @@
<string name="no_one_watching">Cap visualització</string>
<plurals name="watching">
<item quantity="one">%s visualització</item>
<item quantity="many">%s visualitzacions</item>
<item quantity="other">%s visualitzacions</item>
</plurals>
<string name="no_one_listening">Cap reproducció</string>
<plurals name="listening">
<item quantity="one">%s escoltant</item>
<item quantity="many">%s escoltants</item>
<item quantity="other">%s escoltants</item>
</plurals>
<string name="localization_changes_requires_app_restart">Es canviarà l\'idioma en reiniciar l\'aplicació</string>
<string name="default_kiosk_page_summary">Tendències</string>
<string name="show_original_time_ago_title">Ensenya el temps passat original sobre els \"items\"</string>
<string name="playlist_no_uploader">Auto-generat (no es troba cap uploader)</string>
@ -477,17 +473,18 @@
<string name="feed_update_threshold_option_always_update">Actualitza sempre</string>
<string name="feed_update_threshold_summary">Temps que ha de passar perquè una subscripció es consideri obsoleta — %s</string>
<string name="feed_update_threshold_title">Llindar d\'actualització del contingut</string>
<string name="settings_category_feed_title">Feed</string>
<string name="settings_category_feed_title">Flux</string>
<string name="feed_group_show_only_ungrouped_subscriptions">Mostra només les subscripcions sense grup</string>
<string name="feed_create_new_group_button_title">Nou</string>
<string name="feed_group_dialog_delete_message">Esteu segurs de voler suprimir aquest grup\?</string>
<string name="feed_group_dialog_empty_name">Nom de grup buit</string>
<plurals name="feed_group_dialog_selection_count">
<item quantity="one">%d de sel·leccionat</item>
<item quantity="other">%d de sel·leccionats</item>
<item quantity="one">%d de seleccionat</item>
<item quantity="many">%d de seleccionats</item>
<item quantity="other">%d de seleccionats</item>
</plurals>
<string name="feed_group_dialog_empty_selection">Cap subscripció sel·leccionada</string>
<string name="feed_group_dialog_select_subscriptions">Sel·leccioneu les subscripcions</string>
<string name="feed_group_dialog_empty_selection">Cap subscripció seleccionada</string>
<string name="feed_group_dialog_select_subscriptions">Selecciona subscripcions</string>
<string name="feed_processing_message">Processant el contingut…</string>
<string name="feed_notification_loading">Carregant el contingut…</string>
<string name="feed_subscription_not_loaded_count">No carregat: %d</string>
@ -495,18 +492,22 @@
<string name="feed_groups_header_title">Grups de canals</string>
<plurals name="days">
<item quantity="one">%d dia</item>
<item quantity="many">%d dies</item>
<item quantity="other">%d dies</item>
</plurals>
<plurals name="hours">
<item quantity="one">%d hora</item>
<item quantity="many">%d hores</item>
<item quantity="other">%d hores</item>
</plurals>
<plurals name="minutes">
<item quantity="one">%d minut</item>
<item quantity="many">%d minuts</item>
<item quantity="other">%d minuts</item>
</plurals>
<plurals name="seconds">
<item quantity="one">%d segon</item>
<item quantity="many">%d segons</item>
<item quantity="other">%d segons</item>
</plurals>
<string name="new_seek_duration_toast">A causa de les limitacions d\'ExoPlayer, la durada de cerca és de %d segons</string>
@ -643,13 +644,12 @@
<string name="manual_update_description">Comprovar manualment si hi ha noves versions</string>
<plurals name="download_finished_notification">
<item quantity="one">Baixada finalitzada</item>
<item quantity="many">%s baixades finalitzades</item>
<item quantity="other">%s baixades finalitzades</item>
</plurals>
<string name="seekbar_preview_thumbnail_title">Vista prèvia de les miniatures de la barra de cerca</string>
<string name="no_appropriate_file_manager_message_android_10">No s\'ha trobat cap gestor de fitxers adequat per a aquesta acció.
\nInstal·leu un gestor de fitxers compatible amb l\'entorn d\'accés d\'emmagatzematge.</string>
<string name="no_appropriate_file_manager_message">No s\'ha trobat cap gestor de fitxers adequat per a aquesta acció.
\nInstal·leu un gestor de fitxers o intenteu desactivar «%s» als paràmetres de baixada.</string>
<string name="no_appropriate_file_manager_message_android_10">No s\'ha trobat cap gestor de fitxers adequat per a aquesta acció. \nInstal·leu un gestor de fitxers compatible amb l\'entorn d\'accés d\'emmagatzematge</string>
<string name="no_appropriate_file_manager_message">No s\'ha trobat cap gestor de fitxers adequat per a aquesta acció. \nInstal·leu un gestor de fitxers o intenteu desactivar «%s» als paràmetres de baixada</string>
<string name="error_report_notification_toast">S\'ha produït un error, consulteu la notificació</string>
<string name="enqueued_next">Afegit el següent vídeo a la cua</string>
<string name="error_report_notification_title">NewPipe ha trobat un error, toca per informar</string>
@ -660,6 +660,7 @@
<string name="checking_updates_toast">S\'estan comprovant les actualitzacions…</string>
<plurals name="deleted_downloads_toast">
<item quantity="one">S\'ha suprimit %1$s baixada</item>
<item quantity="many">S\'han suprimit %1$s baixades</item>
<item quantity="other">S\'han suprimit %1$s baixades</item>
</plurals>
<string name="downloads_storage_use_saf_summary_api_29">A partir de l\'Android 10 només s\'admet el \"Sistema d\'Accés a l\'Emmagatzematge\"</string>
@ -689,8 +690,8 @@
<string name="unknown_format">Format desconegut</string>
<string name="unknown_quality">Cualitat desconeguda</string>
<string name="sort">Ordenar</string>
<string name="settings_category_player_notification_summary">Configura la notificació de reproducció actual.</string>
<string name="progressive_load_interval_summary">Canvia la mida de l\'interval de càrrega en continguts progressius (actualment %s). Un valor inferior pot accelerar la càrrega inicial del vídeo.</string>
<string name="settings_category_player_notification_summary">Configura la notificació de reproducció actual</string>
<string name="progressive_load_interval_summary">Canvia la mida de l\'interval de càrrega en continguts progressius (actualment %s). Un valor inferior pot accelerar la càrrega inicial del vídeo</string>
<string name="ignore_hardware_media_buttons_title">Ignora els esdeveniments dels botons de reproducció físics</string>
<string name="ignore_hardware_media_buttons_summary">Útil, per exemple, si feu servir uns auriculars amb els botons físicament trencats</string>
<string name="left_gesture_control_summary">Trieu un gest per la part esquerra de la pantalla</string>
@ -733,4 +734,95 @@
<string name="playlist_add_stream_success_duplicate">Duplicat afegit/s %d vegada/es</string>
<string name="disable_media_tunneling_automatic_info">El túnel multimèdia s\'ha desactivat de manera predeterminada al dispositiu perquè se sap que el vostre model de dispositiu no ho permet.</string>
<string name="semitone">Semiton</string>
<string name="app_update_unavailable_toast">Estàs fent servir la darrera versió de NewPipe</string>
<string name="error_insufficient_storage">No hi ha prou espai lliure al dispositiu</string>
<string name="tab_bookmarks_short">Llistes de reproducció</string>
<string name="card">Targeta</string>
<string name="remove_duplicates_message">Vols suprimir tots els elements duplicats d\'aquesta llista de reproducció?</string>
<string name="channel_tab_playlists">Llistes de reproducció</string>
<string name="remove_duplicates">Suprimeix els duplicats</string>
<string name="reset_settings_title">Restableix la configuració</string>
<string name="auto_update_check_description">NewPipe pot cercar automàticament actualitzacions i fer-t\'ho saber en estar disponibles.\nVols habilitar-ho?</string>
<string name="remove_duplicates_title">Suprimeixo els duplicats?</string>
<string name="reset_settings_summary">Restableix tots els paràmetres als valors per defecte</string>
<string name="reset_all_settings">Restablir tots els paràmetres descartarà els teus paràmetres preferits i reiniciarà l\'aplicació.\n\nN\'estàs segur?</string>
<string name="app_update_available_notification_text">Clica per descarregar%s</string>
<string name="audio_track_type_dubbed">doblat</string>
<string name="toggle_all">Commuta-ho tot</string>
<string name="feed_show_upcoming">Pròximament</string>
<string name="channel_tab_livestreams">En directe</string>
<string name="play">Reprodueix</string>
<string name="replay">Torna a reproduir</string>
<string name="more_options">Més opcions</string>
<string name="share_playlist_with_list">Comparteix la llista dels URLs</string>
<string name="video_details_list_item">- %1$s: %2$s</string>
<string name="metadata_uploader_avatars">Avatars de l\'autor</string>
<string name="metadata_subchannel_avatars">Avatars del sots-canal</string>
<string name="metadata_subscribers">Subscriptors</string>
<string name="audio_track_present_in_video">Ja hi hauria d\'haver una pista d\'àudio en aquest flux</string>
<string name="selected_stream_external_player_not_supported">El contingut escollit no és suportat per cap reproductor extern</string>
<string name="no_video_streams_available_for_external_players">No hi ha cap flux de vídeo disponible per a reproductors externs</string>
<string name="select_audio_track_external_players">Escull la pista d\'àudio per a reproductors externs</string>
<string name="unknown_audio_track">Desconegut</string>
<string name="audio_track_name">%1$s%2$s</string>
<string name="audio_track_type_original">original</string>
<string name="audio_track_type_descriptive">descriptiu</string>
<string name="channel_tab_videos">Vídeos</string>
<string name="show_channel_tabs_summary">Quines pestanyes es mostren a les pàgines del canal</string>
<string name="open_play_queue">Obre la cua de reproducció</string>
<string name="toggle_screen_orientation">Canvia l\'orientació de la pantalla</string>
<string name="previous_stream">Vídeo anterior</string>
<string name="forward">Avança</string>
<string name="image_quality_title">Qualitat de la imatge</string>
<string name="image_quality_none">No carregues les imatges</string>
<string name="image_quality_medium">Qualitat mitjana</string>
<string name="image_quality_low">Qualitat baixa</string>
<string name="share_playlist_as_youtube_temporary_playlist">Comparteix com a llista de reproducció temporal de Youtube</string>
<string name="share_playlist_content_details">%1$s\n%2$s</string>
<string name="show_more">Mostra més</string>
<string name="metadata_avatars">Avatars</string>
<string name="metadata_banners">Bàners</string>
<string name="duration">Durada</string>
<string name="rewind">Rebobina</string>
<string name="share_playlist_with_titles">Comparteix amb els títols</string>
<string name="streams_not_yet_supported_removed">No es mostren els contiguts que no suporten descàrrega</string>
<string name="feed_hide_streams_title">Mostra els vídeos següents</string>
<string name="no_audio_streams_available_for_external_players">No hi ha cap flux d\'àudio disponible per a reproductors externs</string>
<string name="feed_show_hide_streams">Mostra/Amaga els vídeos</string>
<string name="night_theme_available">Aquesta opció només està disponible si%ss\'ha seleccionat per al tema</string>
<string name="next_stream">Vídeo següent</string>
<plurals name="replies">
<item quantity="one">%sresposta</item>
<item quantity="many">%srespostes</item>
<item quantity="other">%srespostes</item>
</plurals>
<string name="feed_fetch_channel_tabs">Recupera les pestanyes del canal</string>
<string name="progressive_load_interval_exoplayer_default">Valor per defecte d\'ExoPlayer</string>
<string name="metadata_thumbnails">Miniatures</string>
<string name="channel_tab_about">Quant a</string>
<string name="always_use_exoplayer_set_output_surface_workaround_title">Usa sempre la sortida de vídeo d\'ExoPlayer com a solució de contingència</string>
<string name="import_settings_vulnerable_format">La configuració exportada que vols importar té un format vulnerable que és obsolet des de NewPipe 0.27.0. Assegura\'t que l\'exportació que vols importar prové d\'una font de confiança i prefereix només les exportacions fetes amb NewPipe 0.27.0 o posterior d\'ara endavant. El suport a la importació de configuracions en aquest format vulnerable aviat serà suprimit completament i aleshores les antigues versions de NewPipe ja no podran importar les exportacions de les configuracions des de les noves versions.</string>
<string name="channel_tab_albums">Àlbums</string>
<string name="show_channel_tabs">Pestanyes del canal</string>
<string name="image_quality_high">Qualitat alta</string>
<string name="image_quality_summary">Tria la qualitat de les imatges i si carregar-les totalment o no per reduir l\'ús de les dades i la memòria. Els canvis suprimiran la memòria cau de les imatges a la memòria i al disc — %s</string>
<string name="feed_fetch_channel_tabs_summary">Pestanyes que es recuperaran en actualitzar el contingut. Aquesta opció no s\'aplica si el canal s\'actualitza en mode ràpid.</string>
<string name="feed_show_partially_watched">Vist parcialment</string>
<string name="feed_show_watched">Vist completament</string>
<string name="settings_category_exoplayer_title">Paràmetres d\'ExoPlayer</string>
<string name="settings_category_exoplayer_summary">Gestiona alguns paràmetres d\'ExoPlayer. Caldrà reinciciar el reproductor per activar-los</string>
<string name="use_exoplayer_decoder_fallback_title">Usa la funció de suport de decodificació d\'ExoPlayer</string>
<string name="use_exoplayer_decoder_fallback_summary">Habilita aquesta opció si tens problemes en iniciar el decodificador. S\'usaran decodificadors alternatius de baixa prioritat si falla el decodificador primari. Això pot provocar una disminució de la qualitat de la reproducció en relació a l\'ús del decodificador primari</string>
<string name="always_use_exoplayer_set_output_surface_workaround_summary">Aquesta alternativa allibera i reinstancia els còdecs de vídeo si hi ha un canvi de màscara en lloc de configurar-la directament al còdec. ExoPlayer ja ho aplica en alguns dispositius amb aquest problema. Aquesta configuració només té efecte en Android 6 i posteriors\n\nHabilitar aquest opció pot prevenir errors de reproducció en canviar el reproductor actual o en passar a pantalla completa</string>
<string name="channel_tab_tracks">Pistes</string>
<string name="channel_tab_shorts">Curts</string>
<string name="toggle_fullscreen">Canvia a pantalla completa</string>
<string name="question_mark">\?</string>
<string name="share_playlist">Comparteix la llista de reproducció</string>
<string name="show_less">Mostra menys</string>
<string name="audio_track_type_secondary">secundària</string>
<string name="channel_tab_channels">Canals</string>
<string name="no_feed_group_created_yet">Encara no s\'ha creat cap grup de continguts</string>
<string name="select_a_feed_group">Tria un grup de continguts</string>
<string name="feed_group_page_summary">Pàgina del grup de canals</string>
</resources>

View File

@ -107,7 +107,6 @@
<string name="subscription_update_failed">ناتوانرێت به‌ژداریكردنه‌كه‌ نوێبكرێته‌وه‌</string>
<string name="controls_background_title">پشت شاشە</string>
<string name="search_no_results">بێ ئەنجامه‌</string>
<string name="localization_changes_requires_app_restart">زمان دەگۆڕدرێت لەدوای داگیرساندنەوەی به‌رنامه‌كه‌</string>
<string name="remove_watched">لادانی سەیرکراو</string>
<string name="enable_playback_state_lists_summary">پیشاندانی نیشانەکەری شوێنی کارپێکەر لە خشتەکاندا</string>
<string name="enable_playback_state_lists_title">شوێنەکان لە خشتەکاندا</string>

View File

@ -139,9 +139,9 @@
</plurals>
<string name="no_videos">Žádná videa</string>
<plurals name="videos">
<item quantity="one">%s Video</item>
<item quantity="few">%s Videa</item>
<item quantity="other">%s Videí</item>
<item quantity="one">%s video</item>
<item quantity="few">%s videa</item>
<item quantity="other">%s videí</item>
</plurals>
<string name="settings_category_downloads_title">Stahování</string>
<string name="settings_file_charset_title">Povolené znaky v názvech souborů</string>
@ -427,7 +427,6 @@
<item quantity="few">%s posluchači</item>
<item quantity="other">%s posluchačů</item>
</plurals>
<string name="localization_changes_requires_app_restart">Ke změně jazyka dojde po restartu aplikace</string>
<string name="default_kiosk_page_summary">Výchozí kiosek</string>
<string name="seek_duration_title">Délka přetočení vpřed/zpět</string>
<string name="peertube_instance_url_title">Instance PeerTube</string>
@ -837,4 +836,12 @@
\nChcete tuto funkci povolit?</string>
<string name="import_settings_vulnerable_format">Nastavení v importovaném exportu používají zranitelný formát. NewPipe používá nový formát od verze 0.27.0. Ujistěte se, že export importujete z důvěryhodného zdroje a v budoucnu upřednostňujte používání exportů získaných z NewPipe 0.27.0 nebo novějších. Podpora importu nastavení v tomto zranitelném formátu bude brzy kompletně odstraněna, kvůli čemuž staré verze NewPipe nebudou moci importovat nastavení z exportů z nových verzí.</string>
<string name="audio_track_type_secondary">sekundární</string>
<string name="share_playlist_as_youtube_temporary_playlist">Sdílet jako dočasný playlist YouTube</string>
<string name="tab_bookmarks_short">Playlisty</string>
<string name="select_a_feed_group">Vybrat skupinu kanálů</string>
<string name="no_feed_group_created_yet">Zatím nebyla vytvořena žádná skupina kanálů</string>
<string name="feed_group_page_summary">Stránka skupiny kanálů</string>
<string name="search_with_service_name">Hledat %1$s</string>
<string name="search_with_service_name_and_filter">Hledat %1$s (%2$s)</string>
<string name="channel_tab_likes">Líbí se</string>
</resources>

View File

@ -507,7 +507,6 @@
<string name="main_page_content_swipe_remove">Stryg på elementer for at fjerne dem</string>
<string name="select_a_playlist">Vælg en playliste</string>
<string name="no_playlist_bookmarked_yet">Ingen playliste-bogmærker endnu</string>
<string name="localization_changes_requires_app_restart">Sproget ændres, når appen genstarter</string>
<string name="title_activity_play_queue">Afspillerkø</string>
<string name="show_channel_details">Vis kanalens detaljer</string>
<string name="enqueue_stream">Sæt i kø</string>
@ -823,4 +822,9 @@
<string name="import_settings_vulnerable_format">Indstillingerne i den eksport, der importeres, bruger et sårbart format, der er blevet forældet siden NewPipe 0.27.0. Sørg for, at den eksport, der importeres, er fra en pålidelig kilde, og brug helst kun eksport fra NewPipe 0.27.0 eller nyere i fremtiden. Understøttelse af import af indstillinger i dette sårbare format fjernes snart helt, og så vil gamle versioner af NewPipe ikke længere være i stand til at importere indstillinger fra eksport fra nye versioner.</string>
<string name="settings_category_backup_restore_title">Sikkerhedskopiering og gendannelse</string>
<string name="audio_track_type_secondary">sekundær</string>
<string name="share_playlist_as_youtube_temporary_playlist">Del som midlertidig YouTube-playliste</string>
<string name="tab_bookmarks_short">Playlister</string>
<string name="feed_group_page_summary">Kanalgruppeside</string>
<string name="select_a_feed_group">Vælg en feed-gruppe</string>
<string name="no_feed_group_created_yet">Ingen feed-gruppe oprettet endnu</string>
</resources>

View File

@ -432,7 +432,6 @@
<item quantity="one">%s Zuhörer</item>
<item quantity="other">%s Zuhörer</item>
</plurals>
<string name="localization_changes_requires_app_restart">Die Sprache ändert sich, sobald die App neu gestartet wird</string>
<string name="peertube_instance_url_title">PeerTube-Instanzen</string>
<string name="peertube_instance_url_help">Finde auf %s die Instanzen, die dir gefallen</string>
<string name="peertube_instance_add_title">Instanz hinzufügen</string>
@ -587,7 +586,7 @@
<string name="no_app_to_open_intent">Keine App auf deinem Gerät kann dies öffnen</string>
<string name="private_content">Dieser Inhalt ist privat, kann also nicht von NewPipe gestreamt oder heruntergeladen werden.</string>
<string name="paid_content">Diese Inhalte sind nur für Benutzer verfügbar, die bezahlt haben, können also nicht von NewPipe gestreamt oder heruntergeladen werden.</string>
<string name="youtube_music_premium_content">Dieses Video ist nur für YouTube Music Premium-Mitglieder verfügbar und kann daher nicht von NewPipe gestreamt oder heruntergeladen werden.</string>
<string name="youtube_music_premium_content">Dieses Video ist nur für YouTube-Music-Premium-Mitglieder verfügbar und kann daher nicht von NewPipe gestreamt oder heruntergeladen werden.</string>
<string name="soundcloud_go_plus_content">Dies ist ein SoundCloud Go+ Track, zumindest in deinem Land, kann er von NewPipe nicht gestreamt oder heruntergeladen werden.</string>
<string name="georestricted_content">Dieser Inhalt ist in deinem Land nicht verfügbar.</string>
<string name="crash_the_app">App abstürzen lassen</string>
@ -823,4 +822,9 @@
\nMöchtest du wirklich fortfahren?</string>
<string name="import_settings_vulnerable_format">Die Einstellungen in dem zu importierenden Export verwenden ein angreifbares Format, das seit NewPipe 0.27.0 veraltet ist. Stellen Sie sicher, dass der zu importierende Export aus einer vertrauenswürdigen Quelle stammt, und verwenden Sie in Zukunft nur noch Exporte, die aus NewPipe 0.27.0 oder neuer stammen. Die Unterstützung für den Import von Einstellungen in diesem angreifbaren Format wird bald vollständig entfernt werden, und dann werden alte Versionen von NewPipe nicht mehr in der Lage sein, Einstellungen von Exporten aus neuen Versionen zu importieren.</string>
<string name="audio_track_type_secondary">Sekundär</string>
<string name="share_playlist_as_youtube_temporary_playlist">Als temporäre YouTube-Wiedergabeliste teilen</string>
<string name="tab_bookmarks_short">Wiedergabelisten</string>
<string name="select_a_feed_group">Eine Feed-Gruppe auswählen</string>
<string name="feed_group_page_summary">Kanalgruppen-Seite</string>
<string name="no_feed_group_created_yet">Es wurde noch keine Feed-Gruppe erstellt</string>
</resources>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="upload_date_text">Δημοσιεύθηκε στις %1$s</string>
<string name="no_player_found">Δε βρέθηκε πρόγραμμα αναπαραγωγής. Εγκατάσταση του VLC;</string>
<string name="no_player_found">Δε βρέθηκε αναπαραγωγός ροής δεδομένων. Εγκατάσταση του VLC;</string>
<string name="install">Εγκατάσταση</string>
<string name="cancel">Άκυρο</string>
<string name="open_in_browser">Άνοιγμα σε πρόγραμμα περιήγησης</string>
@ -71,7 +71,7 @@
<string name="action_history">Ιστορικό</string>
<string name="show_info">Εμφάνιση πληροφοριών</string>
<string name="main_bg_subtitle">Πατήστε το μεγεθυντικό φακό για να ξεκινήσετε.</string>
<string name="no_player_found_toast">Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή).</string>
<string name="no_player_found_toast">Δε βρέθηκε αναπαραγωγός ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή).</string>
<string name="controls_download_desc">Λήψη του αρχείου ροής</string>
<string name="use_external_video_player_summary">Αφαιρείται ο ήχος από κάποιες αναλύσεις</string>
<string name="channel_unsubscribed">Το κανάλι διαγράφηκε</string>
@ -103,7 +103,7 @@
<string name="resume_on_audio_focus_gain_title">Ανάκτηση αναπαραγωγής</string>
<string name="resume_on_audio_focus_gain_summary">Συνέχιση της αναπαραγωγής έπειτα από διακοπές (π.χ. κλήσεις)</string>
<string name="show_hold_to_append_title">Εμφάνιση επεξήγησης του «Πιέστε παρατεταμένα για προσθήκη στην ουρά»</string>
<string name="show_hold_to_append_summary">Εμφάνιση υπόδειξης όταν πατηθεί το κουμπί παρασκηνίου ή αναδυόμενου παραθύρου στις \"Λεπτομέρειες:\\ στο βίντεο</string>
<string name="show_hold_to_append_summary">Εμφάνιση συμβουλής κατά το πάτημα του φόντου ή του αναδυόμενου κουμπιού στο βίντεο «Λεπτομέρειες:»</string>
<string name="default_content_country_title">Προεπιλεγμένη χώρα περιεχομένου</string>
<string name="settings_category_player_title">Αναπαραγωγός</string>
<string name="settings_category_player_behavior_title">Συμπεριφορά</string>
@ -184,7 +184,7 @@
<string name="no_videos">Κανένα βίντεο</string>
<plurals name="videos">
<item quantity="one">%s βίντεο</item>
<item quantity="other">%s βίντεο</item>
<item quantity="other">%s βίντεο(πολλά)</item>
</plurals>
<string name="start">Εκκίνηση</string>
<string name="create">Δημιουργία</string>
@ -422,7 +422,6 @@
<item quantity="one">%s ακροατής</item>
<item quantity="other">%s ακροατές</item>
</plurals>
<string name="localization_changes_requires_app_restart">Η γλώσσα θα αλλάξει αφού επανεκκινηθεί η εφαρμογή</string>
<string name="default_kiosk_page_summary">Προεπιλεγμένο περίπτερο</string>
<string name="peertube_instance_add_https_only">Μόνο HTTPS σύνδεσμοι υποστηρίζονται</string>
<string name="local">Τοπικά</string>
@ -472,7 +471,7 @@
<string name="restricted_video">Αυτό το βίντεο έχει περιορισμό ηλικίας.
\n
\nΕνεργοποιήστε το «%1$s» στις ρυθμίσεις εάν θέλετε να το δείτε.</string>
<string name="youtube_restricted_mode_enabled_title">Ενεργοποίηση \"Περιορισμένη Λειτουργία\\ του YouTube</string>
<string name="youtube_restricted_mode_enabled_title">Ενεργοποίηση \"Περιορισμένη Λειτουργία\" του YouTube</string>
<string name="unsupported_url_dialog_message">Δεν ήταν δυνατή η αναγνώριση της διεύθυνσης URL. Άνοιγμα με άλλη εφαρμογή;</string>
<string name="auto_queue_toggle">Αυτόματη προσθήκη στην ουρά</string>
<string name="clear_queue_confirmation_description">Η ουρά του ενεργού αναπαραγωγού θα αντικατασταθεί</string>
@ -654,7 +653,7 @@
<string name="manual_update_description">Χειροκίνητος έλεγχος για νέα έκδοση</string>
<string name="check_for_updates">Έλεγχος αναβάθμισης</string>
<string name="feed_new_items">Νέα αντικείμενα τροφοδοσίας</string>
<string name="show_crash_the_player_title">Εμφάνιση «Κατάρρευση αναπαραγωγέα\\</string>
<string name="show_crash_the_player_title">Εμφάνιση \"Κατάρρευση αναπαραγωγέα\"</string>
<string name="show_crash_the_player_summary">Εμφανίζει μια επιλογή κατάρρευσης κατά τη χρήση του αναπαραγωγέα</string>
<string name="crash_the_player">Κατάρρευση αναπαραγωγέα</string>
<string name="error_report_channel_name">Ειδοποίηση αναφοράς σφάλματος</string>
@ -823,4 +822,9 @@
\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;</string>
<string name="import_settings_vulnerable_format">Οι ρυθμίσεις στην εξαγωγή που εισάγεται χρησιμοποιούν μια ευάλωτη μορφή που είχε καταργηθεί από το NewPipe 0.27.0. Βεβαιωθείτε ότι η εξαγωγή που εισάγεται προέρχεται από αξιόπιστη πηγή και προτιμήστε να χρησιμοποιείτε μόνο εξαγωγές που λαμβάνονται από το NewPipe 0.27.0 ή νεότερο στο μέλλον. Η υποστήριξη για εισαγωγή ρυθμίσεων σε αυτήν την ευάλωτη μορφή θα καταργηθεί σύντομα εντελώς και, στη συνέχεια, οι παλιές εκδόσεις του NewPipe δεν θα μπορούν πλέον να εισάγουν ρυθμίσεις εξαγωγών από νέες εκδόσεις.</string>
<string name="audio_track_type_secondary">δευτερεύων</string>
<string name="tab_bookmarks_short">Λίστες αναπαραγωγής</string>
<string name="share_playlist_as_youtube_temporary_playlist">Μοιραστείτε ως προσωρινή λίστα αναπαραγωγής στο YouTube</string>
<string name="select_a_feed_group">Επιλογή ομάδας τροφοδοσίας</string>
<string name="no_feed_group_created_yet">Δεν δημιουργήθηκε ομάδα τροφοδοσίας ακόμα</string>
<string name="feed_group_page_summary">Σελίδα καναλιού ομάδας</string>
</resources>

View File

@ -421,7 +421,6 @@
<item quantity="one">%s aŭskultanto</item>
<item quantity="other">%s aŭskultantoj</item>
</plurals>
<string name="localization_changes_requires_app_restart">La lingvo ŝanĝos kiam la apo restartos</string>
<string name="seek_duration_title">Daŭro de rapidpluiga/revolva serĉo</string>
<string name="peertube_instance_url_title">Instancoj de PeerTube</string>
<string name="peertube_instance_url_summary">Elekti viajn preferitajn instancojn de PeerTube</string>

View File

@ -47,7 +47,7 @@
<string name="detail_uploader_thumbnail_view_description">Miniatura del avatar del usuario</string>
<string name="content">Contenido</string>
<string name="show_age_restricted_content_title">Mostrar contenido con restricción de edad</string>
<string name="main_bg_subtitle">Toca la lupa para comenzar..</string>
<string name="main_bg_subtitle">Toca la lupa para comenzar.</string>
<string name="duration_live">En directo</string>
<string name="downloads">Descargas</string>
<string name="downloads_title">Descargas</string>
@ -78,7 +78,7 @@
<string name="msg_copied">Copiado al portapapeles</string>
<string name="no_available_dir">Defina una carpeta de descargas más tarde en los ajustes</string>
<string name="app_ui_crash">La interfaz de la aplicación dejó de funcionar</string>
<string name="info_labels">Qué:\\nSolicitar:\\nIntenga de contenido:\\nPaíse de contenido:\\nIdiomaño de la aplicación:\\nServicio:\\nTiempo de GTT:\\nPaquete:\\nVersión:\\nVersion de SO:</string>
<string name="info_labels">Qué:\\nSolicitud:\\nIdioma del contenido:\\nPaís del contenido:\\nIdioma de la aplicación:\\nServicio:\\nMarca de tiempo:\\nPaquete:\\nVersión:\\nVersión del SO:</string>
<string name="black_theme_title">Negro</string>
<string name="all">Todo</string>
<string name="short_thousand">k</string>
@ -91,7 +91,7 @@
<string name="recaptcha_request_toast">Reto reCAPTCHA requerido</string>
<string name="popup_playing_toast">Reproduciendo en modo emergente</string>
<string name="default_video_format_title">Formato de vídeo predefinido</string>
<string name="disabled">Desactivado</string>
<string name="disabled">Deshabilitado</string>
<string name="show_higher_resolutions_title">Mostrar resoluciones más altas</string>
<string name="show_higher_resolutions_summary">Solo algunos dispositivos pueden reproducir vídeos en 2K / 4K</string>
<string name="default_popup_resolution_title">Resolución predefinida de emergente</string>
@ -130,7 +130,7 @@
<string name="settings_file_replacement_character_title">Carácter de reemplazo</string>
<string name="charset_letters_and_digits">Letras y dígitos</string>
<string name="charset_most_special_characters">La mayoría de los caracteres especiales</string>
<string name="enable_search_history_title">Historial de búsquedas</string>
<string name="enable_search_history_title">Historial de búsqueda</string>
<string name="enable_search_history_summary">Almacenar búsquedas localmente</string>
<string name="enable_watch_history_title">Historial de vistas</string>
<string name="enable_watch_history_summary">Almacenar historial de vídeos vistos</string>
@ -184,7 +184,7 @@
<string name="start_here_on_background">Comenzar a reproducir en segundo plano</string>
<string name="start_here_on_popup">Reproducir en modo emergente</string>
<string name="show_hold_to_append_title">Mostrar la sugerencia \"Mantener presionado para poner a la cola\"</string>
<string name="new_and_hot">Nuevo y lo mejor</string>
<string name="new_and_hot">Lo nuevo y lo mejor</string>
<string name="hold_to_append">Mantener pulsado para añadir a la cola</string>
<string name="donation_title">Donar</string>
<string name="donation_encouragement">NewPipe es desarrollado por voluntarios que emplean su tiempo libre para brindarle la mejor experiencia. Haz una aportación para ayudarlos a crear un NewPipe mejor mientras disfrutan de una taza de café.</string>
@ -277,12 +277,7 @@
\n5. Haga clic en el botón de \"Descargar\" una vez que aparezca
\n6. Haga clic en el botón IMPORTAR ARCHIVO que se muestra abajo y seleccione el archivo zip descargado
\n7. [En caso de que la importación falle] Extraiga el archivo .csv (generalmente dentro de \"Youtube y Youtube Music/suscripciones/suscripciones.csv\"), haga clic en IMPORTAR ARCHIVO y seleccione el archivo csv extraído anteriormente</string>
<string name="import_soundcloud_instructions">Importe un perfil de SoundCloud escribiendo la URL o su ID:
\n
\n1. Active el «modo escritorio» en un navegador web (el sitio no está disponible para dispositivos móviles)
\n2. Vaya a esta URL: %1$s
\n3. Inicie sesión cuando se le pida
\n4. Copie la URL del perfil a la que fue redireccionado.</string>
<string name="import_soundcloud_instructions">Importa un perfil de SoundCloud escribiendo la URL o tu ID: \n \n1. Habilita el «modo escritorio» en un navegador web (el sitio no está disponible para dispositivos móviles) \n2. Ve a esta URL: %1$s \n3. Inicia sesión cuando se te pida \n4. Copia la URL del perfil a la que fuiste redireccionado.</string>
<string name="import_soundcloud_instructions_hint">tuID, soundcloud.com/tuID</string>
<string name="import_network_expensive_warning">Esta operación puede causar un uso intensivo de la red.
\n
@ -381,8 +376,7 @@
<string name="error_timeout">El tiempo de conexión expiro</string>
<string name="error_download_resource_gone">No se puede recuperar esta descarga</string>
<string name="downloads_storage_ask_title">Preguntar dónde descargar</string>
<string name="downloads_storage_ask_summary">Se le preguntará dónde guardar cada descarga.
\nHabilite Elegir carpetas del sistema (SAF) si desea guardar las descargas en una tarjeta SD externa</string>
<string name="downloads_storage_ask_summary">Se te preguntará dónde guardar cada descarga. \nHabilita elegir carpetas del sistema (SAF) si quieres guardar las descargas en una tarjeta SD externa</string>
<string name="downloads_storage_use_saf_title">Usar Elegir carpetas del sistema (SAF)</string>
<string name="downloads_storage_use_saf_summary">El \'Sistema de Acceso al Almacenamiento\' permite descargar en una tarjeta SD externa</string>
<string name="unsubscribe">Desuscribirse</string>
@ -405,7 +399,7 @@
<string name="auto">Automático</string>
<string name="app_update_available_notification_title">¡Actualización de NewPipe disponible!</string>
<string name="show_comments_title">Mostrar comentarios</string>
<string name="show_comments_summary">Desactivar para ocultar comentarios</string>
<string name="show_comments_summary">Deshabilitar para ocultar comentarios</string>
<string name="autoplay_title">Reproducción automática</string>
<string name="no_comments">Sin comentarios</string>
<string name="error_unable_to_load_comments">No se pudieron cargar los comentarios</string>
@ -433,7 +427,6 @@
<item quantity="many">%s oyentes</item>
<item quantity="other">%s oyentes</item>
</plurals>
<string name="localization_changes_requires_app_restart">El idioma cambiará luego de que se reinicie la aplicación</string>
<string name="seek_duration_title">Duración de búsqueda al avanzar y/o retroceder</string>
<string name="peertube_instance_url_title">Instancias de PeerTube</string>
<string name="peertube_instance_url_summary">Selecciona tus instancias favoritas de PeerTube</string>
@ -494,14 +487,14 @@
<string name="feed_group_dialog_empty_name">Nombre de grupo vacío</string>
<string name="feed_group_dialog_delete_message">¿Quieres borrar este grupo?</string>
<string name="feed_create_new_group_button_title">Nuevo</string>
<string name="settings_category_feed_title">Fuente</string>
<string name="settings_category_feed_title">Contenido</string>
<string name="feed_update_threshold_title">Velocidad de actualización del contenido</string>
<string name="feed_update_threshold_summary">Tiempo para que una suscripción se considere desactualizada — %s</string>
<string name="feed_update_threshold_option_always_update">Actualizar siempre</string>
<string name="feed_use_dedicated_fetch_method_title">Extraer desde feed dedicado cuando esté disponible</string>
<string name="feed_use_dedicated_fetch_method_summary">Disponible para algunos servicios, suele ser más rápido pero puede mostrar una cantidad limitada de ítems y a menudo información incompleta (por ejemplo falta de duración, tipo de ítem o estado)</string>
<string name="feed_use_dedicated_fetch_method_enable_button">Activar modo rápido</string>
<string name="feed_use_dedicated_fetch_method_disable_button">Desactivar modo rápido</string>
<string name="feed_use_dedicated_fetch_method_enable_button">Habilitar modo rápido</string>
<string name="feed_use_dedicated_fetch_method_disable_button">Deshabilitar modo rápido</string>
<string name="feed_use_dedicated_fetch_method_help_text">¿Piensas que la carga de contenidos es muy lenta\? Entonces intenta habilitar la carga rápida (puedes cambiarlo en los ajustes o pulsando el botón debajo).
\n
\nNewpipe ofrece dos formas de cargar los contenidos:
@ -521,9 +514,7 @@
<string name="artists">Artistas</string>
<string name="albums">Álbumes</string>
<string name="songs">Canciones</string>
<string name="restricted_video">Este vídeo tiene restricción de edad.
\n
\nActivar \"%1$s\" en los ajustes si quieres verlo.</string>
<string name="restricted_video">Este vídeo tiene restricción de edad. \n \nHabilitar \"%1$s\" en los ajustes si quieres verlo.</string>
<string name="remove_watched_popup_yes_and_partially_watched_videos">Sí, y también vídeos vistos parcialmente</string>
<string name="remove_watched_popup_warning">Los vídeos que ya se hayan visto luego de añadidos a la lista de reproducción, serán quitados.
\n¿Estás seguro\? ¡Esta acción no se puede deshacer!</string>
@ -534,7 +525,7 @@
<string name="detail_sub_channel_thumbnail_view_description">Miniatura de avatar del canal</string>
<string name="show_original_time_ago_summary">Los textos originales de los servicios serán visibles en los ítems de transmisiones</string>
<string name="show_original_time_ago_title">Mostrar tiempo atrás original en ítems</string>
<string name="youtube_restricted_mode_enabled_title">Activar el «Modo restringido» de YouTube</string>
<string name="youtube_restricted_mode_enabled_title">Habilitar el «Modo restringido» de YouTube</string>
<string name="playlist_page_summary">Página de lista de reproducción</string>
<string name="feed_group_show_only_ungrouped_subscriptions">Mostrar solo suscripciones desagrupadas</string>
<string name="no_playlist_bookmarked_yet">Aún no hay marcadores para listas de reproducción</string>
@ -577,8 +568,8 @@
<string name="notification_colorize_summary">Hacer que Android personalice el color de la notificación de acuerdo con el color principal de la miniatura (tenga en cuenta que esto no está disponible en todos los dispositivos)</string>
<string name="show_thumbnail_summary">Usar miniatura como fondo de pantalla de bloqueo y notificaciones</string>
<string name="show_thumbnail_title">Mostrar vista previa</string>
<string name="show_meta_info_summary">Desactivar para ocultar información adicional sobre el creador o contenido de la transmisión</string>
<string name="show_description_summary">Desactivar para ocultar la descripción del vídeo y la información adicional</string>
<string name="show_meta_info_summary">Deshabilitar para ocultar información adicional sobre el creador o contenido de la transmisión</string>
<string name="show_description_summary">Deshabilitar para ocultar la descripción del vídeo y la información adicional</string>
<string name="no_app_to_open_intent">Ninguna aplicación en su dispositivo puede abrir esto</string>
<string name="chapters">Capítulos</string>
<string name="recent">Reciente</string>
@ -614,24 +605,24 @@
<string name="metadata_privacy_unlisted">No listado</string>
<string name="metadata_privacy_public">Público</string>
<string name="metadata_support">Soporte</string>
<string name="metadata_language">Lenguaje</string>
<string name="metadata_language">Idioma</string>
<string name="metadata_age_limit">Límite de edad</string>
<string name="metadata_privacy">Privacidad</string>
<string name="metadata_licence">Licencia</string>
<string name="metadata_tags">Etiquetas</string>
<string name="metadata_category">Categoría</string>
<string name="description_select_disable">Inhabilitar la selección de texto de la descripción</string>
<string name="description_select_disable">Deshabilitar la selección de texto de la descripción</string>
<string name="description_select_enable">Habilitar la selección de texto de la descripción</string>
<string name="description_select_note">Ahora puede seleccionar el texto dentro de la descripción. Note que la página puede parpadear y los links no serán cliqueables mientras está en el modo de selección.</string>
<string name="service_provides_reason">%s da esta razón:</string>
<string name="feed_load_error_account_info">No fue posible cargar el muro por \'%s\'.</string>
<string name="feed_load_error_account_info">No fue posible cargar el feed por \'%s\'.</string>
<string name="account_terminated">Cuenta cancelada</string>
<string name="feed_load_error_fast_unknown">El modo de muro rápido no arroja más información sobre esto.</string>
<string name="feed_load_error_terminated">La cuenta del autor ha sido cancelada.\nNewPipe no podrá acceder a ella en el futuro.\n¿Quieres desuscribirte de este canal?</string>
<string name="feed_load_error">Error al cargar el muro</string>
<string name="downloads_storage_use_saf_summary_api_29">Desde Android 10 solo el \'Sistema de Acceso al Almacenamiento\' es soportado</string>
<string name="downloads_storage_ask_summary_no_saf_notice">Se le preguntará dónde guardar cada descarga</string>
<string name="disable_media_tunneling_summary">Desactiva la tunelización de los medios si experimentas una pantalla negra durante la reproducción o si la visualización de la imagen es intermitente.</string>
<string name="disable_media_tunneling_summary">Deshabilita la tunelización de medios si experimentas una pantalla negra durante la reproducción o si la visualización de la imagen es intermitente.</string>
<string name="disable_media_tunneling_title">Deshabilitar el túnel de medios</string>
<string name="no_dir_yet">Aún no se ha seleccionado ninguna carpeta de descargas, elija la carpeta de descargas por defecto ahora</string>
<string name="metadata_host">Anfitrión</string>
@ -666,7 +657,7 @@
<string name="check_for_updates">Buscar actualizaciones</string>
<string name="manual_update_description">Buscar nuevas versiones manualmente</string>
<string name="checking_updates_toast">Buscando actualizaciones…</string>
<string name="feed_new_items">Nuevos elementos en el muro</string>
<string name="feed_new_items">Nuevos elementos en el feed</string>
<string name="crash_the_player">Cerrar abruptamente el reproductor</string>
<string name="show_crash_the_player_summary">Muestra una opción de cierre abrupto al usar el reproductor</string>
<string name="show_crash_the_player_title">Mostrar \"Cerrar abruptamente el reproductor\"</string>
@ -676,8 +667,7 @@
<string name="error_report_notification_toast">Se produjo un error, vea la notificación</string>
<string name="create_error_notification">Crear una notificación de error</string>
<string name="show_error_snackbar">Mostrar una barra de error</string>
<string name="no_appropriate_file_manager_message">No se ha encontrado un gestor de archivos apropiado para esta acción.
\nPor favor, instale un gestor de archivos o intente desactivar \'%s\' en los ajustes de la descarga</string>
<string name="no_appropriate_file_manager_message">No se ha encontrado un gestor de archivos apropiado para esta acción. \nPor favor, instala un gestor de archivos o intenta deshabilitarlo \'%s\' en los ajustes de la descarga</string>
<string name="no_appropriate_file_manager_message_android_10">No se encontró ningún administrador de archivos apropiado para esta acción.
\n Instale un administrador de archivos compatible con Storage Access Framework</string>
<string name="detail_pinned_comment_view_description">Comentario fijado</string>
@ -695,7 +685,7 @@
<string name="enable_streams_notifications_summary">Notificar de nuevos directos desde las suscripciones</string>
<string name="streams_notifications_interval_title">Frecuencia de comprobación</string>
<string name="delete_downloaded_files_confirm">¿Desea borrar del disco todos los archivos descargados\?</string>
<string name="notifications_disabled">Las notificaciones están desactivadas</string>
<string name="notifications_disabled">Las notificaciones están deshabilitadas</string>
<string name="get_notified">Recibir notificaciones</string>
<string name="toggle_all">Conmutar todo</string>
<string name="loading_stream_details">Cargando detalles del directo…</string>
@ -735,7 +725,7 @@
<string name="remove_duplicates_title">¿Eliminar los duplicados\?</string>
<string name="remove_duplicates_message">¿Quieres eliminar todas las secuencias duplicadas de esta lista de reproducción?</string>
<string name="feed_hide_streams_title">Mostrar las siguientes secuencias</string>
<string name="feed_show_hide_streams">Mostrar/Ocultar secuencias</string>
<string name="feed_show_hide_streams">Mostrar/ocultar secuencias</string>
<string name="feed_show_upcoming">Próximamente</string>
<string name="remove_duplicates">Eliminar los duplicados</string>
<string name="feed_show_watched">Completamente visto</string>
@ -765,7 +755,7 @@
<string name="progressive_load_interval_summary">Cambia el tamaño del intervalo de carga en contenidos progresivos (actualmente %s). Un valor más bajo puede acelerar la carga inicial</string>
<string name="settings_category_exoplayer_title">Ajustes de ExoPlayer</string>
<string name="settings_category_exoplayer_summary">Gestiona algunos ajustes de ExoPlayer. Estos cambios requieren reiniciar el reproductor para que surtan efecto</string>
<string name="use_exoplayer_decoder_fallback_summary">Habilite esta opción si tiene problemas con la inicialización del decodificador recurriendo a decodificadores de menor prioridad si el decodificador principal no se inicializa. Esto puede dar como resultado un rendimiento de reproducción más bajo que cuando se usan decodificadores primarios</string>
<string name="use_exoplayer_decoder_fallback_summary">Habilita esta opción si tiene problemas con la inicialización del decodificador recurriendo a decodificadores de menor prioridad si el decodificador principal no se inicializa. Esto puede dar como resultado un rendimiento de reproducción más bajo que cuando se usan decodificadores primarios</string>
<string name="always_use_exoplayer_set_output_surface_workaround_summary">Esta solución alternativa libera los códecs de video y los vuelve a instanciar cuando cambia la máscara, en lugar de configurar la máscara directamente en el códec. ExoPlayer ya usa esta configuración en algunos dispositivos con este problema y solo afecta a Android 6 y versiones posteriores
\n
\nHabilitar esta opción puede evitar errores de reproducción al cambiar el reproductor de video actual o cambiar al modo de pantalla completa</string>
@ -776,7 +766,7 @@
<string name="no_live_streams">Sin transmisiones en directo</string>
<string name="channel_tab_videos">Vídeos</string>
<string name="metadata_subscribers">Suscriptores</string>
<string name="show_channel_tabs_summary">Qué pestañas se muestran en las páginas de los canales</string>
<string name="show_channel_tabs_summary">Qué pestañas se muestran en las páginas del canal</string>
<string name="show_channel_tabs">Pestañas del canal</string>
<string name="channel_tab_shorts">Shorts</string>
<string name="loading_metadata_title">Cargando metadatos…</string>
@ -829,13 +819,16 @@
<string name="settings_category_backup_restore_title">Respaldar y restaurar</string>
<string name="reset_settings_title">Restablecer ajustes</string>
<string name="reset_settings_summary">Restablecer todos los ajustes a sus valores predeterminados</string>
<string name="reset_all_settings">Restablecer todos los ajustes descartará todos sus ajustes preferidos y reiniciará la aplicación.
\n
\n¿Estas seguro que deseas continuar?</string>
<string name="reset_all_settings">Restablecer todos los ajustes descartará todos sus ajustes preferidos y reiniciará la aplicación. \n \n¿Estás seguro que quieres continuar?</string>
<string name="yes"></string>
<string name="no">No</string>
<string name="auto_update_check_description">NewPipe puede buscar automáticamente nuevas versiones de vez en cuando y notificarle cuando estén disponibles.
\n¿Quieres habilitar esto?</string>
<string name="import_settings_vulnerable_format">La configuración de la exportación que se importa utiliza un formato vulnerable que quedó obsoleto desde NewPipe 0.27.0. Asegúrese de que la exportación que se está importando provenga de una fuente confiable y prefiera usar solo exportaciones obtenidas de NewPipe 0.27.0 o posterior en el futuro. La compatibilidad con la importación de configuraciones en este formato vulnerable pronto se eliminará por completo y, luego, las versiones antiguas de NewPipe ya no podrán importar configuraciones de exportaciones desde las nuevas versiones.</string>
<string name="audio_track_type_secondary">secundaria</string>
<string name="share_playlist_as_youtube_temporary_playlist">Compartir como lista de reproducción temporal de YouTube</string>
<string name="tab_bookmarks_short">Lista de reproducción</string>
<string name="select_a_feed_group">Selecciona un grupo de feed</string>
<string name="no_feed_group_created_yet">Aún no se ha creado ningún grupo de feed</string>
<string name="feed_group_page_summary">Página de grupo de canales</string>
</resources>

View File

@ -146,7 +146,7 @@
<string name="error_details_headline">Üksikasjad:</string>
<string name="detail_thumbnail_view_description">Esita video, kestus:</string>
<string name="detail_uploader_thumbnail_view_description">Üleslaadiaja avatari pisipilt</string>
<string name="detail_likes_img_view_description">Meeldib</string>
<string name="detail_likes_img_view_description">Meeldimisi</string>
<string name="detail_dislikes_img_view_description">Ei meeldi</string>
<string name="search_no_results">Tulemusi pole</string>
<string name="empty_list_subtitle">Siin pole veel midagi</string>
@ -206,8 +206,8 @@
<string name="donation_title">Anneta</string>
<string name="website_title">Veebisait</string>
<string name="website_encouragement">Täiendava info ja uudiste lugemiseks külasta NewPipe\'i veebisaiti.</string>
<string name="privacy_policy_title">NewPipe\'i privaatsuspoliitika</string>
<string name="read_privacy_policy">Loe privaatsuspoliitikat</string>
<string name="privacy_policy_title">NewPipe\'i andmekaitsepõhimõtted</string>
<string name="read_privacy_policy">Loe andmekaitsepõhimõtteid</string>
<string name="app_license_title">NewPipe\'i litsents</string>
<string name="read_full_license">Loe litsentsi</string>
<string name="title_activity_history">Ajalugu</string>
@ -305,7 +305,7 @@
<string name="contribution_encouragement">Kui sul on ideid kujunduse muutmisest, koodi puhastamisest või suurtest koodi muudatustest - abi on alati teretulnud. Mida rohkem tehtud, seda paremaks läheb!</string>
<string name="donation_encouragement">NewPipe\'i arendajad on vabatahtlikud, kes kulutavad oma vaba aega, toomaks sulle parimat kasutuskogemust. On aeg anda tagasi aidates arendajaid ja muuta NewPipe veel paremaks, nautides ise tassi kohvi.</string>
<string name="give_back">Anneta</string>
<string name="privacy_policy_encouragement">NewPipe võtab privaatsust väga tõsiselt. Seetõttu ei kogu rakendus ilma nõusolekuta mingeid andmeid. \nNewPipe\'i privaatsuspoliitika selgitab üksikasjalikult, milliseid andmeid saadetakse ja kogutakse veateate saatmisel.</string>
<string name="privacy_policy_encouragement">NewPipe võtab privaatsust väga tõsiselt. Seetõttu ei kogu rakendus ilma nõusolekuta mingeid andmeid. \nNewPipe\'i andmekaitsepõhimõtted selgitavad üksikasjalikult, milliseid andmeid saadetakse ja kogutakse veateate saatmisel.</string>
<string name="app_license">NewPipe on vaba ja avatud lähtekoodiga tarkvara. Seada võid kasutada, uurida, jagada ja parandada nii, nagu õigemaks pead. Täpsemalt - seda võid levitada ja/või muuta vastavalt Vaba Tarkvara Sihtasutuse avaldatud GNU Üldise Avaliku Litsentsi v.3 (või sinu valikul hilisema versiooni) tingimustele.</string>
<string name="enable_disposed_exceptions_title">Teavita elutsüklist väljas vigadest</string>
<string name="import_soundcloud_instructions">Impordi SoundCloudi profiil trükkides URL või oma ID:
@ -320,7 +320,7 @@
<string name="skip_silence_checkbox">Keri helitu koht edasi</string>
<string name="playback_step">Samm</string>
<string name="playback_reset">Lähtesta</string>
<string name="start_accept_privacy_policy">Selleks, et täita Euroopa Üldist Andmekaitse Määrust (GDPR), juhime tähelepanu NewPipe\'i privaatsuspoliitikale. Palun loe seda hoolikalt. \nMeile veateate saatmiseks pead sellega nõustuma.</string>
<string name="start_accept_privacy_policy">Selleks, et täita Euroopa Üldist Andmekaitse Määrust (GDPR), juhime tähelepanu NewPipe\'i andmekaitsepõhimõtetele. Palun loe seda hoolikalt. \nMeile veateate saatmiseks pead sellega nõustuma.</string>
<string name="minimize_on_exit_title">Minimeeri, kui kasutad teisi rakendusi</string>
<string name="minimize_on_exit_summary">Tegevus lülitusel peamiselt videopleierilt teisele rakendusele — %s</string>
<string name="minimize_on_exit_none_description">Pole</string>
@ -487,7 +487,6 @@
<string name="enqueue_stream">Lisa esitusjärjekorda</string>
<string name="recently_added">Hiljuti lisatud</string>
<string name="local">Kohalikud</string>
<string name="localization_changes_requires_app_restart">Keele muutus jõustub rakenduse uuesti käivitamisel</string>
<string name="error_unable_to_load_comments">Kommentaaride laadimine ei õnnestunud</string>
<string name="no_playlist_bookmarked_yet">Esitusloendi järjehoidjaid veel pole</string>
<string name="select_a_playlist">Vali esitusloend</string>
@ -808,4 +807,12 @@
<string name="no">Ei</string>
<string name="import_settings_vulnerable_format">Imporditavad andmed kasutavad turvaprobleemidega vormingut, mida alates versioonist 0.27.0 NewPipe enam kasutada ei suuda. Palun kontrolli, et impordifail on loodud usaldusväärse osapoole poolt ning eelista ekspordifaile, mis on loodud NewPipe\'i versiooniga 0.27.0 või uuemaga. Tugi sellise vana vormingu kasutamisele kaob õige pea ja seejärel NewPipe\'i uuemad ja vanemad versioonid ei saa omavahel andmeid enam vahetada.</string>
<string name="audio_track_type_secondary">täiendav</string>
<string name="share_playlist_as_youtube_temporary_playlist">Jaga YouTube\'i ajutise esitusloendina</string>
<string name="tab_bookmarks_short">Esitusloendid</string>
<string name="select_a_feed_group">Vali andmevoo grupp</string>
<string name="no_feed_group_created_yet">Ühtegi andmevoo gruppi pole veel loodud</string>
<string name="feed_group_page_summary">Kanalirühmade leht</string>
<string name="search_with_service_name">Otsi: %1$s</string>
<string name="search_with_service_name_and_filter">Otsi: %1$s (%2$s)</string>
<string name="channel_tab_likes">Meeldimisi</string>
</resources>

View File

@ -422,7 +422,6 @@
<string name="clear_playback_states_summary">Erreprodukziorako kokapen guztiak ezabatzen ditu</string>
<string name="delete_playback_states_alert">Ezabatu erreprodukziorako kokapen guztiak\?</string>
<string name="drawer_header_description">Aktibatu zerbitzua, orain hautatua:</string>
<string name="localization_changes_requires_app_restart">Hizkuntza aldatuko da aplikazioa berrabiarazterakoan</string>
<string name="default_kiosk_page_summary">Kiosko Lehenetsia</string>
<string name="seek_duration_title">Aurreratze/atzeratze bilaketaren iraupena</string>
<string name="peertube_instance_url_title">PeerTube instantziak</string>

View File

@ -469,7 +469,6 @@
<string name="most_liked">مورد پسندترین‌ها</string>
<string name="recently_added">اخیرا اضافه شده</string>
<string name="local">محلی</string>
<string name="localization_changes_requires_app_restart">با آغاز دوبارهٔ کاره، زبان تغییر خواهد کرد</string>
<string name="default_kiosk_page_summary">کیوسک پیش‌فرض</string>
<string name="done">انجام شد</string>
<string name="subtitle_activity_recaptcha">وقتی انجام شد، «Done» یا «انجام شد» را بفشارید</string>
@ -764,4 +763,59 @@
<string name="question_mark">؟</string>
<string name="settings_category_backup_restore_title">پشتیبان‌گیری و بازیابی</string>
<string name="no_live_streams">بدون جریان زنده</string>
<string name="image_quality_title">کیفیت تصویر</string>
<string name="image_quality_medium">کیفیت متوسّط</string>
<string name="image_quality_high">کیفیت زیاد</string>
<string name="prefer_original_audio_title">ترجیح صدای اصلی</string>
<string name="share_playlist">هم‌رسانی سیاههٔ پخش</string>
<string name="image_quality_low">کیفیت کم</string>
<string name="tab_bookmarks_short">سیاهه‌های پخش</string>
<string name="reset_settings_title">بازنشانی تنظیمات</string>
<string name="audio_track_type_secondary">ثانویه</string>
<string name="show_less">نمایش کم‌تر</string>
<string name="main_tabs_position_summary">جابه‌جایی گزینشگر زبانهٔ اصلی به پایین</string>
<string name="disable_media_tunneling_automatic_info">تونل زدن رسانه به صورت پیش‌گزیده روی افزاره‌تان از کار افتاده چرا که از آن پشتیبانی نمی‌کند.</string>
<string name="right_gesture_control_title">کنش ژست راست</string>
<string name="audio_track_present_in_video">قطعه‌ای صوتی باید از پیش در این جریان موجود باشد</string>
<string name="ignore_hardware_media_buttons_summary">برای نمونه اگر از گوشی‌ای با دکمه‌های خراب استفاده می‌کنید مفید است</string>
<string name="reset_all_settings">بازنشانی همهٔ تنظیمات همهٔ تنظیمات ترجیحیتان را دور اندعخته و کاره را دوباره آغاز می‌کند.\n\nمطمئنید که می‌خواهید ادامه دهید؟</string>
<string name="use_exoplayer_decoder_fallback_title">استفاده از ویژگی پشتیبان کدگشای اگزوپلیر</string>
<string name="show_channel_tabs_summary">زبانه‌های نشان داده شده روی صفحه‌های کانال</string>
<string name="toggle_screen_orientation">تغییر جهت صفحه</string>
<string name="image_quality_none">بار نکردن تصویرها</string>
<string name="share_playlist_with_list">هم‌رسانی سیاههٔ نشانی</string>
<string name="share_playlist_as_youtube_temporary_playlist">هم‌رسانی به شکل سیاههٔ پخش موقّتی یوتوب</string>
<string name="video_details_list_item">- %1$s: %2$s</string>
<string name="share_playlist_content_details">%1$s\n%2$s</string>
<string name="always_use_exoplayer_set_output_surface_workaround_title">استفادهٔ همیشگی از دور زدن تنظیمات سطح خروجی ویدیوی اگزوپلیر</string>
<string name="main_tabs_position_title">موقعیت زبانه‌های اصلی</string>
<string name="feed_fetch_channel_tabs">واکشی زبانه‌های کانال</string>
<string name="select_audio_track_external_players">گزینش قطعهٔ صوتی برای پخش کننده‌های خارجی</string>
<plurals name="replies">
<item quantity="one">%s پاسخ</item>
<item quantity="other">%s پاسخ</item>
</plurals>
<string name="share_playlist_with_titles">هم‌رسانی با عنوان‌ها</string>
<string name="prefer_descriptive_audio_summary">گزینش قطعهٔ صوتی با شرح برای افزار کم‌بینا در صورت وجود</string>
<string name="prefer_descriptive_audio_title">ترجیح صدای شرح دهنده</string>
<string name="right_gesture_control_summary">گزینش کنش ژست نیمهٔ راست صفحه</string>
<string name="playlist_add_stream_success_duplicate">تعداد %d بار تکرار شده</string>
<string name="metadata_uploader_avatars">چهرک‌های بارکننده</string>
<string name="metadata_subchannel_avatars">چهرک‌های زیرکانال</string>
<string name="left_gesture_control_title">کنش ژست چپ</string>
<string name="image_quality_summary">گزینش کیفیت تصویرها و این که اصلاً بار شوند یا نه، برای کاهش استفادهٔ حافظه و داده. تغییرات انبارهٔ تصویر حافظه و دیسک را پاک می‌کند — %s</string>
<string name="use_exoplayer_decoder_fallback_summary">اگر مشکل شروع رمزگشایی دارید ، این گزینه را فعال کنید ، که اگر رمزگشایی اولیه شکست بخورد ، به رمزگشایی های با اولویت پایین تر باز می گردد. این ممکن است منجر به عملکرد پخش ضعیف نسبت به هنگام استفاده از رمزگشایان اولیه شود</string>
<string name="always_use_exoplayer_set_output_surface_workaround_summary">این روش دور زدن مشکل به جای تنظیم مستقیم سطح روی رمزینه، آن‌ها را هنگام تغییر سطح آزاد کرده و دوباره راه‌اندازی می‌کند. این تنظیم که از پیش روی برخی افزاره‌ها به دست اگزوپلیر استفاده می‌شد فقط روی اندروید ۶ و بالاتر تأثیر دارد\n\nبه کار انداختن این گزینه می‌تواند از خطاهای پخش هنگام تغییر پخش‌کنندهٔ ویدیوی کنونی یا تغییر به حالت تمام‌صفحه جلوگیری کند</string>
<string name="settings_category_exoplayer_summary">مدیریت برخی تنظیمات اگزوپلیر. اعمال این تغییرات نیازمند آغاز دوبارهٔ پخش‌کننده است</string>
<string name="duplicate_in_playlist">سیاهه‌های پخشی که خاکستری شده‌اند این مورد را از پیش دارند.</string>
<string name="notification_actions_summary_android13">ویرایش هر کنش آگاهی زیر با زدن رویش. سه کنش نخست (پخش/مکث، پیشین و بعدی) به دست سامانه تنظیم شده و قابل سفارشی سازی نیستند.</string>
<string name="left_gesture_control_summary">گزینش کنش ژست نیمهٔ چپ صفحه</string>
<string name="prefer_original_audio_summary">گزینش قطعهٔ صوتی اصلی فارغ از زبان</string>
<string name="auto_update_check_description">نیوپایپ می‌تواند گه‌گاه به صورت خودکار نگارش‌های جدید را بررسی کرده و از وجودشان آگاهتان کند.\nمیخواهید به کارش بیندازید؟</string>
<string name="reset_settings_summary">بازنشانی همهٔ تنظیمات به مقدارهای پیش‌گزیده‌شان</string>
<string name="show_more">نمایش بیش‌تر</string>
<string name="import_settings_vulnerable_format">تنظیمات داخل برون‌ریزی‌ از قالبی آسیب‌پذیر استفاده می‌کند که از نگارش ۰٫۲۷٫۰ منسوخ شده. مطمئن شوید برون‌ریزی از منبعی مطمئن آمده و ترجیحاً فقط از برون‌ریزی‌های آمده از نگارش ۰٫۲۷٫۰ به بعد استفاده کنید. پشتیبانی از درون‌ریزی تنظیمات به این قالب آسیب‌پذیر به زودی کاملاً‌برداشته خواهد شد و دیگر نگارش‌خای قدیمی‌تر قادر به درون ریزی تنظیمات از نگارش‌های جدید نخواهند بود.</string>
<string name="open_play_queue">گشودن صف پخش</string>
<string name="remove_duplicates_message">می‌خواهید همهٔ جریان‌های تکراری را در این سیاههٔ پخش بردارید؟</string>
<string name="feed_fetch_channel_tabs_summary">زبانه‌هایی که هنگام به‌روز رسانی خوراک واکشی می‌شوند. این گزینه تأثیری روی کانال‌هایی که با ساتفاده از حالت سریع به‌روز می‌شوند ندارد.</string>
</resources>

View File

@ -337,7 +337,6 @@
<string name="recently_added">Hiljattain lisätyt</string>
<string name="local">Paikalliset</string>
<string name="most_liked">Pidetyimmät</string>
<string name="localization_changes_requires_app_restart">Kieli vaihtuu, kun sovellus uudelleenkäynnistetään</string>
<string name="error_unable_to_load_comments">Kommentteja ei voitu ladata</string>
<string name="main_page_content_summary">Mitkä välilehdet näytetään pääsivulla</string>
<string name="done">Valmis</string>
@ -807,4 +806,9 @@
<string name="auto_update_check_description">NewPipe voi automaattisesti tarkistaa päivitysten saatavuuden silloin tällöin ja ilmoittaa kun niitä on saatavilla.
\nHaluatko ottaa tämän käyttöön?</string>
<string name="error_insufficient_storage">Laitteella ei ole riittävästi vapaata tilaa</string>
<string name="share_playlist_as_youtube_temporary_playlist">Jaa tilapäisenä YouTube-soittolistana</string>
<string name="channel_tab_tracks">Raidat</string>
<string name="question_mark">\?</string>
<string name="audio_track_type_secondary">toissijainen</string>
<string name="tab_bookmarks_short">Soittolistat</string>
</resources>

View File

@ -5,7 +5,7 @@
<string name="did_you_mean">Vouliez-vous dire « %1$s »\?</string>
<string name="download">Télécharger</string>
<string name="download_path_title">Dossier de téléchargement vidéo</string>
<string name="download_path_dialog_title">Choisissez le dossier de téléchargement des vidéos</string>
<string name="download_path_dialog_title">Choisissez le dossier de téléchargement pour les fichiers vidéos</string>
<string name="download_path_summary">Les vidéos téléchargées sont stockées ici</string>
<string name="install">Installer</string>
<string name="kore_not_found">Installer lapplication Kore manquante\?</string>
@ -428,7 +428,6 @@
<item quantity="many">%s auditeurs</item>
<item quantity="other">%s auditeurs</item>
</plurals>
<string name="localization_changes_requires_app_restart">La langue changera une fois que lapplication aura redémarré</string>
<string name="seek_duration_title">Durée de lavance et retour rapide</string>
<string name="peertube_instance_url_title">Instances PeerTube</string>
<string name="peertube_instance_url_summary">Veuillez choisir vos instances PeerTube préférées</string>
@ -839,4 +838,12 @@
<string name="error_insufficient_storage">Pas assez d\'espace disponible sur l\'appareil</string>
<string name="import_settings_vulnerable_format">Les paramètres de l\'export en cours d\'importation utilisent un format vulnérable qui a été déprécié depuis NewPipe 0.27.0. Assurez-vous que l\'export en cours d\'importation provient d\'une source fiable. Privilégiez les exports obtenues à partir de NewPipe 0.27.0 ou des versions plus récentes à l\'avenir. Le support pour l\'importation des paramètres dans ce format vulnérable sera bientôt complètement supprimé et les anciennes versions de NewPipe ne pourront plus importer les paramètres des exports des nouvelles versions.</string>
<string name="audio_track_type_secondary">secondaire</string>
<string name="share_playlist_as_youtube_temporary_playlist">Partager comme liste de lecture YouTube temporaire</string>
<string name="tab_bookmarks_short">Listes de lecture</string>
<string name="select_a_feed_group">Sélectionnez un groupe de flux</string>
<string name="no_feed_group_created_yet">Aucun groupe de flux n\'a encore été créé</string>
<string name="feed_group_page_summary">Page du groupe de chaînes</string>
<string name="search_with_service_name">Rechercher %1$s</string>
<string name="search_with_service_name_and_filter">Rechercher %1$s (%2$s)</string>
<string name="channel_tab_likes">Likes</string>
</resources>

View File

@ -463,7 +463,6 @@
<string name="conferences">Conferencias</string>
<string name="most_liked">O que ten mais gústames</string>
<string name="recently_added">Engadiuse recentemente</string>
<string name="localization_changes_requires_app_restart">O idioma cambiará unha vez que se reinicie o aplicativo</string>
<string name="error_unable_to_load_comments">Non se puideron cargar os comentarios</string>
<string name="no_playlist_bookmarked_yet">Aínda non hai marcadores nesta lista de reprodución</string>
<string name="select_a_playlist">Seleccionar unha lista de reprodución</string>

View File

@ -105,7 +105,7 @@
<string name="error_details_headline">פרטים:</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_likes_img_view_description">לייקים</string>
<string name="detail_dislikes_img_view_description">לא אהבו</string>
<string name="search_no_results">אין תוצאות</string>
<string name="empty_list_subtitle">אין כאן כלום מלבד צרצרים</string>
@ -196,7 +196,7 @@
<string name="start_here_on_popup">להתחיל לנגן בנגן צף</string>
<string name="controls_download_desc">הורדת קובץ הזרמה</string>
<string name="show_info">הצגת מידע</string>
<string name="tab_bookmarks">רשימות נגינה מסומנות</string>
<string name="tab_bookmarks">רשימות השמעה מסומנות</string>
<string name="controls_add_to_playlist_title">הוספה אל</string>
<string name="default_content_country_title">מדינת תוכן כברירת מחדל</string>
<string name="settings_category_debug_title">ניפוי שגיאות</string>
@ -432,7 +432,6 @@
<item quantity="many">%s מאזינים</item>
<item quantity="other">%s מאזינים</item>
</plurals>
<string name="localization_changes_requires_app_restart">השפה תוחלף עם הפעלת היישומון מחדש</string>
<string name="default_kiosk_page_summary">קיוסק ברירת מחדל</string>
<string name="seek_duration_title">משך קפיצה מהירה קדימה/אחורה</string>
<string name="peertube_instance_url_title">מופעים של PeerTube</string>
@ -850,4 +849,12 @@
<string name="error_insufficient_storage">אין מספיק מקום פנוי במכשיר</string>
<string name="import_settings_vulnerable_format">ההגדרות בייצוא המיובא משתמשות בתסדיר פגיע שהוצא משימוש מאז NewPipe 0.27.0. יש לוודא שהייצוא המיובא הוא ממקור מהימן, ועדיף להשתמש רק בייצוא שהושג מ־NewPipe 0.27.0 ומעלה בעתיד. תמיכה בייבוא הגדרות בתסדיר פגיע זה תוסר בקרוב לחלוטין, ואז גרסאות ישנות של NewPipe לא יוכלו לייבא עוד הגדרות של ייצוא מגרסאות חדשות.</string>
<string name="audio_track_type_secondary">משני</string>
<string name="tab_bookmarks_short">רשימות נגינה</string>
<string name="share_playlist_as_youtube_temporary_playlist">שיתוף כרשימת נגינה זמנית של YouTube</string>
<string name="select_a_feed_group">הגדרת קבוצת ערוצי עדכונים</string>
<string name="no_feed_group_created_yet">לא נוצרו עדיין קבוצות ערוצי עדכונים</string>
<string name="feed_group_page_summary">עמוד קבוצת ערוצים</string>
<string name="search_with_service_name">חיפוש ב־%1$s</string>
<string name="search_with_service_name_and_filter">חיפוש ב־%1$s (%2$s)</string>
<string name="channel_tab_likes">לייקים</string>
</resources>

View File

@ -423,7 +423,6 @@
<item quantity="one">%s श्रोता</item>
<item quantity="other">%s श्रोता</item>
</plurals>
<string name="localization_changes_requires_app_restart">ऐप के पुनः आरंभ होने के बाद भाषा बदल जाएगी</string>
<string name="feed_use_dedicated_fetch_method_enable_button">तेज मोड सक्षम करें</string>
<string name="feed_use_dedicated_fetch_method_disable_button">तेज मोड अक्षम करें</string>
<string name="feed_use_dedicated_fetch_method_help_text">क्या आपको लगता है कि फीड लोडिंग बहुत धीमी है\? यदि ऐसा है, तो तेज़ लोडिंग को सक्षम करने का प्रयास करें (आप इसे सेटिंग्स में या नीचे दिए गए बटन को दबाकर बदल सकते हैं)।

View File

@ -406,7 +406,6 @@
<string name="delete_playback_states_alert">Izbrisati sve pozicije reprodukcije\?</string>
<string name="no_one_watching">Nitko ne gleda</string>
<string name="no_one_listening">Nitko ne sluša</string>
<string name="localization_changes_requires_app_restart">Jezik će se promijeniti nakon ponovnog pokretanja aplikcije</string>
<string name="default_kiosk_page_summary">Standardni kiosk</string>
<string name="peertube_instance_add_https_only">Podržani su samo HTTP URL-ovi</string>
<string name="local">Lokalni</string>

View File

@ -49,7 +49,7 @@
<string name="error_snackbar_action">Jelentés</string>
<string name="what_device_headline">Információ:</string>
<string name="what_happened_headline">Ez történt:</string>
<string name="your_comment">Az Ön megjegyzése (angolul):</string>
<string name="your_comment">Saját hozzászólás (angolul):</string>
<string name="error_details_headline">Részletek:</string>
<string name="error_snackbar_message">Elnézést, valami balul sült el.</string>
<string name="sorry_string">Elnézést, ennek nem kellett volna megtörténnie.</string>
@ -127,18 +127,18 @@
<string name="app_ui_crash">Az alkalmazás/kezelőfelület összeomlott</string>
<string name="player_stream_failure">Nem sikerült a videó lejátszása</string>
<string name="external_player_unsupported_link_type">A külső lejátszó nem támogatja az ilyen típusú hivatkozásokat</string>
<string name="video_streams_empty">Nem található videó adatfolyam</string>
<string name="audio_streams_empty">Nem található hang adatfolyam</string>
<string name="video_streams_empty">Nem található videófolyam</string>
<string name="audio_streams_empty">Nem található hangfolyam</string>
<string name="info_labels">Mi:\\nKérés:\\nTartalom nyelve:\\nTartalom származási országa:\\nAlkalmazás nyelve:\\nSzolgáltatás:\\nGMT idő:\\nCsomag:\\nVerzió:\\nOperációs rendszer verzió:</string>
<string name="search_no_results">Nincs találat</string>
<string name="controls_download_desc">Közvetítési fájl letöltése</string>
<string name="controls_add_to_playlist_title">Hozzáadás ehhez</string>
<string name="use_inexact_seek_title">Gyorsabb, de pontatlan tekerés használata</string>
<string name="use_inexact_seek_summary">A pontatlan tekerés lehetővé teszi, hogy gyorsabban ugorjon a pozíciókra, de kisebb pontossággal. Az 5, 15, vagy 25 másodperces tekerés nem működik ebben a módban</string>
<string name="thumbnail_cache_wipe_complete_notice">A bélyegkép gyorsítótára törölve</string>
<string name="thumbnail_cache_wipe_complete_notice">Bélyegkép gyorsítótára törölve</string>
<string name="metadata_cache_wipe_title">Gyorsítótárazott metaadatok törlése</string>
<string name="metadata_cache_wipe_summary">Minden gyorsítótárazott weboldaladat törlése</string>
<string name="metadata_cache_wipe_complete_notice">A metaadatok gyorsítótára törölve lett</string>
<string name="metadata_cache_wipe_summary">Minden gyorsítótárazott weboldaladat törölve</string>
<string name="metadata_cache_wipe_complete_notice">Metaadatok gyorsítótára törölve</string>
<string name="auto_queue_title">Következő videó automatikus sorba állítása</string>
<string name="enable_search_history_summary">Keresési előzmények helyi tárolása</string>
<string name="channels">Csatornák</string>
@ -202,13 +202,13 @@
<string name="tab_licenses">Licencek</string>
<string name="app_description">Szabad, egyszerű közvetítésnézés Androidon.</string>
<string name="contribution_title">Közreműködés</string>
<string name="contribution_encouragement">Legyen ötleted a fordítással, a dizájnnal, a forráskód tisztításával vagy egy komolyabb átszervezésével kapcsolatban, bármilyen segítséget szívesen fogadunk. Minél több minden készül el, annál jobb lesz!</string>
<string name="contribution_encouragement">Akár fordítással, tervezési változtatásokkal, kódtisztítással, vagy valódi nehéz kódváltoztatással kapcsolatos ötletei vannak, bármilyen segítséget szívesen fogadunk. Minél több minden készül el, annál jobb lesz!</string>
<string name="view_on_github">Megtekintés a GitHubon</string>
<string name="donation_title">Adományozás</string>
<string name="donation_encouragement">A NewPipe alkalmazást önkéntesek fejlesztik a szabadidejükben, hogy a lehető legjobb felhasználói élményt nyújtsák. Járuljon hozzá, hogy a fejlesztők még jobbá tegyék alkalmazást, miközben egy csésze kávét szürcsölnek.</string>
<string name="give_back">Hozzájárulás</string>
<string name="website_title">Honlap</string>
<string name="website_encouragement">Látogassa meg a NewPipe honlapját további információkért és hírekért.</string>
<string name="website_title">Weboldal</string>
<string name="website_encouragement">Látogasson el a NewPipe weboldalára további információkért és hírekért.</string>
<string name="privacy_policy_title">A NewPipe adatvédelmi irányelvei</string>
<string name="privacy_policy_encouragement">A NewPipe projekt komolyan veszi az adatvédelmét. Az alkalmazás nem gyűjt semmilyen adatot a beleegyezése nélkül.
\nA NewPipe adatvédelmi irányelve részletesen elmagyarázza, mely adatok kerülnek elküldésre és tárolásra az alkalmazás összeomlásának jelentésekor.</string>
@ -270,23 +270,10 @@
<string name="export_ongoing">Exportálás…</string>
<string name="import_file_title">Fájl importálása</string>
<string name="previous_export">Előző exportálás</string>
<string name="subscriptions_import_unsuccessful">A feliratkozások importálása nem sikerült</string>
<string name="subscriptions_export_unsuccessful">A feliratkozások exportálása nem sikerült</string>
<string name="import_youtube_instructions">YouTube feliratkozások importálása a Google Takeoutból:
\n
\n1. Navigáljon erre az oldalra: %1$s
\n2. Jelentkezzen be, ha kérik
\n3. Kattintson „Az összes adatot tartalmazza” gombra, majd a „Kijelölések megszüntetése” gombra, majd válassza ki a „feliratkozások” lehetőséget és kattintson az „OK” gombra
\n4. Kattintson a „Következő lépés”, majd az \"Exportálás indítása” gombra
\n5. Kattintson a „Letöltés” gombra, amikor megjelenik,
\n6. Kattintson a lenti FÁJL IMPORTÁLÁSA gombra, és válassza ki a letöltött ZIP-fájlt
\n7. [Ha a ZIP-fájl importálása nem sikerül] Bontsa ki a .csv fájlt (általában: „YouTube és YouTube Music/feliratkozások/feliratkozások.csv\"), majd kattintson lent a FÁJL IMPORTÁLÁSA gombra, és válassza az exportált CSV-fájlt</string>
<string name="import_soundcloud_instructions">SoundCloud-profil importálása a webcím vagy az azonosítójának begépelésével:
\n
\n1. A webböngészőben engedélyezze az „asztali módot” (az oldal nem érhető el mobileszközökön)
\n2. Navigáljon erre a webcímre: %1$s
\n3. Jelentkezzen be, ha kéri
\n4. Másolja ki a profil webcímét, ahova át lett irányítva.</string>
<string name="subscriptions_import_unsuccessful">A feliratkozások importálása sikertelen</string>
<string name="subscriptions_export_unsuccessful">A feliratkozások exportálása sikertelen</string>
<string name="import_youtube_instructions">YouTube feliratkozások importálása a Google Takeoutból: \n \n1. Navigáljon erre az oldalra: %1$s \n2. Jelentkezzen be, ha kérik \n3. Kattintson „Az összes adatot tartalmazza” gombra, majd a „Kijelölések megszüntetése” gombra, majd válassza ki a „feliratkozások” lehetőséget és kattintson az „OK” gombra \n4. Kattintson a „Következő lépés”, majd az \"Exportálás indítása” gombra \n5. Kattintson a „Letöltés” gombra, amikor megjelenik, \n6. Kattintson a lenti FÁJL IMPORTÁLÁSA gombra, és válassza ki a letöltött ZIP-fájlt \n7. [Ha a ZIP-fájl importálása nem sikerül] Bontsa ki a .csv fájlt (általában: „YouTube és YouTube Music/feliratkozások/feliratkozások.csv”), majd kattintson lent a FÁJL IMPORTÁLÁSA gombra, és válassza az exportált CSV-fájlt</string>
<string name="import_soundcloud_instructions">SoundCloud-profil importálása a webcím vagy az azonosítójának begépelésével: \n \n1. A webböngészőben engedélyezze az „asztali módot” (az oldal nem érhető el mobileszközökön) \n2. Navigáljon a következő webcímre: %1$s \n3. Jelentkezzen be, ha kéri \n4. Másolja ki a profil webcímét, ahova át lett irányítva.</string>
<string name="import_soundcloud_instructions_hint">saját azonosítója, soundcloud.com/azonosító</string>
<string name="import_network_expensive_warning">Ez a művelet adatforgalom-igényes lehet.
\n
@ -305,11 +292,11 @@
<string name="minimize_on_exit_background_description">Lejátszás folytatása a háttérben</string>
<string name="minimize_on_exit_popup_description">Lejátszás folytatása felugró ablakban</string>
<string name="resume_on_audio_focus_gain_title">Lejátszás folytatása</string>
<string name="show_hold_to_append_title">A „Tartsa lenyomva a sorba állításhoz\" tipp megjelenítése</string>
<string name="show_hold_to_append_title">A „Tartsa lenyomva a sorba állításhoz tipp megjelenítése</string>
<string name="unsubscribe">Leiratkozás</string>
<string name="tab_choose">Válasszon lapot</string>
<string name="show_comments_title">Megjegyzések megjelenítése</string>
<string name="show_comments_summary">Kapcsolja ki a megjegyzések elrejtéséhez</string>
<string name="show_comments_title">Hozzászólások megjelenítése</string>
<string name="show_comments_summary">Kapcsolja ki a hozzászólások elrejtéséhez</string>
<string name="default_content_country_title">Tartalom alapértelmezett országa</string>
<string name="switch_to_main">Folytatás főnézetben</string>
<string name="dismiss">Eltüntetés</string>
@ -350,7 +337,7 @@
<string name="error_progress_lost">Az előrehaladás elveszett, mert a fájlt törölték</string>
<string name="error_insufficient_storage_left">Nincs hely az eszközön</string>
<string name="error_postprocessing_stopped">A NewPipe leállt a fájl feldolgozása közben</string>
<string name="error_postprocessing_failed">Utófeldolgozás sikertelen</string>
<string name="error_postprocessing_failed">Az utófeldolgozás sikertelen</string>
<string name="error_http_not_found">Nincs talalat</string>
<string name="error_http_unsupported_range">A kiszolgáló nem fogad többszálú letöltést, próbálkozzon újra ezzel: @string/msg_threads = 1</string>
<string name="error_http_no_content">A kiszolgáló nem küld adatokat</string>
@ -366,7 +353,7 @@
<string name="overwrite_unrelated_warning">Ilyen névű fájl már létezik</string>
<string name="overwrite">Felülírás</string>
<string name="generate_unique_name">Egyedi név előállítása</string>
<string name="download_failed">Letöltés sikertelen</string>
<string name="download_failed">A letöltés sikertelen</string>
<string name="recovering">helyrehozás</string>
<string name="post_processing">utófeldolgozás</string>
<string name="queued">sorba állítva</string>
@ -398,10 +385,9 @@
<string name="auto_queue_toggle">Automatikus sorba állítás</string>
<string name="show_description_summary">Kapcsolja ki, hogy elrejtse a videó leírását és a további információkat</string>
<string name="restore_defaults_confirmation">Visszaállítja az alapértelmezéseket\?</string>
<string name="restricted_video_no_stream">Ez a videó korhatáros.
\nAz új, korhatáros videókkal kapcsolatos YouTube irányelvek miatt a NewPipe nem férhet hozzá a videóhoz, így nem tudja lejátszani.</string>
<string name="restricted_video_no_stream">Ez a videó korhatáros. \nAz új, korhatáros videókkal kapcsolatos YouTube irányelvek miatt a NewPipe nem férhet hozzá a videófolyamokhoz, így nem tudja lejátszani.</string>
<string name="description_tab_description">Leírás</string>
<string name="comments_tab_description">Megjegyzések</string>
<string name="comments_tab_description">Hozzászólások</string>
<string name="copy_for_github">Formázott jelentés másolása</string>
<string name="permission_display_over_apps">Adjon engedélyt a más alkalmazások feletti megjelenéshez</string>
<string name="no_playlist_bookmarked_yet">Még nincs könyvjelző lejátszási listához</string>
@ -421,8 +407,7 @@
<string name="new_seek_duration_toast">Az ExoPlayer korlátai miatt az előre- és visszatekerés időtartama %d másodpercre lett állítva</string>
<string name="feed_groups_header_title">Csatornacsoportok</string>
<string name="systems_language">Rendszer alapértelmezése</string>
<string name="start_accept_privacy_policy">Az Általános adatvédelmi rendeletnek (GDPR) való megfelelés érdekében felhívjuk figyelmét a NewPipe adatvédelmi nyilatkozatára. Olvassa el figyelmesen.
\nEl kell fogadnia, ha hibajelentést szeretne küldeni.</string>
<string name="start_accept_privacy_policy">Az Általános adatvédelmi rendeletnek (GDPR) való megfelelés érdekében felhívjuk figyelmét a NewPipe adatvédelmi irányelveire. Olvassa el figyelmesen. \nEl kell fogadnia, ha hibajelentést szeretne küldeni.</string>
<string name="crash_the_app">Alkalmazás összeomlasztása</string>
<string name="show_memory_leaks">Memóriaszivárgások megjelenítése</string>
<string name="enable_leak_canary_summary">A memóriaszivárgás-monitorozás az alkalmazás megállását okozhatja, amíg a dinamikus memória mentése folyik</string>
@ -443,8 +428,7 @@
<string name="no_one_watching">Senki sem nézi</string>
<string name="subscribers_count_not_available">A feliratkozók száma nem érhető el</string>
<string name="local">Helyi</string>
<string name="localization_changes_requires_app_restart">A nyelv az alkalmazás újraindításakor fog megváltozni</string>
<string name="error_unable_to_load_comments">Megjegyzések betöltése sikertelen</string>
<string name="error_unable_to_load_comments">A megjegyzések betöltése sikertelen</string>
<string name="select_a_playlist">Válasszon egy lejátszási listát</string>
<string name="autoplay_summary">Lejátszás automatikus indítása — %s</string>
<string name="playback_speed_control">Lejátszás sebességének beállítása</string>
@ -458,7 +442,7 @@
<string name="copyright">© %1$s %2$s, %3$s licenc alatt</string>
<string name="title_licenses">Harmadik féltől származó licencek</string>
<string name="done">Kész</string>
<string name="no_comments">Nincs megjegyzés</string>
<string name="no_comments">Nincsenek hozzászólások</string>
<string name="infinite_videos">∞ videó</string>
<string name="more_than_100_videos">100+ videó</string>
<string name="error_report_open_issue_button_text">Jelentés a GitHubon</string>
@ -468,7 +452,7 @@
<string name="clear_cookie_title">reCAPTCHA sütik törlése</string>
<string name="artists">Előadók</string>
<string name="albums">Albumok</string>
<string name="songs">Számok</string>
<string name="songs">Dalok</string>
<string name="events">Események</string>
<string name="videos_string">Videók</string>
<string name="restricted_video">Ez a videó korhatáros.
@ -516,7 +500,7 @@
<string name="content_not_supported">Ezt a tartalmat még nem támogatja a NewPipe.
\n
\nRemélhetőleg egy következő verzióban már támogatott lesz.</string>
<string name="no_app_to_open_intent">Nincs a készülékén olyan alkalmazás, amely meg tudja ezt nyitni</string>
<string name="no_app_to_open_intent">Az eszközön nincs olyan alkalmazás, amely meg tudja ezt nyitni</string>
<string name="youtube_music_premium_content">Ez a videó csak YouTube Music Prémium előfizetők számára érhető el, így nem tekinthető meg és nem tölthető le a NewPipe-pal.</string>
<string name="auto_device_theme_title">Automatikus (rendszertéma)</string>
<string name="paid_content">Ez a tartalom csak előfizetőknek érhető el, nem tekinthető meg és nem tölthető le a NewPipe-pal.</string>
@ -536,7 +520,7 @@
<string name="youtube_restricted_mode_enabled_summary">A YouTube biztosít egy „Korlátozott módot”, amely elrejti a lehetséges felnőtteknek szóló tartalmat</string>
<string name="youtube_restricted_mode_enabled_title">A YouTube „Korlátozott mód” bekapcsolása</string>
<string name="peertube_instance_add_exists">A példány már létezik</string>
<string name="peertube_instance_add_fail">A példány érvényesítése nem sikerült</string>
<string name="peertube_instance_add_fail">A példány érvényesítése sikertelen</string>
<string name="peertube_instance_add_help">Adja meg a példány webcímét</string>
<string name="peertube_instance_add_title">Példány hozzáadása</string>
<string name="peertube_instance_url_help">Találjon Önnek tetsző példányokat itt: %s</string>
@ -562,7 +546,7 @@
<string name="start_main_player_fullscreen_title">A fő lejátszó teljes képernyős indítása</string>
<string name="start_main_player_fullscreen_summary">A videókat ne a kis lejátszóban indítsa el, hanem kapcsolja be a teljes képernyős módot, ha az automatikus forgatás zárolva van. Továbbra is elérheti a kis lejátszót, ha kilép a teljes képernyőből</string>
<string name="drawer_header_description">Szolgáltatás be/ki, jelenleg kiválasztott:</string>
<string name="comments_are_disabled">A megjegyzések ki vannak kapcsolva</string>
<string name="comments_are_disabled">A hozzászólások ki vannak kapcsolva</string>
<string name="main_page_content_swipe_remove">Húzza oldalra az elemeket az eltávolításukhoz</string>
<string name="enqueue_next_stream">A következő sorba állítása</string>
<string name="enqueued_next">A következő sorba állítva</string>
@ -572,29 +556,17 @@
<string name="disable_media_tunneling_summary">Tiltsa le a médiacsatornázást, ha fekete képernyőt vagy akadozást tapasztal videólejátszáskor.</string>
<string name="downloads_storage_ask_summary_no_saf_notice">Minden letöltésnél meg fogja kérdezni, hogy hova mentse el</string>
<string name="choose_instance_prompt">Válasszon egy példányt</string>
<string name="feed_oldest_subscription_update">Lista legutóbbi frissítése: %s</string>
<string name="feed_notification_loading">Lista betöltése…</string>
<string name="feed_oldest_subscription_update">Hírfolyam utoljára frissítve: %s</string>
<string name="feed_notification_loading">Hírfolyam betöltése…</string>
<string name="feed_group_show_only_ungrouped_subscriptions">Csak a nem csoportosított feliratkozások megjelenítése</string>
<string name="settings_category_feed_title">Lista</string>
<string name="feed_update_threshold_title">Lista frissítési küszöb</string>
<string name="settings_category_feed_title">Hírfolyam</string>
<string name="feed_update_threshold_title">Hírfolyam frissítési küszöb</string>
<string name="feed_update_threshold_summary">A legutóbbi frissítés óta eltelt idő, ami után a feliratkozás elavultnak számít %s</string>
<string name="feed_load_error_terminated">A szerző fiókját eltávolították.
\nA NewPipe nem fogja tudni betölteni ezt a listát a jövőben.
\nLeiratkozik erről a csatornáról\?</string>
<string name="feed_load_error_fast_unknown">A gyors listamód nem ad ennél több információt.</string>
<string name="feed_use_dedicated_fetch_method_title">Lekérés egy dedikált listából, ha lehetséges</string>
<string name="feed_load_error_terminated">A szerző fiókját eltávolították. \nA NewPipe nem fogja tudni betölteni ezt a hírfolyamot a jövőben. \nLeiratkozik erről a csatornáról?</string>
<string name="feed_load_error_fast_unknown">A gyors hírfolyammód nem szolgáltat több információt.</string>
<string name="feed_use_dedicated_fetch_method_title">Lekérés egy dedikált hírfolyamból, ha lehetséges</string>
<string name="feed_use_dedicated_fetch_method_enable_button">Gyors mód engedélyezése</string>
<string name="feed_use_dedicated_fetch_method_help_text">Úgy gondolja, hogy a lista betöltése lassú\? Ha így van, akkor próbálja engedélyezni a gyors betöltést (ezt a beállításokban változtathatja meg, vagy a lenti gomb megnyomásával).
\n
\nA NewPipe két listabetöltési stratégiát kínál:
\n• A teljes feliratkozott csatorna lekérése, amely lassú, de teljes.
\n• Egy dedikált szolgáltatási végpont, amely gyors, de általában nem teljes.
\n
\nA különbség a kettő között az, hogy a gyorsból általában hiányoznak egyes információk, mint az elem hossza vagy a típusa (nem lehet megkülönböztetni az élő videókat a normálaktól), valamint kevesebb elemet adhat vissza.
\n
\nA YouTube például egy olyan szolgáltatás, amely ezt a gyors módot RSS hírcsatornával kínálja.
\n
\nÍgy a választása azon múlik, hogy melyiket tartja fontosabbnak: a sebességet vagy a pontos információkat.</string>
<string name="feed_use_dedicated_fetch_method_help_text">Úgy gondolja, hogy a hírfolyam betöltése lassú? Ha így van, akkor próbálja engedélyezni a gyors betöltést (ezt a beállításokban változtathatja meg, vagy a lenti gomb megnyomásával). \n \nA NewPipe két hírfolyam betöltési stratégiát kínál: \n• A teljes feliratkozott csatorna lekérése, amely lassú, de teljes. \n• Egy dedikált szolgáltatási végpont, amely gyors, de általában nem teljes. \n \nA különbség a kettő között az, hogy a gyorsból általában hiányoznak egyes információk, mint az elem hossza vagy a típusa (nem lehet megkülönböztetni az élő videókat a normálaktól), valamint kevesebb elemet adhat vissza. \n \nA YouTube például egy olyan szolgáltatás, amely ezt a gyors módot RSS hírcsatornával kínálja. \n \nÍgy a választása azon múlik, hogy melyiket tartja fontosabbnak: a sebességet vagy a pontos információkat.</string>
<string name="detail_sub_channel_thumbnail_view_description">Csatorna profilképének bélyegképe</string>
<string name="recent">Legutóbbi</string>
<string name="featured">Kiemelt</string>
@ -612,25 +584,25 @@
<item quantity="one">Letöltés befejezve</item>
<item quantity="other">%s letöltés befejezve</item>
</plurals>
<string name="feed_processing_message">Lista feldolgozása…</string>
<string name="feed_processing_message">Hírfolyam feldolgozása…</string>
<string name="feed_use_dedicated_fetch_method_summary">Egyes szolgáltatásoknál érhető el, általában sokkal gyorsabb, és korlátozott számú elemet adhat vissza, gyakran hiányos információkkal (például nincs hossz, elemtípus, vagy élő videó állapot)</string>
<string name="account_terminated">Fiók eltávolítva</string>
<string name="mark_as_watched">Megjelölés megnézettként</string>
<string name="no_dir_yet">Még nincs letöltési mappa beállítva, válassza ki az alapértelmezett letöltési mappát most</string>
<string name="seekbar_preview_thumbnail_title">Tekerősáv bélyegkép-előnézete</string>
<string name="high_quality_larger">Magas minőségű (nagyobb)</string>
<string name="feed_load_error">Hiba a lista betöltésekor</string>
<string name="feed_load_error">Hiba a hírfolyam betöltésekor</string>
<string name="metadata_language">Nyelv</string>
<string name="metadata_support">Támogatás</string>
<string name="open_website_license">Weboldal megnyitása</string>
<string name="tablet_mode_title">Táblagép mód</string>
<string name="downloads_storage_use_saf_summary_api_29">Az Android 10-től kezdve, csak a „Storage Access Framework” támogatott</string>
<string name="feed_new_items">Új listaelemek</string>
<string name="feed_new_items">Új hírfolyamelemek</string>
<string name="metadata_privacy_private">Privát</string>
<string name="metadata_privacy_internal">Belső</string>
<string name="detail_heart_img_view_description">Készítő által szívecskézve</string>
<string name="on">Be</string>
<string name="feed_load_error_account_info">A(z) „%s” listája nem tölthető be.</string>
<string name="feed_load_error_account_info">A(z) „%s” hírfolyam nem tölthető be.</string>
<string name="soundcloud_go_plus_content">Ez egy SoundCloud Go+ szám, legalábbis az Ön országában, így nem játszható le vagy tölthető le a NewPipe-pal.</string>
<string name="show_meta_info_summary">Kapcsolja ki, hogy elrejtse a metainformációs dobozokat, melyek további információkat tartalmaznak a közvetítés létrehozójáról, annak tartalmáról vagy egy keresési kérésről</string>
<string name="error_report_channel_name">Hibajelentési értesítés</string>
@ -668,9 +640,9 @@
<item quantity="one">%1$s letöltés törölve</item>
<item quantity="other">%1$s letöltés törölve</item>
</plurals>
<string name="detail_pinned_comment_view_description">Rögzített megjegyzés</string>
<string name="detail_pinned_comment_view_description">Kitűzött hozzászólás</string>
<string name="leak_canary_not_available">LeakCanary nem elérhető</string>
<string name="settings_category_player_notification_title">Lejátszó értesítés</string>
<string name="settings_category_player_notification_title">Lejátszási értesítés</string>
<string name="progressive_load_interval_summary">Módosítsa a progresszív tartalmak betöltési intervallumának méretét (jelenleg %s). Az alacsonyabb érték felgyorsíthatja a kezdeti betöltésüket.</string>
<string name="settings_category_player_notification_summary">Jelenleg játszott közvetítés értesítésének testreszabása</string>
<string name="notifications">Értesítések</string>
@ -678,14 +650,14 @@
<string name="streams_notification_channel_description">Értesítések új élő közvetítésekről a feliratkozott csatornák esetén</string>
<string name="loading_stream_details">Közvetítés részleteinek betöltése.…</string>
<string name="check_new_streams">Keressen új élő közvetítést</string>
<string name="enable_streams_notifications_title">Új közvetítésértesítések</string>
<string name="enable_streams_notifications_title">Új közvetítések értesítései</string>
<string name="enable_streams_notifications_summary">Értesítésen új élő közvetítés esetén a feliratkozott csatornákhoz</string>
<string name="streams_notifications_interval_title">Ellenőrzési gyakoriság</string>
<string name="streams_notifications_network_title">Szükséges hálózati kapcsolat</string>
<string name="any_network">Bármilyen hálózat</string>
<string name="delete_downloaded_files_confirm">Törli az összes letöltött fájlt a lemezről\?</string>
<string name="get_notified">Értesítsen</string>
<string name="notifications_disabled">Értesítéstek kikapcsolva</string>
<string name="notifications_disabled">Az értesítések le vannak tiltva</string>
<string name="progressive_load_interval_title">Lejátszás betöltési intervallumának mérete</string>
<string name="percent">Százaléka</string>
<plurals name="new_streams">
@ -693,14 +665,14 @@
<item quantity="other">%s új elő közvetítés</item>
</plurals>
<string name="progressive_load_interval_exoplayer_default">ExoPlayer alapértelmezett</string>
<string name="you_successfully_subscribed">Feliratkoztál erre a csatornára</string>
<string name="you_successfully_subscribed">Feliratkozott erre a csatornára</string>
<string name="enumeration_comma">,</string>
<string name="streams_not_yet_supported_removed">Azok az élő adások melyek nem támogatottak a letöltő által, rejtve vannak</string>
<string name="selected_stream_external_player_not_supported">A választott élő adást nem lehet külső lejátszóval lejátszani</string>
<string name="toggle_all">Összes váltása</string>
<string name="no_audio_streams_available_for_external_players">Külső lejátszók számára nem érhető el az hang csatorna</string>
<string name="no_video_streams_available_for_external_players">Külső lejátszók számára nem érhető el videó</string>
<string name="select_quality_external_players">Válassz minőséget külső lejátszókhoz</string>
<string name="toggle_all">Összes be/ki</string>
<string name="no_audio_streams_available_for_external_players">Külső lejátszók számára nem érhető el hangfolyam</string>
<string name="no_video_streams_available_for_external_players">Külső lejátszók számára nem érhető el videófolyamok</string>
<string name="select_quality_external_players">Válasszon minőséget a külső lejátszókhoz</string>
<string name="unknown_format">Ismeretlen formátum</string>
<string name="unknown_quality">Ismeretlen minőség</string>
<string name="semitone">Félhang</string>
@ -720,11 +692,11 @@
<string name="duplicate_in_playlist">A kiszürkített lejátszólisták már tartalmazzák ezt az elemet.</string>
<string name="unset_playlist_thumbnail">Állandó bélyegkép feloldása</string>
<string name="remove_duplicates">Ismétlődések eltávolítása</string>
<string name="feed_show_watched">Végignézve</string>
<string name="feed_show_partially_watched">Részben megnézve</string>
<string name="feed_show_watched">Teljesen megtekintett</string>
<string name="feed_show_partially_watched">Részben megtekintett</string>
<string name="card">Kártya</string>
<string name="night_theme_available">Ez a beállítás csak a(z) %s téma esetén érhető el</string>
<string name="ignore_hardware_media_buttons_title">Hardveresmédiagomb-események figyelmen kívül hagyása</string>
<string name="ignore_hardware_media_buttons_title">Hardveres médialejátszó gombok eseményeinek figyelmen kívül hagyása</string>
<string name="feed_hide_streams_title">A következő közvetítések megjelenítése</string>
<string name="prefer_original_audio_summary">Az eredeti hangsáv választása, a nyelvtől függetlenül</string>
<string name="prefer_descriptive_audio_summary">A látássérülteknek szóló leírást tartalmazó hangsáv választása, ha van ilyen</string>
@ -741,9 +713,7 @@
<string name="use_exoplayer_decoder_fallback_title">Az ExoPlayer dekódoló tartalék funkciójának használata</string>
<string name="use_exoplayer_decoder_fallback_summary">Engedélyezze ezt a beállítást, ha dekóder előkészítési problémái vannak, ami alacsonyabb prioritású dekóderekre váltást okoz, ha az elsődleges dekóderek előkészítése sikertelen. Ez rosszabb lejátszási teljesítményt eredményezhet, mint az elsődleges dekóderek használata.</string>
<string name="always_use_exoplayer_set_output_surface_workaround_title">Kerülőmegoldás: mindig az ExoPlayer videokimeneti felületének használata</string>
<string name="always_use_exoplayer_set_output_surface_workaround_summary">Ez a kerülőmegoldás elengedi és újból előkészíti a videokodekeket, ha felületváltozás történik, ahelyett, hogy közvetlenül a kodeknél állítaná be a felületet. Ez már alapból használatban van egyes, az ezzel a problémával érintett eszközöknél, a beállításnak Android 6 vagy újabb esetén van hatása.
\n
\nA beállítás bekapcsolása megakadályozhatja a lejátszási hibákat, ha átváltja a jelenlegi videolejátszót, vagy teljes képernyőre vált.</string>
<string name="always_use_exoplayer_set_output_surface_workaround_summary">Ez a kerülőmegoldás elengedi és újból előkészíti a videokodekeket, ha felületváltozás történik, ahelyett, hogy közvetlenül a kodeknél állítaná be a felületet. Ez már alapból használatban van egyes, az ezzel a problémával érintett eszközöknél, a beállításnak Android 6 vagy újabb esetén van hatása\n\nA beállítás bekapcsolása megakadályozhatja a lejátszási hibákat abban az esetben, ha átváltja a jelenlegi videolejátszót, vagy teljes képernyőre vált</string>
<string name="audio_track_name">%1$s %2$s</string>
<string name="audio_track_type_dubbed">szinkronizált</string>
<string name="audio_track_type_descriptive">leíró</string>
@ -757,18 +727,18 @@
<string name="remove_duplicates_message">Eltávolítja az összes ismétlődő közvetítést ebből a lejátszólistáról\?</string>
<string name="audio_track_type_original">eredeti</string>
<string name="main_tabs_position_title">Kezdőlap pozíciója</string>
<string name="disable_media_tunneling_automatic_info">A médiacsatornázás alapértelmezés szerint le van tiltva az Ön készülékén, mivel az Ön készülékmodellje nem támogatja azt.</string>
<string name="disable_media_tunneling_automatic_info">A médiacsatornázás alapértelmezés szerint le van tiltva a saját eszközén, mivel a saját eszközmodellje nem támogatja azt.</string>
<string name="main_tabs_position_summary">Kezdőlapválasztó alulra helyezése</string>
<string name="no_live_streams">Nincs élő közvetítés</string>
<string name="no_streams">Nincs adatfolyam</string>
<string name="notification_actions_summary_android13">Az alábbi értesítési műveletek szerkesztéséhez koppintson rá. Az első három műveletet (lejátszás/szünet, előző és következő) a rendszer állítja be, és nem szabhatók testre.</string>
<string name="feed_fetch_channel_tabs">Csatornalapok lekérése</string>
<string name="feed_fetch_channel_tabs_summary">A hírcsatorna frissítésekor lekérendő lapok. Ennek az opciónak nincs hatása, ha egy csatorna frissítése gyors módban történik.</string>
<string name="feed_fetch_channel_tabs_summary">A hírfolyam frissítésekor lekérendő lapok. Ennek a beállításnak nincs hatása, ha egy csatorna frissítése gyors módban történik.</string>
<string name="metadata_thumbnails">Miniatűrök</string>
<string name="metadata_uploader_avatars">Feltöltő avatarjai</string>
<string name="metadata_subchannel_avatars">Alcsatorna avatarok</string>
<string name="metadata_avatars">Avatarok</string>
<string name="metadata_banners">Bannerek</string>
<string name="metadata_uploader_avatars">Feltöltő profilképei</string>
<string name="metadata_subchannel_avatars">Alcsatorna profilképei</string>
<string name="metadata_avatars">Profilképek</string>
<string name="metadata_banners">Borítóképek</string>
<string name="metadata_subscribers">Feliratkozók</string>
<string name="channel_tab_channels">Csatornák</string>
<string name="channel_tab_playlists">Lejátszási listák</string>
@ -777,13 +747,13 @@
<string name="show_channel_tabs">Csatorna fülek</string>
<string name="show_channel_tabs_summary">Milyen lapok jelennek meg a csatornaoldalakon</string>
<string name="open_play_queue">Lejátszási sor megnyitása</string>
<string name="toggle_screen_orientation">Képernyő tájolásának váltása</string>
<string name="toggle_fullscreen">Teljes képernyőre váltás</string>
<string name="toggle_screen_orientation">Képernyő tájolás be/ki</string>
<string name="toggle_fullscreen">Teljes képernyő be/ki</string>
<string name="next_stream">Következő közvetítés</string>
<string name="previous_stream">Előző közvetítés</string>
<string name="play">Lejátszás</string>
<string name="replay">Visszajátszás</string>
<string name="more_options">További opciók</string>
<string name="more_options">További lehetőségek</string>
<string name="duration">Időtartam</string>
<string name="rewind">Visszatekerés</string>
<string name="forward">Előre</string>
@ -808,7 +778,7 @@
<string name="share_playlist_with_list">Webcímlista megosztása</string>
<string name="video_details_list_item">- %1$s: %2$s</string>
<string name="channel_tab_videos">Videók</string>
<string name="channel_tab_tracks">Dalok</string>
<string name="channel_tab_tracks">Zeneszámok</string>
<string name="channel_tab_shorts">Rövidek</string>
<string name="channel_tab_livestreams">Élő</string>
<string name="error_insufficient_storage">Nincs elég szabad hely az eszközön</string>
@ -822,6 +792,14 @@
<string name="reset_all_settings">Az összes beállítás visszaállítása elveti az összes preferált beállítást, és újraindítja az alkalmazást.
\n
\nBiztosan folytatja?</string>
<string name="import_settings_vulnerable_format">Az importálandó exportban lévő beállítások sérülékeny formátumot használnak, amely a NewPipe 0.27.0-s verziója óta elavult. Győződjön meg arról, hogy megbízható forrásból importálja, és a jövőben csak a NewPipe 0.27.0-s vagy újabb verziójából származó exportokat használjon. A beállítások ebből a sérülékeny forrásból történő importálása hamarosan végleg el lesz távolítva, és a NewPipe régi verziói nem fogják tudni importálni az újabb verziókból származó exportokat.</string>
<string name="import_settings_vulnerable_format">Az importálandó exportban lévő beállítások sérülékeny formátumot használnak, amely a NewPipe 0.27.0-ás verziója óta elavult. Győződjön meg arról, hogy megbízható forrásból importálja, és a jövőben csak a NewPipe 0.27.0-ás vagy újabb verziójából származó exportokat használjon. A beállítások ebből a sérülékeny forrásból történő importálása hamarosan végleg el lesz távolítva, és a NewPipe régi verziói nem fogják tudni importálni az újabb verziókból származó exportokat.</string>
<string name="audio_track_type_secondary">másodlagos</string>
<string name="share_playlist_as_youtube_temporary_playlist">Megosztás YouTube ideiglenes lejátszási listaként</string>
<string name="tab_bookmarks_short">Lejátszási listák</string>
<string name="select_a_feed_group">Válasszon ki egy hírfolyamcsoportot</string>
<string name="no_feed_group_created_yet">Még nincs létrehozott hírfolyamcsoport</string>
<string name="feed_group_page_summary">Csatornacsoport-oldal</string>
<string name="search_with_service_name">Keresés %1$s</string>
<string name="search_with_service_name_and_filter">Keresés %1$s (%2$s)</string>
<string name="channel_tab_likes">Kedvelések</string>
</resources>

View File

@ -417,7 +417,6 @@
<plurals name="listening">
<item quantity="other">%s pendengar</item>
</plurals>
<string name="localization_changes_requires_app_restart">Bahasa yang diubah akan diterapkan setelah aplikasi dimulai ulang</string>
<string name="peertube_instance_url_title">Situs PeerTube</string>
<string name="peertube_instance_url_summary">Pilih situs PeerTube favorit Anda</string>
<string name="peertube_instance_url_help">Temukan situs yang Anda suka di %s</string>
@ -809,4 +808,9 @@
<string name="settings_category_backup_restore_title">Cadangkan dan pulihkan</string>
<string name="import_settings_vulnerable_format">Pengaturan dalam ekspor yang diimpor menggunakan format rentan yang tidak digunakan lagi sejak NewPipe 0.27.0. Pastikan ekspor yang diimpor berasal dari sumber tepercaya, dan lebih memilih hanya menggunakan ekspor yang diperoleh dari NewPipe 0.27.0 atau yang lebih baru di masa mendatang. Dukungan untuk mengimpor pengaturan dalam format rentan ini akan segera dihapus sepenuhnya, dan NewPipe versi lama tidak akan dapat lagi mengimpor pengaturan ekspor dari versi baru.</string>
<string name="audio_track_type_secondary">sekunder</string>
<string name="share_playlist_as_youtube_temporary_playlist">Daftar putar</string>
<string name="tab_bookmarks_short">Daftar putar</string>
<string name="feed_group_page_summary">Halaman grup saluran</string>
<string name="no_feed_group_created_yet">Belum ada grup umpan yang dibuat</string>
<string name="select_a_feed_group">Pilih grup umpan</string>
</resources>

View File

@ -268,7 +268,6 @@
<string name="title_last_played">Nýlega spilað</string>
<string name="title_most_played">Mest spilað</string>
<string name="main_page_content">Aðalsíða</string>
<string name="localization_changes_requires_app_restart">Tungumálið breytist þegar forritið er endurræst</string>
<string name="export_complete_toast">Flutt út</string>
<string name="import_complete_toast">Flutt inn</string>
<string name="local">Staðbundið</string>
@ -802,4 +801,6 @@
<string name="show_error_snackbar">Sýna villustiku</string>
<string name="image_quality_summary">Veldu gæði mynda og hvort eigi að hlaða myndum inn yfirhöfuð, til að minnka notun gagna og minnis. Breytingar munu hreinsa bæði vinnsluminni og diskminni - %s</string>
<string name="audio_track_type_secondary">auka</string>
<string name="share_playlist_as_youtube_temporary_playlist">Deila sem YouTube-bráðabirgðaspilunarlista</string>
<string name="tab_bookmarks_short">Spilunarlistar</string>
</resources>

View File

@ -427,7 +427,6 @@
<item quantity="many">%s ascoltatori</item>
<item quantity="other">%s ascoltatori</item>
</plurals>
<string name="localization_changes_requires_app_restart">La lingua verrà cambiata al riavvio dell\'applicazione</string>
<string name="default_kiosk_page_summary">Contenuti in evidenza predefiniti</string>
<string name="seek_duration_title">Durata avanzamento e riavvolgimento rapidi</string>
<string name="peertube_instance_url_title">Istanze PeerTube</string>
@ -837,4 +836,12 @@
\nVuoi attivarlo?</string>
<string name="import_settings_vulnerable_format">Le impostazioni nell\'export che viene importato usano un formato vulnerabile che è stato deprecato dalla versione 0.27.0 di NewPipe. Assicuratevi che l\'export importato venga da una fonte fidata, sarebbe preferibile usare solo exports ottenuti da NewPipe 0.27.0 o superiori, nel futuro. Il supporto all\'importazione di Impostazioni in questo formato vulnerabile sarà presto rimosso completamente, da quel momento le versioni di NewPipe più vecchie non saranno più in grado di importare impostazioni tramite export di versioni più recenti.</string>
<string name="audio_track_type_secondary">secondaria</string>
<string name="share_playlist_as_youtube_temporary_playlist">Condividi come playlist YouTube temporanea</string>
<string name="tab_bookmarks_short">Playlist</string>
<string name="select_a_feed_group">Seleziona un gruppo di feed</string>
<string name="no_feed_group_created_yet">Ancora nessun gruppo di feed creato</string>
<string name="feed_group_page_summary">Pagina gruppo canali</string>
<string name="search_with_service_name_and_filter">Cerca %1$s (%2$s)</string>
<string name="search_with_service_name">Cerca su %1$s</string>
<string name="channel_tab_likes">Mi piace</string>
</resources>

View File

@ -418,7 +418,6 @@
<plurals name="listening">
<item quantity="other">%s 人が聴取中</item>
</plurals>
<string name="localization_changes_requires_app_restart">アプリを再起動すると、言語が変更されます</string>
<string name="seek_duration_title">高速早送り/巻き戻し間隔</string>
<string name="peertube_instance_url_title">PeerTube インスタンス</string>
<string name="peertube_instance_url_summary">PeerTube インスタンスを選択する</string>
@ -808,4 +807,6 @@
\n
\n続行しますか</string>
<string name="import_settings_vulnerable_format">インポートされているエクスポートの設定は、NewPipe 0.27.0以降は非推奨であった脆弱な形式を使用します。 インポートされているエクスポートは信頼できる情報源からであり、将来的にはNewPipe 0.27.0かこれより新しいバージョンから得られるエクスポートのみを優先して使用します。 この脆弱な形式で設定をインポートするための対応はすぐに完全に削除され、新しいバージョンからエクスポートの設定をインポートすることは出来ません。</string>
<string name="share_playlist_as_youtube_temporary_playlist">YouTubeの一時的なプレイリストとして共有</string>
<string name="audio_track_type_secondary">二次的</string>
</resources>

View File

@ -333,7 +333,6 @@
<string name="could_not_import_all_files">გაფრთხილება: ყველა ფაილის იმპორტი ვერ მოხერხდა.</string>
<string name="override_current_data">ეს უგულებელყოფს თქვენს მიმდინარე პარამეტრს.</string>
<string name="error_unable_to_load_comments">კომენტარების ჩატვირთვა ვერ მოხერხდა</string>
<string name="localization_changes_requires_app_restart">ენა შეიცვლება აპის გადატვირთვის შემდეგ</string>
<string name="trending">ტრენდული</string>
<string name="top_50">ტოპ 50</string>
<string name="new_and_hot">ახალი და ცხელი</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="settings_category_video_audio_title">Tavidyutt akked d imesli</string>
<string name="tab_about">Γef</string>
<string name="settings_category_video_audio_title">Avidyu akked d imesli</string>
<string name="tab_about">Ɣef &amp; ISTEQSIYEN</string>
<string name="feed_create_new_group_button_title">Amaynut</string>
<string name="all">Akk</string>
<string name="kore_not_found">Sbedd asnas n Kore yexxuṣen\?</string>
@ -90,7 +90,7 @@
<string name="users">Iseqdacen</string>
<string name="settings_category_clear_data_title">Sfeḍ isefka</string>
<string name="minimize_on_exit_none_description">Ulac</string>
<string name="msg_copied">Aḍris yettwanγel γef afus</string>
<string name="msg_copied">Yettwanɣel ɣef afus</string>
<string name="playlists">Tibdarin n tɣuri</string>
<string name="title_last_played">Aneggaru yettwaslekmen</string>
<string name="autoplay_title">Taɣuri tawurmant</string>
@ -116,7 +116,7 @@
<string name="show_comments_title">Beqqeḍ iwenniten</string>
<string name="settings_category_player_title">Ameɣri</string>
<string name="conferences">Isaragen</string>
<string name="updates_setting_title">Isedγiten</string>
<string name="updates_setting_title">Ileqman</string>
<string name="theme_title">Asentel</string>
<string name="dark_theme_title">Ubrik</string>
<string name="share">Bḍu</string>
@ -131,7 +131,7 @@
<string name="short_billion">o</string>
<string name="controls_background_title">Aɣawas n deffir</string>
<string name="title_activity_history">Amazray</string>
<string name="paused">Asteεfu</string>
<string name="paused">yesteɛfay</string>
<string name="rename_playlist">Snifel isem</string>
<string name="videos_string">Tividyutin</string>
<string name="open_in_browser">Ldi deg uminig</string>
@ -224,4 +224,5 @@
<string name="radio">Amaṭṭaf</string>
<string name="metadata_tags">Tibzimin</string>
<string name="blank_page_summary">Asebter d ilem</string>
<string name="settings_category_exoplayer_title">Iɣewwaṛen n ExoPlayer</string>
</resources>

View File

@ -139,7 +139,6 @@
<string name="file_deleted">Pel hate jêbirin</string>
<string name="undo">Betal bike</string>
<string name="best_resolution">Çareseriya çêtirîn</string>
<string name="localization_changes_requires_app_restart">Gava ku sepanê ji nû ve dest pê kir dê ziman biguhere.</string>
<string name="error_unable_to_load_comments">Ouldîrove nehat barkirin</string>
<string name="import_settings">Ma hûn dixwazin mîhengan jî îthal bikin\?</string>
<string name="override_current_data">Ev ê sazkirina xweya heyî ji holê rabike.</string>

View File

@ -418,7 +418,6 @@
<plurals name="listening">
<item quantity="other">%s명 청취중</item>
</plurals>
<string name="localization_changes_requires_app_restart">앱이 다시 시작되면 언어가 변경됩니다</string>
<string name="seek_duration_title">빠른-감기/되감기 찾는 시간</string>
<string name="peertube_instance_url_title">피어튜브 인스턴스</string>
<string name="peertube_instance_url_summary">선호하는 PeerTube 인스턴스 선택</string>

View File

@ -398,7 +398,6 @@
<string name="overwrite_unrelated_warning">فایلێک بەهەمان ناو هەیە</string>
<string name="overwrite_finished_warning">فایلێکی دابەزێنراو بەم ناوەوە هەیە</string>
<string name="overwrite_failed">ناتوانرێ لەسەر ئەو فایلە جێگیربکرێ</string>
<string name="localization_changes_requires_app_restart">زمان دەگۆڕدرێ لەدوای داخستن و پاشان کردنەوەی ئەپ.</string>
<string name="default_kiosk_page_summary">پەڕەی بنەڕەتی</string>
<string name="seek_duration_title">ماوەی خێرا بردنە پێشەوە\\ گێڕانەوە بۆ دواوە</string>
<string name="peertube_instance_url_title">دۆخی پێرتووبی</string>

View File

@ -6,7 +6,7 @@
<string name="install">Įdiegti</string>
<string name="cancel">Atšaukti</string>
<string name="open_in_browser">Atverti naršyklėje</string>
<string name="open_in_popup_mode">Atverti iššokančio lango rėžime</string>
<string name="open_in_popup_mode">Atverti iššokančio lango režime</string>
<string name="share">Dalintis</string>
<string name="download">Atsisiųsti</string>
<string name="search">Paieška</string>
@ -494,7 +494,6 @@
<string name="most_liked">Labiausiai patikę</string>
<string name="recently_added">Nesenai pridėta</string>
<string name="local">Vietinė</string>
<string name="localization_changes_requires_app_restart">Kalba pasikeis paleidus programą iš naujo</string>
<string name="error_unable_to_load_comments">Komentarų įkelti nepavyko</string>
<string name="import_settings">Ar norite importuoti nustatymus\?</string>
<string name="no_playlist_bookmarked_yet">Kol kas nėra grojaraščio žymų</string>
@ -836,4 +835,7 @@
\n%2$s</string>
<string name="question_mark">\?</string>
<string name="video_details_list_item">- %1$s: %2$s</string>
<string name="tab_bookmarks_short">Grojaraščiai</string>
<string name="audio_track_type_secondary">Antrinis</string>
<string name="share_playlist_as_youtube_temporary_playlist">Dalintis kaip laikinuoju youtube grojaraščiu</string>
</resources>

View File

@ -272,7 +272,6 @@
<string name="peertube_instance_url_help">Atrodiet instances, kas jums patīk ar %s</string>
<string name="peertube_instance_url_summary">Izvēlaties jūsu mīļākās PeerTube instances</string>
<string name="peertube_instance_url_title">PeerTube serveri (instances)</string>
<string name="localization_changes_requires_app_restart">Valoda nomainīsies, kad aplikāciju restartēs</string>
<string name="no_app_to_open_intent">Neviena lietotne jūsu ierīcē nevar šo atvērt</string>
<string name="chapters">Nodaļas</string>
<string name="recent">Jaunākie</string>
@ -414,7 +413,7 @@
\n2. Dodieties uz šo URL:%1$s
\n3. Ierakstaties, kad tiek prasīts
\n4. Nokopējiet profila URL, uz kuru tikāt novirzīts.</string>
<string name="import_youtube_instructions">YouTube abonementu importēšana no Google Takeout:\n\n1. Dodieties uz šo vietni: %1$s\n2. Autorizējieties, ja nepieciešams\n3. Noklikšķiniet uz \"Visi dati iekļauti\", pēc tam uz \"Atcelt visu atlasi\", pēc tam atlasiet tikai \"Abonementi\" un noklikšķiniet uz \"Labi\"\n4. Noklikšķiniet uz \"Nākamais solis\" un pēc tam uz \"Izveidot eksportu\"\n5. Pēc tam, kad tā parādās, noklikšķiniet uz pogas \"Lejupielādēt\"\n6. Noklikšķiniet IMPORTĒT DATNI zemāk un izvēlaties lejupielādēto .zip failu\n7. [Ja .zip failu neizdodas importēt] Izvelciet .csv failu (parasti zem \"YouTube un YouTube Music/subscriptions/subscriptions.csv\") no arhīva, tad noklikšķiniet uz IMPORTĒT DATNI zemāk un izvēlaties tikko izvilkto csv failu</string>
<string name="import_youtube_instructions">Ievietot YouTube abonementus no Google Takeout:\n\n1. Dodieties uz šo vietni: %1$s\n2. Autorizējieties, ja nepieciešams\n3. Noklikšķiniet uz \"Visi dati iekļauti\", pēc tam uz \"Atcelt visu atlasi\", pēc tam atlasiet tikai \"Abonementi\" un noklikšķiniet uz \"Labi\"\n4. Noklikšķiniet uz \"Nākamais solis\" un pēc tam uz \"Izveidot eksportu\"\n5. Pēc tam, kad tā parādās, noklikšķiniet uz pogas \"Lejupielādēt\"\n6. Noklikšķiniet IEVIETOT DATNI zemāk un izvēlaties lejupielādēto .zip failu\n7. [Ja .zip failu neizdodas ievietot] Izvelciet .csv failu (parasti zem \"YouTube un YouTube Music/subscriptions/subscriptions.csv\") no arhīva, tad noklikšķiniet uz IEVIETOT DATNI zemāk un atlasiet tikko izvilkto csv failu</string>
<string name="preferred_open_action_settings_summary">Noklusējuma darbība, kad atver saturu — %s</string>
<string name="show_original_time_ago_summary">Pakalpojumu oriģinālteksti būs redzami video vienumos</string>
<string name="enable_disposed_exceptions_summary">Pēc izdzēšanas, piespiedu kārtā ziņot par nepiegādātiem Rx izņēmumiem, ārpus fragmenta vai darbības dzīves cikla</string>
@ -527,7 +526,7 @@
<string name="open_in_browser">Atvērt pārlūkā</string>
<string name="cancel">Atcelt</string>
<string name="install">Uzstādīt</string>
<string name="no_player_found_toast">Netika atrasts video atskaņotājs (jūs varat uzstādīt VLC, lai to atskaņotu).</string>
<string name="no_player_found_toast">Netika atrasts video atskaņotājs (jūs variet uzstādīt VLC, lai to atskaņotu).</string>
<string name="no_player_found">Netika atrasts video atskaņotājs. Uzstādīt VLC?</string>
<string name="upload_date_text">Publicēts %1$s</string>
<string name="main_bg_subtitle">Nospiediet uz meklēšanas ikonas, lai sāktu.</string>
@ -560,7 +559,7 @@
<string name="download_path_title">Video lejupielādes mape</string>
<string name="controls_add_to_playlist_title">Pievienot</string>
<string name="controls_background_title">Fonā</string>
<string name="tab_choose">Izvēlieties Cilni</string>
<string name="tab_choose">Atlasiet cilni</string>
<string name="tab_bookmarks">Saglabātie saraksti</string>
<string name="tab_subscriptions">Abonementi</string>
<string name="show_info">Rādīt informāciju</string>
@ -574,11 +573,11 @@
<string name="use_external_video_player_summary">Noņem skaņu dažās izšķirtspējās</string>
<string name="use_external_video_player_title">Izmantot ārējo video atskaņotāju</string>
<string name="share_dialog_title">Kopīgot ar</string>
<string name="search_showing_result_for">Tiek rādīti rezultāti priekš: %s</string>
<string name="search_showing_result_for">Tiek rādīti %s rezultāti</string>
<string name="did_you_mean">Vai jūs domājāt \"%1$s\"\?</string>
<string name="settings">Iestatījumi</string>
<string name="search">Meklēt</string>
<string name="controls_download_desc">Lejupielādēt video failu</string>
<string name="controls_download_desc">Lejupielādēt video datni</string>
<string name="download">Lejupielādēt</string>
<string name="featured">Populāri</string>
<string name="download_has_started">Lejupielāde ir sākusies</string>
@ -643,7 +642,7 @@
<string name="metadata_privacy">Privātums</string>
<string name="metadata_privacy_unlisted">Sarakstā neiekļauts</string>
<string name="metadata_host">Uzņēmums</string>
<string name="remote_search_suggestions">Attālinātie meklēšanas ieteikumi</string>
<string name="remote_search_suggestions">Servera meklēšanas ieteikumi</string>
<string name="mark_as_watched">Atzīmēt kā skatītu</string>
<string name="processing_may_take_a_moment">Apstrādā... Var aizņemt kādu laiku</string>
<plurals name="deleted_downloads_toast">
@ -826,4 +825,7 @@
<string name="share_playlist_with_titles">Kopīgot nosaukumus</string>
<string name="import_settings_vulnerable_format">Importētā eksporta iestatījumi izmanto ievainojamo formātu, kas tika pārtraukts kopš NewPipe 0.27.0 versijas. Pārliecinieties, ka importētie dati ir no uzticama avota, un turpmāk ir vēlams izmantot tikai datus, kas veikti NewPipe 0.27.0 vai jaunākās versijās. Iestatījumu importēšanas atbalsts šajā neaizsargātajā formātā drīzumā tiks pilnībā aizvākts, un tad vecās NewPipe versijas vairs nevarēs importēt iestatījumus, kas veikti jaunajās versijās.</string>
<string name="always_use_exoplayer_set_output_surface_workaround_summary">Šis risinājums problēmas novēršanai atbrīvo un atkārtoti instantiē video kodekus, kad notiek virsmas maiņa, nevis tieši iestatīt virsmu kodekam. ExoPlayer jau izmanto šo risinājumu dažās ierīcēs, kurām ir šī problēma. Šis iestatījums darbosies tikai ierīcēs, kurās uzstādīta operētājsistēma Android 6 un jaunāka.\n\nIespējojot šo iestatījumu, var novērst atskaņošanas kļūdas, pārslēdzot pašreizējo video atskaņotāju vai pārejot uz pilnekrāna režīmu</string>
<string name="tab_bookmarks_short">Atskaņošanas saraksti</string>
<string name="share_playlist_as_youtube_temporary_playlist">Kopīgot kā pagaidu YouTube atskaņošanas sarakstu</string>
<string name="audio_track_type_secondary">sekundārais</string>
</resources>

View File

@ -685,7 +685,6 @@
<item quantity="other">%s нови стримови</item>
</plurals>
<string name="error_report_open_github_notice">Ве молиме, проверете дали веќе има дискусија за проблем како овој. Создадените дупликати ни одземаат од времето, коешто можеме да го посветиме на поправање на проблемот.</string>
<string name="localization_changes_requires_app_restart">Јазикот ќе се смени откако апликацијата ќе биде рестартирана</string>
<string name="enqueue_next_stream">Додај го во редослед следното</string>
<string name="no_one_watching">Нема гледачи</string>
<string name="done">Готово</string>

View File

@ -81,7 +81,6 @@
<string name="new_and_hot">പുതിയതും ചൂടേറിയതും</string>
<string name="top_50">മികച്ച 50</string>
<string name="trending">ട്രെൻഡിങ്ങ്</string>
<string name="localization_changes_requires_app_restart">അപ്ലിക്കേഷൻ പുനരാരംഭിച്ചുകഴിഞ്ഞാൽ ഭാഷ മാറും</string>
<string name="error_unable_to_load_comments">കമെന്റുകൾ ലോഡുചെയ്യാനായില്ല</string>
<string name="import_settings">ക്രമീകരണങ്ങളും ഇമ്പോർട്ടുചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ\?</string>
<string name="override_current_data">ഇത് നിങ്ങളുടെ നിലവിലെ സജ്ജീകരണത്തെ അസാധുവാക്കും.</string>

View File

@ -422,7 +422,6 @@
<item quantity="one">%s lytter</item>
<item quantity="other">%s lyttere</item>
</plurals>
<string name="localization_changes_requires_app_restart">Språket vil endres etter at appen har startet på nytt</string>
<string name="default_kiosk_page_summary">Standard kiosk</string>
<string name="peertube_instance_url_title">PeerTube-instanser</string>
<string name="local">Lokal</string>

View File

@ -416,7 +416,6 @@
<item quantity="one">%s श्रोता</item>
<item quantity="other">%s श्रोताहरु</item>
</plurals>
<string name="localization_changes_requires_app_restart">भाषा परिवर्तन एप पून:सुरु हुदा लागु हुनेछ।</string>
<string name="default_kiosk_page_summary">पूर्वनिर्धारित किओस्क (Kiosk)</string>
<string name="seek_duration_title">छिटो-अगाडि /-पछाडी खोज्न अवधि</string>
<string name="peertube_instance_url_title">PeerTube उदाहरणहरू</string>

View File

@ -486,7 +486,6 @@
<string name="most_liked">Meest leuk gevonden</string>
<string name="recently_added">Recent toegevoegd</string>
<string name="local">Lokaal</string>
<string name="localization_changes_requires_app_restart">De taal zal veranderen zodra de app opnieuw is opgestart</string>
<string name="no_playlist_bookmarked_yet">Geen afspeellijst bladwijzers</string>
<string name="select_a_playlist">Selecteer een afspeellijst</string>
<string name="default_kiosk_page_summary">Standaard kiosk</string>
@ -551,7 +550,7 @@
<string name="notification_action_shuffle">Shuffle</string>
<string name="notification_action_repeat">Herhaal</string>
<string name="notification_actions_at_most_three">Je kan maximaal drie acties selecteren om te tonen in de compacte notificatie!</string>
<string name="notification_actions_summary">Pas elke notificatie actie hieronder aan door er op te tikken. Selecteer tot drie acties die getoond worden in de compacte notificatie door gebruik te maken van de selectie vakjes aan de rechterkant</string>
<string name="notification_actions_summary">Pas elke notificatie actie hieronder aan door er op te tikken. Selecteer tot drie acties die getoond worden in de compacte notificatie door gebruik te maken van de selectie vakjes aan de rechterkant.</string>
<string name="notification_action_4_title">Vijfde actie knop</string>
<string name="notification_action_3_title">Vierde actie knop</string>
<string name="notification_action_2_title">Derde actie knop</string>
@ -580,7 +579,7 @@
\nAls gevolg van het nieuwe YouTube-beleid met video\'s met leeftijdsbeperkingen heeft NewPipe geen toegang tot deze videostreams en kan deze dus niet afspelen.</string>
<string name="show_description_summary">Zet uit om videobeschrijving en extra informatie te verbergen</string>
<string name="show_description_title">Toon beschrijving</string>
<string name="night_theme_title">Nacht Thema</string>
<string name="night_theme_title">Nacht thema</string>
<string name="open_with">Open met</string>
<string name="featured">Featured</string>
<string name="private_content">Deze inhoud is privé, waardoor het niet kan worden gestreamd of gedownload door NewPipe.</string>
@ -628,4 +627,14 @@
<string name="error_report_channel_description">Meldingen om fouten te rapporteren</string>
<string name="processing_may_take_a_moment">Verwerken... Dit kan even duren</string>
<string name="leak_canary_not_available">LeakCanary is niet beschikbaar</string>
<string name="progressive_load_interval_summary">Verander de intervalgrootte voor het laden van progressieve inhoud (momenteel %s). Een lagere waarde kan het initiële laden versnellen</string>
<string name="tab_bookmarks_short">Afspeellijsten</string>
<string name="notification_actions_summary_android13">Bewerk elke meldingsactie hieronder door erop te tikken. De eerste drie acties (afspelen/pauzeren, vorige en volgende) zijn ingesteld door het systeem en kunnen niet worden aangepast.</string>
<string name="progressive_load_interval_title">Intervalgrootte voor afspelen laden</string>
<string name="yes">Ja</string>
<string name="no">Nee</string>
<string name="ignore_hardware_media_buttons_summary">Handig, bijvoorbeeld, als je een hoofdtelefoon gebruikte met kapotte fysieke knoppen</string>
<string name="prefer_descriptive_audio_title">Verkies beschrijvende audio</string>
<string name="prefer_original_audio_title">Verkies originele audio</string>
<string name="prefer_original_audio_summary">Selecteer het oorspronkelijke audiospoor, ongeacht de taal</string>
</resources>

View File

@ -59,7 +59,7 @@
<string name="video">Video</string>
<string name="audio">Geluid</string>
<string name="retry">Opnieuw proberen</string>
<string name="main_bg_subtitle">Druk op het vergrootglas om te beginnen.</string>
<string name="main_bg_subtitle">Tik op het vergrootglas om te beginnen.</string>
<string name="duration_live">Live</string>
<string name="downloads">Downloads</string>
<string name="downloads_title">Downloads</string>
@ -68,7 +68,7 @@
<string name="info_labels">Wat:\\nVerzoek:\\nInhoudstaal:\\nInhoudsland:\\nApp-taal:\\nDienst:\\nGMT-tijd:\\nPakket:\\nVersie:\\nVersie van besturingssysteem:</string>
<string name="start">Starten</string>
<string name="pause">Pauzeren</string>
<string name="delete">Verwijderen</string>
<string name="delete">Verwijderen</string>
<string name="checksum">Controlesom</string>
<string name="ok">Oké</string>
<string name="msg_name">Bestandsnaam</string>
@ -420,7 +420,6 @@
<item quantity="one">%s luisteraar</item>
<item quantity="other">%s luisteraars</item>
</plurals>
<string name="localization_changes_requires_app_restart">De taal zal veranderen zodra de app opnieuw is opgestart</string>
<string name="default_kiosk_page_summary">Standaard kiosk</string>
<string name="seek_duration_title">Duur voor-/achteruit spoelen</string>
<string name="peertube_instance_url_title">PeerTube-instanties</string>
@ -823,4 +822,9 @@
<string name="reset_settings_title">Instellingen resetten</string>
<string name="import_settings_vulnerable_format">De instellingen in de export die wordt geïmporteerd, gebruiken een kwetsbaar formaat dat verouderd is sinds NewPipe 0.27.0. Zorg ervoor dat de export die wordt geïmporteerd afkomstig is van een vertrouwde bron, en geef er de voorkeur aan om in de toekomst alleen exporten te gebruiken die zijn verkregen van NewPipe 0.27.0 of nieuwer. Ondersteuning voor het importeren van instellingen in dit kwetsbare formaat zal binnenkort volledig worden verwijderd, en oude versies van NewPipe zullen dan geen export­instellingen meer uit nieuwe versies kunnen importeren.</string>
<string name="audio_track_type_secondary">secundair</string>
<string name="share_playlist_as_youtube_temporary_playlist">Delen als tijdelijke YouTube-afspeel­lijst</string>
<string name="tab_bookmarks_short">Afspeel­lijsten</string>
<string name="select_a_feed_group">Selecteer een feedgroep</string>
<string name="feed_group_page_summary">Kanaalgroep­pagina</string>
<string name="no_feed_group_created_yet">Nog geen feedgroep geselecteerd</string>
</resources>

View File

@ -408,7 +408,6 @@
<string name="could_not_import_all_files">ߖߊ߲߬ߕߏ߬ߒߘߐ: ߞߐߕߐ߮ ߟߎ߬ ߓߍ߯ ߕߍ߫ ߛߋ߫ ߟߊߛߣߍ߫ ߟߊ߫.</string>
<string name="select_a_playlist">ߕߏߟߏ߲߫ ߛߙߍߘߍ ߘߏ߫ ߛߎߥߊ߲ߘߌ߫</string>
<string name="no_playlist_bookmarked_yet">ߕߏߟߏ߲߫ ߛߙߍߘߍ߫ ߟߊߞߎ߲߬ߘߎ߬ߣߍ߲߬ ߕߍ߫ ߝߟߐ߫</string>
<string name="localization_changes_requires_app_restart">ߞߊ߲ ߘߌߣߊ߬ ߡߊߝߊ߬ߟߋ߲߬ ߣߌ߫ ߟߥߊߟߌߟߊ߲ ߣߊ߬ ߘߊ߫ ߘߐߟߥߌ߬</string>
<string name="trending">ߛߊ߲ߞߊߥߟߌ ߟߎ߬</string>
<string name="error_unable_to_load_comments">ߞߊ߲߬ߞߎߡߊ ߟߎ߬ ߕߍ߫ ߛߋ߫ ߟߊ߫ ߖߛߐ߫ ߟߊ߫</string>
<string name="local">ߘߌ߲߬ߞߌ߬ߙߊ߬ߡߊ</string>

View File

@ -62,7 +62,6 @@
<string name="watch_history_deleted">ଇତିହାସ ବିଲୋପ ଦେଖନ୍ତୁ</string>
<string name="watch_history_states_deleted">ପ୍ଲେକ୍ ପୋଜିସନ୍ ଡିଲିଟ୍ ହୋଇଛି</string>
<string name="search_history_deleted">ସନ୍ଧାନ ଇତିହାସ ବିଲୋପ ହେଲା</string>
<string name="localization_changes_requires_app_restart">ଆପ୍ ପୁନଃଆରମ୍ଭ ହେବା ପରେ ଭାଷା ପରିବର୍ତ୍ତନ ହେବ</string>
<string name="set_as_playlist_thumbnail">ପ୍ଲେଲିଷ୍ଟ ଥମ୍ବନେଲ ଭାବରେ ସେଟ୍ କରନ୍ତୁ</string>
<string name="overwrite_failed">ଫାଇଲ୍ କୁ ନବଲିଖନ କରିପାରିବ ନାହିଁ</string>
<string name="error_file_creation">ଫାଇଲ୍ ସୃଷ୍ଟି ହୋଇପାରିବ ନାହିଁ</string>

View File

@ -159,7 +159,7 @@
<string name="no_subscribers">ਕੋਈ ਸਬਸਕ੍ਰਾਈਬਰ ਨਹੀਂ</string>
<plurals name="subscribers">
<item quantity="one">%s ਸਬਸਕ੍ਰਾਈਬਰ</item>
<item quantity="other">%s ਸਬਸਕ੍ਰਾਈਬਰ</item>
<item quantity="other">%s ਸਬਸਕ੍ਰਾਈਬਰ</item>
</plurals>
<string name="no_views">ਕੋਈ ਵਿਊ ਨਹੀਂ</string>
<plurals name="views">
@ -540,7 +540,6 @@
<string name="most_liked">ਵਧੇਰੇ ਪਸੰਦ ਕੀਤੇ ਗਏ</string>
<string name="recently_added">ਹਾਲ ਹੀ ਵਿੱਚ ਸ਼ਾਮਿਲ</string>
<string name="local">ਸਥਾਨਕ</string>
<string name="localization_changes_requires_app_restart">ਭਾਸ਼ਾ ਐਪ ਨੂੰ ਦੋਬਾਰਾ ਚਲਾਉਣ \'ਤੇ ਬਦਲੇਗੀ</string>
<string name="select_a_playlist">ਪਲੇਲਿਸਟ ਚੁਣੋ</string>
<string name="done">ਹੋ ਗਿਆ</string>
<string name="recaptcha_solve">ਹੱਲ ਕਰੋ</string>
@ -613,8 +612,8 @@
<string name="on">ਆਨ</string>
<string name="enumeration_comma">,</string>
<plurals name="download_finished_notification">
<item quantity="one">ਡਾਉਨਲੋਡ ਮੁਕੰਮਲ</item>
<item quantity="other">%s ਡਾਉਨਲੋਡ ਮੁਕੰਮਲ</item>
<item quantity="one">%s ਡਾਉਨਲੋਡ ਮੁਕੰਮਲ</item>
<item quantity="other">%s ਡਾਊਨਲੋਡਾਂ ਮੁਕੰਮਲ</item>
</plurals>
<string name="off">ਆਫ</string>
<string name="enqueue_next_stream">ਕਤਾਰ ਵਿੱਚ ਅੱਗੇ ਸ਼ਾਮਿਲ ਕਰੋ</string>
@ -823,4 +822,6 @@
<string name="no">ਨਹੀਂ</string>
<string name="import_settings_vulnerable_format">ਇੰਪੋਰਟ ਕੀਤੇ ਜਾ ਰਹੇ ਐਕਸਪੋਰਟ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਇੱਕ ਕਮਜ਼ੋਰ ਫਾਰਮੈਟ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ ਜੋ ਨਿਊਪਾਈਪ 0.27.0 ਤੋਂ ਬਰਤਰਫ਼ ਕੀਤਾ ਗਿਆ ਸੀ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਇੰਪੋਰਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਨਿਰਯਾਤ ਇੱਕ ਭਰੋਸੇਯੋਗ ਸਰੋਤ ਤੋਂ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਨਿਊਪਾਈਪ 0.27.0 ਜਾਂ ਇਸਤੋਂ ਨਵੇਂ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਐਕਸਪੋਰਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨੂੰ ਤਰਜੀਹ ਦਿਓ। ਇਸ ਕਮਜ਼ੋਰ ਫਾਰਮੈਟ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਨੂੰ ਆਯਾਤ ਕਰਨ ਲਈ ਸਮਰਥਨ ਜਲਦੀ ਹੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ ਅਤੇ ਫਿਰ ਨਿਊਪਾਈਪ ਦੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣ ਹੁਣ ਨਵੇਂ ਸੰਸਕਰਣਾਂ ਤੋਂ ਐਕਸਪੋਰਟ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਣਗੇ।</string>
<string name="audio_track_type_secondary">ਸੈਕੰਡਰੀ</string>
<string name="share_playlist_as_youtube_temporary_playlist">ਟੈਂਪਰੇਰੀ ਯੂਟਿਊਬ ਪਲੇਲਿਸਟ ਵੱਜੋਂ ਸ਼ੇਅਰ ਕਰੋ</string>
<string name="tab_bookmarks_short">ਪਲੇਲਿਸਟਾਂ</string>
</resources>

View File

@ -432,7 +432,6 @@
<item quantity="few">%s słuchaczy</item>
<item quantity="many">%s słuchaczy</item>
</plurals>
<string name="localization_changes_requires_app_restart">Język zmieni się po ponownym uruchomieniu aplikacji</string>
<string name="seek_duration_title">Wielkość skoku przy przewijaniu</string>
<string name="peertube_instance_url_title">Serwery PeerTube</string>
<string name="peertube_instance_url_summary">Wybierz swoje ulubione serwery PeerTube</string>
@ -846,4 +845,12 @@
\nCzy chcesz to włączyć?</string>
<string name="import_settings_vulnerable_format">Ustawienia w importowanym eksporcie korzystają z podatnego na ataki formatu, który został wycofany od wersji NewPipe 0.27.0. Upewnij się, że importowany eksport pochodzi z zaufanego źródła, i w przyszłości używaj wyłącznie eksportów uzyskanych z NewPipe 0.27.0 lub nowszego. Obsługa importowania ustawień w tym podatnym formacie zostanie wkrótce całkowicie usunięta, a wtedy starsze wersje NewPipe nie będą już mogły importować ustawień z eksportu z nowych wersji.</string>
<string name="audio_track_type_secondary">dodatkowa</string>
<string name="share_playlist_as_youtube_temporary_playlist">Udostępnij jako tymczasową playlistę YouTube</string>
<string name="tab_bookmarks_short">Playlisty</string>
<string name="select_a_feed_group">Wybierz grupę kanałów</string>
<string name="feed_group_page_summary">Strona grupy kanałów</string>
<string name="no_feed_group_created_yet">Nie utworzono jeszcze grupy kanałów</string>
<string name="search_with_service_name">Szukaj %1$s</string>
<string name="search_with_service_name_and_filter">Szukaj %1$s (%2$s)</string>
<string name="channel_tab_likes">Polubienia</string>
</resources>

View File

@ -76,7 +76,7 @@
<string name="parsing_error">O site não pôde ser analisado</string>
<string name="play_audio">Áudio</string>
<string name="play_with_kodi_title">Reproduzir no Kodi</string>
<string name="search">Pesquisar</string>
<string name="search">Buscar</string>
<string name="show_play_with_kodi_summary">Mostrar opção para reproduzir o vídeo no Kodi</string>
<string name="use_external_audio_player_title">Usar player de áudio externo</string>
<string name="use_external_video_player_title">Usar player de vídeo externo</string>
@ -101,7 +101,7 @@
<string name="popup_remember_size_pos_title">Lembrar propriedades do Popup</string>
<string name="popup_remember_size_pos_summary">Lembrar último tamanho e posição do Popup</string>
<string name="use_external_video_player_summary">Remove áudio em algumas resoluções</string>
<string name="show_search_suggestions_title">Sugestões de pesquisa</string>
<string name="show_search_suggestions_title">Sugestões de busca</string>
<string name="show_search_suggestions_summary">Escolha as sugestões a serem exibidas enquanto estiver buscando</string>
<string name="best_resolution">Melhor resolução</string>
<string name="title_licenses">Licenças de Terceiros</string>
@ -111,7 +111,7 @@
<string name="view_on_github">Ver no GitHub</string>
<string name="app_license_title">Licença do NewPipe</string>
<string name="contribution_encouragement">Se você tem ideias de: tradução, mudança no design, limpeza de código ou grandes mudanças de código — ajuda é sempre bem-vinda. Quanto mais se faz, melhor fica!</string>
<string name="read_full_license">Ler licença</string>
<string name="read_full_license">Ver licença</string>
<string name="contribution_title">Colaborar</string>
<string name="copyright" formatted="true">© %1$s %2$s protegido pela licença %3$s</string>
<string name="title_activity_about">Sobre o NewPipe</string>
@ -129,9 +129,9 @@
<string name="tab_subscriptions">Inscrições</string>
<string name="fragment_feed_title">Novidades</string>
<string name="resume_on_audio_focus_gain_title">Continuar reprodução</string>
<string name="resume_on_audio_focus_gain_summary">Continua vídeo após interrupções (ex: ligações)</string>
<string name="enable_search_history_title">Histórico de pesquisa</string>
<string name="enable_search_history_summary">Armazena o histórico de pesquisa localmente</string>
<string name="resume_on_audio_focus_gain_summary">Continuar a reprodução após interrupções (por exemplo, chamadas telefônicas)</string>
<string name="enable_search_history_title">Histórico de busca</string>
<string name="enable_search_history_summary">Armazena o histórico de busca localmente</string>
<string name="enable_watch_history_title">Histórico de exibição</string>
<string name="enable_watch_history_summary">Mantenha o controle dos vídeos assistidos</string>
<string name="title_activity_history">Histórico</string>
@ -163,7 +163,7 @@
<string name="settings_category_player_title">Player</string>
<string name="empty_list_subtitle">Nada aqui além de grilos</string>
<string name="delete_item_search_history">Deseja excluir este item do histórico de busca\?</string>
<string name="main_page_content">Conteúdo da página inicial</string>
<string name="main_page_content">Conteúdo da tela inicial</string>
<string name="blank_page_summary">Página em branco</string>
<string name="kiosk_page_summary">Página do Kiosk</string>
<string name="channel_page_summary">Página do canal</string>
@ -186,7 +186,7 @@
<string name="unknown_content">[Desconhecido]</string>
<string name="start_here_on_background">Reproduzir em segundo plano</string>
<string name="start_here_on_popup">Reproduzir em um Popup</string>
<string name="donation_title">Doar</string>
<string name="donation_title">Fazer doação</string>
<string name="donation_encouragement">O NewPipe é desenvolvido por voluntários que usam seu tempo livre para trazer a você a melhor experiência de usuário. Retribua e ajude os desenvolvedores a tornarem o NewPipe ainda melhor enquanto eles desfrutam de uma xícara de café.</string>
<string name="give_back">Retribuir</string>
<string name="website_title">Site oficial</string>
@ -208,7 +208,7 @@
<string name="preferred_player_fetcher_notification_message">Carregando conteúdo solicitado</string>
<string name="import_data_title">Importar base de dados</string>
<string name="export_data_title">Exportar base de dados</string>
<string name="import_data_summary">Substitui seu histórico atual, inscrições, playlists e (opcionalmente) configurações</string>
<string name="import_data_summary">Substitui seu histórico atual, inscrições, playlists e configurações (opcional)</string>
<string name="export_data_summary">Exporta histórico, inscrições, playlists e configurações</string>
<string name="export_complete_toast">Exportado</string>
<string name="import_complete_toast">Importado</string>
@ -291,7 +291,7 @@
<string name="playback_tempo">Velocidade</string>
<string name="playback_pitch">Afinação</string>
<string name="unhook_checkbox">Desvincular (pode causar distorção)</string>
<string name="preferred_open_action_settings_title">Ação de \'abrir\' preferida</string>
<string name="preferred_open_action_settings_title">Ação preferida ao tocar em \'Abrir\'</string>
<string name="preferred_open_action_settings_summary">Ação padrão ao abrir conteúdo — %s</string>
<string name="no_streams_available_download">Nenhum vídeo disponível para download</string>
<string name="drawer_open">Abrir gaveta</string>
@ -302,10 +302,10 @@
<string name="clear_views_history_summary">Remove o histórico de vídeos assistidos e as posições de reprodução</string>
<string name="delete_view_history_alert">Remover todo o histórico de exibição?</string>
<string name="watch_history_deleted">Histórico de exibição removido</string>
<string name="clear_search_history_title">Remover histórico de pesquisas</string>
<string name="clear_search_history_summary">Remove o histórico de pesquisas</string>
<string name="delete_search_history_alert">Remover todo o histórico de pesquisas?</string>
<string name="search_history_deleted">Histórico de pesquisa removido</string>
<string name="clear_search_history_title">Remover histórico de buscas</string>
<string name="clear_search_history_summary">Remove o histórico de buscas</string>
<string name="delete_search_history_alert">Remover todo o histórico de buscas?</string>
<string name="search_history_deleted">Histórico de busca removido</string>
<string name="one_item_deleted">1 item excluído.</string>
<string name="app_license">NewPipe é um copyleft de software livre: Você pode usar, estudar, compartilhar e melhorar a seu gosto. Especificamente você pode redistribuir e/ou modificá-lo sob os termos da GNU General Public License como publicado pela Fundação de Software Livre, na versão 3 da Licença, ou (a seu critério) qualquer versão posterior.</string>
<string name="import_settings">Você também quer importar as configurações?</string>
@ -341,7 +341,7 @@
<string name="app_update_notification_channel_description">Notificações para novas versões do NewPipe</string>
<string name="download_to_sdcard_error_title">Armazenamento externo indisponível</string>
<string name="download_to_sdcard_error_message">Não é possível baixar para o cartão SD externo. Redefinir o local da pasta de download\?</string>
<string name="saved_tabs_invalid_json">Não foi possível ler as guias salvas, portanto, usamos as guias padrão</string>
<string name="saved_tabs_invalid_json">Não foi possível carregar as guias salvas, portanto, usamos as guias padrão</string>
<string name="restore_defaults">Restaurar configurações</string>
<string name="restore_defaults_confirmation">Deseja restaurar os padrões?</string>
<string name="subscribers_count_not_available">Número de inscritos indisponível</string>
@ -428,7 +428,6 @@
<item quantity="many">%s ouvintes</item>
<item quantity="other">%s ouvintes</item>
</plurals>
<string name="localization_changes_requires_app_restart">O idioma será alterado após reiniciar o aplicativo</string>
<string name="seek_duration_title">Duração de avanço/retrocesso rápido</string>
<string name="peertube_instance_url_title">Instâncias PeerTube</string>
<string name="peertube_instance_url_summary">Selecione suas instâncias favoritas do PeerTube</string>
@ -554,7 +553,7 @@
<string name="notification_action_nothing">Nada</string>
<string name="notification_action_repeat">Repetir</string>
<string name="notification_actions_at_most_three">Você pode selecionar até no máximo três botões para mostrar na notificação compacta!</string>
<string name="notification_actions_summary">Edite os botões de ação de notificação abaixo tocando em cada um. Selecione até três deles para serem mostrados na notificação compacta usando as caixas de seleção à direita.</string>
<string name="notification_actions_summary">Edite os botões de ação da notificação abaixo tocando em cada um. Selecione até três deles para serem mostrados na notificação compacta usando as caixas de seleção à direita.</string>
<string name="notification_action_4_title">Quinto botão de ação</string>
<string name="notification_action_3_title">Quarto botão de ação</string>
<string name="notification_action_2_title">Terceiro botão de ação</string>
@ -577,7 +576,7 @@
<string name="msg_calculating_hash">Calculando hash</string>
<string name="hash_channel_description">Notificações sobre o progresso do hashing de vídeo</string>
<string name="hash_channel_name">Notificar hash de vídeo</string>
<string name="show_meta_info_summary">Desative para ocultar as caixas de informações de metadados com informações adicionais sobre o criador, conteúdo da transmissão ou uma solicitação de pesquisa</string>
<string name="show_meta_info_summary">Desative para ocultar as caixas de informações de metadados com informações adicionais sobre o autor, conteúdo da transmissão ou uma solicitação de busca</string>
<string name="show_meta_info_title">Mostrar informação de metadados</string>
<string name="recent">Recente</string>
<string name="chapters">Capítulos</string>
@ -638,9 +637,9 @@
<string name="on">Ativado</string>
<string name="tablet_mode_title">Modo tablet</string>
<string name="dont_show">Não mostrar</string>
<string name="low_quality_smaller">Baixa qualidade (pior)</string>
<string name="low_quality_smaller">Baixa qualidade (menor)</string>
<string name="high_quality_larger">Alta qualidade (melhor)</string>
<string name="seekbar_preview_thumbnail_title">Pré visualização da miniatura da barra de busca</string>
<string name="seekbar_preview_thumbnail_title">Pré visualização da miniatura na barra de busca</string>
<string name="comments_are_disabled">Os comentários estão desabilitados</string>
<string name="mark_as_watched">Marcar como assistido</string>
<string name="detail_heart_img_view_description">Curtido pelo criador</string>
@ -658,7 +657,7 @@
<string name="enqueue_next_stream">Enfileira a próxima</string>
<string name="main_page_content_swipe_remove">Deslize os itens para remove-los</string>
<string name="start_main_player_fullscreen_summary">Não inicie os vídeos no mini player, mas vá diretamente para o modo de tela cheia, se a rotação automática estiver bloqueada. Você ainda pode acessar o mini player saindo da tela cheia</string>
<string name="start_main_player_fullscreen_title">Iniciar player principal em tela cheia</string>
<string name="start_main_player_fullscreen_title">Iniciar reprodução principal em tela cheia</string>
<string name="remote_search_suggestions">Sugestões de busca remotas</string>
<string name="local_search_suggestions">Sugestões de busca locais</string>
<string name="processing_may_take_a_moment">Processando… Pode demorar um pouco</string>
@ -715,7 +714,7 @@
<string name="unknown_format">Formato desconhecido</string>
<string name="unknown_quality">Qualidade desconhecida</string>
<string name="progressive_load_interval_title">Tamanho do intervalo de carregamento da reprodução</string>
<string name="faq">Visualizar no site</string>
<string name="faq">Ver no site</string>
<string name="faq_description">Se você está com problemas ao usar o aplicativo, confira estas respostas para perguntas comuns!</string>
<string name="faq_title">Perguntas frequentes</string>
<string name="sort">Classificar</string>
@ -729,7 +728,7 @@
<string name="msg_failed_to_copy">Falha ao copiar para a área de transferência</string>
<string name="playlist_add_stream_success_duplicate">Duplicata adicionada %d vez(es)</string>
<string name="duplicate_in_playlist">As playlists em cinza já contêm este item.</string>
<string name="ignore_hardware_media_buttons_title">Ignorar eventos de botão de mídia de hardware</string>
<string name="ignore_hardware_media_buttons_title">Ignorar eventos de botões físicos (hardware)</string>
<string name="ignore_hardware_media_buttons_summary">Útil, por exemplo, se você estiver usando um fone de ouvido com botões físicos quebrados</string>
<string name="remove_duplicates">Remover duplicados</string>
<string name="remove_duplicates_title">Remover duplicados\?</string>
@ -838,4 +837,8 @@
\nTem certeza de que deseja continuar?</string>
<string name="import_settings_vulnerable_format">As configurações na exportação que está sendo importada usam um formato vulnerável que foi descontinuado desde o NewPipe 0.27.0. Certifique-se de que a exportação que está sendo importada seja de uma fonte confiável e prefira usar apenas exportações obtidas do NewPipe 0.27.0 ou mais recente no futuro. O suporte para importação de configurações neste formato vulnerável será completamente removido em breve e as versões antigas do NewPipe não poderão mais importar configurações de exportações de novas versões.</string>
<string name="audio_track_type_secondary">secundário</string>
<string name="tab_bookmarks_short">Playlists</string>
<string name="select_a_feed_group">Selecione um grupo de feeds</string>
<string name="no_feed_group_created_yet">Nenhum grupo de feeds criado ainda</string>
<string name="feed_group_page_summary">Página do grupo do canal</string>
</resources>

View File

@ -527,7 +527,6 @@
<string name="caption_setting_description">Modificar escala de legendas e estilo de fundo. Tem que reiniciar a aplicação para aplicar as alterações</string>
<string name="permission_denied">Ação recusada pelo sistema</string>
<string name="songs">Músicas</string>
<string name="localization_changes_requires_app_restart">O idioma será alterado assim que reiniciar a app</string>
<string name="peertube_instance_add_title">Adicionar instância</string>
<string name="tracks">Faixas</string>
<string name="play_with_kodi_title">Reproduzir no Kodi</string>
@ -837,4 +836,9 @@
<string name="error_insufficient_storage">Não há espaço suficiente no aparelho</string>
<string name="import_settings_vulnerable_format">As configurações na exportação a serem importadas usam um formato vulnerável depreciado desde NewPipe 0.27.0. Certifique-se de que a exportação que é importada é de uma fonte confiável e prefira usar apenas as exportações obtidas do NewPipe 0.27.0 ou mais recentes no futuro. O suporte para importar configurações neste formato vulnerável será removido em breve completamente e, em seguida, versões antigas do NewPipe não serão capazes de importar configurações de exportações de novas versões.</string>
<string name="audio_track_type_secondary">secundário</string>
<string name="share_playlist_as_youtube_temporary_playlist">Partilhar como lista de reprodução temporária do YouTube</string>
<string name="tab_bookmarks_short">Listas de reprodução</string>
<string name="select_a_feed_group">Selecione um grupo de feeds</string>
<string name="no_feed_group_created_yet">Ainda nenhum grupo de feeds criado</string>
<string name="feed_group_page_summary">Página do grupo do canal</string>
</resources>

View File

@ -281,7 +281,7 @@
<string name="clear_views_history_title">Limpar histórico de visualizações</string>
<string name="auto_queue_summary">Continuar (sem repetição) a fila de reprodução anexando um vídeo relacionado</string>
<string name="show_hold_to_append_title">Mostrar dica \"Toque longo para colocar na fila\"</string>
<string name="show_hold_to_append_summary">Mostrar dica ao premir em segundo plano ou no botão \"Detalhes\" da janela popup:</string>
<string name="show_hold_to_append_summary">Mostrar dica ao premir em segundo plano ou no botão \"Detalhes:\" da janela popup</string>
<string name="channels">Canais</string>
<string name="playlists">Listas de reprodução</string>
<string name="tracks">Faixas</string>
@ -428,7 +428,6 @@
<item quantity="many">%s ouvintes</item>
<item quantity="other">%s ouvintes</item>
</plurals>
<string name="localization_changes_requires_app_restart">O idioma será alterado assim que reiniciar a aplicação</string>
<string name="seek_duration_title">Duração de avanço/recuo rápido</string>
<string name="peertube_instance_url_title">Instâncias PeerTube</string>
<string name="peertube_instance_url_summary">Defina as suas instâncias PeerTube preferidas</string>
@ -652,7 +651,7 @@
<item quantity="other">%1$s descargas eliminadas</item>
</plurals>
<plurals name="download_finished_notification">
<item quantity="one">Descarga concluída</item>
<item quantity="one">%s descarga concluída</item>
<item quantity="many">%s descargas concluídas</item>
<item quantity="other">%s descargas concluídas</item>
</plurals>
@ -837,4 +836,9 @@
\nDeseja ativar essa opção?</string>
<string name="import_settings_vulnerable_format">As configurações na exportação a serem importadas usam um formato vulnerável depreciado desde NewPipe 0.27.0. Certifique-se de que a exportação que é importada é de uma fonte confiável e prefira usar apenas as exportações obtidas do NewPipe 0.27.0 ou mais recentes no futuro. O suporte para importar configurações neste formato vulnerável será removido em breve completamente e, em seguida, versões antigas do NewPipe não serão capazes de importar configurações de exportações de novas versões.</string>
<string name="audio_track_type_secondary">secundário</string>
<string name="share_playlist_as_youtube_temporary_playlist">Partilhar como lista de reprodução temporária do YouTube</string>
<string name="tab_bookmarks_short">Listas de reprodução</string>
<string name="select_a_feed_group">Selecione um grupo de feeds</string>
<string name="no_feed_group_created_yet">Ainda nenhum grupo de feeds criado</string>
<string name="feed_group_page_summary">Página do grupo do canal</string>
</resources>

View File

@ -559,7 +559,6 @@
<string name="most_liked">Cele mai apreciate</string>
<string name="recently_added">Adăugate recent</string>
<string name="local">Local</string>
<string name="localization_changes_requires_app_restart">Limba se va schimba odată ce aplicația este repornită</string>
<string name="no_playlist_bookmarked_yet">Nu există încă marcaje în playlist</string>
<string name="select_a_playlist">Selectați un playlist</string>
<string name="default_kiosk_page_summary">Chioșc implicit</string>
@ -837,4 +836,7 @@
\nSigur doriți să continuați?</string>
<string name="import_settings_vulnerable_format">Setările din exportul importat folosesc un format vulnerabil care a fost depreciat de la NewPipe 0.27.0. Asigurați-vă că exportul care este importat este dintr-o sursă de încredere și preferați să utilizați numai exporturi obținute din NewPipe 0.27.0 sau mai nou în viitor. Suportul pentru importul setărilor în acest format vulnerabil va fi în curând eliminat complet, iar versiunile vechi ale NewPipe nu vor mai putea importa setările exporturilor din versiunile noi.</string>
<string name="audio_track_type_secondary">secundar</string>
<string name="share_playlist_as_youtube_temporary_playlist">Distribuie ca listă de redare temporară YouTube</string>
<string name="tab_bookmarks_short">Liste de redare</string>
<string name="feed_group_page_summary">Pagina grupului de canale</string>
</resources>

View File

@ -221,7 +221,7 @@
<string name="preferred_player_fetcher_notification_message">Загрузка запрошенного контента</string>
<string name="controls_download_desc">Скачать файл трансляции</string>
<string name="show_info">Показать сведения</string>
<string name="tab_bookmarks">Плейлисты</string>
<string name="tab_bookmarks">Плейлисты в закладках</string>
<string name="controls_add_to_playlist_title">В плейлист</string>
<string name="use_inexact_seek_title">Быстрый поиск позиции</string>
<string name="use_inexact_seek_summary">Выполняется быстрее, но менее точно. Не работает для перемотки на 5, 15 или 25 секунд</string>
@ -434,7 +434,6 @@
<item quantity="few">%s слушателя</item>
<item quantity="many">%s слушателей</item>
</plurals>
<string name="localization_changes_requires_app_restart">Язык будет изменён после перезапуска</string>
<string name="seek_duration_title">Шаг перемотки</string>
<string name="peertube_instance_url_title">Серверы PeerTube</string>
<string name="peertube_instance_url_summary">Выберите предпочтительные серверы</string>
@ -842,4 +841,9 @@
\nВы уверены, что хотите продолжить?</string>
<string name="import_settings_vulnerable_format">Настройки в импортируемом экспорте используют уязвимый формат, который устарел с версии NewPipe 0.27.0. Убедитесь, что импортируемый экспорт получен из надёжного источника, и в будущем предпочтительнее использовать только экспорт, полученный из NewPipe 0.27.0 или новее. Поддержка импорта настроек в этом уязвимом формате скоро будет полностью удалена, и тогда старые версии NewPipe больше не смогут импортировать настройки из экспорта из новых версий.</string>
<string name="audio_track_type_secondary">вторичный</string>
<string name="share_playlist_as_youtube_temporary_playlist">Поделиться как временным плейлистом YouTube</string>
<string name="tab_bookmarks_short">Плейлисты</string>
<string name="feed_group_page_summary">Страница группы каналов</string>
<string name="select_a_feed_group">Выберите группу кормов</string>
<string name="no_feed_group_created_yet">Группа кормов еще не создана</string>
</resources>

View File

@ -423,7 +423,6 @@
<item quantity="one">%sんかいんがちょうしゅちゅう</item>
<item quantity="other">%sんかいんがちょうしゅちゅう</item>
</plurals>
<string name="localization_changes_requires_app_restart">アプリさいきちゃーしーねー、ぎんぐがへいるかんさりやびーん</string>
<string name="seek_duration_title">こうすくはやうくい/まきむどぅしかんかく</string>
<string name="peertube_instance_url_title">PeerTubeインスタンス</string>
<string name="peertube_instance_url_summary">PeerTubeインスタンスさんたくすん</string>

View File

@ -519,7 +519,6 @@
<string name="select_a_playlist">ᱢᱤᱫ ᱯᱷᱟᱤᱞᱤᱥᱴ ᱵᱟᱪᱷᱟᱣ ᱢᱮ</string>
<string name="import_complete_toast">ᱤᱢᱯᱳᱨᱴ</string>
<string name="no_playlist_bookmarked_yet">ᱱᱤᱛ ᱦᱟᱹᱵᱤᱡ playlist bookmarks ᱵᱟᱹᱱᱩᱜᱼᱟ</string>
<string name="localization_changes_requires_app_restart">ᱮᱯ ᱮᱦᱚᱵ ᱞᱮᱠᱷᱟᱱ ᱯᱟᱹᱨᱥᱤ ᱵᱚᱫᱚᱞᱚᱜ-ᱟ</string>
<string name="export_complete_toast">ᱮᱥᱯᱟᱨᱴ ᱟᱠᱟᱱᱟ</string>
<string name="trending">ᱴᱨᱮᱱᱰᱤᱝ</string>
<string name="play_queue_audio_settings">ᱚᱰᱤᱭᱳ ᱥᱮᱴᱤᱝ</string>

View File

@ -66,7 +66,6 @@
<string name="new_and_hot">Noos e Populares</string>
<string name="top_50">Sos mègius 50</string>
<string name="trending">Tendèntzias</string>
<string name="localization_changes_requires_app_restart">Sa limba at a mudare a pustis chi as a torrare a allùghere s\'aplicatzione</string>
<string name="error_unable_to_load_comments">Carrigamentu de sos cummentos fallidu</string>
<string name="import_settings">Cheres fintzas importare sas impostatziones\?</string>
<string name="override_current_data">Custu at a subraiscrìere sas impostatziones tuas de como.</string>
@ -822,4 +821,7 @@
\n
\nSes seguru de bòlere sighire?</string>
<string name="import_settings_vulnerable_format">Sas impostatziones in s\'esportatzione chi benit importada impreant unu formadu vulneràbile chi est disusadu dae sa versione 0.27.0 de NewPipe. Assegura·ti chi s\'esportatzione importada bèngiat dae una fonte fidada, e preferi a impreare petzi esportatziones otentas dae NewPipe 0.27.0 o prus nou, in su benidore. Su suportu a s\'importatzione de impostatziones in custu formadu vulneràbile at a èssere luego bogadu de su totu, e dae cussu momentu sas versiones de NewPipe prus betzas no ant a èssere prus in gradu de importare impostatziones pro mèdiu de esportatziones de versiones prus noas.</string>
<string name="tab_bookmarks_short">Iscalitas</string>
<string name="share_playlist_as_youtube_temporary_playlist">Cumpartzi comente un\'iscalita temporànea de YouTube</string>
<string name="audio_track_type_secondary">segundàriu</string>
</resources>

View File

@ -428,7 +428,6 @@
<item quantity="few">%s poslucháči</item>
<item quantity="other">%s poslucháčov</item>
</plurals>
<string name="localization_changes_requires_app_restart">Zmena jazyka sa prejaví po reštarte aplikácie</string>
<string name="seek_duration_title">Dĺžka rýchleho pretáčania</string>
<string name="peertube_instance_url_title">Inštancie PeerTube</string>
<string name="peertube_instance_url_summary">Vyberte si svoje obľúbené inštancie PeerTube</string>
@ -837,4 +836,12 @@
\nChcete to povoliť?</string>
<string name="import_settings_vulnerable_format">Nastavenia v importovanom exporte používajú zraniteľný formát, ktorý bol od verzie NewPipe 0.27.0 zrušený. Uistite sa, že importovaný export pochádza z dôveryhodného zdroja, a v budúcnosti radšej používajte len exporty získané z verzie NewPipe 0.27.0 alebo novšej. Podpora importu nastavení v tomto zraniteľnom formáte bude čoskoro úplne odstránená a potom už staré verzie programu NewPipe nebudú môcť importovať nastavenia exportov z nových verzií.</string>
<string name="audio_track_type_secondary">sekundárny</string>
<string name="share_playlist_as_youtube_temporary_playlist">Zdieľať ako dočasný playlist YouTube</string>
<string name="tab_bookmarks_short">Playlisty</string>
<string name="select_a_feed_group">Vybrať skupinu kanálov</string>
<string name="no_feed_group_created_yet">Skupina kanálov zatiaľ nie je vytvorená</string>
<string name="feed_group_page_summary">Stránka skupiny kanálov</string>
<string name="search_with_service_name_and_filter">Hľadať %1$s (%2$s)</string>
<string name="search_with_service_name">Hľadať %1$s</string>
<string name="channel_tab_likes">Páči sa</string>
</resources>

View File

@ -253,7 +253,6 @@
<string name="most_liked">Najbolj všečkan</string>
<string name="recently_added">Dodano nedolgo nazaj</string>
<string name="local">Lokalno</string>
<string name="localization_changes_requires_app_restart">Jezik bo spremenjen ob ponovnem zagonu aplikacije</string>
<string name="error_unable_to_load_comments">Ni mogoče naložiti komentarjev</string>
<string name="no_valid_zip_file">Ni veljavne ZIP datoteke</string>
<string name="import_complete_toast">Uvoženo</string>

Some files were not shown because too many files have changed in this diff Show More