diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6708fa83..a184dd83d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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: diff --git a/README.md b/README.md index c19144064..aa4332165 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,8 @@

- - - - - - + + diff --git a/app/build.gradle b/app/build.gradle index 0841086ad..02146c5f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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 { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3faa59f7d..0ac368898 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,6 +10,7 @@ + @@ -58,6 +59,15 @@ + + + + - + + - + 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 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 diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt index a3791e2e7..2948eeaf8 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt @@ -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 ) } diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt new file mode 100644 index 000000000..05719b6d4 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt @@ -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>() + + /** + * 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 + ) +} + +private const val TAG = "PackageValidator" +private const val ANDROID_PLATFORM = "android" diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java index dbfac5cca..02bb6b5ba 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java @@ -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> final int serviceId; final String baseUrl; + @Nullable Page nextPage; private transient Disposable fetchReactor; diff --git a/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java index fca158c28..031f0d36c 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java @@ -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(); diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index b998b6337..690634d0c 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -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,22 +56,32 @@ public class ContentSettingsFragment extends BasePreferenceFragment { return true; }); newAppLanguagePref.setVisible(true); + return; } - final Preference imageQualityPreference = requirePreference(R.string.image_quality_key); - imageQualityPreference.setOnPreferenceChangeListener( - (preference, newValue) -> { - ImageStrategy.setPreferredImageQuality(PreferredImageQuality - .fromPreferenceKey(requireContext(), (String) newValue)); - final var loader = SingletonImageLoader.get(preference.getContext()); - loader.getMemoryCache().clear(); - loader.getDiskCache().clear(); - Toast.makeText(preference.getContext(), - R.string.thumbnail_cache_wipe_complete_notice, Toast.LENGTH_SHORT) - .show(); + 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; + }); + } - return true; - }); + private void setupImageQualityPref() { + requirePreference(R.string.image_quality_key).setOnPreferenceChangeListener( + (preference, newValue) -> { + ImageStrategy.setPreferredImageQuality(PreferredImageQuality + .fromPreferenceKey(requireContext(), (String) newValue)); + final var loader = SingletonImageLoader.get(preference.getContext()); + loader.getMemoryCache().clear(); + loader.getDiskCache().clear(); + Toast.makeText(preference.getContext(), + R.string.thumbnail_cache_wipe_complete_notice, Toast.LENGTH_SHORT) + .show(); + + return true; + }); } @Override @@ -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)); } } diff --git a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java index ff7811af3..356dcd9b2 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java @@ -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; } diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java b/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java index a77e1c514..2134c7649 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java @@ -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:
@@ -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> 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 tabs = tabsManager.getTabs(); + final List 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. *

@@ -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 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 { diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java index 0d57ce174..d5089cb7d 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java @@ -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); diff --git a/app/src/main/java/org/schabi/newpipe/util/ChannelTabHelper.java b/app/src/main/java/org/schabi/newpipe/util/ChannelTabHelper.java index 8e8d38490..cde6e3fef 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ChannelTabHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ChannelTabHelper.java @@ -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; } diff --git a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java index 282a88b1e..ea41f3e81 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java @@ -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 nameCmp = getAudioTrackNameComparator(context); + final Comparator nameCmp = getAudioTrackNameComparator(); final Comparator 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 getAudioTrackNameComparator( - @NonNull final Context context) { - final Locale appLoc = Localization.getAppLocale(context); + private static Comparator getAudioTrackNameComparator() { + final Locale appLoc = Localization.getAppLocale(); return Comparator.comparing(AudioStream::getAudioLocale, Comparator.nullsLast( Comparator.comparing(locale -> locale.getDisplayName(appLoc)))) diff --git a/app/src/main/java/org/schabi/newpipe/util/Localization.java b/app/src/main/java/org/schabi/newpipe/util/Localization.java index 825bee343..d938fd286 100644 --- a/app/src/main/java/org/schabi/newpipe/util/Localization.java +++ b/app/src/main/java/org/schabi/newpipe/util/Localization.java @@ -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) { - final Locale customLocale = AppCompatDelegate.getApplicationLocales().get(0); - return Objects.requireNonNullElseGet(customLocale, Locale::getDefault); - } - return getLocaleFromPrefs(context, R.string.app_language_key); + public static Locale getAppLocale() { + final Locale customLocale = AppCompatDelegate.getApplicationLocales().get(0); + 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,29 +432,32 @@ public final class Localization { return context.getResources().getQuantityString(pluralId, safeCount, formattedCount); } + // Starting with pull request #12093, NewPipe exclusively uses Android's + // public per-app language APIs to read and set the UI language for NewPipe. + // 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) { - // Starting with pull request #12093, NewPipe on Android 13+ 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) { - 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) { + 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) - ); - } catch (final RuntimeException e) { - Log.e(TAG, "Failed to migrate previous custom app language " - + "setting to public per-app language APIs" - ); - } + } + final String appLanguageDefaultValue = + context.getString(R.string.default_localization_key); + if (!appLanguageValue.equals(appLanguageDefaultValue)) { + try { + AppCompatDelegate.setApplicationLocales( + LocaleListCompat.forLanguageTags(appLanguageValue)); + } catch (final RuntimeException e) { + Log.e(TAG, "Failed to migrate previous custom app language " + + "setting to public per-app language APIs" + ); } } } diff --git a/app/src/main/res/layout/fragment_blank.xml b/app/src/main/res/layout/fragment_blank.xml index 6c2978e95..4d874ebdb 100644 --- a/app/src/main/res/layout/fragment_blank.xml +++ b/app/src/main/res/layout/fragment_blank.xml @@ -4,7 +4,9 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + المميزة عرض المحتوى الذي يُحتمل أن يكون غير مناسب للأطفال لأن له حدًا عمريًا (مثل 18+) بدأ التشغيل في الخلفية - ستتغير اللغة بمجرد إعادة تشغيل التطبيق القصيرة قوائم التشغيل تنظيف diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b2c6c4b64..0b6a70315 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -37,7 +37,7 @@ اعرض خيار لتشغيل الفيديو عبر مركز وسائط Kodi عرض خيار التشغيل بواسطة كودي السمة - تم النشر في %1$s + منشورة على %1$s رابط غير مدعوم استخدام مشغل صوت خارجي استخدام مشغل فيديو خارجي @@ -427,7 +427,6 @@ الكشك الافتراضي لا توجد مشاهدة لا أحد يستمع - ستتغير اللغة بمجرد إعادة تشغيل التطبيق %s مشاهدة %s مشاهدة @@ -879,4 +878,9 @@ لا تستخدم الإعدادات الموجودة في عملية التصدير التي يتم استيرادها تنسيقًا عرضة للاختراق تم إهماله منذ NewPipe 0.27.0. تأكد من أن التصدير الذي يتم استيراده من مصدر موثوق به، ويفضل استخدام عمليات التصدير التي تم الحصول عليها من NewPipe 0.27.0 أو الأحدث في المستقبل فقط. سيتم قريبًا إزالة دعم استيراد الإعدادات بهذا التنسيق الضعيف تمامًا، وبعد ذلك لن تتمكن الإصدارات القديمة من NewPipe من استيراد إعدادات التصدير من الإصدارات الجديدة بعد الآن. الثانوي + المشاركة كقائمة تشغيل مؤقتة على YouTube + قوائم التشغيل + صفحة مجموعة القناة + حدد مجموعة المحتوى + لم تنشئ مجموعة محتوى diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 3055db9e6..256b8a54a 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -342,7 +342,6 @@ Etibarlı ZIP faylı yoxdur Xəbərdarlıq: Bütün faylları idxal etmək mümkün olmadı. Tənzimləmələri də idxal etmək istəyirsiniz\? - Tətbiq yenidən başladıldıqdan sonra dil dəyişəcəkdir Ən yaxşı 50 Yeni və populyar Yerli @@ -801,4 +800,9 @@ 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 URL siyahısını paylaşın ikinci dərəcəli + YouTube müvəqqəti pleylisti kimi paylaş + Pleylistlər + Axın qrupu seçin + Hələ heç bir axın qrupu yaradılmayıb + Kanal qrupu səhifəsi diff --git a/app/src/main/res/values-azb/strings.xml b/app/src/main/res/values-azb/strings.xml new file mode 100644 index 000000000..55344e519 --- /dev/null +++ b/app/src/main/res/values-azb/strings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values-b+ast/strings.xml b/app/src/main/res/values-b+ast/strings.xml index 454ddd152..51b4fdec0 100644 --- a/app/src/main/res/values-b+ast/strings.xml +++ b/app/src/main/res/values-b+ast/strings.xml @@ -223,7 +223,6 @@ Política de privacidá de NewPipe El ficheru nun pue crease El sirvidor nun unvia datos - La llingua va camudar namás que se reanicie l\'aplicación. Buscar Compartir con Soscribiéstite diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 780061c73..b556da756 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -551,7 +551,6 @@ Yangi va qaynoqlari Top 50 Ommabop - Ilova qayta ishga tushirilgandan so\'ng til o\'zgaradi. Fikrlarni yuklab bo‘lmadi Sozlamalarni ham import qilmoqchimisiz\? Bu sizning joriy sozlamangizni bekor qiladi. diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 19f3c8b26..22f963def 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -92,7 +92,7 @@ Справаздача пра памылку Усе Каналы - Плэйлісты + Плэй-лісты Трэкі Карыстальнікі Адключана @@ -111,8 +111,8 @@ Перайсці ў галоўнае акно Імпартаваць даныя Экспартаваць даныя - Перавызначае вашу бягучую гісторыю, падпіскі, плэйлісты і (неабавязкова) налады - Экспарт гісторыі, падпісак, плэйлістоў і налад + Перавызначае вашу бягучую гісторыю, падпіскі, плэй-лісты і (неабавязкова) налады + Экспарт гісторыі, падпісак, плэй-лістоў і налад Ачысціць гісторыю праглядаў Выдаліць гісторыю прайграных патокаў і пазіцыі прайгравання Выдаліць усю гісторыю праглядаў\? @@ -135,7 +135,7 @@ Відэапатокі не знойдзены Аўдыяпатокі не знойдзены Такой папкі не існуе - Крыніца кантэнту або файла не існуе + Такога файла або крыніцы кантэнту не існуе Файл не існуе або няма дазволу на яго чытанне ці запіс Імя файла не можа быць пустым Адбылася памылка: %1$s @@ -147,7 +147,7 @@ Інфармацыя: Што адбылося: Што:\\nЗапыт:\\nМова кантэнту:\\nКраіна кантэнту:\\nМова праграмы:\\nСэрвіс:\\nЧас GMT:\\nПакет:\\nВерсія:\\nВерсія АС: - Ваш каментарый (на англійскай): + Ваш каментарый (па-англійску): Падрабязнасці: Прайграць відэа, працягласць: Мініяцюра аватара карыстальніка @@ -266,17 +266,17 @@ Заўсёды пытаць Атрыманне звестак… Загрузка запытанага кантэнту - Стварыць плэйліст + Стварыць плэй-ліст Перайменаваць Імя - Дадаць у плэйліст - Зрабіць мініяцюрай плэйліста - Дадаць плэйліст у закладкі + Дадаць у плэй-ліст + Зрабіць мініяцюрай плэй-ліста + Дадаць плэй-ліст у закладкі Выдаліць закладку - Выдаліць плэйліст\? - Плэйліст створаны - Дададзена ў плэйліст - Мініяцюра плэйліста зменена. + Выдаліць плэй-ліст? + Плэй-ліст створаны + Дададзена ў плэй-ліст + Мініяцюра плэй-ліста зменена. Без субцітраў Падагнаць Запоўніць @@ -330,7 +330,7 @@ Памылка чытання захаваных укладак. Выкарыстоўваюцца ўкладкі па змаўчанні Аднавіць прадвызначаныя значэнні Аднавіць прадвызначаныя значэнні? - Колькасць падпісчыкаў недаступная + Колькасць падпісчыкаў недаступна Укладкі, бачныя на галоўнай старонцы Абнаўленні Паказваць апавяшчэнне пры наяўнасці новай версіі @@ -379,7 +379,7 @@ Адлюстроўваць індыкатары пазіцый прагляду ў спісах Ачыстка даных Пазіцыі прайгравання выдалены - Файл перамешчаны ці выдалены + Файл перамешчаны або выдалены Файл з такім імем ужо існуе Файл з такім імем ужо існуе немагчыма перазапісаць файл @@ -388,7 +388,7 @@ На прыладзе скончылася вольнае месца Прагрэс страчаны, бо файл быў выдалены Скончыўся час злучэння - Вы хочаце ачысціць гісторыю спампоўвання ці выдаліць спампаваныя файлы? + Ачысціць гісторыю спампоўвання або выдаліць спампаваныя файлы? Абмежаваць чаргу спампоўвання Толькі адно адначасовае спампоўванне Пачаць спампоўванне @@ -397,7 +397,7 @@ Пры кожным спампоўванні вам будзе прапанавана выбраць месца захавання. \nУключыце сістэмны сродак выбару папак (SAF), калі хочаце спампоўваць файлы на знешнюю SD-карту Выкарыстоўваць сістэмны сродак выбару папак (SAF) «Storage Access Framework» дазваляе выконваць спампоўванне на знешнюю SD-карту - Пераключыць службу, выбраную ў дадзены момант: + Пераключэнне сэрвісу, зараз выбраны: Выдаліць усе пазіцыі прайгравання Уключыць «Абмежаваны рэжым» YouTube Падтрымліваюцца толькі URL-адрасы HTTPS @@ -435,15 +435,15 @@ Найбольш папулярнае Лакальнае Нядаўна дададзенае - Плэйлісты яшчэ не дададзены - Выберыце плэйліст + Плэй-лісты яшчэ не дададзены + Выберыце плэй-ліст Прадвызначаны кіёск Так Па завяршэнні націсніце «Гатова» ∞ відэа 100+ відэа - Багрэпарт на GitHub - Скапіруйце адфарматаваны багрэпарт + Паведаміць на GitHub + Скапіяваць адфарматаваную справаздачу Дайце дазвол на адлюстраванне паверх іншых праграм Выдаліць усе пазіцыі прайгравання\? Выдаліць пазіцыі прайгравання @@ -485,7 +485,7 @@ Выберыце любімую начную тэму - %s Дазвол вылучэння тэксту ў апісанні Вы можаце выбраць сваю любімую начную тэму ніжэй - Гэта опцыя даступна толькі тады, калі %s будзе выбранай тэмаю + Параметр даступны, толькі калі выбрана тэма %s Спампоўванне пачалося Апавяшчэнні адключаны Рэжым планшэта @@ -505,7 +505,7 @@ Начная тэма Адкрыць вэб-сайт Цяпер можна вылучаць тэкст у апісанні. Звярніце ўвагу, што ў рэжыме вылучэння старонка можа мільгаць, а спасылкі не націскацца. - Запускаць галоўны прайгравальнік у поўнаэкранным рэжыме + Запускаць асноўны прайгравальнік у поўнаэкранным рэжыме Паказаць дэталі канала Нізкая якасць (менш) Апавяшчэнне пра відэахэшаванне @@ -537,7 +537,6 @@ %d дзён Ачысціць гісторыю спампоўвання - Мова зменіцца пасля перазапуску праграмы Ніхто не слухае Уключыць Апавяшчэнні пра ход відэахэшавання @@ -576,12 +575,12 @@ Апавяшчэнне аб памылцы Апавяшчэнні для паведамлення аб памылках Адбылася памылка NewPipe, націсніце, каб адправіць справаздачу - Запускаць відэа ва ўвесь экран, калі адключаны аўтапаварот. Міні-плэер даступны пры выхадзе з поўнаэкраннага рэжыму + Калі аўтапаварот адключаны, відэа адразу запускаецца ў поўнаэкранным рэжыме. Міні-плэер застаецца даступным, трэба толькі выйсці з поўнаэкраннага рэжыму Шукайце серверы, якія вам даспадобы, на %s Паказваць метаданыя Ігнараваць падзеі апаратных медыякнопак Паказваць змесціва, магчыма непрыдатнае для дзяцей, таму што яно мае ўзроставыя абмежаванні (напрыклад, 18+) - Калі ласка, праверце, ці існуе ўжо праблема з абмеркаваннем вашага збою. Пры стварэнні дублікатаў тыкетаў вы забіраеце ў нас час, які мы маглі б патраціць на выпраўленне фактычнай памылкі. + Праверце, ці не існуе заяўкі з абмеркаваннем вашай праблемы. Дублікаты марнуюць наш час і праз гэта адцягваецца вырашэнне сапраўдных задач. Адбылася памылка, глядзіце апавяшчэнне Збой плэера Карысна, напрыклад, калі вы карыстаецеся гарнітурай са зламанымі фізічнымі кнопкамі @@ -593,7 +592,7 @@ Разлік хэша Вырашана Створана аўтаматычна (запампавальнік не знойдзены) - Плэйлісты, якія пазначаны шэрым, ужо ўтрымліваюць гэты элемент. + Плэй-лісты, якія пазначаны шэрым, ужо ўтрымліваюць гэты элемент. %s новая трансляцыя %s новыя трансляцыі @@ -667,13 +666,13 @@ Заўсёды абнаўляць Парог абнаўлення стужкі - Немагчыма загрузіць канал для «%s». + Не ўдалося загрузіць канал для «%s». Стужка Час пасля апошняга абнаўлення, перш чым падпіска лічыцца састарэлай — %s Памылка загрузкі канала Уліковы запіс аўтара быў спынены. \nNewPipe не зможа загрузіць гэты канал у будучыні. \nАдпісацца ад канала? Рэжым хуткай загрузкі стужкі не дае дадатковай інфармацыі аб гэтым. - Атрымлівайце са спецыяльнага канала, калі ён даступны + Атрыманне даных са спецыяльнага канала, калі ён ёсць Уключыць хуткі рэжым Катэгорыя Тэгі @@ -686,7 +685,7 @@ Трансляцыі, спампоўванне якіх яшчэ не падтрымліваецца, не паказваюцца Мініяцюра аватара канала Аўтар: %s - Аўтару відэа спадабалася гэта + Спадабалася аўтару відэа Створана %s Адключыць хуткі рэжым Публічная @@ -699,7 +698,7 @@ Гэты кантэнт яшчэ не падтрымліваецца NewPipe. \n \nСпадзяюся, ён будзе падтрымлівацца ў наступных версіях. - Старонка плэйліста + Старонка плэй-ліста Паказваць мініяцюру Выкарыстоўваць мініяцюру як фон для экрана блакіроўкі і апавяшчэнняў Для гэтага дзеяння не знойдзены прыдатны файлавы менеджар. \nУсталюйце файлавы менеджар або паспрабуйце адключыць «%s» у наладах спампоўвання @@ -713,7 +712,7 @@ Унутраная Прагледжаныя цалкам Гэты кантэнт даступны толькі для аплачаных карыстальнікаў, таму NewPipe не можа яго трансляваць або спампоўваць. - Даступны ў некаторых службах, звычайна нашмат хутчэй, але можа вяртаць абмежаваную колькасць элементаў і часта няпоўную інфармацыю (напрыклад, без працягласці, тыпу элемента, без актыўнага стану) + Даступна для некаторых сэрвісаў, звычайна значна хутчэй, але можа перадаваць абмежаваную колькасць элементаў і не ўсю інфармацыю (можа адсутнічаць працягласць, тып элемента, паказчык трансляцыі) Узроставае абмежаванне Для гэтага дзеяння не знойдзены прыдатны файлавы менеджар. \nУсталюйце файлавы менеджар, сумяшчальны з Storage Access Framework Ніякая праграма на вашай прыладзе не можа адкрыць гэта @@ -774,16 +773,16 @@ Не загружаць выявы Высокая якасць Аб канале - Абагуліць плэйліст + Абагуліць плэй-ліст Пераматаць наперад Альбомы Пераматаць назад Паўтарыць - Атрыманыя ўкладкі пры абнаўленні стужкі. Гэты параметр не прымяняецца, калі канал абнаўляецца ў хуткім рэжыме. + Укладкі, для якіх атрымліваюцца даныя пры абнаўленні стужкі. Гэты параметр не дзейнічае, калі канал абнаўляецца з выкарыстаннем хуткага рэжыму. Сярэдняя якасць Загрузнік аватараў Банеры - Плэйлісты + Плэй-лісты - %1$s: %2$s Перамясціць панэль укладак уніз Няма жывых трансляцый @@ -816,4 +815,9 @@ Скінуць усе налады на іх прадвызначаныя значэнні Пры скіданні ўсіх налад будуць адхілены ўсе вашы змены налад і праграма перазапусціцца. \n \nСапраўды хочаце працягнуць? другасны + Абагуліць як часовы плэйліст YouTube + Плэй-лісты + Выберыце групу каналаў + Група каналаў яшчэ не створана + Старонка групы каналаў diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 926498649..813896fea 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -432,7 +432,6 @@ Най-харесвани Готово Коментари - Езикът ще се смени след рестартиране на приложението Скрит Частен Предложения за отдалечено търсене @@ -809,4 +808,12 @@ Винаги използвайте заобикаляне на настройката на повърхността на видеоизхода на ExoPlayer Изтрий позиции за възпроизвеждане вторичен + Споделяне като временен плейлист в YouTube + Плейлисти + Все още няма създадена група за емисии + Страница на групата канали + Изберете група емисии + Търсене %1$s + Търсене %1$s (%2$s) + Харесвания diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 14201bc9e..b61b846ed 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -534,7 +534,6 @@ প্রত্যেক ডাউনলোড কোথায় রাখা হবে তা জিজ্ঞেস করা হবে। \nমেমোরি কার্ডে ডাউনলোড করতে সিস্টেম ফোল্ডার পিকার (SAF) এনেবল করুন এই নামের একটি ডাউনলোড চলমান - অ্যাপ আবার শুরু হলে ভাষা পাল্টাবে মিডিয়া সুরঙ্গকরণ অক্ষম দ্রুত ফিড অবস্থা এ বিষয়ে এর বেশি তথ্য দেয় না। কোনো ডাউনলোড ফোল্ডার নির্দিষ্ট করা হয়নি, এখনই একটা সহজাত ডাউনলোড ফোল্ডার নির্বাচন করো diff --git a/app/src/main/res/values-bqi/strings.xml b/app/src/main/res/values-bqi/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-bqi/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml new file mode 100644 index 000000000..a0a7744f6 --- /dev/null +++ b/app/src/main/res/values-br/strings.xml @@ -0,0 +1,121 @@ + + + Nullañ + Mat eo + Ket + Digeriñ e-barzh ar merdeer + Digeriñ gant + Rannañ + Pellgargañ + Klask a raec\'h \"%1$s\"? + Rannañ gant + Arverañ ul lenner aodio diavaez + Koumanantiñ + Digoumanantiñ + N\'haller ket kemmañ ar c\'houmanant + N\'haller ket hizivaat ar c\'houmanant + Diskouez an titouroù + Rolloù-lenn enrollet + Rolloù-lenn + Dibab un ivinell + Drekleur + Diflugell + Ouzhpennañ da + Teuliad pellgargañ ar videoioù + Amañ e vez kadavet ar restroù aodio pellgarget + Amañ e vez kadavet ar restroù video pellgarget + O kargañ + Netra + Mentrezh aodio dre ziouer + Dodenn + Dodenn noz + Sklaer + Teñval + Tregern + Roll istor enklask + Pellgargañ + Lañsañ al lenner pennañ e mod skramm a-bezh + Lenn emgefreek + Bro an endalc\'had dre ziouer + Erioloù PeerTube + Tra ebet + Mentrezh video dre ziouer + Lenn mell-divell + Aodio + Lenn gant Kodi + Lintr + Skarzhañ ar roadennoù + Klask + Arverañ ul lenner video diavaez + Teuliad pellgargañ ar restroù aodio + Du + Kinnigoù enklask + Kenderc\'hel al lenn + URL anskor + Yezh an endalc\'had dre ziouer + Pellgargañ restr al lanv + Staliañ + Ya + Koumanantoù + Arventennoù + Setu an disoc\'hoù evit: %s + Lamet e vez an aodio gant diarunustedoù \'zo + Digoumanantet oc\'h bet d\'ar chadenn + Sellet ouzh ar roll istor + Koumanantet + Diarunusted dre ziouer + Diuzit hoc\'h erioloù PeerTube gwell ganeoc\'h + Kavit an erioloù a blij deoc\'h war %s + Ouzhpennañ un eriol + Lenner + Video hag aodio + Roll istor ha krubuilh + Neuz + Diveugañ + Hizivadurioù + Rebuzadur al lenner + Assav ha gwarediñ + War-eeun + Pellgargadurioù + Pep tra + Chadennoù + Videoioù + Loabroù + Arveriaded + Degouezhioù + Tonioù + Albomoù + Arzourien + Diweredekaet + Skarzhañ + Dizober + Dilamet eo bet ar restr + Lenn pep tra + Atav + Restr + Rebuzadurioù + Rebuzadur NewPipe + Rebuzadurioù evit al lenner NewPipe + Rebuzadurioù evit handelvoù nevez NewPipe + Lanvioù nevez + Ur wech nemetken + Diarunusted wellañ + Fazi + Rebuzadur hizivadur an arload + Endalc\'had + Emzalc\'h + Rolloù-lenn + Pellgargadurioù + Sevel un danevell + Munudoù: + Aodio + Klask en-dro + Deskrivadur + Disoc\'h ebet + Endalc’had ebet + Petra zo c\'hoarvezet: + Lenn ar video, pad: + Titouroù: + Video + + diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 1a9463d05..b3491b1a4 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -54,6 +54,7 @@ Àudio %s subscriptor + %s subscriptors %s subscriptors D\'acord @@ -169,11 +170,13 @@ Cap reproducció %s reproducció + %s reproduccions %s reproduccions Cap vídeo %s vídeo + %s vídeos %s vídeos Pausa @@ -274,15 +277,7 @@ La supervisió de fugues de memòria pot fer que l\'aplicació deixi de respondre mentre es bolca la memòria Informa d\'errors fora del cicle de vida 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 - 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. + 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 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 @@ El fitxer s\'ha mogut o suprimit Només una baixada alhora Fes servir el SAF - 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. + 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 Esborra les posicions de reproducció Esborra totes les posicions de reproducció Voleu suprimir tots els punts de reproducció\? @@ -415,14 +410,15 @@ Cap visualització %s visualització + %s visualitzacions %s visualitzacions Cap reproducció %s escoltant + %s escoltants %s escoltants - Es canviarà l\'idioma en reiniciar l\'aplicació Tendències Ensenya el temps passat original sobre els \"items\" Auto-generat (no es troba cap uploader) @@ -477,17 +473,18 @@ Actualitza sempre Temps que ha de passar perquè una subscripció es consideri obsoleta — %s Llindar d\'actualització del contingut - Feed + Flux Mostra només les subscripcions sense grup Nou Esteu segurs de voler suprimir aquest grup\? Nom de grup buit - %d de sel·leccionat - %d de sel·leccionats + %d de seleccionat + %d de seleccionats + %d de seleccionats - Cap subscripció sel·leccionada - Sel·leccioneu les subscripcions + Cap subscripció seleccionada + Selecciona subscripcions Processant el contingut… Carregant el contingut… No carregat: %d @@ -495,18 +492,22 @@ Grups de canals %d dia + %d dies %d dies %d hora + %d hores %d hores %d minut + %d minuts %d minuts %d segon + %d segons %d segons A causa de les limitacions d\'ExoPlayer, la durada de cerca és de %d segons @@ -643,13 +644,12 @@ Comprovar manualment si hi ha noves versions Baixada finalitzada + %s baixades finalitzades %s baixades finalitzades Vista prèvia de les miniatures de la barra de cerca - 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. - 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. + 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 + 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 S\'ha produït un error, consulteu la notificació Afegit el següent vídeo a la cua NewPipe ha trobat un error, toca per informar @@ -660,6 +660,7 @@ S\'estan comprovant les actualitzacions… S\'ha suprimit %1$s baixada + S\'han suprimit %1$s baixades S\'han suprimit %1$s baixades A partir de l\'Android 10 només s\'admet el \"Sistema d\'Accés a l\'Emmagatzematge\" @@ -689,8 +690,8 @@ Format desconegut Cualitat desconeguda Ordenar - Configura la notificació de reproducció actual. - 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. + Configura la notificació de reproducció actual + 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 Ignora els esdeveniments dels botons de reproducció físics Útil, per exemple, si feu servir uns auriculars amb els botons físicament trencats Trieu un gest per la part esquerra de la pantalla @@ -733,4 +734,95 @@ Duplicat afegit/s %d vegada/es 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. Semiton + Estàs fent servir la darrera versió de NewPipe + No hi ha prou espai lliure al dispositiu + Llistes de reproducció + Targeta + Vols suprimir tots els elements duplicats d\'aquesta llista de reproducció? + Llistes de reproducció + Suprimeix els duplicats + Restableix la configuració + NewPipe pot cercar automàticament actualitzacions i fer-t\'ho saber en estar disponibles.\nVols habilitar-ho? + Suprimeixo els duplicats? + Restableix tots els paràmetres als valors per defecte + Restablir tots els paràmetres descartarà els teus paràmetres preferits i reiniciarà l\'aplicació.\n\nN\'estàs segur? + Clica per descarregar%s + doblat + Commuta-ho tot + Pròximament + En directe + Reprodueix + Torna a reproduir + Més opcions + Comparteix la llista dels URLs + - %1$s: %2$s + Avatars de l\'autor + Avatars del sots-canal + Subscriptors + Ja hi hauria d\'haver una pista d\'àudio en aquest flux + El contingut escollit no és suportat per cap reproductor extern + No hi ha cap flux de vídeo disponible per a reproductors externs + Escull la pista d\'àudio per a reproductors externs + Desconegut + %1$s%2$s + original + descriptiu + Vídeos + Quines pestanyes es mostren a les pàgines del canal + Obre la cua de reproducció + Canvia l\'orientació de la pantalla + Vídeo anterior + Avança + Qualitat de la imatge + No carregues les imatges + Qualitat mitjana + Qualitat baixa + Comparteix com a llista de reproducció temporal de Youtube + %1$s\n%2$s + Mostra més + Avatars + Bàners + Durada + Rebobina + Comparteix amb els títols + No es mostren els contiguts que no suporten descàrrega + Mostra els vídeos següents + No hi ha cap flux d\'àudio disponible per a reproductors externs + Mostra/Amaga els vídeos + Aquesta opció només està disponible si%ss\'ha seleccionat per al tema + Vídeo següent + + %sresposta + %srespostes + %srespostes + + Recupera les pestanyes del canal + Valor per defecte d\'ExoPlayer + Miniatures + Quant a + Usa sempre la sortida de vídeo d\'ExoPlayer com a solució de contingència + 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. + Àlbums + Pestanyes del canal + Qualitat alta + 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 + Pestanyes que es recuperaran en actualitzar el contingut. Aquesta opció no s\'aplica si el canal s\'actualitza en mode ràpid. + Vist parcialment + Vist completament + Paràmetres d\'ExoPlayer + Gestiona alguns paràmetres d\'ExoPlayer. Caldrà reinciciar el reproductor per activar-los + Usa la funció de suport de decodificació d\'ExoPlayer + 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 + 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 + Pistes + Curts + Canvia a pantalla completa + \? + Comparteix la llista de reproducció + Mostra menys + secundària + Canals + Encara no s\'ha creat cap grup de continguts + Tria un grup de continguts + Pàgina del grup de canals diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index 5d6c1d9d9..5a9bbbbe2 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -107,7 +107,6 @@ ناتوانرێت به‌ژداریكردنه‌كه‌ نوێبكرێته‌وه‌ پشت شاشە بێ ئەنجامه‌ - زمان دەگۆڕدرێت لەدوای داگیرساندنەوەی به‌رنامه‌كه‌ لادانی سەیرکراو پیشاندانی نیشانەکەری شوێنی کارپێکەر لە خشتەکاندا شوێنەکان لە خشتەکاندا diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index bb0a1ec7b..4eb1d8b4e 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -139,9 +139,9 @@ Žádná videa - %s Video - %s Videa - %s Videí + %s video + %s videa + %s videí Stahování Povolené znaky v názvech souborů @@ -427,7 +427,6 @@ %s posluchači %s posluchačů - Ke změně jazyka dojde po restartu aplikace Výchozí kiosek Délka přetočení vpřed/zpět Instance PeerTube @@ -837,4 +836,12 @@ \nChcete tuto funkci povolit? 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í. sekundární + Sdílet jako dočasný playlist YouTube + Playlisty + Vybrat skupinu kanálů + Zatím nebyla vytvořena žádná skupina kanálů + Stránka skupiny kanálů + Hledat %1$s + Hledat %1$s (%2$s) + Líbí se diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 0312b3c74..2cd839892 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -507,7 +507,6 @@ Stryg på elementer for at fjerne dem Vælg en playliste Ingen playliste-bogmærker endnu - Sproget ændres, når appen genstarter Afspillerkø Vis kanalens detaljer Sæt i kø @@ -823,4 +822,9 @@ 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. Sikkerhedskopiering og gendannelse sekundær + Del som midlertidig YouTube-playliste + Playlister + Kanalgruppeside + Vælg en feed-gruppe + Ingen feed-gruppe oprettet endnu diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e782e700a..3594ebbe6 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -432,7 +432,6 @@ %s Zuhörer %s Zuhörer - Die Sprache ändert sich, sobald die App neu gestartet wird PeerTube-Instanzen Finde auf %s die Instanzen, die dir gefallen Instanz hinzufügen @@ -587,7 +586,7 @@ Keine App auf deinem Gerät kann dies öffnen Dieser Inhalt ist privat, kann also nicht von NewPipe gestreamt oder heruntergeladen werden. Diese Inhalte sind nur für Benutzer verfügbar, die bezahlt haben, können also nicht von NewPipe gestreamt oder heruntergeladen werden. - Dieses Video ist nur für YouTube Music Premium-Mitglieder verfügbar und kann daher nicht von NewPipe gestreamt oder heruntergeladen werden. + Dieses Video ist nur für YouTube-Music-Premium-Mitglieder verfügbar und kann daher nicht von NewPipe gestreamt oder heruntergeladen werden. Dies ist ein SoundCloud Go+ Track, zumindest in deinem Land, kann er von NewPipe nicht gestreamt oder heruntergeladen werden. Dieser Inhalt ist in deinem Land nicht verfügbar. App abstürzen lassen @@ -823,4 +822,9 @@ \nMöchtest du wirklich fortfahren? 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. Sekundär + Als temporäre YouTube-Wiedergabeliste teilen + Wiedergabelisten + Eine Feed-Gruppe auswählen + Kanalgruppen-Seite + Es wurde noch keine Feed-Gruppe erstellt diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index c0b09ad13..bac732578 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -1,7 +1,7 @@ Δημοσιεύθηκε στις %1$s - Δε βρέθηκε πρόγραμμα αναπαραγωγής. Εγκατάσταση του VLC; + Δε βρέθηκε αναπαραγωγός ροής δεδομένων. Εγκατάσταση του VLC; Εγκατάσταση Άκυρο Άνοιγμα σε πρόγραμμα περιήγησης @@ -71,7 +71,7 @@ Ιστορικό Εμφάνιση πληροφοριών Πατήστε το μεγεθυντικό φακό για να ξεκινήσετε. - Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή). + Δε βρέθηκε αναπαραγωγός ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή). Λήψη του αρχείου ροής Αφαιρείται ο ήχος από κάποιες αναλύσεις Το κανάλι διαγράφηκε @@ -103,7 +103,7 @@ Ανάκτηση αναπαραγωγής Συνέχιση της αναπαραγωγής έπειτα από διακοπές (π.χ. κλήσεις) Εμφάνιση επεξήγησης του «Πιέστε παρατεταμένα για προσθήκη στην ουρά» - Εμφάνιση υπόδειξης όταν πατηθεί το κουμπί παρασκηνίου ή αναδυόμενου παραθύρου στις \"Λεπτομέρειες:\\ στο βίντεο + Εμφάνιση συμβουλής κατά το πάτημα του φόντου ή του αναδυόμενου κουμπιού στο βίντεο «Λεπτομέρειες:» Προεπιλεγμένη χώρα περιεχομένου Αναπαραγωγός Συμπεριφορά @@ -184,7 +184,7 @@ Κανένα βίντεο %s βίντεο - %s βίντεο + %s βίντεο(πολλά) Εκκίνηση Δημιουργία @@ -422,7 +422,6 @@ %s ακροατής %s ακροατές - Η γλώσσα θα αλλάξει αφού επανεκκινηθεί η εφαρμογή Προεπιλεγμένο περίπτερο Μόνο HTTPS σύνδεσμοι υποστηρίζονται Τοπικά @@ -472,7 +471,7 @@ Αυτό το βίντεο έχει περιορισμό ηλικίας. \n \nΕνεργοποιήστε το «%1$s» στις ρυθμίσεις εάν θέλετε να το δείτε. - Ενεργοποίηση \"Περιορισμένη Λειτουργία\\ του YouTube + Ενεργοποίηση \"Περιορισμένη Λειτουργία\" του YouTube Δεν ήταν δυνατή η αναγνώριση της διεύθυνσης URL. Άνοιγμα με άλλη εφαρμογή; Αυτόματη προσθήκη στην ουρά Η ουρά του ενεργού αναπαραγωγού θα αντικατασταθεί @@ -654,7 +653,7 @@ Χειροκίνητος έλεγχος για νέα έκδοση Έλεγχος αναβάθμισης Νέα αντικείμενα τροφοδοσίας - Εμφάνιση «Κατάρρευση αναπαραγωγέα\\ + Εμφάνιση \"Κατάρρευση αναπαραγωγέα\" Εμφανίζει μια επιλογή κατάρρευσης κατά τη χρήση του αναπαραγωγέα Κατάρρευση αναπαραγωγέα Ειδοποίηση αναφοράς σφάλματος @@ -823,4 +822,9 @@ \nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε; Οι ρυθμίσεις στην εξαγωγή που εισάγεται χρησιμοποιούν μια ευάλωτη μορφή που είχε καταργηθεί από το NewPipe 0.27.0. Βεβαιωθείτε ότι η εξαγωγή που εισάγεται προέρχεται από αξιόπιστη πηγή και προτιμήστε να χρησιμοποιείτε μόνο εξαγωγές που λαμβάνονται από το NewPipe 0.27.0 ή νεότερο στο μέλλον. Η υποστήριξη για εισαγωγή ρυθμίσεων σε αυτήν την ευάλωτη μορφή θα καταργηθεί σύντομα εντελώς και, στη συνέχεια, οι παλιές εκδόσεις του NewPipe δεν θα μπορούν πλέον να εισάγουν ρυθμίσεις εξαγωγών από νέες εκδόσεις. δευτερεύων + Λίστες αναπαραγωγής + Μοιραστείτε ως προσωρινή λίστα αναπαραγωγής στο YouTube + Επιλογή ομάδας τροφοδοσίας + Δεν δημιουργήθηκε ομάδα τροφοδοσίας ακόμα + Σελίδα καναλιού ομάδας diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 66e2c4d10..1da4d536c 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -421,7 +421,6 @@ %s aŭskultanto %s aŭskultantoj - La lingvo ŝanĝos kiam la apo restartos Daŭro de rapidpluiga/revolva serĉo Instancoj de PeerTube Elekti viajn preferitajn instancojn de PeerTube diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c1efd2ee7..acecf3b71 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -47,7 +47,7 @@ Miniatura del avatar del usuario Contenido Mostrar contenido con restricción de edad - Toca la lupa para comenzar.. + Toca la lupa para comenzar. En directo Descargas Descargas @@ -78,7 +78,7 @@ Copiado al portapapeles Defina una carpeta de descargas más tarde en los ajustes La interfaz de la aplicación dejó de funcionar - 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: + 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: Negro Todo k @@ -91,7 +91,7 @@ Reto reCAPTCHA requerido Reproduciendo en modo emergente Formato de vídeo predefinido - Desactivado + Deshabilitado Mostrar resoluciones más altas Solo algunos dispositivos pueden reproducir vídeos en 2K / 4K Resolución predefinida de emergente @@ -130,7 +130,7 @@ Carácter de reemplazo Letras y dígitos La mayoría de los caracteres especiales - Historial de búsquedas + Historial de búsqueda Almacenar búsquedas localmente Historial de vistas Almacenar historial de vídeos vistos @@ -184,7 +184,7 @@ Comenzar a reproducir en segundo plano Reproducir en modo emergente Mostrar la sugerencia \"Mantener presionado para poner a la cola\" - Nuevo y lo mejor + Lo nuevo y lo mejor Mantener pulsado para añadir a la cola Donar 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é. @@ -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 - 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. + 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. tuID, soundcloud.com/tuID Esta operación puede causar un uso intensivo de la red. \n @@ -381,8 +376,7 @@ El tiempo de conexión expiro No se puede recuperar esta descarga Preguntar dónde descargar - Se le preguntará dónde guardar cada descarga. -\nHabilite Elegir carpetas del sistema (SAF) si desea guardar las descargas en una tarjeta SD externa + Se te preguntará dónde guardar cada descarga. \nHabilita elegir carpetas del sistema (SAF) si quieres guardar las descargas en una tarjeta SD externa Usar Elegir carpetas del sistema (SAF) El \'Sistema de Acceso al Almacenamiento\' permite descargar en una tarjeta SD externa Desuscribirse @@ -405,7 +399,7 @@ Automático ¡Actualización de NewPipe disponible! Mostrar comentarios - Desactivar para ocultar comentarios + Deshabilitar para ocultar comentarios Reproducción automática Sin comentarios No se pudieron cargar los comentarios @@ -433,7 +427,6 @@ %s oyentes %s oyentes - El idioma cambiará luego de que se reinicie la aplicación Duración de búsqueda al avanzar y/o retroceder Instancias de PeerTube Selecciona tus instancias favoritas de PeerTube @@ -494,14 +487,14 @@ Nombre de grupo vacío ¿Quieres borrar este grupo? Nuevo - Fuente + Contenido Velocidad de actualización del contenido Tiempo para que una suscripción se considere desactualizada — %s Actualizar siempre Extraer desde feed dedicado cuando esté disponible 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) - Activar modo rápido - Desactivar modo rápido + Habilitar modo rápido + Deshabilitar modo rápido ¿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 @@ Artistas Álbumes Canciones - Este vídeo tiene restricción de edad. -\n -\nActivar \"%1$s\" en los ajustes si quieres verlo. + Este vídeo tiene restricción de edad. \n \nHabilitar \"%1$s\" en los ajustes si quieres verlo. Sí, y también vídeos vistos parcialmente 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! @@ -534,7 +525,7 @@ Miniatura de avatar del canal Los textos originales de los servicios serán visibles en los ítems de transmisiones Mostrar tiempo atrás original en ítems - Activar el «Modo restringido» de YouTube + Habilitar el «Modo restringido» de YouTube Página de lista de reproducción Mostrar solo suscripciones desagrupadas Aún no hay marcadores para listas de reproducción @@ -577,8 +568,8 @@ 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) Usar miniatura como fondo de pantalla de bloqueo y notificaciones Mostrar vista previa - Desactivar para ocultar información adicional sobre el creador o contenido de la transmisión - Desactivar para ocultar la descripción del vídeo y la información adicional + Deshabilitar para ocultar información adicional sobre el creador o contenido de la transmisión + Deshabilitar para ocultar la descripción del vídeo y la información adicional Ninguna aplicación en su dispositivo puede abrir esto Capítulos Reciente @@ -614,24 +605,24 @@ No listado Público Soporte - Lenguaje + Idioma Límite de edad Privacidad Licencia Etiquetas Categoría - Inhabilitar la selección de texto de la descripción + Deshabilitar la selección de texto de la descripción Habilitar la selección de texto de la descripción 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. %s da esta razón: - No fue posible cargar el muro por \'%s\'. + No fue posible cargar el feed por \'%s\'. Cuenta cancelada El modo de muro rápido no arroja más información sobre esto. La cuenta del autor ha sido cancelada.\nNewPipe no podrá acceder a ella en el futuro.\n¿Quieres desuscribirte de este canal? Error al cargar el muro Desde Android 10 solo el \'Sistema de Acceso al Almacenamiento\' es soportado Se le preguntará dónde guardar cada descarga - 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. + 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. Deshabilitar el túnel de medios Aún no se ha seleccionado ninguna carpeta de descargas, elija la carpeta de descargas por defecto ahora Anfitrión @@ -666,7 +657,7 @@ Buscar actualizaciones Buscar nuevas versiones manualmente Buscando actualizaciones… - Nuevos elementos en el muro + Nuevos elementos en el feed Cerrar abruptamente el reproductor Muestra una opción de cierre abrupto al usar el reproductor Mostrar \"Cerrar abruptamente el reproductor\" @@ -676,8 +667,7 @@ Se produjo un error, vea la notificación Crear una notificación de error Mostrar una barra de error - 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 + 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 No se encontró ningún administrador de archivos apropiado para esta acción. \n Instale un administrador de archivos compatible con Storage Access Framework Comentario fijado @@ -695,7 +685,7 @@ Notificar de nuevos directos desde las suscripciones Frecuencia de comprobación ¿Desea borrar del disco todos los archivos descargados\? - Las notificaciones están desactivadas + Las notificaciones están deshabilitadas Recibir notificaciones Conmutar todo Cargando detalles del directo… @@ -735,7 +725,7 @@ ¿Eliminar los duplicados\? ¿Quieres eliminar todas las secuencias duplicadas de esta lista de reproducción? Mostrar las siguientes secuencias - Mostrar/Ocultar secuencias + Mostrar/ocultar secuencias Próximamente Eliminar los duplicados Completamente visto @@ -765,7 +755,7 @@ Cambia el tamaño del intervalo de carga en contenidos progresivos (actualmente %s). Un valor más bajo puede acelerar la carga inicial Ajustes de ExoPlayer Gestiona algunos ajustes de ExoPlayer. Estos cambios requieren reiniciar el reproductor para que surtan efecto - 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 + 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 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 @@ -776,7 +766,7 @@ Sin transmisiones en directo Vídeos Suscriptores - Qué pestañas se muestran en las páginas de los canales + Qué pestañas se muestran en las páginas del canal Pestañas del canal Shorts Cargando metadatos… @@ -829,13 +819,16 @@ Respaldar y restaurar Restablecer ajustes Restablecer todos los ajustes a sus valores predeterminados - Restablecer todos los ajustes descartará todos sus ajustes preferidos y reiniciará la aplicación. -\n -\n¿Estas seguro que deseas continuar? + Restablecer todos los ajustes descartará todos sus ajustes preferidos y reiniciará la aplicación. \n \n¿Estás seguro que quieres continuar? No NewPipe puede buscar automáticamente nuevas versiones de vez en cuando y notificarle cuando estén disponibles. \n¿Quieres habilitar esto? 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. secundaria + Compartir como lista de reproducción temporal de YouTube + Lista de reproducción + Selecciona un grupo de feed + Aún no se ha creado ningún grupo de feed + Página de grupo de canales diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index a89d2846b..fcae21ec6 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -146,7 +146,7 @@ Üksikasjad: Esita video, kestus: Üleslaadiaja avatari pisipilt - Meeldib + Meeldimisi Ei meeldi Tulemusi pole Siin pole veel midagi @@ -206,8 +206,8 @@ Anneta Veebisait Täiendava info ja uudiste lugemiseks külasta NewPipe\'i veebisaiti. - NewPipe\'i privaatsuspoliitika - Loe privaatsuspoliitikat + NewPipe\'i andmekaitsepõhimõtted + Loe andmekaitsepõhimõtteid NewPipe\'i litsents Loe litsentsi Ajalugu @@ -305,7 +305,7 @@ Kui sul on ideid kujunduse muutmisest, koodi puhastamisest või suurtest koodi muudatustest - abi on alati teretulnud. Mida rohkem tehtud, seda paremaks läheb! 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. Anneta - 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. + 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. 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. Teavita elutsüklist väljas vigadest Impordi SoundCloudi profiil trükkides URL või oma ID: @@ -320,7 +320,7 @@ Keri helitu koht edasi Samm Lähtesta - 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. + 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. Minimeeri, kui kasutad teisi rakendusi Tegevus lülitusel peamiselt videopleierilt teisele rakendusele — %s Pole @@ -487,7 +487,6 @@ Lisa esitusjärjekorda Hiljuti lisatud Kohalikud - Keele muutus jõustub rakenduse uuesti käivitamisel Kommentaaride laadimine ei õnnestunud Esitusloendi järjehoidjaid veel pole Vali esitusloend @@ -808,4 +807,12 @@ Ei 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. täiendav + Jaga YouTube\'i ajutise esitusloendina + Esitusloendid + Vali andmevoo grupp + Ühtegi andmevoo gruppi pole veel loodud + Kanalirühmade leht + Otsi: %1$s + Otsi: %1$s (%2$s) + Meeldimisi diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 415d2a8d3..940db1ddd 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -422,7 +422,6 @@ Erreprodukziorako kokapen guztiak ezabatzen ditu Ezabatu erreprodukziorako kokapen guztiak\? Aktibatu zerbitzua, orain hautatua: - Hizkuntza aldatuko da aplikazioa berrabiarazterakoan Kiosko Lehenetsia Aurreratze/atzeratze bilaketaren iraupena PeerTube instantziak diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 6a252e22f..023e75a5c 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -469,7 +469,6 @@ مورد پسندترین‌ها اخیرا اضافه شده محلی - با آغاز دوبارهٔ کاره، زبان تغییر خواهد کرد کیوسک پیش‌فرض انجام شد وقتی انجام شد، «Done» یا «انجام شد» را بفشارید @@ -764,4 +763,59 @@ ؟ پشتیبان‌گیری و بازیابی بدون جریان زنده + کیفیت تصویر + کیفیت متوسّط + کیفیت زیاد + ترجیح صدای اصلی + هم‌رسانی سیاههٔ پخش + کیفیت کم + سیاهه‌های پخش + بازنشانی تنظیمات + ثانویه + نمایش کم‌تر + جابه‌جایی گزینشگر زبانهٔ اصلی به پایین + تونل زدن رسانه به صورت پیش‌گزیده روی افزاره‌تان از کار افتاده چرا که از آن پشتیبانی نمی‌کند. + کنش ژست راست + قطعه‌ای صوتی باید از پیش در این جریان موجود باشد + برای نمونه اگر از گوشی‌ای با دکمه‌های خراب استفاده می‌کنید مفید است + بازنشانی همهٔ تنظیمات همهٔ تنظیمات ترجیحیتان را دور اندعخته و کاره را دوباره آغاز می‌کند.\n\nمطمئنید که می‌خواهید ادامه دهید؟ + استفاده از ویژگی پشتیبان کدگشای اگزوپلیر + زبانه‌های نشان داده شده روی صفحه‌های کانال + تغییر جهت صفحه + بار نکردن تصویرها + هم‌رسانی سیاههٔ نشانی + هم‌رسانی به شکل سیاههٔ پخش موقّتی یوتوب + - %1$s: %2$s + %1$s\n%2$s + استفادهٔ همیشگی از دور زدن تنظیمات سطح خروجی ویدیوی اگزوپلیر + موقعیت زبانه‌های اصلی + واکشی زبانه‌های کانال + گزینش قطعهٔ صوتی برای پخش کننده‌های خارجی + + %s پاسخ + %s پاسخ + + هم‌رسانی با عنوان‌ها + گزینش قطعهٔ صوتی با شرح برای افزار کم‌بینا در صورت وجود + ترجیح صدای شرح دهنده + گزینش کنش ژست نیمهٔ راست صفحه + تعداد %d بار تکرار شده + چهرک‌های بارکننده + چهرک‌های زیرکانال + کنش ژست چپ + گزینش کیفیت تصویرها و این که اصلاً بار شوند یا نه، برای کاهش استفادهٔ حافظه و داده. تغییرات انبارهٔ تصویر حافظه و دیسک را پاک می‌کند — %s + اگر مشکل شروع رمزگشایی دارید ، این گزینه را فعال کنید ، که اگر رمزگشایی اولیه شکست بخورد ، به رمزگشایی های با اولویت پایین تر باز می گردد. این ممکن است منجر به عملکرد پخش ضعیف نسبت به هنگام استفاده از رمزگشایان اولیه شود + این روش دور زدن مشکل به جای تنظیم مستقیم سطح روی رمزینه، آن‌ها را هنگام تغییر سطح آزاد کرده و دوباره راه‌اندازی می‌کند. این تنظیم که از پیش روی برخی افزاره‌ها به دست اگزوپلیر استفاده می‌شد فقط روی اندروید ۶ و بالاتر تأثیر دارد\n\nبه کار انداختن این گزینه می‌تواند از خطاهای پخش هنگام تغییر پخش‌کنندهٔ ویدیوی کنونی یا تغییر به حالت تمام‌صفحه جلوگیری کند + مدیریت برخی تنظیمات اگزوپلیر. اعمال این تغییرات نیازمند آغاز دوبارهٔ پخش‌کننده است + سیاهه‌های پخشی که خاکستری شده‌اند این مورد را از پیش دارند. + ویرایش هر کنش آگاهی زیر با زدن رویش. سه کنش نخست (پخش/مکث، پیشین و بعدی) به دست سامانه تنظیم شده و قابل سفارشی سازی نیستند. + گزینش کنش ژست نیمهٔ چپ صفحه + گزینش قطعهٔ صوتی اصلی فارغ از زبان + نیوپایپ می‌تواند گه‌گاه به صورت خودکار نگارش‌های جدید را بررسی کرده و از وجودشان آگاهتان کند.\nمی‌خواهید به کارش بیندازید؟ + بازنشانی همهٔ تنظیمات به مقدارهای پیش‌گزیده‌شان + نمایش بیش‌تر + تنظیمات داخل برون‌ریزی‌ از قالبی آسیب‌پذیر استفاده می‌کند که از نگارش ۰٫۲۷٫۰ منسوخ شده. مطمئن شوید برون‌ریزی از منبعی مطمئن آمده و ترجیحاً فقط از برون‌ریزی‌های آمده از نگارش ۰٫۲۷٫۰ به بعد استفاده کنید. پشتیبانی از درون‌ریزی تنظیمات به این قالب آسیب‌پذیر به زودی کاملاً‌برداشته خواهد شد و دیگر نگارش‌خای قدیمی‌تر قادر به درون ریزی تنظیمات از نگارش‌های جدید نخواهند بود. + گشودن صف پخش + می‌خواهید همهٔ جریان‌های تکراری را در این سیاههٔ پخش بردارید؟ + زبانه‌هایی که هنگام به‌روز رسانی خوراک واکشی می‌شوند. این گزینه تأثیری روی کانال‌هایی که با ساتفاده از حالت سریع به‌روز می‌شوند ندارد. diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 300493b52..c88c6a999 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -337,7 +337,6 @@ Hiljattain lisätyt Paikalliset Pidetyimmät - Kieli vaihtuu, kun sovellus uudelleenkäynnistetään Kommentteja ei voitu ladata Mitkä välilehdet näytetään pääsivulla Valmis @@ -807,4 +806,9 @@ 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? Laitteella ei ole riittävästi vapaata tilaa + Jaa tilapäisenä YouTube-soittolistana + Raidat + \? + toissijainen + Soittolistat diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 48710619b..293e44c06 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -5,7 +5,7 @@ Vouliez-vous dire « %1$s » \? Télécharger Dossier de téléchargement vidéo - Choisissez le dossier de téléchargement des vidéos + Choisissez le dossier de téléchargement pour les fichiers vidéos Les vidéos téléchargées sont stockées ici Installer Installer l’application Kore manquante \? @@ -428,7 +428,6 @@ %s auditeurs %s auditeurs - La langue changera une fois que l’application aura redémarré Durée de l’avance et retour rapide Instances PeerTube Veuillez choisir vos instances PeerTube préférées @@ -839,4 +838,12 @@ Pas assez d\'espace disponible sur l\'appareil 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. secondaire + Partager comme liste de lecture YouTube temporaire + Listes de lecture + Sélectionnez un groupe de flux + Aucun groupe de flux n\'a encore été créé + Page du groupe de chaînes + Rechercher %1$s + Rechercher %1$s (%2$s) + Likes diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 586e351e2..0d34e89d8 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -463,7 +463,6 @@ Conferencias O que ten mais gústames Engadiuse recentemente - O idioma cambiará unha vez que se reinicie o aplicativo Non se puideron cargar os comentarios Aínda non hai marcadores nesta lista de reprodución Seleccionar unha lista de reprodución diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index b4c16a473..07f3b24a5 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -105,7 +105,7 @@ פרטים: נגינת סרטון, משך: תמונה ייצוגית של המפרסם - אהבו + לייקים לא אהבו אין תוצאות אין כאן כלום מלבד צרצרים @@ -196,7 +196,7 @@ להתחיל לנגן בנגן צף הורדת קובץ הזרמה הצגת מידע - רשימות נגינה מסומנות + רשימות השמעה מסומנות הוספה אל מדינת תוכן כברירת מחדל ניפוי שגיאות @@ -432,7 +432,6 @@ %s מאזינים %s מאזינים - השפה תוחלף עם הפעלת היישומון מחדש קיוסק ברירת מחדל משך קפיצה מהירה קדימה/אחורה מופעים של PeerTube @@ -850,4 +849,12 @@ אין מספיק מקום פנוי במכשיר ההגדרות בייצוא המיובא משתמשות בתסדיר פגיע שהוצא משימוש מאז NewPipe 0.27.0. יש לוודא שהייצוא המיובא הוא ממקור מהימן, ועדיף להשתמש רק בייצוא שהושג מ־NewPipe 0.27.0 ומעלה בעתיד. תמיכה בייבוא הגדרות בתסדיר פגיע זה תוסר בקרוב לחלוטין, ואז גרסאות ישנות של NewPipe לא יוכלו לייבא עוד הגדרות של ייצוא מגרסאות חדשות. משני + רשימות נגינה + שיתוף כרשימת נגינה זמנית של YouTube + הגדרת קבוצת ערוצי עדכונים + לא נוצרו עדיין קבוצות ערוצי עדכונים + עמוד קבוצת ערוצים + חיפוש ב־%1$s + חיפוש ב־%1$s‏ (%2$s) + לייקים diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 890ef1347..681bf4ba0 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -423,7 +423,6 @@ %s श्रोता %s श्रोता - ऐप के पुनः आरंभ होने के बाद भाषा बदल जाएगी तेज मोड सक्षम करें तेज मोड अक्षम करें क्या आपको लगता है कि फीड लोडिंग बहुत धीमी है\? यदि ऐसा है, तो तेज़ लोडिंग को सक्षम करने का प्रयास करें (आप इसे सेटिंग्स में या नीचे दिए गए बटन को दबाकर बदल सकते हैं)। diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 960106e0d..54f5b9b28 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -406,7 +406,6 @@ Izbrisati sve pozicije reprodukcije\? Nitko ne gleda Nitko ne sluša - Jezik će se promijeniti nakon ponovnog pokretanja aplikcije Standardni kiosk Podržani su samo HTTP URL-ovi Lokalni diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index fb04aa724..86f4d76fa 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -49,7 +49,7 @@ Jelentés Információ: Ez történt: - Az Ön megjegyzése (angolul): + Saját hozzászólás (angolul): Részletek: Elnézést, valami balul sült el. Elnézést, ennek nem kellett volna megtörténnie. @@ -127,18 +127,18 @@ Az alkalmazás/kezelőfelület összeomlott Nem sikerült a videó lejátszása A külső lejátszó nem támogatja az ilyen típusú hivatkozásokat - Nem található videó adatfolyam - Nem található hang adatfolyam + Nem található videófolyam + Nem található hangfolyam 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ó: Nincs találat Közvetítési fájl letöltése Hozzáadás ehhez Gyorsabb, de pontatlan tekerés használata 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 - A bélyegkép gyorsítótára törölve + Bélyegkép gyorsítótára törölve Gyorsítótárazott metaadatok törlése - Minden gyorsítótárazott weboldaladat törlése - A metaadatok gyorsítótára törölve lett + Minden gyorsítótárazott weboldaladat törölve + Metaadatok gyorsítótára törölve Következő videó automatikus sorba állítása Keresési előzmények helyi tárolása Csatornák @@ -202,13 +202,13 @@ Licencek Szabad, egyszerű közvetítésnézés Androidon. Közreműködés - 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! + 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! Megtekintés a GitHubon Adományozás 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. Hozzájárulás - Honlap - Látogassa meg a NewPipe honlapját további információkért és hírekért. + Weboldal + Látogasson el a NewPipe weboldalára további információkért és hírekért. A NewPipe adatvédelmi irányelvei 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. @@ -270,23 +270,10 @@ Exportálás… Fájl importálása Előző exportálás - A feliratkozások importálása nem sikerült - A feliratkozások exportálása nem sikerült - 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 - 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. + A feliratkozások importálása sikertelen + A feliratkozások exportálása sikertelen + 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 + 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. saját azonosítója, soundcloud.com/azonosító Ez a művelet adatforgalom-igényes lehet. \n @@ -305,11 +292,11 @@ Lejátszás folytatása a háttérben Lejátszás folytatása felugró ablakban Lejátszás folytatása - A „Tartsa lenyomva a sorba állításhoz\" tipp megjelenítése + A „Tartsa lenyomva a sorba állításhoz” tipp megjelenítése Leiratkozás Válasszon lapot - Megjegyzések megjelenítése - Kapcsolja ki a megjegyzések elrejtéséhez + Hozzászólások megjelenítése + Kapcsolja ki a hozzászólások elrejtéséhez Tartalom alapértelmezett országa Folytatás főnézetben Eltüntetés @@ -350,7 +337,7 @@ Az előrehaladás elveszett, mert a fájlt törölték Nincs hely az eszközön A NewPipe leállt a fájl feldolgozása közben - Utófeldolgozás sikertelen + Az utófeldolgozás sikertelen Nincs talalat A kiszolgáló nem fogad többszálú letöltést, próbálkozzon újra ezzel: @string/msg_threads = 1 A kiszolgáló nem küld adatokat @@ -366,7 +353,7 @@ Ilyen névű fájl már létezik Felülírás Egyedi név előállítása - Letöltés sikertelen + A letöltés sikertelen helyrehozás utófeldolgozás sorba állítva @@ -398,10 +385,9 @@ Automatikus sorba állítás Kapcsolja ki, hogy elrejtse a videó leírását és a további információkat Visszaállítja az alapértelmezéseket\? - 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. + 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. Leírás - Megjegyzések + Hozzászólások Formázott jelentés másolása Adjon engedélyt a más alkalmazások feletti megjelenéshez Még nincs könyvjelző lejátszási listához @@ -421,8 +407,7 @@ Az ExoPlayer korlátai miatt az előre- és visszatekerés időtartama %d másodpercre lett állítva Csatornacsoportok Rendszer alapértelmezése - 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. + 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. Alkalmazás összeomlasztása Memóriaszivárgások megjelenítése A memóriaszivárgás-monitorozás az alkalmazás megállását okozhatja, amíg a dinamikus memória mentése folyik @@ -443,8 +428,7 @@ Senki sem nézi A feliratkozók száma nem érhető el Helyi - A nyelv az alkalmazás újraindításakor fog megváltozni - Megjegyzések betöltése sikertelen + A megjegyzések betöltése sikertelen Válasszon egy lejátszási listát Lejátszás automatikus indítása — %s Lejátszás sebességének beállítása @@ -458,7 +442,7 @@ © %1$s %2$s, %3$s licenc alatt Harmadik féltől származó licencek Kész - Nincs megjegyzés + Nincsenek hozzászólások ∞ videó 100+ videó Jelentés a GitHubon @@ -468,7 +452,7 @@ reCAPTCHA sütik törlése Előadók Albumok - Számok + Dalok Események Videók Ez a videó korhatáros. @@ -516,7 +500,7 @@ Ezt a tartalmat még nem támogatja a NewPipe. \n \nRemélhetőleg egy következő verzióban már támogatott lesz. - Nincs a készülékén olyan alkalmazás, amely meg tudja ezt nyitni + Az eszközön nincs olyan alkalmazás, amely meg tudja ezt nyitni 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. Automatikus (rendszertéma) Ez a tartalom csak előfizetőknek érhető el, nem tekinthető meg és nem tölthető le a NewPipe-pal. @@ -536,7 +520,7 @@ A YouTube biztosít egy „Korlátozott módot”, amely elrejti a lehetséges felnőtteknek szóló tartalmat A YouTube „Korlátozott mód” bekapcsolása A példány már létezik - A példány érvényesítése nem sikerült + A példány érvényesítése sikertelen Adja meg a példány webcímét Példány hozzáadása Találjon Önnek tetsző példányokat itt: %s @@ -562,7 +546,7 @@ A fő lejátszó teljes képernyős indítása 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 Szolgáltatás be/ki, jelenleg kiválasztott: - A megjegyzések ki vannak kapcsolva + A hozzászólások ki vannak kapcsolva Húzza oldalra az elemeket az eltávolításukhoz A következő sorba állítása A következő sorba állítva @@ -572,29 +556,17 @@ Tiltsa le a médiacsatornázást, ha fekete képernyőt vagy akadozást tapasztal videólejátszáskor. Minden letöltésnél meg fogja kérdezni, hogy hova mentse el Válasszon egy példányt - Lista legutóbbi frissítése: %s - Lista betöltése… + Hírfolyam utoljára frissítve: %s + Hírfolyam betöltése… Csak a nem csoportosított feliratkozások megjelenítése - Lista - Lista frissítési küszöb + Hírfolyam + Hírfolyam frissítési küszöb A legutóbbi frissítés óta eltelt idő, ami után a feliratkozás elavultnak számít – %s - 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\? - A gyors listamód nem ad ennél több információt. - Lekérés egy dedikált listából, ha lehetséges + 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? + A gyors hírfolyammód nem szolgáltat több információt. + Lekérés egy dedikált hírfolyamból, ha lehetséges Gyors mód engedélyezése - Ú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. + Ú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. Csatorna profilképének bélyegképe Legutóbbi Kiemelt @@ -612,25 +584,25 @@ Letöltés befejezve %s letöltés befejezve - Lista feldolgozása… + Hírfolyam feldolgozása… 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) Fiók eltávolítva Megjelölés megnézettként Még nincs letöltési mappa beállítva, válassza ki az alapértelmezett letöltési mappát most Tekerősáv bélyegkép-előnézete Magas minőségű (nagyobb) - Hiba a lista betöltésekor + Hiba a hírfolyam betöltésekor Nyelv Támogatás Weboldal megnyitása Táblagép mód Az Android 10-től kezdve, csak a „Storage Access Framework” támogatott - Új listaelemek + Új hírfolyamelemek Privát Belső Készítő által szívecskézve Be - A(z) „%s” listája nem tölthető be. + A(z) „%s” hírfolyam nem tölthető be. 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. 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 Hibajelentési értesítés @@ -668,9 +640,9 @@ %1$s letöltés törölve %1$s letöltés törölve - Rögzített megjegyzés + Kitűzött hozzászólás LeakCanary nem elérhető - Lejátszó értesítés + Lejátszási értesítés 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. Jelenleg játszott közvetítés értesítésének testreszabása Értesítések @@ -678,14 +650,14 @@ Értesítések új élő közvetítésekről a feliratkozott csatornák esetén Közvetítés részleteinek betöltése.… Keressen új élő közvetítést - Új közvetítésértesítések + Új közvetítések értesítései Értesítésen új élő közvetítés esetén a feliratkozott csatornákhoz Ellenőrzési gyakoriság Szükséges hálózati kapcsolat Bármilyen hálózat Törli az összes letöltött fájlt a lemezről\? Értesítsen - Értesítéstek kikapcsolva + Az értesítések le vannak tiltva Lejátszás betöltési intervallumának mérete Százaléka @@ -693,14 +665,14 @@ %s új elő közvetítés ExoPlayer alapértelmezett - Feliratkoztál erre a csatornára + Feliratkozott erre a csatornára , Azok az élő adások melyek nem támogatottak a letöltő által, rejtve vannak A választott élő adást nem lehet külső lejátszóval lejátszani - Összes váltása - Külső lejátszók számára nem érhető el az hang csatorna - Külső lejátszók számára nem érhető el videó - Válassz minőséget külső lejátszókhoz + Összes be/ki + Külső lejátszók számára nem érhető el hangfolyam + Külső lejátszók számára nem érhető el videófolyamok + Válasszon minőséget a külső lejátszókhoz Ismeretlen formátum Ismeretlen minőség Félhang @@ -720,11 +692,11 @@ A kiszürkített lejátszólisták már tartalmazzák ezt az elemet. Állandó bélyegkép feloldása Ismétlődések eltávolítása - Végignézve - Részben megnézve + Teljesen megtekintett + Részben megtekintett Kártya Ez a beállítás csak a(z) %s téma esetén érhető el - Hardveresmédiagomb-események figyelmen kívül hagyása + Hardveres médialejátszó gombok eseményeinek figyelmen kívül hagyása A következő közvetítések megjelenítése Az eredeti hangsáv választása, a nyelvtől függetlenül A látássérülteknek szóló leírást tartalmazó hangsáv választása, ha van ilyen @@ -741,9 +713,7 @@ Az ExoPlayer dekódoló tartalék funkciójának használata 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. Kerülőmegoldás: mindig az ExoPlayer videokimeneti felületének használata - 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. + 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 %1$s %2$s szinkronizált leíró @@ -757,18 +727,18 @@ Eltávolítja az összes ismétlődő közvetítést ebből a lejátszólistáról\? eredeti Kezdőlap pozíciója - 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. + 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. Kezdőlapválasztó alulra helyezése Nincs élő közvetítés Nincs adatfolyam 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. Csatornalapok lekérése - 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. + 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. Miniatűrök - Feltöltő avatarjai - Alcsatorna avatarok - Avatarok - Bannerek + Feltöltő profilképei + Alcsatorna profilképei + Profilképek + Borítóképek Feliratkozók Csatornák Lejátszási listák @@ -777,13 +747,13 @@ Csatorna fülek Milyen lapok jelennek meg a csatornaoldalakon Lejátszási sor megnyitása - Képernyő tájolásának váltása - Teljes képernyőre váltás + Képernyő tájolás be/ki + Teljes képernyő be/ki Következő közvetítés Előző közvetítés Lejátszás Visszajátszás - További opciók + További lehetőségek Időtartam Visszatekerés Előre @@ -808,7 +778,7 @@ Webcímlista megosztása - %1$s: %2$s Videók - Dalok + Zeneszámok Rövidek Élő Nincs elég szabad hely az eszközön @@ -822,6 +792,14 @@ 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? - 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. + 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. másodlagos + Megosztás YouTube ideiglenes lejátszási listaként + Lejátszási listák + Válasszon ki egy hírfolyamcsoportot + Még nincs létrehozott hírfolyamcsoport + Csatornacsoport-oldal + Keresés %1$s + Keresés %1$s (%2$s) + Kedvelések diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 4117e3a18..4d269251b 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -417,7 +417,6 @@ %s pendengar - Bahasa yang diubah akan diterapkan setelah aplikasi dimulai ulang Situs PeerTube Pilih situs PeerTube favorit Anda Temukan situs yang Anda suka di %s @@ -809,4 +808,9 @@ Cadangkan dan pulihkan 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. sekunder + Daftar putar + Daftar putar + Halaman grup saluran + Belum ada grup umpan yang dibuat + Pilih grup umpan diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index c5d5d02c6..7bef3712e 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -268,7 +268,6 @@ Nýlega spilað Mest spilað Aðalsíða - Tungumálið breytist þegar forritið er endurræst Flutt út Flutt inn Staðbundið @@ -802,4 +801,6 @@ Sýna villustiku 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 auka + Deila sem YouTube-bráðabirgðaspilunarlista + Spilunarlistar diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 6767f8572..5601cead2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -427,7 +427,6 @@ %s ascoltatori %s ascoltatori - La lingua verrà cambiata al riavvio dell\'applicazione Contenuti in evidenza predefiniti Durata avanzamento e riavvolgimento rapidi Istanze PeerTube @@ -837,4 +836,12 @@ \nVuoi attivarlo? 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. secondaria + Condividi come playlist YouTube temporanea + Playlist + Seleziona un gruppo di feed + Ancora nessun gruppo di feed creato + Pagina gruppo canali + Cerca %1$s (%2$s) + Cerca su %1$s + Mi piace diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 64e415559..a1f1a4c77 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -418,7 +418,6 @@ %s 人が聴取中 - アプリを再起動すると、言語が変更されます 高速早送り/巻き戻し間隔 PeerTube インスタンス PeerTube インスタンスを選択する @@ -808,4 +807,6 @@ \n \n続行しますか? インポートされているエクスポートの設定は、NewPipe 0.27.0以降は非推奨であった脆弱な形式を使用します。 インポートされているエクスポートは信頼できる情報源からであり、将来的にはNewPipe 0.27.0かこれより新しいバージョンから得られるエクスポートのみを優先して使用します。 この脆弱な形式で設定をインポートするための対応はすぐに完全に削除され、新しいバージョンからエクスポートの設定をインポートすることは出来ません。 + YouTubeの一時的なプレイリストとして共有 + 二次的 diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index fd0b3f2ab..1120673d9 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -333,7 +333,6 @@ გაფრთხილება: ყველა ფაილის იმპორტი ვერ მოხერხდა. ეს უგულებელყოფს თქვენს მიმდინარე პარამეტრს. კომენტარების ჩატვირთვა ვერ მოხერხდა - ენა შეიცვლება აპის გადატვირთვის შემდეგ ტრენდული ტოპ 50 ახალი და ცხელი diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index eccaaccb9..97476fc46 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -1,7 +1,7 @@ - Tavidyutt akked d imesli - Γef + Avidyu akked d imesli + Ɣef & ISTEQSIYEN Amaynut Akk Sbedd asnas n Kore yexxuṣen\? @@ -90,7 +90,7 @@ Iseqdacen Sfeḍ isefka Ulac - Aḍris yettwanγel γef afus + Yettwanɣel ɣef afus Tibdarin n tɣuri Aneggaru yettwaslekmen Taɣuri tawurmant @@ -116,7 +116,7 @@ Beqqeḍ iwenniten Ameɣri Isaragen - Isedγiten + Ileqman Asentel Ubrik Bḍu @@ -131,7 +131,7 @@ o Aɣawas n deffir Amazray - Asteεfu + yesteɛfay Snifel isem Tividyutin Ldi deg uminig @@ -224,4 +224,5 @@ Amaṭṭaf Tibzimin Asebter d ilem - \ No newline at end of file + Iɣewwaṛen n ExoPlayer + diff --git a/app/src/main/res/values-kmr/strings.xml b/app/src/main/res/values-kmr/strings.xml index 9f19ced10..b5e5235d5 100644 --- a/app/src/main/res/values-kmr/strings.xml +++ b/app/src/main/res/values-kmr/strings.xml @@ -139,7 +139,6 @@ Pel hate jêbirin Betal bike Çareseriya çêtirîn - Gava ku sepanê ji nû ve dest pê kir dê ziman biguhere. Ouldîrove nehat barkirin Ma hûn dixwazin mîhengan jî îthal bikin\? Ev ê sazkirina xweya heyî ji holê rabike. diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 0bd08a5e4..22a1bd63c 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -418,7 +418,6 @@ %s명 청취중 - 앱이 다시 시작되면 언어가 변경됩니다 빠른-감기/되감기 찾는 시간 피어튜브 인스턴스 선호하는 PeerTube 인스턴스 선택 diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index 4b4c6f2c9..2f3934fff 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -398,7 +398,6 @@ فایلێک بەهەمان ناو هەیە فایلێکی دابەزێنراو بەم ناوەوە هەیە ناتوانرێ لەسەر ئەو فایلە جێگیربکرێ - زمان دەگۆڕدرێ لەدوای داخستن و پاشان کردنەوەی ئەپ. پەڕەی بنەڕەتی ماوەی خێرا بردنە پێشەوە\\ گێڕانەوە بۆ دواوە دۆخی پێرتووبی diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 40fe8e8ad..75c05a0cb 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -6,7 +6,7 @@ Įdiegti Atšaukti Atverti naršyklėje - Atverti iššokančio lango rėžime + Atverti iššokančio lango režime Dalintis Atsisiųsti Paieška @@ -494,7 +494,6 @@ Labiausiai patikę Nesenai pridėta Vietinė - Kalba pasikeis paleidus programą iš naujo Komentarų įkelti nepavyko Ar norite importuoti nustatymus\? Kol kas nėra grojaraščio žymų @@ -836,4 +835,7 @@ \n%2$s \? - %1$s: %2$s + Grojaraščiai + Antrinis + Dalintis kaip laikinuoju youtube grojaraščiu diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 9d99c14d6..1da203ceb 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -272,7 +272,6 @@ Atrodiet instances, kas jums patīk ar %s Izvēlaties jūsu mīļākās PeerTube instances PeerTube serveri (instances) - Valoda nomainīsies, kad aplikāciju restartēs Neviena lietotne jūsu ierīcē nevar šo atvērt Nodaļas Jaunākie @@ -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. - 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 + 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 Noklusējuma darbība, kad atver saturu — %s Pakalpojumu oriģinālteksti būs redzami video vienumos Pēc izdzēšanas, piespiedu kārtā ziņot par nepiegādātiem Rx izņēmumiem, ārpus fragmenta vai darbības dzīves cikla @@ -527,7 +526,7 @@ Atvērt pārlūkā Atcelt Uzstādīt - Netika atrasts video atskaņotājs (jūs varat uzstādīt VLC, lai to atskaņotu). + Netika atrasts video atskaņotājs (jūs variet uzstādīt VLC, lai to atskaņotu). Netika atrasts video atskaņotājs. Uzstādīt VLC? Publicēts %1$s Nospiediet uz meklēšanas ikonas, lai sāktu. @@ -560,7 +559,7 @@ Video lejupielādes mape Pievienot Fonā - Izvēlieties Cilni + Atlasiet cilni Saglabātie saraksti Abonementi Rādīt informāciju @@ -574,11 +573,11 @@ Noņem skaņu dažās izšķirtspējās Izmantot ārējo video atskaņotāju Kopīgot ar - Tiek rādīti rezultāti priekš: %s + Tiek rādīti %s rezultāti Vai jūs domājāt \"%1$s\"\? Iestatījumi Meklēt - Lejupielādēt video failu + Lejupielādēt video datni Lejupielādēt Populāri Lejupielāde ir sākusies @@ -643,7 +642,7 @@ Privātums Sarakstā neiekļauts Uzņēmums - Attālinātie meklēšanas ieteikumi + Servera meklēšanas ieteikumi Atzīmēt kā skatītu Apstrādā... Var aizņemt kādu laiku @@ -826,4 +825,7 @@ Kopīgot nosaukumus 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. Š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 - \ No newline at end of file + Atskaņošanas saraksti + Kopīgot kā pagaidu YouTube atskaņošanas sarakstu + sekundārais + diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index ba41b730b..1d3183b10 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -685,7 +685,6 @@ %s нови стримови Ве молиме, проверете дали веќе има дискусија за проблем како овој. Создадените дупликати ни одземаат од времето, коешто можеме да го посветиме на поправање на проблемот. - Јазикот ќе се смени откако апликацијата ќе биде рестартирана Додај го во редослед следното Нема гледачи Готово diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index c6191ca7b..986c427c8 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -81,7 +81,6 @@ പുതിയതും ചൂടേറിയതും മികച്ച 50 ട്രെൻഡിങ്ങ് - അപ്ലിക്കേഷൻ പുനരാരംഭിച്ചുകഴിഞ്ഞാൽ ഭാഷ മാറും കമെന്റുകൾ ലോഡുചെയ്യാനായില്ല ക്രമീകരണങ്ങളും ഇമ്പോർട്ടുചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ\? ഇത് നിങ്ങളുടെ നിലവിലെ സജ്ജീകരണത്തെ അസാധുവാക്കും. diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 9e3916607..e4a67bb9b 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -422,7 +422,6 @@ %s lytter %s lyttere - Språket vil endres etter at appen har startet på nytt Standard kiosk PeerTube-instanser Lokal diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 679b10846..dd570b82e 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -416,7 +416,6 @@ %s श्रोता %s श्रोताहरु - भाषा परिवर्तन एप पून:सुरु हुदा लागु हुनेछ। पूर्वनिर्धारित किओस्क (Kiosk) छिटो-अगाडि /-पछाडी खोज्न अवधि PeerTube उदाहरणहरू diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index d96dc0694..fbbb38bc0 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -486,7 +486,6 @@ Meest leuk gevonden Recent toegevoegd Lokaal - De taal zal veranderen zodra de app opnieuw is opgestart Geen afspeellijst bladwijzers Selecteer een afspeellijst Standaard kiosk @@ -551,7 +550,7 @@ Shuffle Herhaal Je kan maximaal drie acties selecteren om te tonen in de compacte notificatie! - 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 + 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. Vijfde actie knop Vierde actie knop Derde actie knop @@ -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. Zet uit om videobeschrijving en extra informatie te verbergen Toon beschrijving - Nacht Thema + Nacht thema Open met Featured Deze inhoud is privé, waardoor het niet kan worden gestreamd of gedownload door NewPipe. @@ -628,4 +627,14 @@ Meldingen om fouten te rapporteren Verwerken... Dit kan even duren LeakCanary is niet beschikbaar + Verander de intervalgrootte voor het laden van progressieve inhoud (momenteel %s). Een lagere waarde kan het initiële laden versnellen + Afspeellijsten + 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. + Intervalgrootte voor afspelen laden + Ja + Nee + Handig, bijvoorbeeld, als je een hoofdtelefoon gebruikte met kapotte fysieke knoppen + Verkies beschrijvende audio + Verkies originele audio + Selecteer het oorspronkelijke audiospoor, ongeacht de taal diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 00f095e39..c676dacb9 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -59,7 +59,7 @@ Video Geluid Opnieuw proberen - Druk op het vergrootglas om te beginnen. + Tik op het vergrootglas om te beginnen. Live Downloads Downloads @@ -68,7 +68,7 @@ Wat:\\nVerzoek:\\nInhoudstaal:\\nInhoudsland:\\nApp-taal:\\nDienst:\\nGMT-tijd:\\nPakket:\\nVersie:\\nVersie van besturingssysteem: Starten Pauzeren - Verwijderen + Verwijderen Controlesom Oké Bestandsnaam @@ -420,7 +420,6 @@ %s luisteraar %s luisteraars - De taal zal veranderen zodra de app opnieuw is opgestart Standaard kiosk Duur voor-/achteruit spoelen PeerTube-instanties @@ -823,4 +822,9 @@ Instellingen resetten 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. secundair + Delen als tijdelijke YouTube-afspeel­lijst + Afspeel­lijsten + Selecteer een feedgroep + Kanaalgroep­pagina + Nog geen feedgroep geselecteerd diff --git a/app/src/main/res/values-nqo/strings.xml b/app/src/main/res/values-nqo/strings.xml index e0b812410..b2a536b5d 100644 --- a/app/src/main/res/values-nqo/strings.xml +++ b/app/src/main/res/values-nqo/strings.xml @@ -408,7 +408,6 @@ ߖߊ߲߬ߕߏ߬ߒߘߐ: ߞߐߕߐ߮ ߟߎ߬ ߓߍ߯ ߕߍ߫ ߛߋ߫ ߟߊߛߣߍ߫ ߟߊ߫. ߕߏߟߏ߲߫ ߛߙߍߘߍ ߘߏ߫ ߛߎߥߊ߲ߘߌ߫ ߕߏߟߏ߲߫ ߛߙߍߘߍ߫ ߟߊߞߎ߲߬ߘߎ߬ߣߍ߲߬ ߕߍ߫ ߝߟߐ߫ - ߞߊ߲ ߘߌߣߊ߬ ߡߊߝߊ߬ߟߋ߲߬ ߣߌ߫ ߟߥߊߟߌߟߊ߲ ߣߊ߬ ߘߊ߫ ߘߐߟߥߌ߬ ߛߊ߲ߞߊߥߟߌ ߟߎ߬ ߞߊ߲߬ߞߎߡߊ ߟߎ߬ ߕߍ߫ ߛߋ߫ ߟߊ߫ ߖߛߐ߫ ߟߊ߫ ߘߌ߲߬ߞߌ߬ߙߊ߬ߡߊ diff --git a/app/src/main/res/values-or/strings.xml b/app/src/main/res/values-or/strings.xml index 92e6cff37..ba1160bb7 100644 --- a/app/src/main/res/values-or/strings.xml +++ b/app/src/main/res/values-or/strings.xml @@ -62,7 +62,6 @@ ଇତିହାସ ବିଲୋପ ଦେଖନ୍ତୁ ପ୍ଲେକ୍ ପୋଜିସନ୍ ଡିଲିଟ୍ ହୋଇଛି ସନ୍ଧାନ ଇତିହାସ ବିଲୋପ ହେଲା - ଆପ୍ ପୁନଃଆରମ୍ଭ ହେବା ପରେ ଭାଷା ପରିବର୍ତ୍ତନ ହେବ ପ୍ଲେଲିଷ୍ଟ ଥମ୍ବନେଲ ଭାବରେ ସେଟ୍ କରନ୍ତୁ ଫାଇଲ୍ କୁ ନବଲିଖନ କରିପାରିବ ନାହିଁ ଫାଇଲ୍ ସୃଷ୍ଟି ହୋଇପାରିବ ନାହିଁ diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index 3d3975251..946fd7ea5 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -159,7 +159,7 @@ ਕੋਈ ਸਬਸਕ੍ਰਾਈਬਰ ਨਹੀਂ %s ਸਬਸਕ੍ਰਾਈਬਰ - %s ਸਬਸਕ੍ਰਾਈਬਰ + %s ਸਬਸਕ੍ਰਾਈਬਰਸ ਕੋਈ ਵਿਊ ਨਹੀਂ @@ -540,7 +540,6 @@ ਵਧੇਰੇ ਪਸੰਦ ਕੀਤੇ ਗਏ ਹਾਲ ਹੀ ਵਿੱਚ ਸ਼ਾਮਿਲ ਸਥਾਨਕ - ਭਾਸ਼ਾ ਐਪ ਨੂੰ ਦੋਬਾਰਾ ਚਲਾਉਣ \'ਤੇ ਬਦਲੇਗੀ ਪਲੇਲਿਸਟ ਚੁਣੋ ਹੋ ਗਿਆ ਹੱਲ ਕਰੋ @@ -613,8 +612,8 @@ ਆਨ , - ਡਾਉਨਲੋਡ ਮੁਕੰਮਲ - %s ਡਾਉਨਲੋਡ ਮੁਕੰਮਲ + %s ਡਾਉਨਲੋਡ ਮੁਕੰਮਲ + %s ਡਾਊਨਲੋਡਾਂ ਮੁਕੰਮਲ ਆਫ ਕਤਾਰ ਵਿੱਚ ਅੱਗੇ ਸ਼ਾਮਿਲ ਕਰੋ @@ -823,4 +822,6 @@ ਨਹੀਂ ਇੰਪੋਰਟ ਕੀਤੇ ਜਾ ਰਹੇ ਐਕਸਪੋਰਟ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਇੱਕ ਕਮਜ਼ੋਰ ਫਾਰਮੈਟ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ ਜੋ ਨਿਊਪਾਈਪ 0.27.0 ਤੋਂ ਬਰਤਰਫ਼ ਕੀਤਾ ਗਿਆ ਸੀ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਇੰਪੋਰਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਨਿਰਯਾਤ ਇੱਕ ਭਰੋਸੇਯੋਗ ਸਰੋਤ ਤੋਂ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਨਿਊਪਾਈਪ 0.27.0 ਜਾਂ ਇਸਤੋਂ ਨਵੇਂ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਐਕਸਪੋਰਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨੂੰ ਤਰਜੀਹ ਦਿਓ। ਇਸ ਕਮਜ਼ੋਰ ਫਾਰਮੈਟ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਨੂੰ ਆਯਾਤ ਕਰਨ ਲਈ ਸਮਰਥਨ ਜਲਦੀ ਹੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ ਅਤੇ ਫਿਰ ਨਿਊਪਾਈਪ ਦੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣ ਹੁਣ ਨਵੇਂ ਸੰਸਕਰਣਾਂ ਤੋਂ ਐਕਸਪੋਰਟ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਣਗੇ। ਸੈਕੰਡਰੀ + ਟੈਂਪਰੇਰੀ ਯੂਟਿਊਬ ਪਲੇਲਿਸਟ ਵੱਜੋਂ ਸ਼ੇਅਰ ਕਰੋ + ਪਲੇਲਿਸਟਾਂ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index e260cc887..39358eb4a 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -432,7 +432,6 @@ %s słuchaczy %s słuchaczy - Język zmieni się po ponownym uruchomieniu aplikacji Wielkość skoku przy przewijaniu Serwery PeerTube Wybierz swoje ulubione serwery PeerTube @@ -846,4 +845,12 @@ \nCzy chcesz to włączyć? 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. dodatkowa + Udostępnij jako tymczasową playlistę YouTube + Playlisty + Wybierz grupę kanałów + Strona grupy kanałów + Nie utworzono jeszcze grupy kanałów + Szukaj %1$s + Szukaj %1$s (%2$s) + Polubienia diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index e88e27a18..bb16416c9 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -76,7 +76,7 @@ O site não pôde ser analisado Áudio Reproduzir no Kodi - Pesquisar + Buscar Mostrar opção para reproduzir o vídeo no Kodi Usar player de áudio externo Usar player de vídeo externo @@ -101,7 +101,7 @@ Lembrar propriedades do Popup Lembrar último tamanho e posição do Popup Remove áudio em algumas resoluções - Sugestões de pesquisa + Sugestões de busca Escolha as sugestões a serem exibidas enquanto estiver buscando Melhor resolução Licenças de Terceiros @@ -111,7 +111,7 @@ Ver no GitHub Licença do NewPipe 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! - Ler licença + Ver licença Colaborar © %1$s %2$s protegido pela licença %3$s Sobre o NewPipe @@ -129,9 +129,9 @@ Inscrições Novidades Continuar reprodução - Continua vídeo após interrupções (ex: ligações) - Histórico de pesquisa - Armazena o histórico de pesquisa localmente + Continuar a reprodução após interrupções (por exemplo, chamadas telefônicas) + Histórico de busca + Armazena o histórico de busca localmente Histórico de exibição Mantenha o controle dos vídeos assistidos Histórico @@ -163,7 +163,7 @@ Player Nada aqui além de grilos Deseja excluir este item do histórico de busca\? - Conteúdo da página inicial + Conteúdo da tela inicial Página em branco Página do Kiosk Página do canal @@ -186,7 +186,7 @@ [Desconhecido] Reproduzir em segundo plano Reproduzir em um Popup - Doar + Fazer doação 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é. Retribuir Site oficial @@ -208,7 +208,7 @@ Carregando conteúdo solicitado Importar base de dados Exportar base de dados - Substitui seu histórico atual, inscrições, playlists e (opcionalmente) configurações + Substitui seu histórico atual, inscrições, playlists e configurações (opcional) Exporta histórico, inscrições, playlists e configurações Exportado Importado @@ -291,7 +291,7 @@ Velocidade Afinação Desvincular (pode causar distorção) - Ação de \'abrir\' preferida + Ação preferida ao tocar em \'Abrir\' Ação padrão ao abrir conteúdo — %s Nenhum vídeo disponível para download Abrir gaveta @@ -302,10 +302,10 @@ Remove o histórico de vídeos assistidos e as posições de reprodução Remover todo o histórico de exibição? Histórico de exibição removido - Remover histórico de pesquisas - Remove o histórico de pesquisas - Remover todo o histórico de pesquisas? - Histórico de pesquisa removido + Remover histórico de buscas + Remove o histórico de buscas + Remover todo o histórico de buscas? + Histórico de busca removido 1 item excluído. 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. Você também quer importar as configurações? @@ -341,7 +341,7 @@ Notificações para novas versões do NewPipe Armazenamento externo indisponível Não é possível baixar para o cartão SD externo. Redefinir o local da pasta de download\? - Não foi possível ler as guias salvas, portanto, usamos as guias padrão + Não foi possível carregar as guias salvas, portanto, usamos as guias padrão Restaurar configurações Deseja restaurar os padrões? Número de inscritos indisponível @@ -428,7 +428,6 @@ %s ouvintes %s ouvintes - O idioma será alterado após reiniciar o aplicativo Duração de avanço/retrocesso rápido Instâncias PeerTube Selecione suas instâncias favoritas do PeerTube @@ -554,7 +553,7 @@ Nada Repetir Você pode selecionar até no máximo três botões para mostrar na notificação compacta! - 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. + 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. Quinto botão de ação Quarto botão de ação Terceiro botão de ação @@ -577,7 +576,7 @@ Calculando hash Notificações sobre o progresso do hashing de vídeo Notificar hash de vídeo - 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 + 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 Mostrar informação de metadados Recente Capítulos @@ -638,9 +637,9 @@ Ativado Modo tablet Não mostrar - Baixa qualidade (pior) + Baixa qualidade (menor) Alta qualidade (melhor) - Pré visualização da miniatura da barra de busca + Pré visualização da miniatura na barra de busca Os comentários estão desabilitados Marcar como assistido Curtido pelo criador @@ -658,7 +657,7 @@ Enfileira a próxima Deslize os itens para remove-los 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 - Iniciar player principal em tela cheia + Iniciar reprodução principal em tela cheia Sugestões de busca remotas Sugestões de busca locais Processando… Pode demorar um pouco @@ -715,7 +714,7 @@ Formato desconhecido Qualidade desconhecida Tamanho do intervalo de carregamento da reprodução - Visualizar no site + Ver no site Se você está com problemas ao usar o aplicativo, confira estas respostas para perguntas comuns! Perguntas frequentes Classificar @@ -729,7 +728,7 @@ Falha ao copiar para a área de transferência Duplicata adicionada %d vez(es) As playlists em cinza já contêm este item. - Ignorar eventos de botão de mídia de hardware + Ignorar eventos de botões físicos (hardware) Útil, por exemplo, se você estiver usando um fone de ouvido com botões físicos quebrados Remover duplicados Remover duplicados\? @@ -838,4 +837,8 @@ \nTem certeza de que deseja continuar? 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. secundário + Playlists + Selecione um grupo de feeds + Nenhum grupo de feeds criado ainda + Página do grupo do canal diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 15c174cd8..3a7bee5dc 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -527,7 +527,6 @@ Modificar escala de legendas e estilo de fundo. Tem que reiniciar a aplicação para aplicar as alterações Ação recusada pelo sistema Músicas - O idioma será alterado assim que reiniciar a app Adicionar instância Faixas Reproduzir no Kodi @@ -837,4 +836,9 @@ Não há espaço suficiente no aparelho 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. secundário + Partilhar como lista de reprodução temporária do YouTube + Listas de reprodução + Selecione um grupo de feeds + Ainda nenhum grupo de feeds criado + Página do grupo do canal diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 6d53e9fd9..3c54d11c3 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -281,7 +281,7 @@ Limpar histórico de visualizações Continuar (sem repetição) a fila de reprodução anexando um vídeo relacionado Mostrar dica \"Toque longo para colocar na fila\" - Mostrar dica ao premir em segundo plano ou no botão \"Detalhes\" da janela popup: + Mostrar dica ao premir em segundo plano ou no botão \"Detalhes:\" da janela popup Canais Listas de reprodução Faixas @@ -428,7 +428,6 @@ %s ouvintes %s ouvintes - O idioma será alterado assim que reiniciar a aplicação Duração de avanço/recuo rápido Instâncias PeerTube Defina as suas instâncias PeerTube preferidas @@ -652,7 +651,7 @@ %1$s descargas eliminadas - Descarga concluída + %s descarga concluída %s descargas concluídas %s descargas concluídas @@ -837,4 +836,9 @@ \nDeseja ativar essa opção? 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. secundário + Partilhar como lista de reprodução temporária do YouTube + Listas de reprodução + Selecione um grupo de feeds + Ainda nenhum grupo de feeds criado + Página do grupo do canal diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 5b1238b0c..eefdaad48 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -559,7 +559,6 @@ Cele mai apreciate Adăugate recent Local - Limba se va schimba odată ce aplicația este repornită Nu există încă marcaje în playlist Selectați un playlist Chioșc implicit @@ -837,4 +836,7 @@ \nSigur doriți să continuați? 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. secundar + Distribuie ca listă de redare temporară YouTube + Liste de redare + Pagina grupului de canale diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a212d9888..0312466be 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -221,7 +221,7 @@ Загрузка запрошенного контента Скачать файл трансляции Показать сведения - Плейлисты + Плейлисты в закладках В плейлист Быстрый поиск позиции Выполняется быстрее, но менее точно. Не работает для перемотки на 5, 15 или 25 секунд @@ -434,7 +434,6 @@ %s слушателя %s слушателей - Язык будет изменён после перезапуска Шаг перемотки Серверы PeerTube Выберите предпочтительные серверы @@ -842,4 +841,9 @@ \nВы уверены, что хотите продолжить? Настройки в импортируемом экспорте используют уязвимый формат, который устарел с версии NewPipe 0.27.0. Убедитесь, что импортируемый экспорт получен из надёжного источника, и в будущем предпочтительнее использовать только экспорт, полученный из NewPipe 0.27.0 или новее. Поддержка импорта настроек в этом уязвимом формате скоро будет полностью удалена, и тогда старые версии NewPipe больше не смогут импортировать настройки из экспорта из новых версий. вторичный + Поделиться как временным плейлистом YouTube + Плейлисты + Страница группы каналов + Выберите группу кормов + Группа кормов еще не создана diff --git a/app/src/main/res/values-ryu/strings.xml b/app/src/main/res/values-ryu/strings.xml index 1a1383015..53b1df7ec 100644 --- a/app/src/main/res/values-ryu/strings.xml +++ b/app/src/main/res/values-ryu/strings.xml @@ -423,7 +423,6 @@ %sんかいんがちょうしゅちゅう %sんかいんがちょうしゅちゅう - アプリさいきちゃーしーねー、ぎんぐがへいるかんさりやびーん こうすくはやうくい/まきむどぅしかんかく PeerTubeインスタンス PeerTubeインスタンスさんたくすん diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index c1a5aacca..4fe7f0787 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -519,7 +519,6 @@ ᱢᱤᱫ ᱯᱷᱟᱤᱞᱤᱥᱴ ᱵᱟᱪᱷᱟᱣ ᱢᱮ ᱤᱢᱯᱳᱨᱴ ᱱᱤᱛ ᱦᱟᱹᱵᱤᱡ playlist bookmarks ᱵᱟᱹᱱᱩᱜᱼᱟ - ᱮᱯ ᱮᱦᱚᱵ ᱞᱮᱠᱷᱟᱱ ᱯᱟᱹᱨᱥᱤ ᱵᱚᱫᱚᱞᱚᱜ-ᱟ ᱮᱥᱯᱟᱨᱴ ᱟᱠᱟᱱᱟ ᱴᱨᱮᱱᱰᱤᱝ ᱚᱰᱤᱭᱳ ᱥᱮᱴᱤᱝ diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index fc3558ea3..8d9a36f13 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -66,7 +66,6 @@ Noos e Populares Sos mègius 50 Tendèntzias - Sa limba at a mudare a pustis chi as a torrare a allùghere s\'aplicatzione Carrigamentu de sos cummentos fallidu Cheres fintzas importare sas impostatziones\? Custu at a subraiscrìere sas impostatziones tuas de como. @@ -822,4 +821,7 @@ \n \nSes seguru de bòlere sighire? 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. + Iscalitas + Cumpartzi comente un\'iscalita temporànea de YouTube + segundàriu diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 88f1b13f5..d0b30b932 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -428,7 +428,6 @@ %s poslucháči %s poslucháčov - Zmena jazyka sa prejaví po reštarte aplikácie Dĺžka rýchleho pretáčania Inštancie PeerTube Vyberte si svoje obľúbené inštancie PeerTube @@ -837,4 +836,12 @@ \nChcete to povoliť? 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í. sekundárny + Zdieľať ako dočasný playlist YouTube + Playlisty + Vybrať skupinu kanálov + Skupina kanálov zatiaľ nie je vytvorená + Stránka skupiny kanálov + Hľadať %1$s (%2$s) + Hľadať %1$s + Páči sa diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index b0fcec406..cd41b43ba 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -253,7 +253,6 @@ Najbolj všečkan Dodano nedolgo nazaj Lokalno - Jezik bo spremenjen ob ponovnem zagonu aplikacije Ni mogoče naložiti komentarjev Ni veljavne ZIP datoteke Uvoženo diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index 7577cfba9..4730785fa 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -139,7 +139,6 @@ Shiddan Cusub oo Shiddan 50ka Sare - Luuqadu waxay isbaddali doontaa marka appka dib loo soo kiciyo Faallooyinka lama soo kicin karo Inaad sidoo kale fadhiga soo galiso ma rabtaa\? Tani waxay baddali fadhiga siduu kuu yahay hadda. diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 873234e23..162ba5ada 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -207,7 +207,6 @@ Të rejat dhe të nxehtat Top 50 E trendit - Gjuha do të ndryshojë sapo aplikacioni të riniset Nuk mundën të ngarkohen komentet A dëshironi që të importoni dhe aranzhimet gjithashtu\? Kjo do të mbishkruajë strukturimin tuaj të tanishëm. diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index e212a480b..fd245ffc4 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -1,7 +1,7 @@ Објављено %1$s - Нема плејера стримова. Инсталирати VLC\? + Нема извођача довода. Да ли уградити ВЛЦ? Инсталирај Откажи Отвори у прегледачу @@ -60,7 +60,7 @@ Аудио снимак Покушај поново Уживо - Додирните лупу да бисте започели. + Додирните лупу ради почетка. Почни Паузирај Избриши @@ -86,7 +86,7 @@ хиљ. мил. млрд. - Отвори у искачућем режиму + Отвори у искачућем облику Ова дозвола је потребна за \nотварање у искачућем режиму Пуштање у режиму искачућег прозора @@ -181,7 +181,7 @@ Уклони Детаљи Подешавања аудио снимка - Није пронађен ниједан плејер стримова (можете инсталирати VLC да бисте га покренули). + Није пронађен ниједан извођач довода (можете уградити ВЛЦ ради извођења садржаја). Преузимање фајла стрима Прикажи информације Обележене плејлисте @@ -368,7 +368,6 @@ Највише свиђања Недавно додато Локално - Језик ће бити промењен након рестартовања апликације Није могуће учитати коментаре Желите ли да увезете и подешавања\? Ово ће заменити ваше тренутно подешавање. @@ -376,8 +375,8 @@ Нема важећег ZIP фајла Увезено Извезено - Још нема обележивача на листи - Изаберите листу пуштања + Још нема обележивача плејлисте + Изаберите плејлисту Подразумевани киоск Које картице се приказују на главној страници Највише пуштано @@ -411,7 +410,7 @@ Нико не гледа Број пратилаца није доступан - Изабери услугу, тренутно изабрана: + Изаберите услугу, тренутно изабрана: Превуците за преуређивање Опис Коментари @@ -515,7 +514,7 @@ Мешање Понављање Можете да изаберете највише три радње за приказ у компактном обавештењу! - Измените сваку радњу обавештења додиром на њу. Означите до три радње које ће се приказивати у компактном обавештењу помоћу поља за потврду са десне стране + Измените сваку радњу обавештења додиром на њу. Означите до три радње које ће се приказивати у компактном обавештењу помоћу поља за потврду са десне стране. Дугме пете радње Дугме четврте радње Дугме треће радње @@ -837,4 +836,10 @@ \nЖелите ли да омогућите ово? Подешавања у извозу који се увозе користе рањив формат који је застарео од NewPipe верзије 0.27.0. Уверите се да извоз који се увози долази из поузданог извора и радије користите само извозе добијене из NewPipe 0.27.0 или новије верзије, у будућности. Подршка за увоз подешавања у овом рањивом формату ће ускоро бити потпуно уклоњена и тада старе NewPipe верзије више неће моћи да увозе подешавања извоза из нових верзија. секундарни + Дели као YouTube привремену плејлисту + Плејлисте + Још није направљена ниједна група фидова + Изаберите групу фидова + Страница групе канала + Ликовања diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index de74c27f7..9b3efa1fc 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -436,7 +436,6 @@ Lokala Klar Slå på YouTubes \"Begränsat läge\" - Språket ändras när appen startas om Det gick inte att läsa in kommentarerna Inaktivera snabbläge Aktivera snabbläge @@ -823,4 +822,9 @@ \nÄr du säker på att du vill fortsätta? Inställningarna i exporten som importeras använder ett sårbart format som fasades ut i NewPipe 0.27.0. Se till att exporten som importeras är från en betrodd källa, och överväg att endast använda exporter som erhållits från NewPipe 0.27.0 eller nyare i framtiden. Stöd för import av inställningar från detta sårbara format kommer snart att tas bort helt, och sedan kommer gamla versioner av NewPipe inte att kunna importera inställningar av exporter från nya versioner längre. sekundär + Dela som YouTube temporär spellista + Spellistor + Välj en flödesgrupp + Ingen flödesgrupp har skapats ännu + Kanalgruppsida diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 0056f7416..906249376 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -145,8 +145,8 @@ %s பார்வைகள் - %sகாணொளிகள் - %sகாணொளிகள் + %s காணொளி + %s காணொளிகள் முதற்பக்கத்துக்கு மாற்று எந்த காணொலியும் இல்லை @@ -459,7 +459,7 @@ அண்மைக் கால பாடங்கள் அகவை வரம்பு - கூகிள் டேக்அவுட்டிலிருந்து YouTube சந்தாக்களை இறக்குமதி செய்க:\n\n 1. இந்த முகவரி க்குச் செல்லுங்கள்: %1$s\n 2. கேட்டபோது உள்நுழைக\n 3. \"அனைத்து தரவுகளும் சேர்க்கப்பட்டுள்ளன\" என்பதைக் சொடுக்கு செய்க, பின்னர் \"அனைத்தையும் தேர்வு செய்யுங்கள்\", பின்னர் \"சந்தாக்கள்\" மட்டுமே தேர்ந்தெடுத்து \"சரி\" என்பதைக் சொடுக்கு செய்க\n 4. \"அடுத்த படி\" என்பதைக் சொடுக்கு செய்து, பின்னர் \"ஏற்றுமதி உருவாக்கு\"\n 5. \"பதிவிறக்கு\" பொத்தானைக் சொடுக்கு செய்த பிறகு சொடுக்கு செய்க\n 6. கீழே உள்ள இறக்குமதி கோப்பைக் சொடுக்கு செய்து பதிவிறக்கம் செய்யப்பட்ட .zip கோப்பைத் தேர்ந்தெடுக்கவும்\n 7. + கூகிள் டேக்அவுட்டிலிருந்து YouTube சந்தாக்களை இறக்குமதி செய்க:\n\n 1. இந்த முகவரி க்குச் செல்லுங்கள்: %1$s\n 2. கேட்டபோது உள்நுழைக\n 3. \"அனைத்து தரவுகளும் சேர்க்கப்பட்டுள்ளன\" என்பதைக் சொடுக்கு செய்க, பின்னர் \"அனைத்தையும் தேர்வு செய்யுங்கள்\", பின்னர் \"சந்தாக்கள்\" மட்டுமே தேர்ந்தெடுத்து \"சரி\" என்பதைக் சொடுக்கு செய்க\n 4. \"அடுத்த படி\" என்பதைக் சொடுக்கு செய்து, பின்னர் \"ஏற்றுமதி உருவாக்கு\"\n 5. \"பதிவிறக்கு\" பொத்தானைக் சொடுக்கு செய்த பிறகு சொடுக்கு செய்க\n 6. கீழே உள்ள இறக்குமதி கோப்பைக் சொடுக்கு செய்து பதிவிறக்கம் செய்யப்பட்ட .zip கோப்பைத் தேர்ந்தெடுக்கவும்\n 7.[.zip இறக்குமதி தோல்வியடைந்தால்] .csv கோப்பை பிரித்தெடுக்கவும் (வழக்கமாக \"YouTube மற்றும் YouTube Music/subscriptions/subscriptions.csv\" என்பதன் கீழ்), கீழே உள்ள IMPORT FILE என்பதைக் கிளிக் செய்து, பிரித்தெடுக்கப்பட்ட csv கோப்பைத் தேர்ந்தெடு பிளேலிச்ட்டில் சேர்க்கப்படுவதற்கு முன்னும் பின்னும் பார்க்கப்பட்ட வீடியோக்கள் அகற்றப்படும்.\n நீங்கள் உறுதியாக இருக்கிறீர்களா? இதை செயல்தவிர்க்க முடியாது! இந்த செயலுக்கு பொருத்தமான கோப்பு மேலாளர் எதுவும் கிடைக்கவில்லை.\n சேமிப்பக அணுகல் கட்டமைப்பு இணக்கமான கோப்பு மேலாளரை நிறுவவும் இரண்டாம் நிலை @@ -602,7 +602,7 @@ மேலும் செய்தி மற்றும் செய்திகளுக்கு நியூபைப் வலைத்தளத்தைப் பார்வையிடவும். நியூபைப் திட்டம் உங்கள் தனியுரிமையை மிகவும் தீவிரமாக எடுத்துக்கொள்கிறது. எனவே, பயன்பாடு உங்கள் அனுமதியின்றி எந்த தரவையும் சேகரிக்காது.\n நீங்கள் ஒரு செயலிழப்பு அறிக்கையை அனுப்பும்போது என்ன தரவு அனுப்பப்படுகிறது மற்றும் சேமிக்கப்படுகிறது என்பதை நியூபிப்பின் தனியுரிமைக் கொள்கை விரிவாக விளக்குகிறது. நியூபைப்பின் உரிமம் - நியூபைப் என்பது நகலெடுக்கப்பட்ட லிப்ரே மென்பொருள்: நீங்கள் அதைப் பயன்படுத்தலாம், படிக்கலாம், பகிரலாம் மற்றும் மேம்படுத்தலாம். குறிப்பாக நீங்கள் இலவச மென்பொருள் அறக்கட்டளையால் வெளியிடப்பட்ட குனு பொது பொது உரிமத்தின் விதிமுறைகளின் கீழ் மறுபகிர்வு மற்றும்/அல்லது மாற்றியமைக்கலாம், உரிமத்தின் பதிப்பு 3 அல்லது (உங்கள் விருப்பத்தில்) பின்னர் எந்த பதிப்பையும் மாற்றலாம். + நியூபைப் என்பது நகலெடுக்கப்பட்ட லிப்ரே மென்பொருள்: நீங்கள் அதைப் பயன்படுத்தலாம், படிக்கலாம், பகிரலாம் மற்றும் மேம்படுத்தலாம். குறிப்பாக நீங்கள் இலவச மென்பொருள் அறக்கட்டளையால் வெளியிடப்பட்ட குனு பொது பொதுமக்கள் உரிமத்தின் விதிமுறைகளின் கீழ் மறுபகிர்வு மற்றும்/அல்லது மாற்றியமைக்கலாம், உரிமத்தின் பதிப்பு 3 அல்லது (உங்கள் விருப்பத்தில்) பின்னர் எந்தப் பதிப்பையும் மாற்றலாம். பயன்பாட்டைப் பயன்படுத்துவதில் சிக்கல் இருந்தால், பொதுவான கேள்விகளுக்கு இந்த பதில்களைப் பார்க்கவும்! இணையதளத்தில் காண்க கடைசியாக விளையாடியது @@ -616,7 +616,6 @@ செல்லுபடியாகும் சிப் கோப்பு இல்லை இது உங்கள் தற்போதைய அமைப்பை மேலெழுதும். கருத்துகளை ஏற்ற முடியவில்லை - பயன்பாடு மறுதொடக்கம் செய்யப்பட்டவுடன் மொழி மாறும் அண்மைக் காலத்தில் சேர்க்கப்பட்டது மிகவும் பிடித்தது மாநாடுகள் @@ -715,7 +714,7 @@ சந்தா எதுவும் தேர்ந்தெடுக்கப்படவில்லை %d தேர்ந்தெடுக்கப்பட்டது - %d தேர்ந்தெடுக்கப்பட்டது + %d தேர்ந்தெடுக்கப்பட்டன புதிய எப்போதும் புதுப்பிக்கவும் @@ -783,4 +782,9 @@ அடுத்த ச்ட்ரீம் மீண்டும் தரவு மற்றும் நினைவக பயன்பாட்டைக் குறைக்க, படங்களின் தகுதி மற்றும் படங்களை ஏற்ற வேண்டுமா என்பதைத் தேர்வுசெய்க. மாற்றங்கள் நினைவகம் மற்றும் ஆன்-வட்டு பட தற்காலிக சேமிப்பு இரண்டையும் அழிக்கின்றன- %s + YouTube தற்காலிக பிளேலிச்ட்டாக பகிரவும் + பிளேலிச்ட்கள் + தீவனக் குழுவைத் தேர்ந்தெடுக்கவும் + இதுவரை எந்த ஊட்டக் குழுவும் உருவாக்கப்படவில்லை + சேனல் குழு பக்கம் diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 538ace593..d6b1a0169 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -363,7 +363,6 @@ reCAPTCHA సవాలు అభ్యర్థించబడింది ప్లేజాబితాను ఎంచుకోండి డాటాబేసుని ఎగుమతిచేయుము - యాప్ పునఃప్రారంభించబడిన తర్వాత భాష మారుతుంది ఛానెల్ వివరాలను చూపు కంటెంట్‌ని తెరిచేటప్పుడు డిఫాల్ట్ చర్య — %s ప్రాధాన్య \'తెరవండి\' చర్య diff --git a/app/src/main/res/values-ti/strings.xml b/app/src/main/res/values-ti/strings.xml index 252f13954..c6edbe4c3 100644 --- a/app/src/main/res/values-ti/strings.xml +++ b/app/src/main/res/values-ti/strings.xml @@ -2,22 +2,22 @@ ሰረዝ ኣብ መርበብ-ሓበሬታ ክፉት - ውጽኢት ምርኣዩ ን፦ %s - መጀመርታ ምእንቲ ኽትጅምር ነቲ ዜጕልሕ መረጼን ጠውቆ። - ኣብ %1$s እተሓትመ - ወሓይዝ ዚጻወት ኣይተረኽበን። VLC፧ + ውጽኢት ናይ፦ %s + ንኽትጅምር ነቲ ምድላይ ምልክት ጠውቆ። + ኣብ %1$s ዝተሓትመ + ናይ ዥረት ተጻዋታይ ኣይተረኽበን። VLC ኣውርድ፧ ሐራይ ቅጥዕታት \"%1$s\" ማለቱ ድዩ፧ ዚተሪየ ጋባራ ክፉቴ ምሲ - ፋይል ውሕጅ ኣራግፍ + ስትሪም ፋይል ኣውርድ ድለ ኣካፍሎ ኣራግፍ ኣካፍሎም ምሲ መስመር ኣይትጽንበሩ - ኣብ ሓፍ፡ሓፍ ቅዲ ክፉት + ኣብ ፖፕኣፕ ኣገባብ ክፉት ሰዓብካ\'ኪ ክቕይር ኣይከኣለን ምዝገብ ድምጺታት ኣብ ገለ ርዝነት የወግድ @@ -47,7 +47,7 @@ ፖፕኣፕ ትሑዝ ድንቀት ዝወረዱ ናይ ተንቃሳቀሴ-ምስሌ ፋይላት ኣብዚ ይኽዘኑ - + ነባሪ ቪድዮ ፎርማት ናይ እኽሊ ምስሊ ምስ ናይ 1:1 ርክባት ቀዳማይ ወሰን ተጠዋቃ ደገመ @@ -70,5 +70,28 @@ እወ ኣይፋልን ጸሊም - ኣርእስቲ - \ No newline at end of file + ቆርበት + ለይታው ቆርበት + ናይ ፖፕኣፕ ባህርያት ዘክር + ናይ ፖፕኣፕ ዝነበሮ ቦታ ዘክር + ቅድሚ ምጽራይ ተራታት ናይ መረጋገጺ ሕተት + ርእይቶታት ኣርእዩ + ርእይቶታት ንምሕባእ እዚ ኣጥፍእ + ዋላ-ሓደ + ውራድ + ኣጻዋታይ + ትርኢት + ትሕዝቶ + ህያው + ርጋፍታት + ርጋፍታት + ኵሉ + መስመርት + ዝርዝር-ጸወታ + ቅዳሒት + ተጠቀምቲ + ፍጻመታት + ደርፍታት + ኣልበማት + ስነ-ጥበባውያን + diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 1c736bb99..bb72e1e2b 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -212,7 +212,7 @@ Bu, var olan kurulumunuzu geçersiz kılacaktır. Akış dosyasını indir Bilgi göster - İmlenen Çalma Listeleri + İmlenen Oynatma Listeleri Ekle Yeniden düzenlemek için sürükleyin Oluştur @@ -422,7 +422,6 @@ %s dinleyici %s dinleyici - Uygulama yeniden başlatıldıktan sonra dil değişecektir Hızlı ileri/geri atlama süresi PeerTube örnekleri Favori PeerTube örneklerinizi seçin @@ -823,4 +822,10 @@ \nBunu etkinleştirmek istiyor musunuz? İçe aktarılmakta olan dışa aktarımdaki ayarlar, NewPipe 0.27.0\'dan itibaren kullanımdan kaldırılan güvenlik açığı olan bir biçim kullanmaktadır. İçe aktarılmakta olan dışa aktarımın güvenilir bir kaynaktan alındığından emin olun ve gelecekte yalnızca NewPipe 0.27.0 veya daha yeni sürümlerden alınan dışa aktarımları kullanmayı tercih edin. Bu güvenlik açığı bulunan biçimdeki ayarları içe aktarma desteği yakında tamamen kaldırılacak ve ardından NewPipe\'ın eski sürümleri artık yeni sürümlerden dışa aktarılan ayarların içe aktarımını yapamayacaktır. ikincil + Oynatma Listeleri + YouTube geçici oynatma listesi olarak paylaş + Besleme kümesi seç + Kanal küme sayfası + Besleme kümesi oluşturulmadı + Beğeni diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c9fa9f25c..ba1a43fee 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -428,7 +428,6 @@ %s слухача %s слухачів - Мова зміниться після перезапуску застосунку Швидке перемотування Екземпляри PeerTube Виберіть сервер PeerTube @@ -842,4 +841,10 @@ \nВи впевнені, що хочете продовжити? Параметри експорту, який імпортується, використовують вразливий формат, який не підтримується з NewPipe 0.27.0. Переконайтеся, що експорт, який імпортується, походить із надійного джерела, і в майбутньому віддайте перевагу використанню лише експорту, отриманого з NewPipe 0.27.0 або новішої версії. Підтримку імпорту налаштувань у цьому вразливому форматі незабаром буде повністю припинено, і тоді старі версії NewPipe більше не зможуть імпортувати налаштування експорту з нових версій. вторинний + Поділитися як тимчасовим списком відтворення YouTube + Списки відтворення + Сторінка групи каналів + Виберіть групу каналів + Групу каналів ще не створено + Вподобання diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 3bfa5deff..1a434ab63 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -417,7 +417,6 @@ %s سننے والا %s سننے والے - جب ایپ دوبارہ شروع ہو گی تو زبان تبدیل ہو جائے گی طے شدہ کیوسک آگے بھگانے /- پیچھے کرنے کی مدت پیر ٹیوب واقعات @@ -478,7 +477,7 @@ شفل دوہرائیں آپ کومپیکٹ نوٹیفکیشن میں زیادہ سے زیادہ تین ایکشن منتخب کرسکتے ہیں! - ذیل میں ہر اطلاع کی کارروائی پر ٹیپ کرکے اس میں ترمیم کریں۔ دائیں طرف کے چیک باکسز کا استعمال کرکے کمپیکٹ نوٹیفکیشن میں دکھائے جانے والے ان میں سے تین تک کا انتخاب کریں: + ذیل میں ہر اطلاع کی کارروائی پر ٹیپ کرکے اس میں ترمیم کریں۔ دائیں طرف کے چیک باکسز کا استعمال کرکے کمپیکٹ نوٹیفکیشن میں دکھائے جانے والے ان میں سے تین تک کا انتخاب کریں۔ پانچواں ایکشن بٹن چوتھا ایکشن بٹن تیسرا ایکشن بٹن @@ -555,4 +554,9 @@ مستقل تھمب نیل کو ان سیٹ کریں ہارڈ ویئر میڈیا بٹن کے واقعات کو نظر انداز کریں کار آمد، مثلاً، اگر آپ ہیڈسیٹ ٹوٹے ہوئے فزیکل بٹن کے ساتھ استعمال کر رہے ہیں + ذیل میں ہر اطلاعی کارروائی پر ٹیپ کرکے ترمیم کریں۔ پہلے تین ایکشن (پلے/پاؤز، پچھلی اور اگلی) سسٹم کے ذریعے سیٹ کیے گئے ہیں اور انہیں اپنی مرضی کے مطابق نہیں بنایا جا سکتا۔ + پروگریسو مواد پر لوڈ وقفہ کا سائز تبدیل کریں (فی الحال %s)۔ کم کیمیت ان کی ابتدائی لوڈنگ کو تیز کر سکتی ہے + پلے لسٹ + ہاں + نہیں diff --git a/app/src/main/res/values-v35/styles.xml b/app/src/main/res/values-v35/styles.xml new file mode 100644 index 000000000..beb16bcdf --- /dev/null +++ b/app/src/main/res/values-v35/styles.xml @@ -0,0 +1,27 @@ + + + + + + + + +