diff --git a/README.md b/README.md index d4952b2b8..f78725338 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ NewPipe supports multiple services. Our [docs](https://teamnewpipe.github.io/doc * YouTube * SoundCloud \[beta\] * media.ccc.de \[beta\] +* PeerTube instances \[beta\] ## Updates When a change to the NewPipe code occurs (due to either adding features or bug fixing), eventually a release will occur. These are in the format x.xx.x . In order to get this new version, you can: diff --git a/app/build.gradle b/app/build.gradle index 3b0b8fe6c..f7017a6df 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "org.schabi.newpipe" minSdkVersion 19 targetSdkVersion 28 - versionCode 790 - versionName "0.17.4" + versionCode 800 + versionName "0.18.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true @@ -62,8 +62,7 @@ dependencies { exclude module: 'support-annotations' }) - implementation 'com.github.TeamNewPipe:NewPipeExtractor:43b54cc' - + implementation 'com.github.TeamNewPipe:NewPipeExtractor:8e53fda' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.23.0' diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 5738cf61a..7e4ac304e 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -1,25 +1,42 @@ package org.schabi.newpipe; +import android.os.Build; import android.text.TextUtils; import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Request; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; +import org.schabi.newpipe.util.TLSSocketFactoryCompat; import java.io.IOException; import java.io.InputStream; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -import javax.annotation.Nonnull; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.X509TrustManager; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; + +import okhttp3.CipherSuite; +import okhttp3.ConnectionSpec; import okhttp3.OkHttpClient; import okhttp3.RequestBody; import okhttp3.ResponseBody; +import static org.schabi.newpipe.MainActivity.DEBUG; + public class DownloaderImpl extends Downloader { public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0"; @@ -28,6 +45,9 @@ public class DownloaderImpl extends Downloader { private OkHttpClient client; private DownloaderImpl(OkHttpClient.Builder builder) { + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { + enableModernTLS(builder); + } this.client = builder .readTimeout(30, TimeUnit.SECONDS) //.cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"), 16 * 1024 * 1024)) @@ -102,7 +122,7 @@ public class DownloaderImpl extends Downloader { } @Override - public Response execute(@Nonnull Request request) throws IOException, ReCaptchaException { + public Response execute(@NonNull Request request) throws IOException, ReCaptchaException { final String httpMethod = request.httpMethod(); final String url = request.url(); final Map> headers = request.headers(); @@ -153,4 +173,47 @@ public class DownloaderImpl extends Downloader { return new Response(response.code(), response.message(), response.headers().toMultimap(), responseBodyToReturn); } + + /** + * Enable TLS 1.2 and 1.1 on Android Kitkat. This function is mostly taken from the documentation of + * OkHttpClient.Builder.sslSocketFactory(_,_) + *

+ * If there is an error, the function will safely fall back to doing nothing and printing the error to the console. + * + * @param builder The HTTPClient Builder on which TLS is enabled on (will be modified in-place) + */ + private static void enableModernTLS(OkHttpClient.Builder builder) { + try { + // get the default TrustManager + TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init((KeyStore) null); + TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); + if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) { + throw new IllegalStateException("Unexpected default trust managers:" + + Arrays.toString(trustManagers)); + } + X509TrustManager trustManager = (X509TrustManager) trustManagers[0]; + + // insert our own TLSSocketFactory + SSLSocketFactory sslSocketFactory = TLSSocketFactoryCompat.getInstance(); + + builder.sslSocketFactory(sslSocketFactory, trustManager); + + // This will try to enable all modern CipherSuites(+2 more) that are supported on the device. + // Necessary because some servers (e.g. Framatube.org) don't support the old cipher suites. + // https://github.com/square/okhttp/issues/4053#issuecomment-402579554 + List cipherSuites = new ArrayList<>(); + cipherSuites.addAll(ConnectionSpec.MODERN_TLS.cipherSuites()); + cipherSuites.add(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA); + cipherSuites.add(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA); + ConnectionSpec legacyTLS = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) + .cipherSuites(cipherSuites.toArray(new CipherSuite[0])) + .build(); + + builder.connectionSpecs(Arrays.asList(legacyTLS, ConnectionSpec.CLEARTEXT)); + } catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) { + if (DEBUG) e.printStackTrace(); + } + } } diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index bda6132d1..78cb9284a 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -76,6 +76,7 @@ import org.schabi.newpipe.util.PeertubeHelper; import org.schabi.newpipe.util.PermissionHelper; import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.StateSaver; +import org.schabi.newpipe.util.TLSSocketFactoryCompat; import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.views.FocusOverlayView; @@ -113,6 +114,11 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]"); + // enable TLS1.1/1.2 for kitkat devices, to fix download and play for mediaCCC sources + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { + TLSSocketFactoryCompat.setAsDefault(); + } + ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this)); super.onCreate(savedInstanceState); diff --git a/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistRemoteEntity.java b/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistRemoteEntity.java index bf446ca1f..fa257cfed 100644 --- a/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistRemoteEntity.java +++ b/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistRemoteEntity.java @@ -1,5 +1,7 @@ package org.schabi.newpipe.database.playlist.model; +import android.text.TextUtils; + import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.Ignore; @@ -72,10 +74,16 @@ public class PlaylistRemoteEntity implements PlaylistLocalItem { @Ignore public boolean isIdenticalTo(final PlaylistInfo info) { - return getServiceId() == info.getServiceId() && getName().equals(info.getName()) && - getStreamCount() == info.getStreamCount() && getUrl().equals(info.getUrl()) && - getThumbnailUrl().equals(info.getThumbnailUrl()) && - getUploader().equals(info.getUploaderName()); + /* + * Returns boolean comparing the online playlist and the local copy. + * (False if info changed such as playlist name or track count) + */ + return getServiceId() == info.getServiceId() + && getStreamCount() == info.getStreamCount() + && TextUtils.equals(getName(), info.getName()) + && TextUtils.equals(getUrl(), info.getUrl()) + && TextUtils.equals(getThumbnailUrl(), info.getThumbnailUrl()) + && TextUtils.equals(getUploader(), info.getUploaderName()); } public long getUid() { diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 29208b0e0..4fbf4ab5f 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -38,6 +38,7 @@ import com.nononsenseapps.filepicker.Utils; import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.R; +import org.schabi.newpipe.RouterActivity; import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.localization.Localization; @@ -368,6 +369,9 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck toolbar.setOnMenuItemClickListener(item -> { if (item.getItemId() == R.id.okay) { prepareSelectedDownload(); + if (getActivity() instanceof RouterActivity) { + getActivity().finish(); + } return true; } return false; diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java index 32b83bb22..6941741af 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java @@ -259,7 +259,7 @@ public class PlaylistFragment extends BaseListInfoFragment { animateView(headerRootLayout, true, 100); animateView(headerUploaderLayout, true, 300); headerUploaderLayout.setOnClickListener(null); - if (!TextUtils.isEmpty(result.getUploaderName())) { + if (!TextUtils.isEmpty(result.getUploaderName())) { // If we have an uploader : Put them into the ui headerUploaderName.setText(result.getUploaderName()); if (!TextUtils.isEmpty(result.getUploaderUrl())) { headerUploaderLayout.setOnClickListener(v -> { @@ -273,6 +273,8 @@ public class PlaylistFragment extends BaseListInfoFragment { } }); } + } else { // Else : say we have no uploader + headerUploaderName.setText(R.string.playlist_no_uploader); } playlistCtrl.setVisibility(View.VISIBLE); @@ -444,4 +446,4 @@ public class PlaylistFragment extends BaseListInfoFragment { playlistBookmarkButton.setIcon(ThemeHelper.resolveResourceIdFromAttr(activity, iconAttr)); playlistBookmarkButton.setTitle(titleRes); } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java index f9542850e..8bb16c318 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java @@ -10,6 +10,8 @@ import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; +import android.text.TextUtils; + import java.text.DateFormat; public class RemotePlaylistItemHolder extends PlaylistItemHolder { @@ -28,8 +30,14 @@ public class RemotePlaylistItemHolder extends PlaylistItemHolder { itemTitleView.setText(item.getName()); itemStreamCountView.setText(String.valueOf(item.getStreamCount())); - itemUploaderView.setText(Localization.concatenateStrings(item.getUploader(), + // Here is where the uploader name is set in the bookmarked playlists library + if (!TextUtils.isEmpty(item.getUploader())) { + itemUploaderView.setText(Localization.concatenateStrings(item.getUploader(), NewPipe.getNameOfService(item.getServiceId()))); + } else { + itemUploaderView.setText(NewPipe.getNameOfService(item.getServiceId())); + } + itemBuilder.displayImage(item.getThumbnailUrl(), itemThumbnailView, ImageDisplayConstants.DISPLAY_PLAYLIST_OPTIONS); diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java index 9e72838ad..c60cdac3f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java @@ -325,6 +325,16 @@ public class LocalPlaylistFragment extends BaseLocalListFragment NavigationHelper.playOnBackgroundPlayer(activity, getPlayQueue(), false)); + headerPopupButton.setOnLongClickListener(view -> { + NavigationHelper.enqueueOnPopupPlayer(activity, getPlayQueue(), true); + return true; + }); + + headerBackgroundButton.setOnLongClickListener(view -> { + NavigationHelper.enqueueOnBackgroundPlayer(activity, getPlayQueue(), true); + return true; + }); + hideLoading(); } diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 50a60ecb1..7c9041385 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -178,7 +178,6 @@ public abstract class BasePlayer implements // Player //////////////////////////////////////////////////////////////////////////*/ - protected final static int FAST_FORWARD_REWIND_AMOUNT_MILLIS = 10000; // 10 Seconds protected final static int PLAY_PREV_ACTIVATION_LIMIT_MILLIS = 5000; // 5 seconds protected final static int PROGRESS_LOOP_INTERVAL_MILLIS = 500; protected final static int RECOVERY_SKIP_THRESHOLD_MILLIS = 3000; // 3 seconds @@ -954,12 +953,19 @@ public abstract class BasePlayer implements public void onFastRewind() { if (DEBUG) Log.d(TAG, "onFastRewind() called"); - seekBy(-FAST_FORWARD_REWIND_AMOUNT_MILLIS); + seekBy(-getSeekDuration()); } public void onFastForward() { if (DEBUG) Log.d(TAG, "onFastForward() called"); - seekBy(FAST_FORWARD_REWIND_AMOUNT_MILLIS); + seekBy(getSeekDuration()); + } + + private int getSeekDuration() { + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final String key = context.getString(R.string.seek_duration_key); + final String value = prefs.getString(key, context.getString(R.string.seek_duration_default_value)); + return Integer.parseInt(value); } public void onPlayPrevious() { diff --git a/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java b/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java index d8c36e5cb..a0c16af75 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; +import android.text.InputType; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -88,6 +89,13 @@ public class PeertubeInstanceListFragment extends Fragment { public void onViewCreated(@NonNull View rootView, @Nullable Bundle savedInstanceState) { super.onViewCreated(rootView, savedInstanceState); + initViews(rootView); + } + + private void initViews(@NonNull View rootView) { + TextView instanceHelpTV = rootView.findViewById(R.id.instanceHelpTV); + instanceHelpTV.setText(getString(R.string.peertube_instance_url_help, getString(R.string.peertube_instance_list_url))); + initButton(rootView); RecyclerView listInstances = rootView.findViewById(R.id.instances); @@ -203,17 +211,18 @@ public class PeertubeInstanceListFragment extends Fragment { private void showAddItemDialog(Context c) { final EditText urlET = new EditText(c); + urlET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI); urlET.setHint(R.string.peertube_instance_add_help); AlertDialog dialog = new AlertDialog.Builder(c) .setTitle(R.string.peertube_instance_add_title) .setIcon(R.drawable.place_holder_peertube) - .setView(urlET) .setNegativeButton(R.string.cancel, null) .setPositiveButton(R.string.finish, (dialog1, which) -> { String url = urlET.getText().toString(); addInstance(url); }) .create(); + dialog.setView(urlET, 50, 0, 50, 0); dialog.show(); } @@ -237,6 +246,7 @@ public class PeertubeInstanceListFragment extends Fragment { @Nullable private String cleanUrl(String url){ + url = url.trim(); // if protocol not present, add https if(!url.startsWith("http")){ url = "https://" + url; diff --git a/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java b/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java index 20e88c4c7..16bffea9a 100644 --- a/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java +++ b/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java @@ -13,7 +13,7 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import javax.annotation.Nullable; +import androidx.annotation.Nullable; /** * @author kapodamy diff --git a/app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java b/app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java new file mode 100644 index 000000000..d8b6f78f5 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java @@ -0,0 +1,104 @@ +package org.schabi.newpipe.util; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; +import java.net.UnknownHostException; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; + +import static org.schabi.newpipe.MainActivity.DEBUG; + + +/** + * This is an extension of the SSLSocketFactory which enables TLS 1.2 and 1.1. + * Created for usage on Android 4.1-4.4 devices, which haven't enabled those by default. + */ +public class TLSSocketFactoryCompat extends SSLSocketFactory { + + + private static TLSSocketFactoryCompat instance = null; + + private SSLSocketFactory internalSSLSocketFactory; + + public static TLSSocketFactoryCompat getInstance() throws NoSuchAlgorithmException, KeyManagementException { + if (instance != null) { + return instance; + } + return instance = new TLSSocketFactoryCompat(); + } + + + public TLSSocketFactoryCompat() throws KeyManagementException, NoSuchAlgorithmException { + SSLContext context = SSLContext.getInstance("TLS"); + context.init(null, null, null); + internalSSLSocketFactory = context.getSocketFactory(); + } + + public TLSSocketFactoryCompat(TrustManager[] tm) throws KeyManagementException, NoSuchAlgorithmException { + SSLContext context = SSLContext.getInstance("TLS"); + context.init(null, tm, new java.security.SecureRandom()); + internalSSLSocketFactory = context.getSocketFactory(); + } + + public static void setAsDefault() { + try { + HttpsURLConnection.setDefaultSSLSocketFactory(getInstance()); + } catch (NoSuchAlgorithmException | KeyManagementException e) { + if (DEBUG) e.printStackTrace(); + } + } + + @Override + public String[] getDefaultCipherSuites() { + return internalSSLSocketFactory.getDefaultCipherSuites(); + } + + @Override + public String[] getSupportedCipherSuites() { + return internalSSLSocketFactory.getSupportedCipherSuites(); + } + + @Override + public Socket createSocket() throws IOException { + return enableTLSOnSocket(internalSSLSocketFactory.createSocket()); + } + + @Override + public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException { + return enableTLSOnSocket(internalSSLSocketFactory.createSocket(s, host, port, autoClose)); + } + + @Override + public Socket createSocket(String host, int port) throws IOException, UnknownHostException { + return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port)); + } + + @Override + public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException, UnknownHostException { + return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port, localHost, localPort)); + } + + @Override + public Socket createSocket(InetAddress host, int port) throws IOException { + return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port)); + } + + @Override + public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException { + return enableTLSOnSocket(internalSSLSocketFactory.createSocket(address, port, localAddress, localPort)); + } + + private Socket enableTLSOnSocket(Socket socket) { + if (socket != null && (socket instanceof SSLSocket)) { + ((SSLSocket) socket).setEnabledProtocols(new String[]{"TLSv1.1", "TLSv1.2"}); + } + return socket; + } +} \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 86cbbb59a..3ad4c2f39 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -20,7 +20,7 @@ يتم تخزين ملفات الفيديو التي تم تنزيلها هنا مجلد تحميل الفيديو "لا يمكن إنشاء مجلد للتنزيلات في '%1$s'" - إنشاء دليل التنزيل \'%1$s\' + دليل التنزيل الذي تم إنشاؤه \'%1$s\' تثبيت تطبيق Kore غير موجود. هل تريد تثبيته ؟ مضيء @@ -42,7 +42,7 @@ مشاركة مشاركة بواسطة عرض مقاطع الفيديو \"التالية\" و \"المشابهة\" - عرض خيار تشغيل الفيديو عبر مركز وسائط كودي + عرض خيارات تشغيل الفيديو من خلال مركز كودي ميديا عرض خيار التشغيل بواسطة كودي السمة تم النشر يوم %1$s @@ -69,8 +69,8 @@ مراقبة السجل التاريخ و ذاكرة التخزين المؤقت محتوى - التحميلات - التحميلات + الملفات المحملة + الملفات المحملة الجميع القناة الفيديو @@ -113,11 +113,11 @@ محتوى مقيد بحسب العمر "إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"." بث مباشر - تقرير خطأ + تقرير عن مشكلة قائمة التشغيل نعم لاحقاً - تعطيل + متوقف فلتر تحديث تنظيف @@ -200,7 +200,7 @@ فتح الموقع المساهمون التراخيص - مجاني خفيف الوزن بث حي على أندرويد. + تطبيق مجاني خفيف الوزن وبث حي على نظام أندرويد. ساهم إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل ! عرض على GitHub @@ -234,7 +234,7 @@ التفاصيل الإعدادات الصوتية تشغيل هنا - تشغيل في وضع نافذة منبثقة + بدأ التشغيل في نافذة منبثقة جديدة تحدي الكابتشا ضغط مطول للإدراج الى قائمة الانتظار @@ -246,12 +246,12 @@ %s شاهدو - فيديو%s video - %s videosفيديوهات - %s videosفيديوهات - %s videosفيديوهات - %s videosفيديوهات - %s videosفيديوهات + فيديوهات + فيديوهات + فيديوهات + فيديوهات + فيديوهات + فيديوهات طلب اختبار الكابتشا مطلوب © %1$sبواسطة%2$sتحت%3$s @@ -425,10 +425,10 @@ تتبيه تحديث التطبيق إيماءة التحكم بالصوت الأحداث - إخطارات NewPipe جديدة  الإصدار - ذاكرة التخزين الخارجية غير متوفرة + إخطارات لنسخة NewPipe الجديدة + وحدة التخزين الخارجية غير متوفرة "التنزيل على بطاقة SD الخارجية غير ممكن. إعادة تعيين موقع مجلد التحميل؟" - استخدام خطأ علامات التبويب الافتراضية, أثناء قراءة علامات التبويب المحفوظة + باستخدام علامات التبويب الافتراضية ، خطأ أثناء قراءة علامات التبويب المحفوظة استعادة الضبط الافتراضي هل تريد استعادة الإعدادات الافتراضية؟ عدد المشتركين غير متاح @@ -449,7 +449,7 @@ متوقف في قائمة الانتظار قيد المعالجة - قائمة الانتظار + قائمه انتظار تم رفضها من قبل النظام فشل التنزيل تم الانتهاء من التحميل @@ -520,5 +520,39 @@ حذف كل مواقف التشغيل؟ تغيير مجلدات التنزيل إلى حيز التنفيذ‮‮‮ تبديل الخدمة ، المحدد حاليًا: - الكشك الافتراضي + الكشك الافتراضي + لاتوجد مشاهدة + لا أحد يستمع + ستتغير اللغة بمجرد إعادة تشغيل التطبيق. + + مشاهد + مشاهدة + مشاهدة + مشاهدات + مشاهدات + مشاهدات + + + مستمع + مستمع + مستمعين + مستمعين + مستمعين + مستمعين + + تسريع إلى الأمام/-ترجيع وقت البحث + نموذج بيرتوب + تعيين حالات بيرتوب المفضلة لديك + إضافة نموذج + أدخل رابط نموذج + فشل في التحقق من النموذج + فقط عناوين https المدعومة + نموذج موجود بالفعل + محلي + أضيف مؤخرا + الأكثر إعجابا + تم إنشاؤه-تلقائيًا (لم يتم العثور على برنامج تحميل) + استرد + لا يمكن استرداد هذا التنزيل + اختيار نموذج \ No newline at end of file diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index d97835b80..8714c6aca 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -38,8 +38,8 @@ 稍后 网络错误 - %s 个视频 - + 视频 + 禁用 背景 @@ -62,7 +62,7 @@ 清除观看记录 最小化后台播放器 - 最小化小窗口播放器 + 最小化悬浮窗播放器 频道 播放列表 取消订阅 @@ -91,7 +91,7 @@ 存储访问权限已被拒绝 %1$s 次观看 - + 百万 @@ -111,7 +111,7 @@ 请稍候… 复制至剪贴板 reCAPTCHA验证码 - 弹出 + 悬浮窗播放 关于NewPipe 设置 关于 @@ -124,14 +124,14 @@ 许可证 下载 文件名中允许的字符 - 无效字符将会替换为此字符 + 无效字符将会被替换为此 字母和数字 最特殊字符 没有结果 没有订阅者 %s个订阅者 - + 没有视频 拖动以重新排序 @@ -143,7 +143,7 @@ 未安装用于播放此文件的应用程序 已删除1个项目。 哪些标签需要在主页上展示 - 列表观看模式 + 列表视图模式 已完成 等待中… 已暂停 @@ -155,4 +155,364 @@ %s 次下载已完成 没有评论 切换服务,当前选择: + 找不到串流播放器。您想安装 VLC 吗? + 旋转 + 使用第三方视频播放器 + 使用第三方视频播放器 + 音频下载文件夹 + 从其他应用打开 NewPipe 时就播放视频 + 默认分辨率 + 找不到Kore。是否安装? + 显示“用Kodi播放”选项 + 显示“通过Kodi media center播放视频的选项” + 音频 + 默认音频格式 + 显示“下一个”和“类似的”视频 + 视频和音频 + 在后台播放 + 播放 + 内容 + 受年龄限制的内容 + 显示受年龄限制的视频。可从设置允许此类内容。 + 直播 + 下载 + 下载 + 错误报告 + 错误 + 无法加载所有缩略图 + 无法解密视频 URL 的签名 + 无法解析网址 + 无法完全解析网址 + 内容不可用 + 无法设置下载菜单 + 暂时不支持观看直播 + 无法获得任何信息流 + 无法加载图像 + App UI 崩溃 + 抱歉,这不应该发生的。 + 通过电子邮件报告错误 + 抱歉,发生了一些错误。 + 报告 + 信息: + 发生了什么: + 详情:\\n请求:\\n内容语言:\\n服务:\\nGMT时间:\\n包:\\n版本:\\n操作系统版本: + 您的注释(请用英文): + 详细信息: + 视频预览缩略图 + 播放视频,时长: + 视频上传者的头像缩略图 + 字节 + 错误的 URL 或未联网 + NewPipe下载中 + 请稍后在设置中设定下载目录 + 用悬浮窗模式 +\n需要此权限 + reCAPTCHA验证 + 请求的新的CAPTCHA验证 + NewPipe悬浮窗模式 + 在悬浮窗中播放 + 默认悬浮窗分辨率 + 使用更高的分辨率 + 仅某些设备支持播放2K / 4K视频 + 清除 + 记住悬浮窗的尺寸与位置 + 记住最后一次使用悬浮窗的大小和位置 + 悬浮窗 + 调整大小 + 删除“某些”分辨率的音频 + 播放器手势控制 + 使用手势控制播放器的亮度和音量 + 显示搜索建议 + 最佳分辨率 + 开源小巧的Android媒体播放器。 + 在GitHub上查看 + NewPipe开源许可证 + 你是否有想:翻译、设计、清理或重型代码更改 ——我们始终欢迎你来贡献! + 阅读许可证 + 贡献 + 替换字符 + 取消订阅频道 + 无法修改订阅 + 无法更新订阅 + 主页面 + 订阅 + 新增功能 + 恢复前台焦点 + 中断后继续播放(例如突然来电后) + 搜索历史记录 + 在本地存储搜索查询记录 + 记录已观看视频 + 历史 + 已搜索 + 已观看 + 历史记录功能已关闭 + 历史 + 历史记录为空 + 清除历史记录 + NewPipe 通知 + NewPipe 后台播放和悬浮窗播放的通知 + 默认视频格式 + 行为 + 空空如也... + 0次观看 + 项目已删除 + 是否要从搜索历史记录中删除此项目? + 显示在主页面内容 + 空白页 + 『时下流行』页-自定义 + 订阅页 + Feed 页面 + 频道页 + 选择一个频道 + 尚未订阅频道 + 选择一个时下流行页 + 『时下流行』 + 趋势 + 前50 + 最新与热门 + 显示 \"长按添加\" 说明 + 在视频详情页中,按下背景播放或悬浮窗播放按钮时显示提示 + 已加入后台播放播放列表 + 已加入悬浮窗播放列表 + 无法播放此串流 + 发生无法恢复播放器错误 + 恢复播放器错误 + 后台播放 + 悬浮窗播放器 + 移除 + 详情 + 音频设置 + 长按队列 + [未知] + 添加到后台部分队列 + 添加至新悬浮窗列表 + 开始在此处开始播放 + 开始后台播放 + 开始在新悬浮窗中播放 + 捐赠 + NewPipe 是由志愿者花费时间为您带来最佳体验开发的。回馈帮助开发人员在享用一杯咖啡的同时,让 NewPipe 变得更好。 + 回馈 + 网站 + 请访问 NewPipe 网站了解更多信息和讯息。 + 默认国家/地区 + 切换方向 + 切换到背景播放 + 切换到悬浮窗播放 + 切换到主页面 + 服务 + 打开抽屉 + 关闭抽屉 + 第三方播放器不支持此类型链接 + 无效 URL + 未找到视频串流 + 找不到音频串流 + 视频播放器 + 后台播放器 + 悬浮窗播放器 + 正在获取信息… + 正在加载请求的内容 + 导入数据库 + 导出数据库 + 覆盖当前历史记录和订阅 + 导出历史记录、订阅和播放列表 + 导出成功 + 导入成功 + 没有有效的ZIP文件 + 警告:无法导入所有文件。 + 这将覆盖当前设置。 + 显示信息 + 已收藏 + 确定要从观看历史记录中删除该项吗? + 是否确实要从历史记录中删除所有项目? + 最后播放 + 播放最多 + 总是寻问 + 新建播放列表 + 删除 + 重 命名 + 名称 + 添加到播放列表 + 设为播放列表缩略图 + 收藏播放列表 + 删除收藏 + 删除此播放列表? + 新建播放列表成功 + 加入播放列表成功 + 播放列表缩略图更改成功。 + 无法删除播放列表 + 无字幕 + 适应屏幕 + 填充屏幕 + 缩放 + 敬请等待 + 调试 + 自动生成 + 启用LeakCanary + 『内存泄漏监视』可能导致应用在『核心转储』时无响应 + 报告『提前结束Android生命周期』错误 + 强制报告处理后的未送达的Activity或Fragment生命周期之外的Rx异常 + 使用快速不精确搜索 + 粗略定位播放:允许播放器以略低的精确度为代价换取更快的定位速度 + 自动播放下一个 + 当播放完非循环列表中的最后一个视频时,自动加入一个相关视频到播放列表 + 没有此文件夹 + 无相似文件/内容源 + 该文件不存在 或 缺少读写该文件的权限 + 文件名不能为空 + 发生错误: %1$s + 导入/导出 + 导入 + 从...导入 + 导出到... + 正在导入… + 正在导出… + 导入文件 + 以前的导出 + 无法导入订阅 + 无法导出订阅 + 通过下载导出文件来导入 YouTube 订阅: +\n +\n1. 转到此网站: %1$s +\n2. 登录(如果需要) +\n3. 应该立即开始下载(即导出文件) + 通过键入网址或你的 ID 导入 SoundCloud 配置文件: +\n +\n1. 在浏览器中启用\"电脑模式\"(该网站不适用于移动设备) +\n2. 转到此 URL: %1$s +\n3. 登录(如果需要) +\n4. 复制重定向的配置文件下载地址。 + 你的 ID:soundcloud.com/[你的ID] + 该操作消耗大量流量, +\n你想继续吗? + 关闭可防止加载缩略图,节已省数据和内存使用。(若现在更改会清除内存和储存中缓存) + 清空图像缓存成功 + 清空已缓存元数据 + 清空已缓存的网页数据 + 清空元数据缓存成功 + 播放速度控制 + 节奏 + 音调 + 解除关联(可能导致失真) + 首选“打开”操作 + 打开内容时默认操作: = %s + 无可下载的串流内容 + 字幕 + 修改播放器字幕比例和背景样式。需要重新启动应用程序才能生效。 + 删除串流的播放历史和播放位置 + 删除全部观看记录? + 清除搜索历史记录 + 清除搜索关键词的历史记录 + 是否删除全部搜索历史记录? + 搜索历史记录已删除。 + NewPipe 是版权自由软件:您可以随时使用、研究共享和改进它。您可以根据自由软件基金会发布的 GNU 通用公共许可证GPLv3或(由您选择的)任何更高版本的许可证重新分发或修改该许可证。 + 是否要同时导入设置? + NewPipe的隐私政策 + NewPipe 项目非常重视您的隐私。因此,未经您的同意,应用程序不会收集任何数据。 +\nNewPipe 的隐私政策详细解释了在发送崩溃报告时发送和存储的数据。 + 阅读隐私政策 + 为了遵守欧洲一般数据保护条例 (GDPR),我们提请您注意 NewPipe 的隐私政策。请仔细阅读。 +\n您必须接受它才能向我们发送错误报告。 + 接受 + 拒绝 + 无限制 + 使用移动数据时限制分辨率 + 切换应用时最小化 + 从主播放器切换到其他应用时的操作 - %s + 静音时快进 + 滑块[比例尺] + 重 置 + 曲目 + 用户 + 选择标签 + 音量手势控制 + 使用手势控制播放器的音量 + 亮度手势控制 + 使用手势控制播放器的亮度 + 视频默认语言 + 应用更新通知 + NewPipe有新版本的通知 + 外置存储不可用 + 无法下载到外部 SD 卡。重置下载文件夹位置? + 读取已保存标签时发生错误,因此使用者默认标签 + 恢复默认 + 是否恢复默认值? + 选择 + 更新 + 列表 + 自动 + 切换视图 + 点击下载 + 后期处理 + 生成唯一名称 + 覆盖 + 正在使用此名称进行下载 + 显示错误 + 代码 + 无法创建目标文件夹 + 无法创建文件 + 权限被系统拒绝 + 安全连接失败 + 找不到服务器 + 无法连接到服务器 + 服务器未发送数据 + 找不到 NOT FOUND + 后期处理失败 + 清除已完成的下载 + 停止 + 最大重试次数 + 取消下载前的最多尝试次数 + 在切换到移动流量网络时中断播放 + 切换至移动数据时可能有用,尽管一些下载无法被暂停 + 事件 + 近期大会 + 显示评论 + 禁用,以停止显示评论 + + 评论 + + + 无法加载评论 + 关闭 + 恢复播放 + 恢复上次播放位置 + 列表中的位置 + 在列表中,显示视频最后一次播放时的播放位置 + 已删除播放位置记录。 + 文件被已移动或删除 + 该名称的文件已经存在 + 命名冲突,已存在具有此名称文件 + 无法覆盖文件 + 有此名称的已暂停下载 + 处理文件时,NewPipe 已关闭 + 设备上没有剩余储存空间 + 进度丢失,文件已被删除 + 连接超时 + 你确定吗? + 最大下载队列 + 同时只允许一个下载进行 + 开始下载 + 暂停下载 + 询问下载位置 + 系统将询问您将每次下载的保存位置 + 系统将询问您将每次下载的保存位置。 +\n(如果要下载到外部 SD 卡,请选择 SAF) + 使用 SAF + 存储访问框架(SAF)允许下载文件到外部SD卡。 +\n注:一些设备不兼容SAF + 删除播放位置记录 + 删除所有播放位置记录 + 删除所有播放位置记录? + 更改下载目录让内容生效 + 『时下流行』页-默认 + 无人在线观看 + + %s 人在观看 + + + 没人在听 + + %s个听众 + + + 重新启动应用后,语言将更改。 \ No newline at end of file diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index ee48181c8..bcc816577 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -7,8 +7,8 @@ Baixa Cerca Paràmetres - Tria un navegador - Subscriu-t\'hi + Trieu un navegador + Subscripció Subscrit Mostra la informació Subscripcions @@ -37,7 +37,7 @@ Depuració Contingut Desactiva les restriccions per edat - Mostra el vídeo restringit per edat. Pots permetre aquesta mena de continguts des dels paràmetres. + Mostra el vídeo restringit per edat. Podeu permetre aquesta mena de continguts des dels paràmetres. EN DIRECTE Baixades Baixades @@ -46,7 +46,7 @@ Llista de reproducció Desactivat - Esborra + Neteja Millor resolució Desfés Sempre @@ -80,27 +80,27 @@ Col·labora-hi Lloc web Llicència del NewPipe - Llegeix la llicència + Llegiu la llicència Historial L\'historial està desactivat Historial L\'historial és buit S\'ha esborrat l\'historial S\'ha eliminat l\'element - Vols eliminar aquest element de l\'historial de cerca\? - Vols eliminar aquest element de l\'historial de reproduccions\? - Segur que vols eliminar tots els elements de l\'historial\? + Voleu eliminar aquest element de l\'historial de cerca\? + Voleu eliminar aquest element de l\'historial de reproduccions\? + Segur que voleu eliminar tots els elements de l\'historial\? Contingut de la pàgina principal Pàgina en blanc Pàgina de subscripcions - Tria un canal + Trieu un canal S\'ha completat l\'exportació S\'ha completat la importació Elimina Detalls Paràmetres d\'àudio Reproductor de vídeo - Reproductor en segon pla + Reproductor en rerefons Reproductor emergent Demana-ho sempre Crea una llista de reproducció @@ -117,41 +117,41 @@ Per defecte %1$s reproduccions Publicat el %1$s - No s\'ha trobat un reproductor de fluxos. Vols instal·lar el VLC\? - No s\'ha trobat cap reproductor de fluxos (pots instal·lar el VLC per reproduir-lo). + No s\'ha trobat cap reproductor de fluxos. Voleu instal·lar el VLC\? + No s\'ha trobat cap reproductor de fluxos (podeu instal·lar el VLC per reproduir-ho). Obre en mode emergent Baixa el fitxer de vídeo - Volies dir: %1$s\? + Volíeu dir: %1$s\? Comparteix-ho amb rotació Reproductor de vídeo extern Mode emergent del NewPipe - Has eliminat la subscripció d\'aquest canal + Heu eliminat la subscripció a aquest canal No s\'ha pogut modificar la subscripció No s\'ha pogut actualitzar la subscripció Principal - Segon pla + Rerefons Emergent Afegeix a - Els fitxers de vídeo baixats s\'emmagatzemen aquí - Tria la carpeta de baixades per als fitxers de vídeo + Els fitxers de vídeo baixats es desen aquí + Trieu la carpeta de baixades per als fitxers de vídeo Els fitxers d\'àudio baixats es desen aquí - Tria la carpeta de baixada per als fitxers d\'àudio - Reprodueix un vídeo quan el NewPipe s\'executa des d\'una altra aplicació + Trieu la carpeta de baixada per als fitxers d\'àudio + Reprodueix un vídeo quan el NewPipe s\'executa des d\'altra aplicació Resolució per defecte del mode emergent Mostra resolucions superiors - Només alguns dispositius són compatibles amb la reproducció de vídeos en 2K/4K - Reprodueix amb Kodi - No s\'ha trobat l\'aplicació Kodi. Vols instal·lar-la\? - Activa «Reprodueix amb Kodi» + No tots els dispositius són compatibles amb la reproducció de vídeos en 2K/4K + Reprodueix amb el Kodi + No s\'ha trobat l\'aplicació Kodi. Voleu instal·lar-la\? + Mostra «Reprodueix amb el Kodi» Mostra una opció per reproduir un vídeo amb el centre multimèdia Kodi Reproductor emergent intel·ligent Recorda la darrera mida i posició del reproductor emergent Cerca ràpida poc precisa La cerca poc precisa permet que el reproductor cerqui una posició més ràpidament amb menys precisió Carrega les miniatures - S\'ha esborrat la memòria cau d\'imatges - Esborra les metadades de la memòria cau + S\'ha eliminat la memòria cau d\'imatges + Elimina les metadades de la memòria cau S\'ha esborrat la memòria cau de metadades Afegeix vídeos relacionats a la cua Control per gestos del reproductor @@ -165,15 +165,15 @@ País per defecte dels continguts Llengua per defecte dels continguts Emergent - S\'està reproduint en segon pla + S\'està reproduint en rerefons S\'està reproduint en mode emergent - Afegit a la cua del reproductor en segon pla - Afegit a la cua del reproductor emergent + S\'ha afegit a la cua del reproductor en rerefons + S\'ha afegit a la cua del reproductor emergent Reprodueix Notificació del NewPipe - Notificacions dels reproductors en segon pla o emergents del NewPipe + Notificacions dels reproductors en rerefons o emergents del NewPipe No s\'han pogut carregar totes les miniatures - No s\'ha pogut desencriptar la signatura de l\'URL del vídeo + No s\'ha pogut desxifrar la signatura de l\'URL del vídeo No s\'ha pogut processar el lloc web No s\'ha pogut processar del tot el lloc web Contingut no disponible @@ -190,41 +190,41 @@ No s\'ha trobat cap flux d\'àudio La carpeta no existeix El fitxer o la font de contingut no existeix - El fitxer no existeix o no teniu permisos per llegir-lo o escriure-hi + El fitxer no existeix o bé no teniu permisos de lectura/escriptura El nom del fitxer no pot estar en blanc S\'ha produït un error: %1$s - Informa de l\'error per correu electrònic + Informeu de l\'error per correu electrònic S\'han produït alguns errors. - INFORMA\'N + INFORME Informació: Què ha passat: Comentari (en anglès): Detalls: Miniatura de previsualització del vídeo - Miniatura de previsualització del vídeo + Reprodueix el vídeo, duració: Miniatura de l\'avatar del propietari M\'agrada No m\'agrada Fes servir el Tor (En proves) Força el trànsit de baixada a través del Tor per a més privadesa (no compatible encara amb les emissions de vídeo). - Informa sobre un error + Notifiqueu un error Informe de l\'usuari Cap resultat No hi ha res aquí No s\'ha pogut crear el directori de baixades «%1$s» S\'ha creat el directori de baixades «%1$s» - Torna a intentar-ho + Torna a provar S\'ha denegat el permís d\'accés a l\'emmagatzematge - Sense subscriptors - Sense reproduccions + Cap subscripció + Cap reproducció %s reproducció %s reproduccions - Sense vídeos + Cap vídeo - %s vídeo - %s vídeos + Vídeo + Vídeos Pausa Reprodueix @@ -236,10 +236,10 @@ Tanca Canvia el nom Fils - Servidor incompatible + Servidor no compatible El fitxer ja existeix Baixada del NewPipe activa - Espera… + Un moment… S\'ha copiat al porta-retalls Caràcters permesos als noms de fitxer Lletres i dígits @@ -247,43 +247,43 @@ © %1$s per %2$s sota %3$s Reprodueix transmissions de manera lliure i lleugera a l\'Android. Visualitza a GitHub - Fes una donació - Per a més informació i notícies, visita el nostre lloc web. + Feu una donació + Per a més informació i notícies, visiteu el nostre web. Últimes reproduccions Més reproduïts - Pàgina d\'un quiosc + Tendències Pàgina de novetats Pàgina d\'un canal - Tria un quiosc + Trieu un quiosc El fitxer no té un format ZIP vàlid Avís: No s\'han pogut importar tots els fitxers. Això sobreescriurà els paràmetres actuals. Quiosc Tendències Els millors 50 - Reproductor en segon pla + Reproductor en rerefons Reproductor emergent - Afegeix a la cua de reproducció en segon pla + Afegeix a la cua de reproducció en rerefons Afegeix a la cua de reproducció emergent Reprodueix aquí Obre el calaix Tanca el calaix S\'està obtenint la informació… S\'està carregant el contingut seleccionat - Vols eliminar aquesta llista de reproducció\? + Voleu eliminar aquesta llista de reproducció\? No s\'ha pogut eliminar la llista de reproducció. Importació i exportació Controls de la velocitat de reproducció Tempo To - Toca el botó de cerca per començar + Feu un toc al botó de cerca per començar Elimina l\'àudio en algunes resolucions Reproductor d\'àudio extern - Desactiva-ho per evitar que es carreguin les miniatures i estalviar dades i memòria. Si canvies aquesta opció, s\'esborrarà la memòria cau d\'imatges tant de la memòria com de l\'emmagatzematge. + Desactiveu-ho per no generar miniatures i estalviar dades i memòria. Canviant aquesta opció, s\'eliminarà la memòria cau d\'imatges tant de la memòria com de l\'emmagatzematge. Emmagatzema les cerques localment - Registra els vídeos visualitzats + Crea un historial de vídeos visualitzats Reprèn automàticament - Aquesta URL no és compatible + Aquest URL no és compatible Informe d\'error Més tard Filtra @@ -291,20 +291,20 @@ S\'està redimensionant Reprodueix-ho tot Canvia l\'orientació - Canvia al mode en segon pla + Canvia al mode en rerefons Canvia al mode emergent Canvia al mode principal Sobreescriu l\'historial i les subscripcions actuals S\'està recuperant el reproductor després de l\'error - Ho sentim, això no hauria d\'haver ocorregut. - Arrossega per a reordenar la llista + Bé, és lamentable. + Arrossegueu per reordenar la llista mil milions mil milions Inicia Nova missió - L\'URL té un format incorrecte o no hi ha connexió a internet - Toca aquí per a més detalls + L\'URL té un format no vàlid o no hi ha connexió a Internet + Feu un toc aquí per a més detalls Defineix una carpeta de baixades més endavant als paràmetres Es necessita aquest permís per a obrir el mode emergent Camp reCAPTCHA @@ -312,15 +312,15 @@ Se substituiran els caràcters no vàlids amb aquest valor Caràcter de substitució Principals caràcters especials - Ja siguin idees, traduccions, canvis en el disseny, una neteja del codi o canvis importants de programació, la teva ajuda sempre és benvinguda. Com més feina feta hi hagi, millor! - El NewPipe està desenvolupat per voluntaris que fan servir el seu temps lliure per a oferir-te la millor experiència possible. Fes una aportació per assegurar que els nostres desenvolupadors puguin millorar encara més el NewPipe mentre fan un cafè. - Fes la teva aportació + Idees, traduccions, canvis en el disseny, neteja del codi, canvis importants de programació... La vostra ajuda sempre és benvinguda. Com més feina feta hi hagi, millor! + El NewPipe està desenvolupat per voluntaris que fan servir el seu temps lliure per oferir-vos la millor experiència possible. Feu una aportació per assegurar que els nostres desenvolupadors puguin millorar encara més el NewPipe mentre fan un cafè. + Feu la vostra aportació Cerques Reproduccions - Encara no t\'has subscrit a cap canal + Encara no us heu subscrit a cap canal Novetats - Mantén premut per afegir a la cua - Comença a reproduir en segon pla + Manteniu premut per afegir a la cua + Comença a reproduir en rerefons Comença a reproduir en mode emergent Defineix com a miniatura de la llista de reproducció Afegeix la llista de reproducció a les adreces d\'interès @@ -346,45 +346,45 @@ Aviat hi haurà novetats aquí ;D Acció d\'obertura preferida Acció per defecte en obrir continguts — %s - "La supervisió de fugues de memòria pot fer que l\'aplicació deixi de respondre mentre es bolca la memòria " + 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 - Importa les teves subscripcions de YouTube mitjançant el fitxer d\'exportació: + Importeu les vostres subscripcions de YouTube mitjançant el fitxer d\'exportació: \n -\n1. Vés a aquesta URL: %1$s -\n2. Inicia la sessió quan se\'t demani +\n1. Aneu a : %1$s +\n2. Inicieu la sessió quan si us demani \n3. S\'hauria d\'iniciar una baixada (el fitxer d\'exportació) - Importa un perfil de SoundCloud mitjançant l\'URL o l\'identificador del teu perfil: + Importeu un perfil del SoundCloud mitjançant l\'URL o l\'identificador del vostre perfil: \n -\n1. Activa el «Mode d\'ordinador» en un navegador (el lloc web no està disponible per a dispositius mòbils) -\n2. Vés a aquesta URL: %1$s -\n3. Inicia la sessió al teu compte quan se\'t demani -\n4. Copia l\'URL de la pàgina on se\'t redireccioni +\n1. Activeu el «Mode d\'ordinador» en un navegador (el lloc web no està disponible per a dispositius mòbils) +\n2. Aneu a: %1$s +\n3. Inicieu la sessió al vostre compte quan si us demani +\n4. Copieu l\'URL on si us ha redirigit. identificador, soundcloud.com/identificador - Tingues en compte que això pot comportar un ús intensiu de la xarxa. + Tingueu en compte que això pot comportar un ús intensiu de la xarxa. \n -\nVols continuar\? +\nVoleu continuar\? No hi ha vídeos que es puguin baixar Subtítols Modifica la mida del text i el fons dels subtítols. Cal reiniciar l\'aplicació per aplicar els canvis. No s\'ha trobat cap aplicació que pugui reproduir aquest fitxer - Esborra l\'historial de reproduccions - Esborra l\'historial dels vídeos reproduïts i les posicions de reproducció - Vols esborrar tot l\'historial de reproduccions\? - S\'ha esborrat l\'historial de reproduccions. - Esborra l\'historial de cerca - Esborra l\'historial de paraules cercades - Vols esborrar tot l\'historial de cerca\? - S\'ha esborrat l\'historial de cerca. + Neteja l\'historial de reproduccions + Neteja l\'historial dels vídeos reproduïts i les posicions de reproducció + Voleu suprimir tot l\'historial de reproduccions\? + S\'ha netejat l\'historial de reproduccions. + Neteja l\'historial de cerca + Neteja l\'historial de paraules cercades + Voleu suprimir tot l\'historial de cerca\? + S\'ha netejat l\'historial de cerca. S\'ha esborrat 1 element. - NewPipe és programari lliure sota llicència copyleft: pots fer-lo servir, estudiar-lo, compartir-lo i millorar-lo al teu gust. En concret, pots redistribuir-lo i/o modificar-lo d\'acord amb els termes de la llicència GNU GPL publicada per la Free Software Foundation, ja sigui la versió 3 o (segons vulguis) qualsevol altra versió posterior. - Vols importar també els paràmetres\? - Política de privacitat del NewPipe - El projecte NewPipe es pren molt seriosament la teva privacitat. Per aquesta raó, l\'aplicació no emmagatzema cap mena de dades sense el teu consentiment. -\nLa política de privacitat del NewPipe descriu detalladament quines dades s\'envien i s\'emmagatzemen quan envies un informe d\'error. - Llegeix la política de privacitat - Per tal de complir amb el Reglament General de Protecció de Dades europeu (GDPR), et demanem que posis atenció a la política de privacitat del NewPipe. Llegeix-la detingudament. -\nSi vols enviar-nos un informe d\'error, l\'hauràs d\'acceptar. + El NewPipe és programari lliure sota llicència copyleft: el podeu fer servir, estudiar, compartir i millorar com vulgueu. Concretament, el podeu redistribuir i/o modificar d\'acord amb els termes de la llicència GNU GPL publicada per la Free Software Foundation, versió 3 o qualsevol altra versió posterior. + Voleu importar també els paràmetres\? + Política de privadesa del NewPipe + El projecte NewPipe es pren molt seriosament la vostra privadesa. Per aquesta raó, l\'aplicació no emmagatzema cap dada sense el vostre consentiment. +\nLa política de privadesa del NewPipe descriu detalladament quines dades s\'envien i s\'emmagatzemen quan envieu un informe d\'error. + Llegiu la política de privadesa + Per complir amb el Reglament General de Protecció de Dades europeu (GDPR), us demanem que pareu atenció a la política de privadesa del NewPipe. Llegiu-la detingudament. +\nSi voleu informar d\'un error, l\'haureu d\'acceptar. Accepta Rebutja Sense restriccions @@ -396,13 +396,13 @@ Minimitza al reproductor emergent Avança ràpid durant el silenci Pas - Reinicialitza + Reinicia Canals Llistes de reproducció Pistes Usuaris Pestanya nova - Tria una pestanya + Trieu una pestanya Control de volum per gestos Fes servir gestos per controlar el volum del reproductor Control de brillantor per gestos @@ -410,15 +410,15 @@ Actualitzacions S\'ha eliminat el fitxer L\'emmagatzematge extern no està disponible - Reinicialitza els valors per defecte - Vols reinicialitzar els valors per defecte\? + Reinicia als valors per defecte + Voleu reiniciar als valors per defecte\? Selecció Actualitzacions Llista Quadrícula Automàtic Canvia la vista - Està disponible una nova actualització del NewPipe! + Està disponible una actualització del NewPipe! Pendent en pausa a la cua @@ -456,14 +456,14 @@ Sobreescriu No s\'ha trobat Mostra els comentaris - Desactiva-ho per deixar de mostrar els comentaris + Desactiveu-ho per no mostrar els comentaris Reproducció automàtica - No hi ha comentaris + Cap comentari No s\'han pogut carregar els comentaris Tanca - S\'estan utilitzant les pestanyes per defecte, s\'ha produït un error en llegir les pestanyes desades - Mostra una notificació per demanar l\'actualització de l\'aplicació si hi ha una nova versió disponible - Toca per baixar + S\'ha produït un error en llegir les pestanyes desades; s\'estan utilitzant les pestanyes per defecte + Mostra una notificació per demanar l\'actualització de l\'aplicació si hi ha una versió nova disponible + Toqueu per baixar El servidor no està enviant dades Comentaris @@ -480,13 +480,40 @@ Limita la cua de baixades Inicia les baixades Pausa les baixades - Se us demanarà la ubicació de cada baixada + Si us demanarà la ubicació de cada baixada Posicions a les llistes Mostra els indicadors de posició de reproducció a les llistes Neteja les dades El sistema ha denegat l\'acció - Reprèn les teves %s baixades pendents des de Baixades S\'ha tancat el NewPipe mentre es treballava en el fitxer - Pregunta on baixar + Demana on baixar Canvia les carpetes de baixada perquè tingui efecte + No es pot desar a la targeta externa. Voleu restablir la carpeta de baixades\? + Permís denegat pel sistema + El servidor no accepta baixades simultànies. Proveu amb @string/msg_threads = 1 + Restaura la darrera posició de la reproducció + S\'ha suprimit les posicions de reproducció. + El fitxer s\'ha mogut o suprimit + Només una baixada alhora + Si us demanarà la ubicació de cada baixada. +\nTrieu SAF si voleu desar el contingut en una memòria externa + Utilitza 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. +\nNota: No és compatible en tots els dispositius + Esborra les posicions de reproducció + Esborra totes les posicions de reproducció + Voleu suprimir tots els punts de reproducció\? + In/Habilita el servei; selecció actual: + Cap visualització + + %s visualització + %s visualitzacions + + Cap reproducció + + %s escoltant + %s escoltant + + Es canviarà la llengua en reiniciar l\'aplicació. + Tendències \ No newline at end of file diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 9a9cc8654..66c952a26 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -314,7 +314,6 @@ otevření ve vyskakovacím okně Přizpůsobit Vyplnit Zvětšit - Sledovat únik paměti Ladění "Automaticky generováno " Povolit službu LeakCanary @@ -513,4 +512,18 @@ otevření ve vyskakovacím okně Smazat všechny pozice playbacku\? Změnit adresář pro stažené soubory Přepnout službu, právě vybráno: + Nikdo nesleduje + + %s sleduje + %s sledují + %s sleduje + + Nikdo neposlouchá + + %s posluchač + %s posluchači + %s posluchačů + + Ke změně jazyka dojde po restartu aplikace. + Výchozí kiosek \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0dc0de8b4..d72b3de29 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -202,8 +202,8 @@ Keine Videos - %s Video - %s Videos + Video + Videos Die meisten Sonderzeichen Element gelöscht @@ -505,5 +505,16 @@ Alle Wiedergabepositionen löschen\? Ändere die Downloadordner, damit sie wirksam werden Dienst umschalten, aktuell ausgewählt: - Quiosque Predefinido + Quiosque Predefinido + Niemand schaut zu + + %s Zuschauer + %s Zuschauer + + Niemand hört zu + + %s Zuhörer + %s Zuhörer + + Die Sprache ändert sich, sobald die App neu gestartet wird. \ No newline at end of file diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 115b8d0b3..142813119 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -16,12 +16,12 @@ περιστροφή Χρήση εξωτερικής εφαρμογής αναπαραγωγής βίντεο Χρήση εξωτερικής συσκευής αναπαραγωγής ήχου - Διαδρομή λήψης βίντεο - Διαδρομή για αποθήκευση των βίντεο - Εισάγετε διαδρομή για λήψη των βίντεο + Φάκελος λήψης βίντεο + Τα ληφθέντα αρχεία βίντεο αποθηκεύονται εδώ + Επιλέξτε το φάκελο λήψης για αρχεία βίντεο Διαδρομή λήψης αρχείων ήχου - Αυτή είναι η διαδρομή για την αποθήκευση αρχείων ήχου - Εισάγετε διαδρομή για λήψη αρχείων ήχου + Τα ληφθέντα αρχεία ήχου αποθηκεύονται εδώ + Επιλέξτε το φάκελο λήψης για αρχεία ήχου Προεπιλεγμένη ανάλυση Αναπαραγωγή με το Kodi Η εφαρμογή Kore δεν βρέθηκε. Εγκατάσταση της; @@ -40,11 +40,11 @@ Βίντεο & Ήχος Εμφάνιση Άλλα - Αναπαραγωγή στο υπόβαθρο + Αναπαραγωγή στο παρασκήνιο Αναπαραγωγή Σφάλμα δικτύου Μικρογραφία προεπισκόπισης βίντεο - Μικρογραφία προεπισκόπησης βίντεο + Αναπαραγωγή βίντεο, διάρκεια: Μικρογραφία εικόνας προφίλ του χρήστη Like Dislike @@ -313,7 +313,7 @@ Αφαίρεση Λεπτομέρειες Ρυθμίσεις ήχου - Πιέστε παρατεταμένα για να προστεθεί στην ουρά + Πιέστε για να προστεθεί στην ουρά "Προσθήκη στη λίστα αναπαραγωγής του παρασκήνιου" Προσθήκη στη λίστα αναπαραγωγής νέου Αναδυόμενου παραθύρου Εκκίνηση Αναπαραγωγής εδώ @@ -503,4 +503,17 @@ Διαγράφει όλες τις θέσεις αναπαραγωγής Να διαγραφούν όλες οι θέσεις αναπαραγωγής; Αλλαγή των φακέλων λήψης για να τεθούν σε ισχύ + Εναλλαγή υπηρεσιών, επιλεγμένη αυτήν τη στιγμή: + Κανείς δεν παρακολουθεί + + %s παρακολουθεί + %s παρακολουθούν + + Κανείς δεν ακούει + + %s ακροατής + %s ακροατές + + Η γλώσσα θα αλλάξει μόλις θα επανεκκινηθεί η εφαρμογή. + Προεπιλεγμένο περίπτερο \ No newline at end of file diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index d5cc38a1a..c14195276 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -328,7 +328,7 @@ k M - B + Mrd Pri NewPipe Agordoj Pri @@ -425,9 +425,9 @@ Ne povis importi abonojn Ne povis eksporti abonojn via salutnomo, soundcloud.com/salutnomo - "Memoru, ke ĉi tiu operacio povas esti multekosta en la reto. + Memoru, ke ĉi tiu operacio povas esti multekosta en la reto. \n -\nĈu vi volas daŭrigi\?" +\nĈu vi volas daŭrigi\? Kontroloj de rapideco de ludo Tempoindiko Ludkampo @@ -491,11 +491,9 @@ Ne povas konektiĝi al la servilo La servilo ne sendas datumojn La servilo ne akceptas plurfadenajn elŝutojn, reprovu kun @string/msg_threads = 1 - Petita kampo ne estas havebla Ne trovita Postprocesado malsukcesis Forviŝi la finitajn elŝutojn - Daŭrigi viajn %s pritraktajn delokigojn el Elŝutoj Utila dum la ŝanĝo al poŝdatumoj, kvankam kelkaj elŝutoj ne povas esti interrompitaj Neniu komento Dosiero kun ĉi tiu nomo jam ekzistas @@ -506,5 +504,16 @@ Progreso perdita, ĉar la dosiero estis forviŝita Eltempiĝo de Konekto Ŝangi la servon, nuntempe elektita: - Defaŭlta Kiosko + Defaŭlta Kiosko + Neniu spektas + + %s spektanta + %s spektanta + + Neniu aŭskultas + + %s aŭskultanto + %s aŭskultantoj + + La lingvo ŝanĝos kiam la apo restartos. \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 6fcbc9fa7..5691c2ab6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -446,7 +446,6 @@ No se puede conectar con el servidor El servidor no devolvio datos El servidor no acepta descargas multi-hilos, intente de nuevo con @string/msg_threads = 1 - No se puede satisfacer el intervalo seleccionado No encontrado Falló el posprocesamiento NewPipe se cerró mientras se trabajaba en el archivo @@ -491,8 +490,8 @@ Desactívela para ocultar los comentarios Reproducción automática - Comentarios - + Comentario + Comentarios Sin comentarios No se pudo cargar comentarios @@ -507,5 +506,16 @@ Elimina todas las posiciones de reproducción ¿Quiere eliminar todas las posiciones de reproducción\? Activar/desactivar servicio, seleccionados actualmente: - kiosco predeterminado + kiosco predeterminado + Nadie está viendo + + %s viendo + %s viendo + + Nadie está escuchando + + %s escucha + %s escuchas + + El idioma cambiará luego de que la app sea reiniciada. \ No newline at end of file diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 743c6b3fb..adf7d6720 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -12,9 +12,9 @@ Partekatu honekin Nabigatzailea aukeratu biratzea - Bideoak deskargatzeko kokapena - Deskargatutako bideoak gordetzeko bide-izena - Zehaztu bideoak deskargatzeko kokapena + Bideoak deskargatzeko karpeta + Deskargatutako bideoak hemen gordeko dira + Hautatu bideoak deskargatzeko karpeta Lehenetsitako bereizmena Jo Kodirekin Ez da aurkitu Kore aplikazioa. Kore instalatu? @@ -30,7 +30,7 @@ Bideoa eta Audioa Erreproduzitu Bideoaren aurreikuspen argazkitxoa - Bideoaren aurreikuspen argazkitxoa + Erreproduzitu bideoa, iraupena: Igotzailearen abatarraren iruditxoa Ez dute gustoko Gustoko dute @@ -43,8 +43,8 @@ Atzeko planoan erreproduzitzen Ukitu bilaketa hasteko Audioa deskargatzeko karpeta - Zehaztu audioa deskargatzeko bide-izena - Deskargatutako audioa hemen gordetzen da + Hautatu audio fitxategiak deskargatzeko karpeta + Deskargatutako audio fitxategiak hemen gordetzen dira Erreprodukzio automatikoa Bideoa abiatzen du NewPipe beste aplikazio batek deitu badu Iluna @@ -116,7 +116,7 @@ Audioa Saiatu berriro Biltegia atzitzeko baimena ukatu da - K + k M MM Hasi @@ -199,8 +199,8 @@ Bideorik ez - %s Bideoa - %s Bideoak + Bideoa + Bideoak Historiala Bilatuta @@ -288,7 +288,7 @@ Zure uneko historiala eta harpidetzak gainidazten ditu Esportatu historiala, harpidetzak eta erreprodukzio-zerrendak Garbitu ikusitakoaren historiala - Jotako jarioen historiala ezabatzen du + Jotako jarioen historiala eta erreprodukzio puntuak ezabatzen ditu Ezabatu ikusitakoaren historia osoa\? Ikusitakoaren historiala ezabatuta. Garbitu bilaketa historiala @@ -495,6 +495,26 @@ Pausatu deskargak Galdetu non deskargatu Non gorde galdetuko zaizu deskarga bakoitzean - Non gorde galdetuko zaizu deskarga bakoitzean. -\nGaitu aukera hau kanpo SD txartelean gorde nahi baduzu + Non gorde galdetuko zaizu deskarga bakoitzean. +\nHautatu SAF kanpo SD txartelean gorde nahi baduzu + Aldatu deskargen karpetak indarrean jartzeko + Ez dago inor ikusten + + %s ikusten + %s ikusten + + Ez dago inor entzuten + + %s entzuten + %s entzuten + + SAF erabili + Biltegian Sartzeko Armazoiak kanpoko SD txartel betera jaitsierak egitea ahalbidetzen du. +\nOharra: gailu batzuk ez dira bateragarriak + Ezabatu erreprodukziorako kokapenak + Erreprodukziorako kokapen guztiak ezabatzen ditu + Ezabatu erreprodukziorako kokapen guztiak\? + Aktibatu zerbitzua, orain hautatua: + Hizkuntza aldatuko da aplikazioa berrabiarazterakoan. + Kiosko Lehenetsia \ No newline at end of file diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 836c55e63..b2a04e14c 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -460,7 +460,6 @@ ناتوانی در اتصال به کارساز کارساز داده‌ای نمی‌فرستد کارساز، بارگیری‌های چندرشته‌ای را قبول نمی‌کند، تلاش مجدد با ‎@string/msg_threads = 1 - بازهٔ درخواست شده قابل قبول نیست پاک کردن بارگیری‌های تمام شده توقف بیشینه تلاش مجدد diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2091a62fe..aecf113d1 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -93,7 +93,7 @@ Nouvelle mission OK Nom du fichier - Fils de discussion + Nombre de connexions simultanées Erreur Serveur non pris en charge Fichier déjà existant @@ -130,12 +130,12 @@ Format vidéo par défaut Mémoriser les taille et position de la fenêtre flottante Mémorise les dernières taille et position de la fenêtre flottante - Fenêtre flottante + Fenêtré Filtre Rafraîchir Effacer Redimensionner - B + Mrd Retire l’audio à CERTAINES définitions Utiliser des gestes pour contrôler la luminosité et le volume du lecteur Suggestions de recherche @@ -205,8 +205,8 @@ Aucune vidéo - %s vidéo - %s vidéos + Vidéo + Vidéos Caractères spéciaux Élément supprimé @@ -275,8 +275,8 @@ Exporte l’historique, les abonnements et les listes de lecture Exporté Importé - Aucun fichier ZIP valide - Avertissement : impossible d’importer tous les fichiers. + Fichier ZIP non valide + Avertissement : Impossible d\'importer tous les fichiers. Cela effacera vos paramètres actuels. Afficher les infos Listes de lecture enregistrées @@ -310,7 +310,7 @@ Utiliser la recherche rapide approximative Permet au lecteur d’accéder plus rapidement à une position au détriment de la précision Charger les miniatures - Désactiver pour empêcher le chargement des miniatures, afin de réduire l’utilisation de la bande passante et de la mémoire. Modifier cette option vide les caches d’image en mémoire vive et sur le disque. + Désactiver pour empêcher le chargement des miniatures afin d\'économiser vos données. Modifier cette option vide le cache en mémoire vive et sur le disque. Images en cache effacées Effacer les métadonnées en cache Efface toutes les données de pages Web en cache @@ -325,7 +325,7 @@ Quelque chose va bientôt apparaître ici ;D Télécharger le fichier de flux Vidéo suivante en file d’attente - Ajoute automatiquement un flux lié lors de la lecture du dernier flux dans une file d’attente sans répétition + Lecture automatique après la file d\'attente Débogage Remplir Générés automatiquement @@ -381,7 +381,7 @@ NewPipe est un logiciel sous licence libre copyleft : vous pouvez l’utiliser, l’étudier, le partager et l’améliorer comme bon vous semble. Plus précisément, vous pouvez le redistribuer ou le modifier sous les termes de la licence générale publique GNU, comme publiée par la Free Software Foundation, dans sa version 3, ou, à votre convenance, dans une version quelconque version ultérieure. Politique de confidentialité de NewPipe Lire la politique de confidentialité - Voulez-vous également importer des paramètres \? + Voulez-vous également importer les paramètres \? Accepter Refuser Le projet NewPipe prend votre vie privée très à cœur. Par conséquent, l’application n’envoie aucune donnée sans votre consentement. @@ -401,7 +401,7 @@ Action lors du basculement à une autre application depuis le lecteur vidéo — %s Aucune Minimiser pour lire en arrière-plan - Minimiser pour lire en mode flottant + Basculer vers le mode fenêtré Se désabonner Nouvel onglet Sélectionner un onglet @@ -421,14 +421,14 @@ Arrêter Évènements Impossible de télécharger dans la carte mémoire externe. Voulez-vous réinitialiser l’emplacement du dossier de téléchargement \? - Sélection des onglets à afficher sur la page principale + Choisir quels onglets seront visibles sur la page principale Mises à jour Afficher une notification pour proposer une mise à jour de l’application lorsqu’une nouvelle version est disponible Liste Grille Auto Changer de vue - Une mise à jour de NewPipe disponible ! + Une mise à jour de NewPipe est disponible ! Appuyer pour télécharger Terminé En attente @@ -443,7 +443,7 @@ Écraser Un fichier avec ce nom existe déjà Un fichier téléchargé avec ce nom existe déjà - Il y a un téléchargement en cours avec ce nom + Il y a déjà un téléchargement en cours avec ce nom Afficher l’erreur Code Le dossier de destination ne peut pas être créé @@ -464,7 +464,7 @@ Le post-traitement a échoué Nombre maximum de tentatives Nombre maximum de tentatives avant d’annuler le téléchargement - Utilisation des onglets par défaut, erreur lors de la lecture des onglets enregistrés + En utilisation les onglets par défaut, une erreur est survenue en lisant les onglets sauvegardés Le serveur n’accepte pas les téléchargements multi-fils, veuillez réessayer avec @string/msg_threads = 1 Afficher les commentaires Désactiver pour ne pas afficher les commentaires @@ -505,5 +505,16 @@ Voulez-vous supprimer toutes les positions de reprise de lecture \? Changez les dossiers de téléchargement pour que cela prenne effet Activer/Désactiver le service, actuellement sélectionné : - Kiosque par défaut + Kiosque par défaut + Personne ne regarde + + %s regarde + %s regardent + + Personne n\'écoute + + %s auditeur + %s auditeurs + + La langue changera lors du redémarrage de l\'application. \ No newline at end of file diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 565f815a1..fbcf5ce63 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -150,7 +150,7 @@ הגישה לאחסון נדחתה ק׳ מ׳ - ב׳ + מיליארד אין מנויים מנוי אחד @@ -167,7 +167,7 @@ אין סרטונים - %s סרטון + סרטון %s %s סרטונים %s סרטונים %s סרטונים @@ -513,5 +513,20 @@ למחוק את מיקומי הנגינה\? יש להחליף את תיקיות ההורדה כדי שייכנס לתוקף הפעלה/כיבוי שירות, בחירה נוכחית: - קיוסק בררת מחדל + אין צופים + + צופה %s + %s צופים + %s צופים + %s צופים + + אין מאזינים + + מאזין %s + %s מאזינים + %s מאזינים + %s מאזינים + + השפה תוחלף עם הפעלת היישומון מחדש. + קיוסק בררת מחדל \ No newline at end of file diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 364ab8f02..82b2db1b5 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -184,8 +184,8 @@ %s दर्शके - %s वीडियो - %s वीडियो + वीडियो + वीडियो शुरू रोके @@ -435,7 +435,6 @@ सर्वर नहीं ढूँढ सका सर्वर से जुड़ नहीं सकता सर्वर डेटा नहीं भेजता है - अनुरोधित सीमा संतोषजनक नहीं है नहीं मिला प्रक्रिया के बाद का कार्य विफल रहा समाप्त डाउनलोड साफ़ करें @@ -498,11 +497,21 @@ ऑटो मुसीबत दिखाए सर्वर मल्टी थ्रेडेड डाउनलोड स्वीकार नहीं करता, पुनः कोशिश करे @string/msg_threads = 1 के साथ - आपके %s रुके हुए कामों को डौन्लोडस में पुनः से शुरू करे - आपको डाउनलोड कहाँ सहेजना है हर डाउनलोड पर पूछा जायेगा + आपको डाउनलोड कहाँ सहेजना है हर डाउनलोड पर पूछा जायेगा \nअगर आपको एक्सटर्नल एस डी कार्ड पर डाउनलोड करना हो तो एस ऐ ऍफ़ चुनिए स्टोरेज एक्सेस फ्रेमवर्क (एस ऐ ऍफ़) आपको एस डी कार्ड पर डाउनलोड करने देता है \nसुचना - कुछ उपकरणों पर ये नहीं चलता सेवा चुने, वर्तमान चुनाव : - सामान्य कीओस्क + सामान्य कीओस्क + कोई नहीं देख रहा है + + % s आदमी देख रहा है + % s आदमी देख रहे है + + कोई नहीं सुन रहा है + + % s श्रोता + % s श्रोता + + ऐप के पुनः आरंभ होने के बाद भाषा बदल जाएगी। \ No newline at end of file diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 5fbdcffc1..938837bd5 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -501,4 +501,13 @@ Video Aktif/Nonaktifkan layanan, saat ini aktif: + Tidak ada yang menonton + + %s menonton + + Tidak ada yang mendengarkan + + %s mendengarkan + + Bahasa akan diterapkan setelah aplikasi dimulai ulang. \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 73633ab03..631922433 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -102,7 +102,7 @@ Tocca per maggiori dettagli Attendi… Copiato negli appunti - Seleziona una cartella per i downloads + Nelle impostazioni seleziona una cartella per i download Impossibile caricare l\'immagine L\'app/UI si è interrotta Cosa:\\nRichiesta:\\nLingua contenuto:\\nServizio:\\nOrario GMT:\\nPacchetto:\\nVersione:\\nVersione SO: @@ -111,9 +111,9 @@ Nero Tutto Canale - K + k M - B + Mrd È richiesta la risoluzione del reCAPTCHA Più tardi @@ -320,7 +320,7 @@ Usa la ricerca rapida ma imprecisa La ricerca imprecisa permette al lettore multimediale di spostarsi nelle posizioni più velocemente con una precisione ridotta Metti in coda automaticamente il prossimo flusso - Aggiungi automaticamente uno stream correlato raggiunta la fine della coda se la ripetizione è disattivata + Aggiungi automaticamente un contenuto correlato raggiunta la fine della coda se la ripetizione è disattivata File Nessuna cartella Nessun file o cartella che contiene sorgenti @@ -435,7 +435,7 @@ in pausa in coda post-processo - Coda + Accoda Azione negata dal sistema Download fallito Download finito @@ -477,7 +477,7 @@ Chiudi Recupera riproduzione Recupera l\'ultima posizione di riproduzione - Posizioni nelle liste + Posizioni in lista Mostra l indicatore di posizione di riproduzione nelle liste Pulisci dati Posizione di riproduzione eliminata. @@ -495,7 +495,7 @@ Chiedi dove scaricare Ti sarà chiesto dove salvare i file ogni volta Utilizza SAF - Limita la coda dei download + Limite download coda Ti verrà chiesto dove salvare ogni download. \nScegli SAF se vuoi scaricare su una scheda SD esterna Lo Storage Access Framework permette scaricamenti su una scheda SD esterna. @@ -503,6 +503,18 @@ Elimina posizioni di riproduzione Elimina tutte le posizioni di riproduzione Eliminare tutte le posizioni di riproduzione\? - Cambia le cartelle di download per renderlo effettivo + Modifica le cartelle di download per renderle effettive Attiva/disattiva il servizio, attualmente selezionato: + Nessuno sta guardando + + %s sta guardando + %s stanno guardando + + Nessuno sta ascoltando + + %s ascoltatore + %s ascoltatori + + La lingua verrà cambiata al riavvio dell\'applicazione. + Pagina predefinita \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 4c3aeb5c1..553a54f1e 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -498,7 +498,16 @@ ダウンロードフォルダーを変更して有効にします サービスの切り替え、現在の選択: - %s 動画 + 動画 - デフォルトのキオスク + デフォルトのキオスク + 誰も見ていません + + %s 見ています + + 誰も聞いていません + + %s リスナー + + アプリを再起動すると、言語が変更されます。 \ No newline at end of file diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 39b08347c..e8a2a9c51 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -331,10 +331,10 @@ 이전 내보내기 구독 목록 가져오기 실패 구독 목록 내보내기 실패 - \'YouTube 구독 파일\'을 다운로드해서 구독 목록을 가져올 수 있습니다: -\n -\n1. 이곳으로 가세요: $1$s -\n2. 요청에 따라 로그인을 진행합니다 + \'YouTube 구독 파일\'을 다운로드해서 구독 목록을 가져올 수 있습니다: +\n +\n1. 이곳으로 가세요: %1$s +\n2. 요청에 따라 로그인을 진행합니다 \n3. 다운로드가 곧 시작 됩니다 (이 파일이 구독 파일입니다) SoundCloud 프로필을 가져오시려면 URL 및 ID를 입력해주세요. \n @@ -502,5 +502,5 @@ 하나의 다운로드가 동시에 진행됩니다 적용하려면 다운로드 폴더를 변경하세요 서비스 토글, 현재 선택된 서비스: - 기본 키오스크 + 기본 키오스크 \ No newline at end of file diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 94119119a..c9388a78a 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -448,7 +448,6 @@ Не може да се поврзе со серверот Серверот не испраќа податоци Серверот не прифаќа преземања со повеќе навои, обидете се со @string/msg_threads = 1 - Побараниот опсег не е задоволителен Не е најдено Избриши завршени преземања Стоп diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index e0a08d0a7..d874e9b0e 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -454,7 +454,6 @@ Kan ikke koble til tjeneren Tjeneren sender ikke data "Tjeneren godtar ikke flertrådede nedlastinger, prøv igjen med @string/msg_threads = 1 " - Forespurt rekkevidde er ikke tilfredsstillende Ikke funnet Etterbehandling mislyktes Tøm fullførte nedlastinger @@ -505,5 +504,16 @@ Slett alle avspillingsposisjoner\? Endre nedlastingsmappene for å tre i kraft Skru tjeneste av/på, for tiden er dette status: - Standard kiosk + Ingen ser på + + %s seer + %s seere + + Ingen lytter + + %s lytter + %s lyttere + + Språk vil ikke bli endret før programmet startes på ny. + Forvalgt kiosk \ No newline at end of file diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 5c42bfd23..198979def 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -3,8 +3,8 @@ Tik op zoeken voor te beginnen %1$s keer bekeken Gepubliceerd op %1$s - Gene speler met streamondersteuning gevonden. Wilt ge VLC installeren? - Gene speler met streamondersteuning gevonden (ge kunt VLC installeren voor af te spelen). + Geen speler met streamondersteuning gevonden. Wil je VLC installeren\? + Geen speler met streamondersteuning gevonden (je kan VLC installeren om af te spelen). Installeren Annuleren In browser openen @@ -14,13 +14,13 @@ Streambestand downloaden Zoeken Instellingen - Bedoelde ge: %1$s\? + Bedoelde je: %1$s\? Delen met - Kies nen browser + Kies browser rotatie Externe videospeler gebruiken Verwijdert het geluid bij SOMMIGE resoluties - Externen audiospeler gebruiken + Externe audiospeler gebruiken NewPipe-pop-upmodus Abonneer Geabonneerd @@ -36,13 +36,13 @@ Pop-up Toevoegen aan Downloadlocatie voor video’s - Locatie voor gedownloade video’s in op te slaan + Gedownloade videobestanden worden hier opgeslaan Voer downloadlocatie in voor video’s Downloadmap voor audio - Gedownloade audio wordt hier opgeslagen + Gedownloade audiobestanden worden hier opgeslaan Voer downloadlocatie voor audiobestanden in Automatisch afspelen - Speeld video’s af wanneer da NewPipe vanuit nen anderen app word g’opend + Speelt video’s af wanneer dat NewPipe vanuit een anderen app word geopend Standaardresolutie Standaardresolutie voor pop-up Hogere resoluties weergeven @@ -63,13 +63,13 @@ Snel, minder exact spoelen gebruiken Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie Miniatuurvoorbeelden laden - Schakelt dit uit voor het laden van miniatuurvoorbeelden te verhinderen; dit bespaart mobiele gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache. + Schakel dit uit voor het laden van miniatuurvoorbeelden te verhinderen; dit bespaart mobiele gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache. Afbeeldingscache gewist Gecachete metagegevens wissen Alle gecachete webpagina-gegevens wissen Metagegevens-cache gewist Volgende stream automatisch in wachtrij plaatsen - Automatisch ne gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst + Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst Veegbesturing Gebruikt vegen voor de helderheid en het volume van de speler aan te passen Zoeksuggesties @@ -459,17 +459,18 @@ Voltooide downloads wissen Stoppen Maximaal aantal pogingen - Maximaal aantal pogingen vooraleer dat den download wordt geannuleerd + Maximaal aantal pogingen vooraleer dat de download wordt geannuleerd Pauzeren bij overschakelen naar mobiele gegevens - Downloads die dat niet kunnen gepauzeerd worden gaan herstart worden + Nuttig bij het gebruik van mobiele data, hoewel sommige downloads niet uitgesteld kunnen worden Commentaren weergeven Schakelt dit uit voor reacties niet meer weer te geven Automatisch afspelen Commentaren - + Geen commentaren Kan commentaren niet laden Sluiten + Vooruitgang verloren, omdat het bestand gedeletet werd \ No newline at end of file diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index b9b86a292..9ecc936eb 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -37,7 +37,7 @@ Gebruikersafbeelding van uploader Vind-ik-niet-leuks Downloadfolder voor audio - Gedownloade muziek is hier opgeslagen + Gedownloade muziek wordt hier opgeslagen Voer downloadlocatie voor audiobestanden in Thema Donker @@ -470,9 +470,14 @@ Automatisch afspelen Reacties - + Geen reacties Kan reacties niet laden Sluiten + Het Storage Acces Framework laat downloads naar een externe SD kaart toe. +\n +\nNota: niet alle toestellen zijn compatibel + Wis data + Verander de downloadmappen om effect te bekomen \ No newline at end of file diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml new file mode 100644 index 000000000..0e5b7ccd6 --- /dev/null +++ b/app/src/main/res/values-oc/strings.xml @@ -0,0 +1,2 @@ + + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b7086b34f..769fa67a6 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,7 +1,7 @@ Naciśnij Szukaj, aby zacząć - Instaluj + Zainstaluj Anuluj Otwórz w przeglądarce Udostępnij @@ -216,9 +216,9 @@ Brak filmów - %s film - %s filmy - %s filmów + %s Film + %s Filmy + %s Filmów Większość znaków specjalnych Dotacja @@ -479,21 +479,21 @@ Nie można załadować komentarzy Zamknij Wznów odtwarzanie - Przywróć pozycję odtwarzania - Pozycje na liście + Przywróć ostatnią odtwarzaną pozycję + Pozycje na listach Pokaż wskaźniki pozycji odtwarzania na listach Wyczyść dane - Usunięto pozycję odtwarzania. - Plik przeniesiony lub usunięty - Plik o takiej nazwie już istnieje - Nie można nadpisać tego pliku + Pozycja odtwarzania usunięta. + Plik usunięty lub przeniesiony + Plik z tą nazwą już istnieje + nie można nadpisać pliku Pobieranie pliku z tą nazwą jest już w kolejce - NewPipe został zamknięty w czasie pracy nad plikiem - Brak wystarczającej ilości miejsca na urządzeniu - Utracono postęp ponieważ plik został usunięty + NewPipe został zamknięty podczas pracy nad plikiem + Brak miejsca na urządzeniu + Postęp został utracony ze wzgledu na usunięcie pliku Czy jesteś pewien\? Ogranicz kolejkę pobierania - Tylko jedno pobieranie będzie realizowane w danej chwili + Tylko jedno pobieranie będzie realizowane jednocześnie Rozpocznij pobieranie Wstrzymaj pobieranie Zapytaj gdzie pobrać @@ -502,12 +502,25 @@ Zostaniesz zapytany, gdzie zapisać każde pobranie. \nWybierz SAF, jeśli chcesz pobrać na zewnętrzną kartę SD Użyj SAF - Struktura dostępu do pamięci masowej umożliwia pobieranie danych na zewnętrzną kartę SD. -\nUwaga: niektóre urządzenia nie są kompatybilne + Biblioteka dostępu do pamięci pozwala na pobieranie danych na zewnętrzną kartę. +\nUwagi: Niektóre urządzenia nie są kompatybilne Usuń pozycje odtwarzania Usuwa wszystkie pozycje odtwarzania Usunąć wszystkie pozycje odtwarzania\? Zmień foldey pobierania, aby zostały uwzględnione Przełączanie usługi, aktualnie wybranej: - Domyślny Kiosk + Domyślny Kiosk + Nikt nie ogląda + + %s obserwujący + %s obserwujących + %s obserwujących + + Nikt nie słucha + + %s słuchacz + %s słuchaczy + %s słuchaczy + + Język zmieni się po ponownym uruchomieniu aplikacji. \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 5de1e6610..febc9ef41 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -205,8 +205,8 @@ abrir em modo popup Nenhum vídeo - %s vídeo - %s vídeos + %s Vídeo + %s Vídeos Item excluído Player @@ -214,7 +214,7 @@ abrir em modo popup Deseja apagar este item do seu histórico de pesquisas\? Conteúdo da página principal Página em branco - Página de banca + Página do Quiosque Página de inscrição Página de feed Página de canais @@ -288,7 +288,7 @@ abrir em modo popup Dispensar Renomear Deseja apagar este item do seu histórico de assistidos\? - Tem certeza que deseja apagar todos itens do histórico? + Tem certeza de que deseja apagar todos itens do histórico\? Reproduzido anteriormente Mais reproduzido Sempre perguntar @@ -513,5 +513,16 @@ abrir em modo popup Deletar todo o histórico de reprodução\? Mude as pastas de download para surtir efeito Alterar serviço, selecionados: - Quiosque Padrão + Quiosque Padrão + Ninguém está assistindo + + %s assistindo + %s estão assistindo + + Ninguém está ouvindo + + %s ouvinte + %s ouvintes + + O idioma será atualizado assim que o aplicativo for reiniciado. \ No newline at end of file diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 88fbb72a6..c26c57aad 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -504,5 +504,16 @@ Eliminar todas as posições de reprodução\? Alterar as pastas de descarregamento para que tenham efeito Alternar serviço, agora selecionado: - Quiosque Predefinição + Quiosque Predefinição + Ninguém está a ver + + %s a ver + %s a ver + + Ninguém está a ouvir + + %s ouvinte + %s ouvintes + + O idioma mudará quando a app for reiniciada. \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 80b587657..9e28d4ff6 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -282,7 +282,7 @@ Плейлисты В плейлист Быстрый поиск позиции - Выполняется быстрее, но с меньшей точностью + Выполняется быстрее, но менее точно Автодополнение очереди Добавлять похожие потоки в очередь при воспроизведении последнего потока, если не включён повтор Отладка @@ -466,7 +466,7 @@ Создать уникальное имя Максимум попыток Количество попыток перед отменой загрузки - Некоторые загрузки не поддерживают докачку и начнутся с начала + Некоторые загрузки не поддерживают докачку и начнутся сначала Не удалось установить защищённое соединение Не удалось соединиться с сервером Не удалось получить данные с сервера @@ -508,5 +508,18 @@ Удалить все позиции воспроизведения\? Измените папки загрузки для вступления настроек в силу Переключение сервисов, сейчас выбрано: - Киоск по умолчанию + Киоск по умолчанию + Никто не смотрел + + %s зритель + %s зрителя + %s зрителей + + Нет слушателей + + %s слушатель + %s слушателя + %s слушателей + + Язык будет изменён после перезапуска \ No newline at end of file diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index cbc201fd5..6624f7a3b 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -511,5 +511,5 @@ Odstrániť všetky pozície prehrávania\? Zmeniť miesto pre stiahnuté súbory Prepnúť službu, práve vybraté: - Predvolený kiosk + Predvolený kiosk \ No newline at end of file diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 92785a950..89d51493e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -163,8 +163,8 @@ Inga videor - %s video - %s videor + Video + Videor Start Pausa @@ -448,7 +448,6 @@ Hittades inte Efterbehandling misslyckades Töm färdiga nedladdningar - Fortsätt med %s väntande överföringar från Nedladdningar Stanna Max försök Max antal försök tills nedladdning avbryts @@ -457,6 +456,11 @@ Visa kommentarer Kommentarer - + + Inaktivera för att sluta visa kommentarer + Återuppta uppspelning + Återställ den senaste uppspelningspositionen + Positioner i listor + Ändra nedladdningsmapp för att träda i kraft \ No newline at end of file diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 6f71a8b97..0dee99ad0 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -155,4 +155,69 @@ "பாப்அப் இயக்கிக்கு மாறு " குழுவிலகு வரிசை + நெட்வொர்க் பிழை + படத்தை காண்பிக்க முடியவில்லை + செயலி நிறுத்தப்பட்டது + மன்னிக்கவும். + மின்னஞ்சல் மூலம் பிழையை தெரிவிக்கவும் + என்ன நடந்தது: + உங்கள் கருத்து: + காணொளி முன்தோற்றம் + வெறுப்புகள் + ஒரு பிழையை பதிவுசெய் + பயனர் அறிக்கை + \'%1$s\' தரவிறக்க அடைவை உருவாக்க இயலவில்லை + சேமிப்பிற்க்கான அனுமதி இல்லை + பின் தொடர்பவர்கள் இல்லை + + %s பின் தொடர்பவர் + %s பின் தொடர்பவர்கள் + + யாரும் பார்க்கவில்லை + + %s பார்வை + %s பார்வைகள் + + + காணொளிகள் + + + முதற்பக்கத்துக்கு மாற்று + சரியில்லாத URL + எந்த காணொலியும் இல்லை + எந்த ஒலியோடையும் இல்லை + அப்படியொரு அடைவுகள் இல்லை + அப்படியொரு கோப்பு இல்லை + ஒரு பிழை நிகழ்ந்தது: %1$s + காணொளிக் கோப்புகள் + புதிய பக்கம் + பக்கத்தை தேர்வு செய் + சத்தக் கட்டுப்பாடு செய்கை + Player-ன் சத்தத்தைக் கட்டுப்படுத்த செய்கையை பயன்படுத்து + வெளிச்ச கட்டுப்பாடு செய்கை + Player-ன் வெளிச்சத்தைக் கட்டுப்படுத்த செய்கையை பயன்படுத்து + புதுப்பித்தல்கள் + கோப்பு அழிக்கப்பட்டது + செயலி புதுப்பித்தல் அறிவிப்பு + புதிய NewPipe பதிப்புக்கு அறிவிப்பு + வெளி சேமிப்பு இயலாது + பின்தொடர்பவர்கள் எண்ணிக்கை இல்லை + நிகழ்வுகள் + கருத்துக்களை காண்பி + கருத்துக்களை காண்பிப்பதை நிறுத்துதலை செயலிழக்கசெய் + தானாக ஓட்டு + + கருத்துக்கள் + + + திரையிடலை தொடங்கு + பட்டியலில் இடங்கள் + தரவை நீக்கு + கோப்பு மாற்ற அல்லது நீக்கப்பட்டது + தரவிறக்க அடைவுகளை தேர்வு செய் + யாரும் பார்க்கவில்லை + + %s பார்க்கிறார் + %s பார்க்கிறார்கள் + \ No newline at end of file diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 961a796f5..0fc066986 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -154,7 +154,6 @@ ล้างประวัติการดู ลบประวัติของวีดีโอที่เคยเล่น ลบประวัติการดูทั้งหมดหรือไม่\? - ลบประวัติการดูแล้ว ล้างประวัติการค้นหา ลบประวัติของคำที่เคยค้นหา ลบประวัติการค้นหาทั้งหมดหรือไม่\? @@ -318,7 +317,6 @@ รายละเอียด การตั้งค่าเสียง กดค้างไว้เพื่อเพิ่มลงในคิว - เล่นโดยตรงในโหมดพื้นหลัง เพิ่มคิวในโหมดพื้นหลัง เพิ่มคิวในโหมดป๊อปอัพ เริ่มเล่นจากตรงนี้ @@ -417,7 +415,6 @@ %s การดาวน์โหลดเสร็จสิ้น สร้างชื่อเฉพาะ เขียนทับ - ไฟล์ที่ดาวน์โหลดด้วยชื่อนี้มีอยู่แล้ว มีการดาวน์โหลดที่กำลังดำเนินการอยู่ด้วยไฟล์ชื่อนี้อยู่แล้ว แสดงข้อผิดพลาด โค้ด diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 1cb6fafd4..06bb3946c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -502,8 +502,19 @@ Etkili olması için indirme dizinlerini değiştirin Hizmeti değiştir, şu anda seçili olan: - %s video - %s video + Videolar + Videolar - Varsayılan Kiosk + Varsayılan Kiosk + Kimse izlemiyor + + %s izliyor + %s izliyor + + Kimse dinlemiyor + + %s dinleyici + %s dinleyici + + Uygulama yeniden başlatıldıktan sonra dil değişecektir. \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index d43b8be66..ff9907890 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -233,9 +233,9 @@ %s підписників - %s відео - %s відео - %s відео + Відео + Відео + Відео Створити Видалити одне @@ -506,7 +506,20 @@ Видалити запам\'ятовані позиції Видаляє усі запам\'ятовані позиції Видалити усі запам\'ятовані позиції\? - Змініть папки завантаження для ефективності + Для ефективності змініть папки завантаження Перемкнути службу, наразі обрано: - Кіоск за замовчуванням + Кіоск за замовчуванням + Немає переглядів + + %s глядач + %s глядача + %s глядачів + + Ніхто не слухає + + %s слухач + %s слухача + %s слухачів + + Мова зміниться після перезапуску програми. \ No newline at end of file diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 028986866..089b793c8 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -451,11 +451,9 @@ سرور سے متصل نہیں ہوسکتا سرور ڈیٹا نہیں بھیجتا ہے سرور ملٹی تھریڈڈ ڈاؤن لوڈز کو قبول نہیں کرتا ہے ، @ سٹرنگ / msg_threads = 1 کے ساتھ دوبارہ کوشش کریں - درخواست کی گئی حد قابل اطمینان نہیں ہے نہیں ملا پوسٹ پروسیسنگ ناکام ختم شدہ ڈاؤن لوڈ صاف کریں - اپنے% s زیر التوا منتقلیوں کو ڈاؤن لوڈز سے جاری رکھیں رکو زیادہ سے زیادہ دوبارہ کوشش کریں ڈاؤن لوڈ منسوخ کرنے سے پہلے کوششوں کی زیادہ سے زیادہ تعداد diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml new file mode 100644 index 000000000..f888ae539 --- /dev/null +++ b/app/src/main/res/values-v27/styles.xml @@ -0,0 +1,14 @@ + + + + + + - -