commit
e1cc84ab5f
|
@ -13,7 +13,7 @@
|
||||||
</p>
|
</p>
|
||||||
<hr>
|
<hr>
|
||||||
<p align="center"><a href="#screenshots">Screenshots</a> • <a href="#description">Description</a> • <a href="#features">Features</a> • <a href="#updates">Updates</a> • <a href="#contribution">Contribution</a> • <a href="#donate">Donate</a> • <a href="#license">License</a></p>
|
<p align="center"><a href="#screenshots">Screenshots</a> • <a href="#description">Description</a> • <a href="#features">Features</a> • <a href="#updates">Updates</a> • <a href="#contribution">Contribution</a> • <a href="#donate">Donate</a> • <a href="#license">License</a></p>
|
||||||
<p align="center"><a href="https://newpipe.schabi.org">Website</a> • <a href="https://newpipe.schabi.org/blog/">Blog</a> • <a href="https://newpipe.schabi.org/press/">Press</a></p>
|
<p align="center"><a href="https://newpipe.schabi.org">Website</a> • <a href="https://newpipe.schabi.org/blog/">Blog</a> • <a href="https://newpipe.schabi.org/FAQ/">FAQ</a> • <a href="https://newpipe.schabi.org/press/">Press</a></p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<b>WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.</b>
|
<b>WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.</b>
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.gitignore
|
.gitignore
|
||||||
/build
|
/build
|
||||||
app.iml
|
*.iml
|
||||||
|
|
|
@ -11,8 +11,8 @@ android {
|
||||||
applicationId "org.schabi.newpipe"
|
applicationId "org.schabi.newpipe"
|
||||||
minSdkVersion 19
|
minSdkVersion 19
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 830
|
versionCode 840
|
||||||
versionName "0.18.3"
|
versionName "0.18.4"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
@ -53,6 +53,7 @@ ext {
|
||||||
okHttpLibVersion = '3.12.6'
|
okHttpLibVersion = '3.12.6'
|
||||||
icepickLibVersion = '3.2.0'
|
icepickLibVersion = '3.2.0'
|
||||||
stethoLibVersion = '1.5.0'
|
stethoLibVersion = '1.5.0'
|
||||||
|
markwonVersion = '4.2.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -62,7 +63,7 @@ dependencies {
|
||||||
exclude module: 'support-annotations'
|
exclude module: 'support-annotations'
|
||||||
})
|
})
|
||||||
|
|
||||||
implementation 'com.github.TeamNewPipe:NewPipeExtractor:33961b20'
|
implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.18.4'
|
||||||
testImplementation 'junit:junit:4.12'
|
testImplementation 'junit:junit:4.12'
|
||||||
testImplementation 'org.mockito:mockito-core:2.23.0'
|
testImplementation 'org.mockito:mockito-core:2.23.0'
|
||||||
|
|
||||||
|
@ -94,7 +95,7 @@ dependencies {
|
||||||
implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
|
implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
|
||||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
||||||
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
|
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
|
||||||
implementation 'org.ocpsoft.prettytime:prettytime:4.0.1.Final'
|
implementation 'org.ocpsoft.prettytime:prettytime:4.0.3.Final'
|
||||||
|
|
||||||
implementation "androidx.room:room-runtime:${roomDbLibVersion}"
|
implementation "androidx.room:room-runtime:${roomDbLibVersion}"
|
||||||
implementation "androidx.room:room-rxjava2:${roomDbLibVersion}"
|
implementation "androidx.room:room-rxjava2:${roomDbLibVersion}"
|
||||||
|
@ -108,4 +109,7 @@ dependencies {
|
||||||
|
|
||||||
implementation "com.squareup.okhttp3:okhttp:${okHttpLibVersion}"
|
implementation "com.squareup.okhttp3:okhttp:${okHttpLibVersion}"
|
||||||
debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoLibVersion}"
|
debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoLibVersion}"
|
||||||
|
|
||||||
|
implementation "io.noties.markwon:core:${markwonVersion}"
|
||||||
|
implementation "io.noties.markwon:linkify:${markwonVersion}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".ReCaptchaActivity"
|
android:name=".ReCaptchaActivity"
|
||||||
android:label="@string/reCaptchaActivity"/>
|
android:label="@string/recaptcha"/>
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
|
|
|
@ -99,7 +99,7 @@ public class App extends Application {
|
||||||
NewPipe.init(getDownloader(),
|
NewPipe.init(getDownloader(),
|
||||||
Localization.getPreferredLocalization(this),
|
Localization.getPreferredLocalization(this),
|
||||||
Localization.getPreferredContentCountry(this));
|
Localization.getPreferredContentCountry(this));
|
||||||
Localization.init();
|
Localization.init(getApplicationContext());
|
||||||
|
|
||||||
StateSaver.init(this);
|
StateSaver.init(this);
|
||||||
initNotificationChannel();
|
initNotificationChannel();
|
||||||
|
|
|
@ -31,7 +31,6 @@ import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
@ -56,7 +55,6 @@ import androidx.fragment.app.FragmentManager;
|
||||||
import com.google.android.material.navigation.NavigationView;
|
import com.google.android.material.navigation.NavigationView;
|
||||||
|
|
||||||
import org.schabi.newpipe.extractor.NewPipe;
|
import org.schabi.newpipe.extractor.NewPipe;
|
||||||
import org.schabi.newpipe.extractor.ServiceList;
|
|
||||||
import org.schabi.newpipe.extractor.StreamingService;
|
import org.schabi.newpipe.extractor.StreamingService;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||||
import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance;
|
import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance;
|
||||||
|
@ -67,6 +65,7 @@ import org.schabi.newpipe.fragments.list.search.SearchFragment;
|
||||||
import org.schabi.newpipe.report.ErrorActivity;
|
import org.schabi.newpipe.report.ErrorActivity;
|
||||||
import org.schabi.newpipe.util.Constants;
|
import org.schabi.newpipe.util.Constants;
|
||||||
import org.schabi.newpipe.util.KioskTranslator;
|
import org.schabi.newpipe.util.KioskTranslator;
|
||||||
|
import org.schabi.newpipe.util.Localization;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
import org.schabi.newpipe.util.PeertubeHelper;
|
import org.schabi.newpipe.util.PeertubeHelper;
|
||||||
import org.schabi.newpipe.util.PermissionHelper;
|
import org.schabi.newpipe.util.PermissionHelper;
|
||||||
|
@ -78,6 +77,8 @@ import org.schabi.newpipe.util.ThemeHelper;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
private static final String TAG = "MainActivity";
|
private static final String TAG = "MainActivity";
|
||||||
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
|
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
|
||||||
|
@ -113,9 +114,9 @@ public class MainActivity extends AppCompatActivity {
|
||||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
|
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
|
||||||
TLSSocketFactoryCompat.setAsDefault();
|
TLSSocketFactoryCompat.setAsDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
|
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
|
||||||
|
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
|
@ -419,6 +420,8 @@ public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
|
Localization.init(getApplicationContext()); //change the date format to match the selected language on resume
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
// close drawer on return, and don't show animation, so its looks like the drawer isn't open
|
// close drawer on return, and don't show animation, so its looks like the drawer isn't open
|
||||||
|
@ -449,6 +452,16 @@ public class MainActivity extends AppCompatActivity {
|
||||||
sharedPreferences.edit().putBoolean(Constants.KEY_MAIN_PAGE_CHANGE, false).apply();
|
sharedPreferences.edit().putBoolean(Constants.KEY_MAIN_PAGE_CHANGE, false).apply();
|
||||||
NavigationHelper.openMainActivity(this);
|
NavigationHelper.openMainActivity(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sharedPreferences.getBoolean(Constants.KEY_ENABLE_WATCH_HISTORY, true)) {
|
||||||
|
if (DEBUG) Log.d(TAG, "do not show History-menu as its disabled in settings");
|
||||||
|
drawerItems.getMenu().findItem(ITEM_ID_HISTORY).setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!sharedPreferences.getBoolean(Constants.KEY_ENABLE_WATCH_HISTORY, true)) {
|
||||||
|
if (DEBUG) Log.d(TAG, "show History-menu as its enabled in settings");
|
||||||
|
drawerItems.getMenu().findItem(ITEM_ID_HISTORY).setVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -551,8 +564,6 @@ public class MainActivity extends AppCompatActivity {
|
||||||
if (!(fragment instanceof SearchFragment)) {
|
if (!(fragment instanceof SearchFragment)) {
|
||||||
findViewById(R.id.toolbar).findViewById(R.id.toolbar_search_container).setVisibility(View.GONE);
|
findViewById(R.id.toolbar).findViewById(R.id.toolbar_search_container).setVisibility(View.GONE);
|
||||||
|
|
||||||
MenuInflater inflater = getMenuInflater();
|
|
||||||
inflater.inflate(R.menu.main_menu, menu);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ActionBar actionBar = getSupportActionBar();
|
ActionBar actionBar = getSupportActionBar();
|
||||||
|
@ -574,14 +585,6 @@ public class MainActivity extends AppCompatActivity {
|
||||||
case android.R.id.home:
|
case android.R.id.home:
|
||||||
onHomeButtonPressed();
|
onHomeButtonPressed();
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_show_downloads:
|
|
||||||
return NavigationHelper.openDownloads(this);
|
|
||||||
case R.id.action_history:
|
|
||||||
NavigationHelper.openStatisticFragment(getSupportFragmentManager());
|
|
||||||
return true;
|
|
||||||
case R.id.action_settings:
|
|
||||||
NavigationHelper.openSettings(this);
|
|
||||||
return true;
|
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,25 @@
|
||||||
package org.schabi.newpipe;
|
package org.schabi.newpipe;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.core.app.NavUtils;
|
import androidx.core.app.NavUtils;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.webkit.CookieManager;
|
import android.webkit.CookieManager;
|
||||||
import android.webkit.WebSettings;
|
import android.webkit.WebSettings;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
|
|
||||||
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by beneth <bmauduit@beneth.fr> on 06.12.16.
|
* Created by beneth <bmauduit@beneth.fr> on 06.12.16.
|
||||||
*
|
*
|
||||||
|
@ -37,48 +42,46 @@ import android.webkit.WebViewClient;
|
||||||
public class ReCaptchaActivity extends AppCompatActivity {
|
public class ReCaptchaActivity extends AppCompatActivity {
|
||||||
public static final int RECAPTCHA_REQUEST = 10;
|
public static final int RECAPTCHA_REQUEST = 10;
|
||||||
public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra";
|
public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra";
|
||||||
|
|
||||||
public static final String TAG = ReCaptchaActivity.class.toString();
|
public static final String TAG = ReCaptchaActivity.class.toString();
|
||||||
public static final String YT_URL = "https://www.youtube.com";
|
public static final String YT_URL = "https://www.youtube.com";
|
||||||
|
|
||||||
private String url;
|
private WebView webView;
|
||||||
|
private String foundCookies = "";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
ThemeHelper.setTheme(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_recaptcha);
|
setContentView(R.layout.activity_recaptcha);
|
||||||
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||||
|
setSupportActionBar(toolbar);
|
||||||
|
|
||||||
url = getIntent().getStringExtra(RECAPTCHA_URL_EXTRA);
|
String url = getIntent().getStringExtra(RECAPTCHA_URL_EXTRA);
|
||||||
if (url == null || url.isEmpty()) {
|
if (url == null || url.isEmpty()) {
|
||||||
url = YT_URL;
|
url = YT_URL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set return to Cancel by default
|
||||||
// Set return to Cancel by default
|
|
||||||
setResult(RESULT_CANCELED);
|
setResult(RESULT_CANCELED);
|
||||||
|
|
||||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
|
||||||
setSupportActionBar(toolbar);
|
|
||||||
|
|
||||||
ActionBar actionBar = getSupportActionBar();
|
webView = findViewById(R.id.reCaptchaWebView);
|
||||||
if (actionBar != null) {
|
|
||||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
|
||||||
actionBar.setTitle(R.string.reCaptcha_title);
|
|
||||||
actionBar.setDisplayShowTitleEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
WebView myWebView = findViewById(R.id.reCaptchaWebView);
|
// enable Javascript
|
||||||
|
WebSettings webSettings = webView.getSettings();
|
||||||
// Enable Javascript
|
|
||||||
WebSettings webSettings = myWebView.getSettings();
|
|
||||||
webSettings.setJavaScriptEnabled(true);
|
webSettings.setJavaScriptEnabled(true);
|
||||||
|
|
||||||
ReCaptchaWebViewClient webClient = new ReCaptchaWebViewClient(this);
|
webView.setWebViewClient(new WebViewClient() {
|
||||||
myWebView.setWebViewClient(webClient);
|
@Override
|
||||||
|
public void onPageFinished(WebView view, String url) {
|
||||||
|
super.onPageFinished(view, url);
|
||||||
|
handleCookies(url);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Cleaning cache, history and cookies from webView
|
// cleaning cache, history and cookies from webView
|
||||||
myWebView.clearCache(true);
|
webView.clearCache(true);
|
||||||
myWebView.clearHistory();
|
webView.clearHistory();
|
||||||
android.webkit.CookieManager cookieManager = CookieManager.getInstance();
|
android.webkit.CookieManager cookieManager = CookieManager.getInstance();
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
cookieManager.removeAllCookies(aBoolean -> {});
|
cookieManager.removeAllCookies(aBoolean -> {});
|
||||||
|
@ -86,77 +89,82 @@ public class ReCaptchaActivity extends AppCompatActivity {
|
||||||
cookieManager.removeAllCookie();
|
cookieManager.removeAllCookie();
|
||||||
}
|
}
|
||||||
|
|
||||||
myWebView.loadUrl(url);
|
webView.loadUrl(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ReCaptchaWebViewClient extends WebViewClient {
|
@Override
|
||||||
private final Activity context;
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
private String mCookies;
|
getMenuInflater().inflate(R.menu.menu_recaptcha, menu);
|
||||||
|
|
||||||
ReCaptchaWebViewClient(Activity ctx) {
|
ActionBar actionBar = getSupportActionBar();
|
||||||
context = ctx;
|
if (actionBar != null) {
|
||||||
|
actionBar.setDisplayHomeAsUpEnabled(false);
|
||||||
|
actionBar.setTitle(R.string.title_activity_recaptcha);
|
||||||
|
actionBar.setSubtitle(R.string.subtitle_activity_recaptcha);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
return true;
|
||||||
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
}
|
||||||
// TODO: Start Loader
|
|
||||||
super.onPageStarted(view, url, favicon);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageFinished(WebView view, String url) {
|
public void onBackPressed() {
|
||||||
String cookies = CookieManager.getInstance().getCookie(url);
|
saveCookiesAndFinish();
|
||||||
|
|
||||||
// TODO: Stop Loader
|
|
||||||
|
|
||||||
// find cookies : s_gl & goojf and Add cookies to Downloader
|
|
||||||
if (find_access_cookies(cookies)) {
|
|
||||||
// Give cookies to Downloader class
|
|
||||||
DownloaderImpl.getInstance().setCookies(mCookies);
|
|
||||||
|
|
||||||
// Closing activity and return to parent
|
|
||||||
setResult(RESULT_OK);
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean find_access_cookies(String cookies) {
|
|
||||||
boolean ret = false;
|
|
||||||
String c_s_gl = "";
|
|
||||||
String c_goojf = "";
|
|
||||||
|
|
||||||
String[] parts = cookies.split("; ");
|
|
||||||
for (String part : parts) {
|
|
||||||
if (part.trim().startsWith("s_gl")) {
|
|
||||||
c_s_gl = part.trim();
|
|
||||||
}
|
|
||||||
if (part.trim().startsWith("goojf")) {
|
|
||||||
c_goojf = part.trim();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (c_s_gl.length() > 0 && c_goojf.length() > 0) {
|
|
||||||
ret = true;
|
|
||||||
//mCookies = c_s_gl + "; " + c_goojf;
|
|
||||||
// Youtube seems to also need the other cookies:
|
|
||||||
mCookies = cookies;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case android.R.id.home: {
|
case R.id.menu_item_done:
|
||||||
Intent intent = new Intent(this, org.schabi.newpipe.MainActivity.class);
|
saveCookiesAndFinish();
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
|
||||||
NavUtils.navigateUpTo(this, intent);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void saveCookiesAndFinish() {
|
||||||
|
handleCookies(webView.getUrl()); // try to get cookies of unclosed page
|
||||||
|
if (!foundCookies.isEmpty()) {
|
||||||
|
// give cookies to Downloader class
|
||||||
|
DownloaderImpl.getInstance().setCookies(foundCookies);
|
||||||
|
setResult(RESULT_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
Intent intent = new Intent(this, org.schabi.newpipe.MainActivity.class);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
NavUtils.navigateUpTo(this, intent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void handleCookies(String url) {
|
||||||
|
String cookies = CookieManager.getInstance().getCookie(url);
|
||||||
|
if (MainActivity.DEBUG) Log.d(TAG, "handleCookies: url=" + url + "; cookies=" + (cookies == null ? "null" : cookies));
|
||||||
|
if (cookies == null) return;
|
||||||
|
|
||||||
|
addYoutubeCookies(cookies);
|
||||||
|
// add other methods to extract cookies here
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addYoutubeCookies(@NonNull String cookies) {
|
||||||
|
if (cookies.contains("s_gl=") || cookies.contains("goojf=") || cookies.contains("VISITOR_INFO1_LIVE=")) {
|
||||||
|
// youtube seems to also need the other cookies:
|
||||||
|
addCookie(cookies);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addCookie(String cookie) {
|
||||||
|
if (foundCookies.contains(cookie)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (foundCookies.isEmpty() || foundCookies.endsWith("; ")) {
|
||||||
|
foundCookies += cookie;
|
||||||
|
} else if (foundCookies.endsWith(";")) {
|
||||||
|
foundCookies += " " + cookie;
|
||||||
|
} else {
|
||||||
|
foundCookies += "; " + cookie;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,27 +22,30 @@ import android.widget.TextView;
|
||||||
|
|
||||||
import org.schabi.newpipe.BuildConfig;
|
import org.schabi.newpipe.BuildConfig;
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class AboutActivity extends AppCompatActivity {
|
public class AboutActivity extends AppCompatActivity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of all software components
|
* List of all software components
|
||||||
*/
|
*/
|
||||||
private static final SoftwareComponent[] SOFTWARE_COMPONENTS = new SoftwareComponent[]{
|
private static final SoftwareComponent[] SOFTWARE_COMPONENTS = new SoftwareComponent[]{
|
||||||
new SoftwareComponent("Giga Get", "2014", "Peter Cai", "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2),
|
new SoftwareComponent("Giga Get", "2014 - 2015", "Peter Cai", "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2),
|
||||||
new SoftwareComponent("NewPipe Extractor", "2017", "Christian Schabesberger", "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3),
|
new SoftwareComponent("NewPipe Extractor", "2017 - 2020", "Christian Schabesberger", "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3),
|
||||||
new SoftwareComponent("Jsoup", "2017", "Jonathan Hedley", "https://github.com/jhy/jsoup", StandardLicenses.MIT),
|
new SoftwareComponent("Jsoup", "2017", "Jonathan Hedley", "https://github.com/jhy/jsoup", StandardLicenses.MIT),
|
||||||
new SoftwareComponent("Rhino", "2015", "Mozilla", "https://www.mozilla.org/rhino/", StandardLicenses.MPL2),
|
new SoftwareComponent("Rhino", "2015", "Mozilla", "https://www.mozilla.org/rhino/", StandardLicenses.MPL2),
|
||||||
new SoftwareComponent("ACRA", "2013", "Kevin Gaudin", "http://www.acra.ch", StandardLicenses.APACHE2),
|
new SoftwareComponent("ACRA", "2013", "Kevin Gaudin", "http://www.acra.ch", StandardLicenses.APACHE2),
|
||||||
new SoftwareComponent("Universal Image Loader", "2011 - 2015", "Sergey Tarasevich", "https://github.com/nostra13/Android-Universal-Image-Loader", StandardLicenses.APACHE2),
|
new SoftwareComponent("Universal Image Loader", "2011 - 2015", "Sergey Tarasevich", "https://github.com/nostra13/Android-Universal-Image-Loader", StandardLicenses.APACHE2),
|
||||||
new SoftwareComponent("CircleImageView", "2014 - 2017", "Henning Dodenhof", "https://github.com/hdodenhof/CircleImageView", StandardLicenses.APACHE2),
|
new SoftwareComponent("CircleImageView", "2014 - 2020", "Henning Dodenhof", "https://github.com/hdodenhof/CircleImageView", StandardLicenses.APACHE2),
|
||||||
new SoftwareComponent("NoNonsense-FilePicker", "2016", "Jonas Kalderstam", "https://github.com/spacecowboy/NoNonsense-FilePicker", StandardLicenses.MPL2),
|
new SoftwareComponent("NoNonsense-FilePicker", "2016", "Jonas Kalderstam", "https://github.com/spacecowboy/NoNonsense-FilePicker", StandardLicenses.MPL2),
|
||||||
new SoftwareComponent("ExoPlayer", "2014-2017", "Google Inc", "https://github.com/google/ExoPlayer", StandardLicenses.APACHE2),
|
new SoftwareComponent("ExoPlayer", "2014 - 2020", "Google Inc", "https://github.com/google/ExoPlayer", StandardLicenses.APACHE2),
|
||||||
new SoftwareComponent("RxAndroid", "2015", "The RxAndroid authors", "https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2),
|
new SoftwareComponent("RxAndroid", "2015 - 2018", "The RxAndroid authors", "https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2),
|
||||||
new SoftwareComponent("RxJava", "2016-present", "RxJava Contributors", "https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2),
|
new SoftwareComponent("RxJava", "2016 - 2020", "RxJava Contributors", "https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2),
|
||||||
new SoftwareComponent("RxBinding", "2015", "Jake Wharton", "https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2)
|
new SoftwareComponent("RxBinding", "2015 - 2018", "Jake Wharton", "https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2),
|
||||||
|
new SoftwareComponent("PrettyTime", "2012 - 2020", "Lincoln Baxter, III", "https://github.com/ocpsoft/prettytime", StandardLicenses.APACHE2),
|
||||||
|
new SoftwareComponent("Markwon", "2017 - 2020", "Noties", "https://github.com/noties/Markwon", StandardLicenses.APACHE2)
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,8 +65,10 @@ public class AboutActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
ThemeHelper.setTheme(this);
|
ThemeHelper.setTheme(this);
|
||||||
|
this.setTitle(getString(R.string.title_activity_about));
|
||||||
|
|
||||||
setContentView(R.layout.activity_about);
|
setContentView(R.layout.activity_about);
|
||||||
|
|
||||||
|
@ -99,11 +104,6 @@ public class AboutActivity extends AppCompatActivity {
|
||||||
case android.R.id.home:
|
case android.R.id.home:
|
||||||
finish();
|
finish();
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_settings:
|
|
||||||
NavigationHelper.openSettings(this);
|
|
||||||
return true;
|
|
||||||
case R.id.action_show_downloads:
|
|
||||||
return NavigationHelper.openDownloads(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.schabi.newpipe.about;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
@ -14,6 +15,8 @@ import java.io.BufferedReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class LicenseFragmentHelper extends AsyncTask<Object, Void, Integer> {
|
public class LicenseFragmentHelper extends AsyncTask<Object, Void, Integer> {
|
||||||
|
|
||||||
final WeakReference<Activity> weakReference;
|
final WeakReference<Activity> weakReference;
|
||||||
|
@ -55,15 +58,15 @@ public class LicenseFragmentHelper extends AsyncTask<Object, Void, Integer> {
|
||||||
wv.loadData(webViewData, "text/html; charset=UTF-8", null);
|
wv.loadData(webViewData, "text/html; charset=UTF-8", null);
|
||||||
|
|
||||||
alert.setView(wv);
|
alert.setView(wv);
|
||||||
alert.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
assureCorrectAppLanguage(activity.getApplicationContext());
|
||||||
@Override
|
alert.setNegativeButton(getFinishString(activity), (dialog, which) -> dialog.dismiss());
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
alert.show();
|
alert.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getFinishString(Activity activity) {
|
||||||
|
return activity.getApplicationContext().getResources().getString(R.string.finish);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param context the context to use
|
* @param context the context to use
|
||||||
* @param license the license
|
* @param license the license
|
||||||
|
|
|
@ -12,12 +12,13 @@ import android.view.MenuItem;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
|
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.settings.SettingsActivity;
|
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
import us.shandian.giga.service.DownloadManagerService;
|
import us.shandian.giga.service.DownloadManagerService;
|
||||||
import us.shandian.giga.ui.fragment.MissionsFragment;
|
import us.shandian.giga.ui.fragment.MissionsFragment;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class DownloadActivity extends AppCompatActivity {
|
public class DownloadActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private static final String MISSIONS_FRAGMENT_TAG = "fragment_tag";
|
private static final String MISSIONS_FRAGMENT_TAG = "fragment_tag";
|
||||||
|
@ -29,6 +30,7 @@ public class DownloadActivity extends AppCompatActivity {
|
||||||
i.setClass(this, DownloadManagerService.class);
|
i.setClass(this, DownloadManagerService.class);
|
||||||
startService(i);
|
startService(i);
|
||||||
|
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
ThemeHelper.setTheme(this);
|
ThemeHelper.setTheme(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_downloader);
|
setContentView(R.layout.activity_downloader);
|
||||||
|
@ -78,11 +80,7 @@ public class DownloadActivity extends AppCompatActivity {
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case R.id.action_settings: {
|
|
||||||
Intent intent = new Intent(this, SettingsActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,15 +11,6 @@ import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import androidx.annotation.IdRes;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.annotation.StringRes;
|
|
||||||
import androidx.fragment.app.DialogFragment;
|
|
||||||
import androidx.documentfile.provider.DocumentFile;
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
|
||||||
import androidx.appcompat.view.menu.ActionMenuItemView;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -34,6 +25,16 @@ import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.IdRes;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.appcompat.view.menu.ActionMenuItemView;
|
||||||
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
import androidx.documentfile.provider.DocumentFile;
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
|
||||||
import com.nononsenseapps.filepicker.Utils;
|
import com.nononsenseapps.filepicker.Utils;
|
||||||
|
|
||||||
import org.schabi.newpipe.MainActivity;
|
import org.schabi.newpipe.MainActivity;
|
||||||
|
@ -78,6 +79,8 @@ import us.shandian.giga.service.DownloadManagerService;
|
||||||
import us.shandian.giga.service.DownloadManagerService.DownloadManagerBinder;
|
import us.shandian.giga.service.DownloadManagerService.DownloadManagerBinder;
|
||||||
import us.shandian.giga.service.MissionState;
|
import us.shandian.giga.service.MissionState;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheckedChangeListener, AdapterView.OnItemSelectedListener {
|
public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheckedChangeListener, AdapterView.OnItemSelectedListener {
|
||||||
private static final String TAG = "DialogFragment";
|
private static final String TAG = "DialogFragment";
|
||||||
private static final boolean DEBUG = MainActivity.DEBUG;
|
private static final boolean DEBUG = MainActivity.DEBUG;
|
||||||
|
@ -527,10 +530,11 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showFailedDialog(@StringRes int msg) {
|
private void showFailedDialog(@StringRes int msg) {
|
||||||
|
assureCorrectAppLanguage(getContext());
|
||||||
new AlertDialog.Builder(context)
|
new AlertDialog.Builder(context)
|
||||||
.setTitle(R.string.general_error)
|
.setTitle(R.string.general_error)
|
||||||
.setMessage(msg)
|
.setMessage(msg)
|
||||||
.setNegativeButton(android.R.string.ok, null)
|
.setNegativeButton(getString(R.string.finish), null)
|
||||||
.create()
|
.create()
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
@ -832,7 +836,6 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck
|
||||||
psArgs = new String[]{
|
psArgs = new String[]{
|
||||||
selectedStream.getFormat().getSuffix(),
|
selectedStream.getFormat().getSuffix(),
|
||||||
"false",// ignore empty frames
|
"false",// ignore empty frames
|
||||||
"false",// detect youtube duplicate lines
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -2,7 +2,6 @@ package org.schabi.newpipe.fragments.detail;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
@ -18,7 +17,6 @@ import androidx.fragment.app.Fragment;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
@ -58,6 +56,7 @@ import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor;
|
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor;
|
||||||
import org.schabi.newpipe.extractor.stream.AudioStream;
|
import org.schabi.newpipe.extractor.stream.AudioStream;
|
||||||
|
import org.schabi.newpipe.extractor.stream.Description;
|
||||||
import org.schabi.newpipe.extractor.stream.Stream;
|
import org.schabi.newpipe.extractor.stream.Stream;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamType;
|
import org.schabi.newpipe.extractor.stream.StreamType;
|
||||||
|
@ -79,6 +78,7 @@ import org.schabi.newpipe.util.Constants;
|
||||||
import org.schabi.newpipe.util.ExtractorHelper;
|
import org.schabi.newpipe.util.ExtractorHelper;
|
||||||
import org.schabi.newpipe.util.ImageDisplayConstants;
|
import org.schabi.newpipe.util.ImageDisplayConstants;
|
||||||
import org.schabi.newpipe.util.InfoCache;
|
import org.schabi.newpipe.util.InfoCache;
|
||||||
|
import org.schabi.newpipe.util.KoreUtil;
|
||||||
import org.schabi.newpipe.util.ListHelper;
|
import org.schabi.newpipe.util.ListHelper;
|
||||||
import org.schabi.newpipe.util.Localization;
|
import org.schabi.newpipe.util.Localization;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
|
@ -95,6 +95,8 @@ import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import icepick.State;
|
import icepick.State;
|
||||||
|
import io.noties.markwon.Markwon;
|
||||||
|
import io.noties.markwon.linkify.LinkifyPlugin;
|
||||||
import io.reactivex.Single;
|
import io.reactivex.Single;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
@ -482,7 +484,6 @@ public class VideoDetailFragment
|
||||||
videoUploadDateView = rootView.findViewById(R.id.detail_upload_date_view);
|
videoUploadDateView = rootView.findViewById(R.id.detail_upload_date_view);
|
||||||
videoDescriptionView = rootView.findViewById(R.id.detail_description_view);
|
videoDescriptionView = rootView.findViewById(R.id.detail_description_view);
|
||||||
videoDescriptionView.setMovementMethod(LinkMovementMethod.getInstance());
|
videoDescriptionView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
videoDescriptionView.setAutoLinkMask(Linkify.WEB_URLS);
|
|
||||||
|
|
||||||
thumbsUpTextView = rootView.findViewById(R.id.detail_thumbs_up_count_view);
|
thumbsUpTextView = rootView.findViewById(R.id.detail_thumbs_up_count_view);
|
||||||
thumbsUpImageView = rootView.findViewById(R.id.detail_thumbs_up_img_view);
|
thumbsUpImageView = rootView.findViewById(R.id.detail_thumbs_up_img_view);
|
||||||
|
@ -624,7 +625,7 @@ public class VideoDetailFragment
|
||||||
url.replace("https", "http")));
|
url.replace("https", "http")));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (DEBUG) Log.i(TAG, "Failed to start kore", e);
|
if (DEBUG) Log.i(TAG, "Failed to start kore", e);
|
||||||
showInstallKoreDialog(activity);
|
KoreUtil.showInstallKoreDialog(activity);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
|
@ -632,16 +633,6 @@ public class VideoDetailFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void showInstallKoreDialog(final Context context) {
|
|
||||||
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
|
||||||
builder.setMessage(R.string.kore_not_found)
|
|
||||||
.setPositiveButton(R.string.install, (DialogInterface dialog, int which) ->
|
|
||||||
NavigationHelper.installKore(context))
|
|
||||||
.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
|
|
||||||
});
|
|
||||||
builder.create().show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setupActionBarOnError(final String url) {
|
private void setupActionBarOnError(final String url) {
|
||||||
if (DEBUG) Log.d(TAG, "setupActionBarHandlerOnError() called with: url = [" + url + "]");
|
if (DEBUG) Log.d(TAG, "setupActionBarHandlerOnError() called with: url = [" + url + "]");
|
||||||
Log.e("-----", "missing code");
|
Log.e("-----", "missing code");
|
||||||
|
@ -928,28 +919,41 @@ public class VideoDetailFragment
|
||||||
return sortedVideoStreams != null ? sortedVideoStreams.get(selectedVideoStreamIndex) : null;
|
return sortedVideoStreams != null ? sortedVideoStreams.get(selectedVideoStreamIndex) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void prepareDescription(final String descriptionHtml) {
|
private void prepareDescription(Description description) {
|
||||||
if (TextUtils.isEmpty(descriptionHtml)) {
|
if (TextUtils.isEmpty(description.getContent()) || description == Description.emptyDescription) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
disposables.add(Single.just(descriptionHtml)
|
if (description.getType() == Description.HTML) {
|
||||||
.map((@io.reactivex.annotations.NonNull String description) -> {
|
disposables.add(Single.just(description.getContent())
|
||||||
Spanned parsedDescription;
|
.map((@io.reactivex.annotations.NonNull String descriptionText) -> {
|
||||||
if (Build.VERSION.SDK_INT >= 24) {
|
Spanned parsedDescription;
|
||||||
parsedDescription = Html.fromHtml(description, 0);
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
} else {
|
parsedDescription = Html.fromHtml(descriptionText, 0);
|
||||||
//noinspection deprecation
|
} else {
|
||||||
parsedDescription = Html.fromHtml(description);
|
//noinspection deprecation
|
||||||
}
|
parsedDescription = Html.fromHtml(descriptionText);
|
||||||
return parsedDescription;
|
}
|
||||||
})
|
return parsedDescription;
|
||||||
.subscribeOn(Schedulers.computation())
|
})
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.subscribeOn(Schedulers.computation())
|
||||||
.subscribe((@io.reactivex.annotations.NonNull Spanned spanned) -> {
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
videoDescriptionView.setText(spanned);
|
.subscribe((@io.reactivex.annotations.NonNull Spanned spanned) -> {
|
||||||
videoDescriptionView.setVisibility(View.VISIBLE);
|
videoDescriptionView.setText(spanned);
|
||||||
}));
|
videoDescriptionView.setVisibility(View.VISIBLE);
|
||||||
|
}));
|
||||||
|
} else if (description.getType() == Description.MARKDOWN) {
|
||||||
|
final Markwon markwon = Markwon.builder(getContext())
|
||||||
|
.usePlugin(LinkifyPlugin.create())
|
||||||
|
.build();
|
||||||
|
markwon.setMarkdown(videoDescriptionView, description.getContent());
|
||||||
|
videoDescriptionView.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
//== Description.PLAIN_TEXT
|
||||||
|
videoDescriptionView.setAutoLinkMask(Linkify.WEB_URLS);
|
||||||
|
videoDescriptionView.setText(description.getContent(), TextView.BufferType.SPANNABLE);
|
||||||
|
videoDescriptionView.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setHeightThumbnail() {
|
private void setHeightThumbnail() {
|
||||||
|
@ -1070,7 +1074,7 @@ public class VideoDetailFragment
|
||||||
if (info.getStreamType().equals(StreamType.AUDIO_LIVE_STREAM)) {
|
if (info.getStreamType().equals(StreamType.AUDIO_LIVE_STREAM)) {
|
||||||
videoCountView.setText(Localization.listeningCount(activity, info.getViewCount()));
|
videoCountView.setText(Localization.listeningCount(activity, info.getViewCount()));
|
||||||
} else if (info.getStreamType().equals(StreamType.LIVE_STREAM)) {
|
} else if (info.getStreamType().equals(StreamType.LIVE_STREAM)) {
|
||||||
videoCountView.setText(Localization.watchingCount(activity, info.getViewCount()));
|
videoCountView.setText(Localization.localizeWatchingCount(activity, info.getViewCount()));
|
||||||
} else {
|
} else {
|
||||||
videoCountView.setText(Localization.localizeViewCount(activity, info.getViewCount()));
|
videoCountView.setText(Localization.localizeViewCount(activity, info.getViewCount()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -370,7 +370,7 @@ public class ChannelFragment extends BaseListInfoFragment<ChannelInfo> {
|
||||||
|
|
||||||
headerSubscribersTextView.setVisibility(View.VISIBLE);
|
headerSubscribersTextView.setVisibility(View.VISIBLE);
|
||||||
if (result.getSubscriberCount() >= 0) {
|
if (result.getSubscriberCount() >= 0) {
|
||||||
headerSubscribersTextView.setText(Localization.localizeSubscribersCount(activity, result.getSubscriberCount()));
|
headerSubscribersTextView.setText(Localization.shortSubscriberCount(activity, result.getSubscriberCount()));
|
||||||
} else {
|
} else {
|
||||||
headerSubscribersTextView.setText(R.string.subscribers_count_not_available);
|
headerSubscribersTextView.setText(R.string.subscribers_count_not_available);
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,7 +190,7 @@ public class SearchFragment
|
||||||
|
|
||||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
|
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
|
||||||
isSuggestionsEnabled = preferences.getBoolean(getString(R.string.show_search_suggestions_key), true);
|
isSuggestionsEnabled = preferences.getBoolean(getString(R.string.show_search_suggestions_key), true);
|
||||||
contentCountry = preferences.getString(getString(R.string.content_country_key), getString(R.string.default_country_value));
|
contentCountry = preferences.getString(getString(R.string.content_country_key), getString(R.string.default_localization_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
package org.schabi.newpipe.info_list.holder;
|
package org.schabi.newpipe.info_list.holder;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import android.content.ClipData;
|
||||||
|
import android.content.ClipboardManager;
|
||||||
|
import android.content.Context;
|
||||||
import android.text.util.Linkify;
|
import android.text.util.Linkify;
|
||||||
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import org.jsoup.helper.StringUtil;
|
import org.jsoup.helper.StringUtil;
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
|
@ -120,6 +126,21 @@ public class CommentsMiniInfoItemHolder extends InfoItemHolder {
|
||||||
itemBuilder.getOnCommentsSelectedListener().selected(item);
|
itemBuilder.getOnCommentsSelectedListener().selected(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
itemView.setOnLongClickListener(new View.OnLongClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onLongClick(View view) {
|
||||||
|
|
||||||
|
ClipboardManager clipboardManager = (ClipboardManager) itemBuilder.getContext()
|
||||||
|
.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||||
|
clipboardManager.setPrimaryClip(ClipData.newPlainText(null,commentText));
|
||||||
|
Toast.makeText(itemBuilder.getContext(), R.string.msg_copied, Toast.LENGTH_SHORT).show();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ellipsize() {
|
private void ellipsize() {
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class StreamInfoItemHolder extends StreamMiniInfoItemHolder {
|
||||||
if (infoItem.getStreamType().equals(StreamType.AUDIO_LIVE_STREAM)) {
|
if (infoItem.getStreamType().equals(StreamType.AUDIO_LIVE_STREAM)) {
|
||||||
viewsAndDate = Localization.listeningCount(itemBuilder.getContext(), infoItem.getViewCount());
|
viewsAndDate = Localization.listeningCount(itemBuilder.getContext(), infoItem.getViewCount());
|
||||||
} else if (infoItem.getStreamType().equals(StreamType.LIVE_STREAM)) {
|
} else if (infoItem.getStreamType().equals(StreamType.LIVE_STREAM)) {
|
||||||
viewsAndDate = Localization.watchingCount(itemBuilder.getContext(), infoItem.getViewCount());
|
viewsAndDate = Localization.shortWatchingCount(itemBuilder.getContext(), infoItem.getViewCount());
|
||||||
} else {
|
} else {
|
||||||
viewsAndDate = Localization.shortViewCount(itemBuilder.getContext(), infoItem.getViewCount());
|
viewsAndDate = Localization.shortViewCount(itemBuilder.getContext(), infoItem.getViewCount());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package org.schabi.newpipe.local.bookmark;
|
package org.schabi.newpipe.local.bookmark;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
import android.app.AlertDialog.Builder;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.EditText;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
@ -10,6 +13,7 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import io.reactivex.disposables.Disposable;
|
||||||
import org.reactivestreams.Subscriber;
|
import org.reactivestreams.Subscriber;
|
||||||
import org.reactivestreams.Subscription;
|
import org.reactivestreams.Subscription;
|
||||||
import org.schabi.newpipe.NewPipeDatabase;
|
import org.schabi.newpipe.NewPipeDatabase;
|
||||||
|
@ -118,8 +122,7 @@ public final class BookmarkFragment
|
||||||
@Override
|
@Override
|
||||||
public void held(LocalItem selectedItem) {
|
public void held(LocalItem selectedItem) {
|
||||||
if (selectedItem instanceof PlaylistMetadataEntry) {
|
if (selectedItem instanceof PlaylistMetadataEntry) {
|
||||||
showLocalDeleteDialog((PlaylistMetadataEntry) selectedItem);
|
showLocalDialog((PlaylistMetadataEntry) selectedItem);
|
||||||
|
|
||||||
} else if (selectedItem instanceof PlaylistRemoteEntity) {
|
} else if (selectedItem instanceof PlaylistRemoteEntity) {
|
||||||
showRemoteDeleteDialog((PlaylistRemoteEntity) selectedItem);
|
showRemoteDeleteDialog((PlaylistRemoteEntity) selectedItem);
|
||||||
}
|
}
|
||||||
|
@ -247,14 +250,30 @@ public final class BookmarkFragment
|
||||||
// Utils
|
// Utils
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private void showLocalDeleteDialog(final PlaylistMetadataEntry item) {
|
|
||||||
showDeleteDialog(item.name, localPlaylistManager.deletePlaylist(item.uid));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showRemoteDeleteDialog(final PlaylistRemoteEntity item) {
|
private void showRemoteDeleteDialog(final PlaylistRemoteEntity item) {
|
||||||
showDeleteDialog(item.getName(), remotePlaylistManager.deletePlaylist(item.getUid()));
|
showDeleteDialog(item.getName(), remotePlaylistManager.deletePlaylist(item.getUid()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showLocalDialog(PlaylistMetadataEntry selectedItem) {
|
||||||
|
View dialogView = View.inflate(getContext(), R.layout.dialog_bookmark, null);
|
||||||
|
EditText editText = dialogView.findViewById(R.id.playlist_name_edit_text);
|
||||||
|
editText.setText(selectedItem.name);
|
||||||
|
|
||||||
|
Builder builder = new AlertDialog.Builder(activity);
|
||||||
|
builder.setView(dialogView)
|
||||||
|
.setPositiveButton(R.string.rename_playlist, (dialog, which) -> {
|
||||||
|
changeLocalPlaylistName(selectedItem.uid, editText.getText().toString());
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
.setNeutralButton(R.string.delete, (dialog, which) -> {
|
||||||
|
showDeleteDialog(selectedItem.name,
|
||||||
|
localPlaylistManager.deletePlaylist(selectedItem.uid));
|
||||||
|
dialog.dismiss();
|
||||||
|
})
|
||||||
|
.create()
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
|
||||||
private void showDeleteDialog(final String name, final Single<Integer> deleteReactor) {
|
private void showDeleteDialog(final String name, final Single<Integer> deleteReactor) {
|
||||||
if (activity == null || disposables == null) return;
|
if (activity == null || disposables == null) return;
|
||||||
|
|
||||||
|
@ -271,6 +290,23 @@ public final class BookmarkFragment
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void changeLocalPlaylistName(long id, String name) {
|
||||||
|
if (localPlaylistManager == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Updating playlist id=[" + id +
|
||||||
|
"] with new name=[" + name + "] items");
|
||||||
|
}
|
||||||
|
|
||||||
|
localPlaylistManager.renamePlaylist(id, name);
|
||||||
|
final Disposable disposable = localPlaylistManager.renamePlaylist(id, name)
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(longs -> {/*Do nothing on success*/}, this::onError);
|
||||||
|
disposables.add(disposable);
|
||||||
|
}
|
||||||
|
|
||||||
private static List<PlaylistLocalItem> merge(final List<PlaylistMetadataEntry> localPlaylists,
|
private static List<PlaylistLocalItem> merge(final List<PlaylistMetadataEntry> localPlaylists,
|
||||||
final List<PlaylistRemoteEntity> remotePlaylists) {
|
final List<PlaylistRemoteEntity> remotePlaylists) {
|
||||||
List<PlaylistLocalItem> items = new ArrayList<>(
|
List<PlaylistLocalItem> items = new ArrayList<>(
|
||||||
|
|
|
@ -388,8 +388,10 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||||
this.name = name;
|
this.name = name;
|
||||||
setTitle(name);
|
setTitle(name);
|
||||||
|
|
||||||
Log.d(TAG, "Updating playlist id=[" + playlistId +
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Updating playlist id=[" + playlistId +
|
||||||
"] with new name=[" + name + "] items");
|
"] with new name=[" + name + "] items");
|
||||||
|
}
|
||||||
|
|
||||||
final Disposable disposable = playlistManager.renamePlaylist(playlistId, name)
|
final Disposable disposable = playlistManager.renamePlaylist(playlistId, name)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
@ -404,8 +406,10 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||||
R.string.playlist_thumbnail_change_success,
|
R.string.playlist_thumbnail_change_success,
|
||||||
Toast.LENGTH_SHORT);
|
Toast.LENGTH_SHORT);
|
||||||
|
|
||||||
Log.d(TAG, "Updating playlist id=[" + playlistId +
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Updating playlist id=[" + playlistId +
|
||||||
"] with new thumbnail url=[" + thumbnailUrl + "]");
|
"] with new thumbnail url=[" + thumbnailUrl + "]");
|
||||||
|
}
|
||||||
|
|
||||||
final Disposable disposable = playlistManager
|
final Disposable disposable = playlistManager
|
||||||
.changePlaylistThumbnail(playlistId, thumbnailUrl)
|
.changePlaylistThumbnail(playlistId, thumbnailUrl)
|
||||||
|
@ -472,8 +476,10 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(TAG, "Updating playlist id=[" + playlistId +
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Updating playlist id=[" + playlistId +
|
||||||
"] with [" + streamIds.size() + "] items");
|
"] with [" + streamIds.size() + "] items");
|
||||||
|
}
|
||||||
|
|
||||||
final Disposable disposable = playlistManager.updateJoin(playlistId, streamIds)
|
final Disposable disposable = playlistManager.updateJoin(playlistId, streamIds)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
|
|
@ -15,6 +15,8 @@ import org.schabi.newpipe.util.ThemeHelper;
|
||||||
import icepick.Icepick;
|
import icepick.Icepick;
|
||||||
import icepick.State;
|
import icepick.State;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class ImportConfirmationDialog extends DialogFragment {
|
public class ImportConfirmationDialog extends DialogFragment {
|
||||||
@State
|
@State
|
||||||
protected Intent resultServiceIntent;
|
protected Intent resultServiceIntent;
|
||||||
|
@ -34,11 +36,12 @@ public class ImportConfirmationDialog extends DialogFragment {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(getContext());
|
||||||
return new AlertDialog.Builder(getContext(), ThemeHelper.getDialogTheme(getContext()))
|
return new AlertDialog.Builder(getContext(), ThemeHelper.getDialogTheme(getContext()))
|
||||||
.setMessage(R.string.import_network_expensive_warning)
|
.setMessage(R.string.import_network_expensive_warning)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> {
|
.setPositiveButton(R.string.finish, (dialogInterface, i) -> {
|
||||||
if (resultServiceIntent != null && getContext() != null) {
|
if (resultServiceIntent != null && getContext() != null) {
|
||||||
getContext().startService(resultServiceIntent);
|
getContext().startService(resultServiceIntent);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ import org.schabi.newpipe.util.NavigationHelper;
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
import static org.schabi.newpipe.player.helper.PlayerHelper.getTimeString;
|
import static org.schabi.newpipe.player.helper.PlayerHelper.getTimeString;
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base players joining the common properties
|
* Base players joining the common properties
|
||||||
|
@ -115,7 +115,7 @@ public final class BackgroundPlayer extends Service {
|
||||||
notificationManager = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE));
|
notificationManager = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE));
|
||||||
lockManager = new LockManager(this);
|
lockManager = new LockManager(this);
|
||||||
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
ThemeHelper.setTheme(this);
|
ThemeHelper.setTheme(this);
|
||||||
basePlayerImpl = new BasePlayerImpl(this);
|
basePlayerImpl = new BasePlayerImpl(this);
|
||||||
basePlayerImpl.setup();
|
basePlayerImpl.setup();
|
||||||
|
|
|
@ -55,10 +55,7 @@ public final class BackgroundPlayerActivity extends ServicePlayerActivity {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.player.setRecovery();
|
return switchTo(PopupVideoPlayer.class);
|
||||||
getApplicationContext().sendBroadcast(getPlayerShutdownIntent());
|
|
||||||
getApplicationContext().startService(getSwitchIntent(PopupVideoPlayer.class));
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,6 +150,8 @@ public abstract class BasePlayer implements
|
||||||
@NonNull
|
@NonNull
|
||||||
public static final String RESUME_PLAYBACK = "resume_playback";
|
public static final String RESUME_PLAYBACK = "resume_playback";
|
||||||
@NonNull
|
@NonNull
|
||||||
|
public static final String START_PAUSED = "start_paused";
|
||||||
|
@NonNull
|
||||||
public static final String SELECT_ON_APPEND = "select_on_append";
|
public static final String SELECT_ON_APPEND = "select_on_append";
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -304,7 +306,7 @@ public abstract class BasePlayer implements
|
||||||
}
|
}
|
||||||
// Good to go...
|
// Good to go...
|
||||||
initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence,
|
initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence,
|
||||||
/*playOnInit=*/true);
|
/*playOnInit=*/!intent.getBooleanExtra(START_PAUSED, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void initPlayback(@NonNull final PlayQueue queue,
|
protected void initPlayback(@NonNull final PlayQueue queue,
|
||||||
|
@ -944,10 +946,10 @@ public abstract class BasePlayer implements
|
||||||
public void onPlayPause() {
|
public void onPlayPause() {
|
||||||
if (DEBUG) Log.d(TAG, "onPlayPause() called");
|
if (DEBUG) Log.d(TAG, "onPlayPause() called");
|
||||||
|
|
||||||
if (!isPlaying()) {
|
if (isPlaying()) {
|
||||||
onPlay();
|
|
||||||
} else {
|
|
||||||
onPause();
|
onPause();
|
||||||
|
} else {
|
||||||
|
onPlay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import android.database.ContentObserver;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
@ -75,6 +76,7 @@ import org.schabi.newpipe.player.playqueue.PlayQueueItemTouchCallback;
|
||||||
import org.schabi.newpipe.player.resolver.MediaSourceTag;
|
import org.schabi.newpipe.player.resolver.MediaSourceTag;
|
||||||
import org.schabi.newpipe.player.resolver.VideoPlaybackResolver;
|
import org.schabi.newpipe.player.resolver.VideoPlaybackResolver;
|
||||||
import org.schabi.newpipe.util.AnimationUtils;
|
import org.schabi.newpipe.util.AnimationUtils;
|
||||||
|
import org.schabi.newpipe.util.KoreUtil;
|
||||||
import org.schabi.newpipe.util.ListHelper;
|
import org.schabi.newpipe.util.ListHelper;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
import org.schabi.newpipe.util.PermissionHelper;
|
import org.schabi.newpipe.util.PermissionHelper;
|
||||||
|
@ -93,6 +95,7 @@ import static org.schabi.newpipe.util.AnimationUtils.Type.SCALE_AND_ALPHA;
|
||||||
import static org.schabi.newpipe.util.AnimationUtils.Type.SLIDE_AND_ALPHA;
|
import static org.schabi.newpipe.util.AnimationUtils.Type.SLIDE_AND_ALPHA;
|
||||||
import static org.schabi.newpipe.util.AnimationUtils.animateRotation;
|
import static org.schabi.newpipe.util.AnimationUtils.animateRotation;
|
||||||
import static org.schabi.newpipe.util.AnimationUtils.animateView;
|
import static org.schabi.newpipe.util.AnimationUtils.animateView;
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
import static org.schabi.newpipe.util.StateSaver.KEY_SAVED_STATE;
|
import static org.schabi.newpipe.util.StateSaver.KEY_SAVED_STATE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -123,6 +126,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]");
|
if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]");
|
||||||
defaultPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
defaultPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
@ -190,6 +194,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
if (DEBUG) Log.d(TAG, "onResume() called");
|
if (DEBUG) Log.d(TAG, "onResume() called");
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
if (globalScreenOrientationLocked()) {
|
if (globalScreenOrientationLocked()) {
|
||||||
|
@ -220,6 +225,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
|
|
||||||
if (playerImpl.isSomePopupMenuVisible()) {
|
if (playerImpl.isSomePopupMenuVisible()) {
|
||||||
playerImpl.getQualityPopupMenu().dismiss();
|
playerImpl.getQualityPopupMenu().dismiss();
|
||||||
|
@ -364,8 +370,8 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean globalScreenOrientationLocked() {
|
private boolean globalScreenOrientationLocked() {
|
||||||
// 1: Screen orientation changes using acelerometer
|
// 1: Screen orientation changes using accelerometer
|
||||||
// 0: Screen orientatino is locked
|
// 0: Screen orientation is locked
|
||||||
return !(android.provider.Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1);
|
return !(android.provider.Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,6 +441,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
private boolean queueVisible;
|
private boolean queueVisible;
|
||||||
|
|
||||||
private ImageButton moreOptionsButton;
|
private ImageButton moreOptionsButton;
|
||||||
|
private ImageButton kodiButton;
|
||||||
private ImageButton shareButton;
|
private ImageButton shareButton;
|
||||||
private ImageButton toggleOrientationButton;
|
private ImageButton toggleOrientationButton;
|
||||||
private ImageButton switchPopupButton;
|
private ImageButton switchPopupButton;
|
||||||
|
@ -471,6 +478,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
|
|
||||||
this.moreOptionsButton = rootView.findViewById(R.id.moreOptionsButton);
|
this.moreOptionsButton = rootView.findViewById(R.id.moreOptionsButton);
|
||||||
this.secondaryControls = rootView.findViewById(R.id.secondaryControls);
|
this.secondaryControls = rootView.findViewById(R.id.secondaryControls);
|
||||||
|
this.kodiButton = rootView.findViewById(R.id.kodi);
|
||||||
this.shareButton = rootView.findViewById(R.id.share);
|
this.shareButton = rootView.findViewById(R.id.share);
|
||||||
this.toggleOrientationButton = rootView.findViewById(R.id.toggleOrientation);
|
this.toggleOrientationButton = rootView.findViewById(R.id.toggleOrientation);
|
||||||
this.switchBackgroundButton = rootView.findViewById(R.id.switchBackground);
|
this.switchBackgroundButton = rootView.findViewById(R.id.switchBackground);
|
||||||
|
@ -482,6 +490,9 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
|
|
||||||
titleTextView.setSelected(true);
|
titleTextView.setSelected(true);
|
||||||
channelTextView.setSelected(true);
|
channelTextView.setSelected(true);
|
||||||
|
boolean showKodiButton = PreferenceManager.getDefaultSharedPreferences(this.context).getBoolean(
|
||||||
|
this.context.getString(R.string.show_play_with_kodi_key), false);
|
||||||
|
kodiButton.setVisibility(showKodiButton ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
getRootView().setKeepScreenOn(true);
|
getRootView().setKeepScreenOn(true);
|
||||||
}
|
}
|
||||||
|
@ -518,6 +529,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
closeButton.setOnClickListener(this);
|
closeButton.setOnClickListener(this);
|
||||||
|
|
||||||
moreOptionsButton.setOnClickListener(this);
|
moreOptionsButton.setOnClickListener(this);
|
||||||
|
kodiButton.setOnClickListener(this);
|
||||||
shareButton.setOnClickListener(this);
|
shareButton.setOnClickListener(this);
|
||||||
toggleOrientationButton.setOnClickListener(this);
|
toggleOrientationButton.setOnClickListener(this);
|
||||||
switchBackgroundButton.setOnClickListener(this);
|
switchBackgroundButton.setOnClickListener(this);
|
||||||
|
@ -588,6 +600,17 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onKodiShare() {
|
||||||
|
onPause();
|
||||||
|
try {
|
||||||
|
NavigationHelper.playWithKore(this.context, Uri.parse(
|
||||||
|
playerImpl.getVideoUrl().replace("https", "http")));
|
||||||
|
} catch (Exception e) {
|
||||||
|
if (DEBUG) Log.i(TAG, "Failed to start kore", e);
|
||||||
|
KoreUtil.showInstallKoreDialog(this.context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////
|
||||||
// Player Overrides
|
// Player Overrides
|
||||||
//////////////////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////////////////*/
|
||||||
|
@ -614,7 +637,8 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
this.getPlaybackPitch(),
|
this.getPlaybackPitch(),
|
||||||
this.getPlaybackSkipSilence(),
|
this.getPlaybackSkipSilence(),
|
||||||
this.getPlaybackQuality(),
|
this.getPlaybackQuality(),
|
||||||
false
|
false,
|
||||||
|
!isPlaying()
|
||||||
);
|
);
|
||||||
context.startService(intent);
|
context.startService(intent);
|
||||||
|
|
||||||
|
@ -637,7 +661,8 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
this.getPlaybackPitch(),
|
this.getPlaybackPitch(),
|
||||||
this.getPlaybackSkipSilence(),
|
this.getPlaybackSkipSilence(),
|
||||||
this.getPlaybackQuality(),
|
this.getPlaybackQuality(),
|
||||||
false
|
false,
|
||||||
|
!isPlaying()
|
||||||
);
|
);
|
||||||
context.startService(intent);
|
context.startService(intent);
|
||||||
|
|
||||||
|
@ -686,6 +711,8 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
} else if (v.getId() == closeButton.getId()) {
|
} else if (v.getId() == closeButton.getId()) {
|
||||||
onPlaybackShutdown();
|
onPlaybackShutdown();
|
||||||
return;
|
return;
|
||||||
|
} else if (v.getId() == kodiButton.getId()) {
|
||||||
|
onKodiShare();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getCurrentState() != STATE_COMPLETED) {
|
if (getCurrentState() != STATE_COMPLETED) {
|
||||||
|
@ -882,6 +909,18 @@ public final class MainVideoPlayer extends AppCompatActivity
|
||||||
final float currentVolumeNormalized = (float) getAudioReactor().getVolume() / getAudioReactor().getMaxVolume();
|
final float currentVolumeNormalized = (float) getAudioReactor().getVolume() / getAudioReactor().getMaxVolume();
|
||||||
volumeProgressBar.setProgress((int) (volumeProgressBar.getMax() * currentVolumeNormalized));
|
volumeProgressBar.setProgress((int) (volumeProgressBar.getMax() * currentVolumeNormalized));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float screenBrightness = getWindow().getAttributes().screenBrightness;
|
||||||
|
if (screenBrightness < 0)
|
||||||
|
screenBrightness = Settings.System.getInt(getContentResolver(),
|
||||||
|
Settings.System.SCREEN_BRIGHTNESS, 0) / 255.0f;
|
||||||
|
|
||||||
|
brightnessProgressBar.setProgress((int) (brightnessProgressBar.getMax() * screenBrightness));
|
||||||
|
|
||||||
|
if (DEBUG) Log.d(TAG, "setInitialGestureValues: volumeProgressBar.getProgress() ["
|
||||||
|
+ volumeProgressBar.getProgress() + "] "
|
||||||
|
+ "brightnessProgressBar.getProgress() ["
|
||||||
|
+ brightnessProgressBar.getProgress() + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -80,6 +80,7 @@ import static org.schabi.newpipe.player.BasePlayer.STATE_PLAYING;
|
||||||
import static org.schabi.newpipe.player.VideoPlayer.DEFAULT_CONTROLS_DURATION;
|
import static org.schabi.newpipe.player.VideoPlayer.DEFAULT_CONTROLS_DURATION;
|
||||||
import static org.schabi.newpipe.player.VideoPlayer.DEFAULT_CONTROLS_HIDE_TIME;
|
import static org.schabi.newpipe.player.VideoPlayer.DEFAULT_CONTROLS_HIDE_TIME;
|
||||||
import static org.schabi.newpipe.util.AnimationUtils.animateView;
|
import static org.schabi.newpipe.util.AnimationUtils.animateView;
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service Popup Player implementing VideoPlayer
|
* Service Popup Player implementing VideoPlayer
|
||||||
|
@ -142,6 +143,7 @@ public final class PopupVideoPlayer extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
|
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
|
||||||
notificationManager = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE));
|
notificationManager = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE));
|
||||||
|
|
||||||
|
@ -169,6 +171,7 @@ public final class PopupVideoPlayer extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
if (DEBUG) Log.d(TAG, "onConfigurationChanged() called with: newConfig = [" + newConfig + "]");
|
if (DEBUG) Log.d(TAG, "onConfigurationChanged() called with: newConfig = [" + newConfig + "]");
|
||||||
updateScreenSize();
|
updateScreenSize();
|
||||||
updatePopupSize(popupLayoutParams.width, -1);
|
updatePopupSize(popupLayoutParams.width, -1);
|
||||||
|
@ -567,7 +570,8 @@ public final class PopupVideoPlayer extends Service {
|
||||||
this.getPlaybackPitch(),
|
this.getPlaybackPitch(),
|
||||||
this.getPlaybackSkipSilence(),
|
this.getPlaybackSkipSilence(),
|
||||||
this.getPlaybackQuality(),
|
this.getPlaybackQuality(),
|
||||||
false
|
false,
|
||||||
|
!isPlaying()
|
||||||
);
|
);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
|
@ -1123,4 +1127,4 @@ public final class PopupVideoPlayer extends Service {
|
||||||
return distanceFromCloseButton(popupMotionEvent) <= getClosingRadius();
|
return distanceFromCloseButton(popupMotionEvent) <= getClosingRadius();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,10 +48,7 @@ public final class PopupVideoPlayerActivity extends ServicePlayerActivity {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPlayerOptionSelected(MenuItem item) {
|
public boolean onPlayerOptionSelected(MenuItem item) {
|
||||||
if (item.getItemId() == R.id.action_switch_background) {
|
if (item.getItemId() == R.id.action_switch_background) {
|
||||||
this.player.setRecovery();
|
return switchTo(BackgroundPlayer.class);
|
||||||
getApplicationContext().sendBroadcast(getPlayerShutdownIntent());
|
|
||||||
getApplicationContext().startService(getSwitchIntent(BackgroundPlayer.class));
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ import java.util.List;
|
||||||
|
|
||||||
import static org.schabi.newpipe.player.helper.PlayerHelper.formatPitch;
|
import static org.schabi.newpipe.player.helper.PlayerHelper.formatPitch;
|
||||||
import static org.schabi.newpipe.player.helper.PlayerHelper.formatSpeed;
|
import static org.schabi.newpipe.player.helper.PlayerHelper.formatSpeed;
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public abstract class ServicePlayerActivity extends AppCompatActivity
|
public abstract class ServicePlayerActivity extends AppCompatActivity
|
||||||
implements PlayerEventListener, SeekBar.OnSeekBarChangeListener,
|
implements PlayerEventListener, SeekBar.OnSeekBarChangeListener,
|
||||||
|
@ -116,6 +117,7 @@ public abstract class ServicePlayerActivity extends AppCompatActivity
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
ThemeHelper.setTheme(this);
|
ThemeHelper.setTheme(this);
|
||||||
setContentView(R.layout.activity_player_queue_control);
|
setContentView(R.layout.activity_player_queue_control);
|
||||||
|
@ -157,18 +159,11 @@ public abstract class ServicePlayerActivity extends AppCompatActivity
|
||||||
case R.id.action_append_playlist:
|
case R.id.action_append_playlist:
|
||||||
appendAllToPlaylist();
|
appendAllToPlaylist();
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_settings:
|
|
||||||
NavigationHelper.openSettings(this);
|
|
||||||
redraw = true;
|
|
||||||
return true;
|
|
||||||
case R.id.action_system_audio:
|
case R.id.action_system_audio:
|
||||||
startActivity(new Intent(Settings.ACTION_SOUND_SETTINGS));
|
startActivity(new Intent(Settings.ACTION_SOUND_SETTINGS));
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_switch_main:
|
case R.id.action_switch_main:
|
||||||
this.player.setRecovery();
|
return switchTo(MainVideoPlayer.class);
|
||||||
getApplicationContext().sendBroadcast(getPlayerShutdownIntent());
|
|
||||||
getApplicationContext().startActivity(getSwitchIntent(MainVideoPlayer.class));
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return onPlayerOptionSelected(item) || super.onOptionsItemSelected(item);
|
return onPlayerOptionSelected(item) || super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
@ -189,8 +184,17 @@ public abstract class ServicePlayerActivity extends AppCompatActivity
|
||||||
this.player.getPlaybackPitch(),
|
this.player.getPlaybackPitch(),
|
||||||
this.player.getPlaybackSkipSilence(),
|
this.player.getPlaybackSkipSilence(),
|
||||||
null,
|
null,
|
||||||
|
false,
|
||||||
false
|
false
|
||||||
).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
.putExtra(BasePlayer.START_PAUSED, !this.player.isPlaying());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean switchTo(final Class clazz) {
|
||||||
|
this.player.setRecovery();
|
||||||
|
getApplicationContext().sendBroadcast(getPlayerShutdownIntent());
|
||||||
|
getApplicationContext().startActivity(getSwitchIntent(clazz));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -17,6 +17,7 @@ import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.util.SliderStrategy;
|
import org.schabi.newpipe.util.SliderStrategy;
|
||||||
|
|
||||||
import static org.schabi.newpipe.player.BasePlayer.DEBUG;
|
import static org.schabi.newpipe.player.BasePlayer.DEBUG;
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class PlaybackParameterDialog extends DialogFragment {
|
public class PlaybackParameterDialog extends DialogFragment {
|
||||||
@NonNull private static final String TAG = "PlaybackParameterDialog";
|
@NonNull private static final String TAG = "PlaybackParameterDialog";
|
||||||
|
@ -108,6 +109,7 @@ public class PlaybackParameterDialog extends DialogFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(getContext());
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
initialTempo = savedInstanceState.getDouble(INITIAL_TEMPO_KEY, DEFAULT_TEMPO);
|
initialTempo = savedInstanceState.getDouble(INITIAL_TEMPO_KEY, DEFAULT_TEMPO);
|
||||||
|
@ -137,6 +139,7 @@ public class PlaybackParameterDialog extends DialogFragment {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(getContext());
|
||||||
final View view = View.inflate(getContext(), R.layout.dialog_playback_parameter, null);
|
final View view = View.inflate(getContext(), R.layout.dialog_playback_parameter, null);
|
||||||
setupControlViews(view);
|
setupControlViews(view);
|
||||||
|
|
||||||
|
|
|
@ -43,9 +43,12 @@ import java.io.StringWriter;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 24.10.15.
|
* Created by Christian Schabesberger on 24.10.15.
|
||||||
*
|
*
|
||||||
|
@ -91,7 +94,7 @@ public class ErrorActivity extends AppCompatActivity {
|
||||||
if (rootView != null) {
|
if (rootView != null) {
|
||||||
Snackbar.make(rootView, R.string.error_snackbar_message, 3 * 1000)
|
Snackbar.make(rootView, R.string.error_snackbar_message, 3 * 1000)
|
||||||
.setActionTextColor(Color.YELLOW)
|
.setActionTextColor(Color.YELLOW)
|
||||||
.setAction(R.string.error_snackbar_action, v ->
|
.setAction(context.getString(R.string.error_snackbar_action).toUpperCase(), v ->
|
||||||
startErrorActivity(returnActivity, context, errorInfo, el)).show();
|
startErrorActivity(returnActivity, context, errorInfo, el)).show();
|
||||||
} else {
|
} else {
|
||||||
startErrorActivity(returnActivity, context, errorInfo, el);
|
startErrorActivity(returnActivity, context, errorInfo, el);
|
||||||
|
@ -171,6 +174,7 @@ public class ErrorActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
ThemeHelper.setTheme(this);
|
ThemeHelper.setTheme(this);
|
||||||
setContentView(R.layout.activity_error);
|
setContentView(R.layout.activity_error);
|
||||||
|
@ -374,8 +378,12 @@ public class ErrorActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getContentLangString() {
|
private String getContentLangString() {
|
||||||
return PreferenceManager.getDefaultSharedPreferences(this)
|
String contentLanguage = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
.getString(this.getString(R.string.content_country_key), "none");
|
.getString(this.getString(R.string.content_country_key), "none");
|
||||||
|
if (contentLanguage.equals(getString(R.string.default_localization_key))) {
|
||||||
|
contentLanguage = Locale.getDefault().toString();
|
||||||
|
}
|
||||||
|
return contentLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getOsString() {
|
private String getOsString() {
|
||||||
|
|
|
@ -7,11 +7,12 @@ import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import android.util.Log;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import com.nononsenseapps.filepicker.Utils;
|
import com.nononsenseapps.filepicker.Utils;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
|
@ -40,6 +41,8 @@ import java.util.Map;
|
||||||
import java.util.zip.ZipFile;
|
import java.util.zip.ZipFile;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class ContentSettingsFragment extends BasePreferenceFragment {
|
public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
|
|
||||||
private static final int REQUEST_IMPORT_PATH = 8945;
|
private static final int REQUEST_IMPORT_PATH = 8945;
|
||||||
|
@ -56,6 +59,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
|
|
||||||
private Localization initialSelectedLocalization;
|
private Localization initialSelectedLocalization;
|
||||||
private ContentCountry initialSelectedContentCountry;
|
private ContentCountry initialSelectedContentCountry;
|
||||||
|
private String initialLanguage;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
@ -64,6 +68,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
|
|
||||||
initialSelectedLocalization = org.schabi.newpipe.util.Localization.getPreferredLocalization(requireContext());
|
initialSelectedLocalization = org.schabi.newpipe.util.Localization.getPreferredLocalization(requireContext());
|
||||||
initialSelectedContentCountry = org.schabi.newpipe.util.Localization.getPreferredContentCountry(requireContext());
|
initialSelectedContentCountry = org.schabi.newpipe.util.Localization.getPreferredContentCountry(requireContext());
|
||||||
|
initialLanguage = PreferenceManager.getDefaultSharedPreferences(getContext()).getString("app_language_key", "en");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -125,9 +130,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
.getPreferredLocalization(requireContext());
|
.getPreferredLocalization(requireContext());
|
||||||
final ContentCountry selectedContentCountry = org.schabi.newpipe.util.Localization
|
final ContentCountry selectedContentCountry = org.schabi.newpipe.util.Localization
|
||||||
.getPreferredContentCountry(requireContext());
|
.getPreferredContentCountry(requireContext());
|
||||||
|
final String selectedLanguage = PreferenceManager.getDefaultSharedPreferences(getContext()).getString("app_language_key", "en");
|
||||||
|
|
||||||
if (!selectedLocalization.equals(initialSelectedLocalization)
|
if (!selectedLocalization.equals(initialSelectedLocalization)
|
||||||
|| !selectedContentCountry.equals(initialSelectedContentCountry)) {
|
|| !selectedContentCountry.equals(initialSelectedContentCountry) || !selectedLanguage.equals(initialLanguage)) {
|
||||||
Toast.makeText(requireContext(), R.string.localization_changes_requires_app_restart, Toast.LENGTH_LONG).show();
|
Toast.makeText(requireContext(), R.string.localization_changes_requires_app_restart, Toast.LENGTH_LONG).show();
|
||||||
|
|
||||||
NewPipe.setupLocalization(selectedLocalization, selectedContentCountry);
|
NewPipe.setupLocalization(selectedLocalization, selectedContentCountry);
|
||||||
|
@ -136,6 +142,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, @NonNull Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, @NonNull Intent data) {
|
||||||
|
assureCorrectAppLanguage(getContext());
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "onActivityResult() called with: requestCode = [" + requestCode + "], resultCode = [" + resultCode + "], data = [" + data + "]");
|
Log.d(TAG, "onActivityResult() called with: requestCode = [" + requestCode + "], resultCode = [" + resultCode + "], data = [" + data + "]");
|
||||||
|
@ -150,7 +157,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
} else {
|
} else {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
builder.setMessage(R.string.override_current_data)
|
builder.setMessage(R.string.override_current_data)
|
||||||
.setPositiveButton(android.R.string.ok,
|
.setPositiveButton(getString(R.string.finish),
|
||||||
(DialogInterface d, int id) -> importDatabase(path))
|
(DialogInterface d, int id) -> importDatabase(path))
|
||||||
.setNegativeButton(android.R.string.cancel,
|
.setNegativeButton(android.R.string.cancel,
|
||||||
(DialogInterface d, int id) -> d.cancel());
|
(DialogInterface d, int id) -> d.cancel());
|
||||||
|
@ -189,7 +196,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (output != null) {
|
if (output != null) {
|
||||||
output.flush();
|
output.flush();
|
||||||
|
@ -236,7 +243,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
//If settings file exist, ask if it should be imported.
|
//If settings file exist, ask if it should be imported.
|
||||||
if(ZipHelper.extractFileFromZip(filePath, newpipe_settings.getPath(), "newpipe.settings")) {
|
if (ZipHelper.extractFileFromZip(filePath, newpipe_settings.getPath(), "newpipe.settings")) {
|
||||||
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
|
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
|
||||||
alert.setTitle(R.string.import_settings);
|
alert.setTitle(R.string.import_settings);
|
||||||
|
|
||||||
|
@ -245,7 +252,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
// restart app to properly load db
|
// restart app to properly load db
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
});
|
});
|
||||||
alert.setPositiveButton(android.R.string.yes, (dialog, which) -> {
|
alert.setPositiveButton(getString(R.string.finish), (dialog, which) -> {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
loadSharedPreferences(newpipe_settings);
|
loadSharedPreferences(newpipe_settings);
|
||||||
// restart app to properly load db
|
// restart app to properly load db
|
||||||
|
@ -291,7 +298,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
input.close();
|
input.close();
|
||||||
|
|
|
@ -8,11 +8,12 @@ import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import android.util.Log;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import com.nononsenseapps.filepicker.Utils;
|
import com.nononsenseapps.filepicker.Utils;
|
||||||
|
|
||||||
|
@ -28,6 +29,8 @@ import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import us.shandian.giga.io.StoredDirectoryHelper;
|
import us.shandian.giga.io.StoredDirectoryHelper;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
public class DownloadSettingsFragment extends BasePreferenceFragment {
|
public class DownloadSettingsFragment extends BasePreferenceFragment {
|
||||||
private static final int REQUEST_DOWNLOAD_VIDEO_PATH = 0x1235;
|
private static final int REQUEST_DOWNLOAD_VIDEO_PATH = 0x1235;
|
||||||
private static final int REQUEST_DOWNLOAD_AUDIO_PATH = 0x1236;
|
private static final int REQUEST_DOWNLOAD_AUDIO_PATH = 0x1236;
|
||||||
|
@ -159,7 +162,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
|
||||||
AlertDialog.Builder msg = new AlertDialog.Builder(ctx);
|
AlertDialog.Builder msg = new AlertDialog.Builder(ctx);
|
||||||
msg.setTitle(title);
|
msg.setTitle(title);
|
||||||
msg.setMessage(message);
|
msg.setMessage(message);
|
||||||
msg.setPositiveButton(android.R.string.ok, null);
|
msg.setPositiveButton(getString(R.string.finish), null);
|
||||||
msg.show();
|
msg.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,6 +205,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
assureCorrectAppLanguage(getContext());
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "onActivityResult() called with: requestCode = [" + requestCode + "], " +
|
Log.d(TAG, "onActivityResult() called with: requestCode = [" + requestCode + "], " +
|
||||||
|
|
|
@ -14,6 +14,7 @@ import android.view.MenuItem;
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 31.08.15.
|
* Created by Christian Schabesberger on 31.08.15.
|
||||||
|
@ -44,7 +45,7 @@ public class SettingsActivity extends AppCompatActivity implements BasePreferenc
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceBundle) {
|
protected void onCreate(Bundle savedInstanceBundle) {
|
||||||
setTheme(ThemeHelper.getSettingsThemeStyle(this));
|
setTheme(ThemeHelper.getSettingsThemeStyle(this));
|
||||||
|
assureCorrectAppLanguage(this);
|
||||||
super.onCreate(savedInstanceBundle);
|
super.onCreate(savedInstanceBundle);
|
||||||
setContentView(R.layout.settings_layout);
|
setContentView(R.layout.settings_layout);
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,83 @@
|
||||||
package org.schabi.newpipe.settings;
|
package org.schabi.newpipe.settings;
|
||||||
|
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.provider.Settings;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.preference.ListPreference;
|
||||||
|
|
||||||
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
|
import org.schabi.newpipe.util.PermissionHelper;
|
||||||
|
|
||||||
public class VideoAudioSettingsFragment extends BasePreferenceFragment {
|
public class VideoAudioSettingsFragment extends BasePreferenceFragment {
|
||||||
|
|
||||||
|
private SharedPreferences.OnSharedPreferenceChangeListener listener;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
//initializing R.array.seek_duration_description to display the translation of seconds
|
||||||
|
Resources res = getResources();
|
||||||
|
String[] durationsValues = res.getStringArray(R.array.seek_duration_value);
|
||||||
|
String[] durationsDescriptions = res.getStringArray(R.array.seek_duration_description);
|
||||||
|
int currentDurationValue;
|
||||||
|
for (int i = 0; i < durationsDescriptions.length; i++) {
|
||||||
|
currentDurationValue = Integer.parseInt(durationsValues[i]) / 1000;
|
||||||
|
try {
|
||||||
|
durationsDescriptions[i] = String.format(
|
||||||
|
res.getQuantityString(R.plurals.dynamic_seek_duration_description, currentDurationValue),
|
||||||
|
currentDurationValue);
|
||||||
|
} catch (Resources.NotFoundException ignored) {
|
||||||
|
//if this happens, the translation is missing, and the english string will be displayed instead
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key));
|
||||||
|
durations.setEntries(durationsDescriptions);
|
||||||
|
|
||||||
|
listener = (sharedPreferences, s) -> {
|
||||||
|
|
||||||
|
// on M and above, if user chooses to minimise to popup player on exit and the app doesn't have
|
||||||
|
// display over other apps permission, show a snackbar to let the user give permission
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
||||||
|
s.equals(getString(R.string.minimize_on_exit_key))) {
|
||||||
|
|
||||||
|
String newSetting = sharedPreferences.getString(s, null);
|
||||||
|
if (newSetting != null
|
||||||
|
&& newSetting.equals(getString(R.string.minimize_on_exit_popup_key))
|
||||||
|
&& !Settings.canDrawOverlays(getContext())) {
|
||||||
|
|
||||||
|
Snackbar.make(getListView(), R.string.permission_display_over_apps, Snackbar.LENGTH_INDEFINITE)
|
||||||
|
.setAction(R.string.settings,
|
||||||
|
view -> PermissionHelper.checkSystemAlertWindowPermission(getContext()))
|
||||||
|
.show();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
addPreferencesFromResource(R.xml.video_audio_settings);
|
addPreferencesFromResource(R.xml.video_audio_settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(listener);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(listener);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,6 +137,7 @@ public class DataReader {
|
||||||
|
|
||||||
position = 0;
|
position = 0;
|
||||||
readOffset = readBuffer.length;
|
readOffset = readBuffer.length;
|
||||||
|
readCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canRewind() {
|
public boolean canRewind() {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import org.schabi.newpipe.streams.io.SharpStream;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kapodamy
|
* @author kapodamy
|
||||||
|
@ -23,7 +24,6 @@ public class Mp4FromDashWriter {
|
||||||
private final static byte SAMPLES_PER_CHUNK = 6;// ffmpeg uses 2, basic uses 1 (with 60fps uses 21 or 22). NewPipe will use 6
|
private final static byte SAMPLES_PER_CHUNK = 6;// ffmpeg uses 2, basic uses 1 (with 60fps uses 21 or 22). NewPipe will use 6
|
||||||
private final static long THRESHOLD_FOR_CO64 = 0xFFFEFFFFL;// near 3.999 GiB
|
private final static long THRESHOLD_FOR_CO64 = 0xFFFEFFFFL;// near 3.999 GiB
|
||||||
private final static int THRESHOLD_MOOV_LENGTH = (256 * 1024) + (2048 * 1024); // 2.2 MiB enough for: 1080p 60fps 00h35m00s
|
private final static int THRESHOLD_MOOV_LENGTH = (256 * 1024) + (2048 * 1024); // 2.2 MiB enough for: 1080p 60fps 00h35m00s
|
||||||
private final static short SINGLE_CHUNK_SAMPLE_BUFFER = 256;
|
|
||||||
|
|
||||||
private final long time;
|
private final long time;
|
||||||
|
|
||||||
|
@ -46,6 +46,8 @@ public class Mp4FromDashWriter {
|
||||||
|
|
||||||
private int overrideMainBrand = 0x00;
|
private int overrideMainBrand = 0x00;
|
||||||
|
|
||||||
|
private ArrayList<Integer> compatibleBrands = new ArrayList<>(5);
|
||||||
|
|
||||||
public Mp4FromDashWriter(SharpStream... sources) throws IOException {
|
public Mp4FromDashWriter(SharpStream... sources) throws IOException {
|
||||||
for (SharpStream src : sources) {
|
for (SharpStream src : sources) {
|
||||||
if (!src.canRewind() && !src.canRead()) {
|
if (!src.canRewind() && !src.canRead()) {
|
||||||
|
@ -57,6 +59,10 @@ public class Mp4FromDashWriter {
|
||||||
readers = new Mp4DashReader[sourceTracks.length];
|
readers = new Mp4DashReader[sourceTracks.length];
|
||||||
readersChunks = new Mp4DashChunk[readers.length];
|
readersChunks = new Mp4DashChunk[readers.length];
|
||||||
time = (System.currentTimeMillis() / 1000L) + EPOCH_OFFSET;
|
time = (System.currentTimeMillis() / 1000L) + EPOCH_OFFSET;
|
||||||
|
|
||||||
|
compatibleBrands.add(0x6D703431);// mp41
|
||||||
|
compatibleBrands.add(0x69736F6D);// isom
|
||||||
|
compatibleBrands.add(0x69736F32);// iso2
|
||||||
}
|
}
|
||||||
|
|
||||||
public Mp4Track[] getTracksFromSource(int sourceIndex) throws IllegalStateException {
|
public Mp4Track[] getTracksFromSource(int sourceIndex) throws IllegalStateException {
|
||||||
|
@ -104,8 +110,8 @@ public class Mp4FromDashWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMainBrand(int brandId) {
|
public void setMainBrand(int brand) {
|
||||||
overrideMainBrand = brandId;
|
overrideMainBrand = brand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDone() {
|
public boolean isDone() {
|
||||||
|
@ -159,7 +165,13 @@ public class Mp4FromDashWriter {
|
||||||
tablesInfo[i] = new TablesInfo();
|
tablesInfo[i] = new TablesInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean singleChunk = tracks.length == 1 && tracks[0].kind == TrackKind.Audio;
|
int single_sample_buffer;
|
||||||
|
if (tracks.length == 1 && tracks[0].kind == TrackKind.Audio) {
|
||||||
|
// near 1 second of audio data per chunk, avoid split the audio stream in large chunks
|
||||||
|
single_sample_buffer = tracks[0].trak.mdia.mdhd_timeScale / 1000;
|
||||||
|
} else {
|
||||||
|
single_sample_buffer = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < readers.length; i++) {
|
for (int i = 0; i < readers.length; i++) {
|
||||||
|
@ -210,31 +222,10 @@ public class Mp4FromDashWriter {
|
||||||
|
|
||||||
readers[i].rewind();
|
readers[i].rewind();
|
||||||
|
|
||||||
int tmp = tablesInfo[i].stsz - SAMPLES_PER_CHUNK_INIT;
|
if (single_sample_buffer > 0) {
|
||||||
tablesInfo[i].stco = (tmp / SAMPLES_PER_CHUNK) + 1;// +1 for samples in first chunk
|
initChunkTables(tablesInfo[i], single_sample_buffer, single_sample_buffer);
|
||||||
|
|
||||||
tmp = tmp % SAMPLES_PER_CHUNK;
|
|
||||||
if (singleChunk) {
|
|
||||||
// avoid split audio streams in chunks
|
|
||||||
tablesInfo[i].stsc = 1;
|
|
||||||
tablesInfo[i].stsc_bEntries = new int[]{
|
|
||||||
1, tablesInfo[i].stsz, 1
|
|
||||||
};
|
|
||||||
tablesInfo[i].stco = 1;
|
|
||||||
} else if (tmp == 0) {
|
|
||||||
tablesInfo[i].stsc = 2;// first chunk (init) and succesive chunks
|
|
||||||
tablesInfo[i].stsc_bEntries = new int[]{
|
|
||||||
1, SAMPLES_PER_CHUNK_INIT, 1,
|
|
||||||
2, SAMPLES_PER_CHUNK, 1
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
tablesInfo[i].stsc = 3;// first chunk (init) and successive chunks and remain chunk
|
initChunkTables(tablesInfo[i], SAMPLES_PER_CHUNK_INIT, SAMPLES_PER_CHUNK);
|
||||||
tablesInfo[i].stsc_bEntries = new int[]{
|
|
||||||
1, SAMPLES_PER_CHUNK_INIT, 1,
|
|
||||||
2, SAMPLES_PER_CHUNK, 1,
|
|
||||||
tablesInfo[i].stco + 1, tmp, 1
|
|
||||||
};
|
|
||||||
tablesInfo[i].stco++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sampleCount[i] = tablesInfo[i].stsz;
|
sampleCount[i] = tablesInfo[i].stsz;
|
||||||
|
@ -259,7 +250,7 @@ public class Mp4FromDashWriter {
|
||||||
|
|
||||||
boolean is64 = read > THRESHOLD_FOR_CO64;
|
boolean is64 = read > THRESHOLD_FOR_CO64;
|
||||||
|
|
||||||
// calculate the moov size;
|
// calculate the moov size
|
||||||
int auxSize = make_moov(defaultMediaTime, tablesInfo, is64);
|
int auxSize = make_moov(defaultMediaTime, tablesInfo, is64);
|
||||||
|
|
||||||
if (auxSize < THRESHOLD_MOOV_LENGTH) {
|
if (auxSize < THRESHOLD_MOOV_LENGTH) {
|
||||||
|
@ -272,11 +263,6 @@ public class Mp4FromDashWriter {
|
||||||
final int ftyp_size = make_ftyp();
|
final int ftyp_size = make_ftyp();
|
||||||
|
|
||||||
// reserve moov space in the output stream
|
// reserve moov space in the output stream
|
||||||
/*if (outStream.canSetLength()) {
|
|
||||||
long length = writeOffset + auxSize;
|
|
||||||
outStream.setLength(length);
|
|
||||||
outSeek(length);
|
|
||||||
} else {*/
|
|
||||||
if (auxSize > 0) {
|
if (auxSize > 0) {
|
||||||
int length = auxSize;
|
int length = auxSize;
|
||||||
byte[] buffer = new byte[64 * 1024];// 64 KiB
|
byte[] buffer = new byte[64 * 1024];// 64 KiB
|
||||||
|
@ -292,10 +278,10 @@ public class Mp4FromDashWriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
// tablesInfo contains row counts
|
// tablesInfo contains row counts
|
||||||
// and after returning from make_moov() will contain table offsets
|
// and after returning from make_moov() will contain those table offsets
|
||||||
make_moov(defaultMediaTime, tablesInfo, is64);
|
make_moov(defaultMediaTime, tablesInfo, is64);
|
||||||
|
|
||||||
// write tables: stts stsc
|
// write tables: stts stsc sbgp
|
||||||
// reset for ctts table: sampleCount sampleExtra
|
// reset for ctts table: sampleCount sampleExtra
|
||||||
for (int i = 0; i < readers.length; i++) {
|
for (int i = 0; i < readers.length; i++) {
|
||||||
writeEntryArray(tablesInfo[i].stts, 2, sampleCount[i], defaultSampleDuration[i]);
|
writeEntryArray(tablesInfo[i].stts, 2, sampleCount[i], defaultSampleDuration[i]);
|
||||||
|
@ -305,6 +291,9 @@ public class Mp4FromDashWriter {
|
||||||
sampleCount[i] = 1;// the index is not base zero
|
sampleCount[i] = 1;// the index is not base zero
|
||||||
sampleExtra[i] = -1;
|
sampleExtra[i] = -1;
|
||||||
}
|
}
|
||||||
|
if (tablesInfo[i].sbgp > 0) {
|
||||||
|
writeEntryArray(tablesInfo[i].sbgp, 1, sampleCount[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auxBuffer == null) {
|
if (auxBuffer == null) {
|
||||||
|
@ -314,8 +303,8 @@ public class Mp4FromDashWriter {
|
||||||
outWrite(make_mdat(totalSampleSize, is64));
|
outWrite(make_mdat(totalSampleSize, is64));
|
||||||
|
|
||||||
int[] sampleIndex = new int[readers.length];
|
int[] sampleIndex = new int[readers.length];
|
||||||
int[] sizes = new int[singleChunk ? SINGLE_CHUNK_SAMPLE_BUFFER : SAMPLES_PER_CHUNK];
|
int[] sizes = new int[single_sample_buffer > 0 ? single_sample_buffer : SAMPLES_PER_CHUNK];
|
||||||
int[] sync = new int[singleChunk ? SINGLE_CHUNK_SAMPLE_BUFFER : SAMPLES_PER_CHUNK];
|
int[] sync = new int[single_sample_buffer > 0 ? single_sample_buffer : SAMPLES_PER_CHUNK];
|
||||||
|
|
||||||
int written = readers.length;
|
int written = readers.length;
|
||||||
while (written > 0) {
|
while (written > 0) {
|
||||||
|
@ -329,8 +318,8 @@ public class Mp4FromDashWriter {
|
||||||
long chunkOffset = writeOffset;
|
long chunkOffset = writeOffset;
|
||||||
int syncCount = 0;
|
int syncCount = 0;
|
||||||
int limit;
|
int limit;
|
||||||
if (singleChunk) {
|
if (single_sample_buffer > 0) {
|
||||||
limit = SINGLE_CHUNK_SAMPLE_BUFFER;
|
limit = single_sample_buffer;
|
||||||
} else {
|
} else {
|
||||||
limit = sampleIndex[i] == 0 ? SAMPLES_PER_CHUNK_INIT : SAMPLES_PER_CHUNK;
|
limit = sampleIndex[i] == 0 ? SAMPLES_PER_CHUNK_INIT : SAMPLES_PER_CHUNK;
|
||||||
}
|
}
|
||||||
|
@ -342,6 +331,7 @@ public class Mp4FromDashWriter {
|
||||||
if (sample == null) {
|
if (sample == null) {
|
||||||
if (tablesInfo[i].ctts > 0 && sampleExtra[i] >= 0) {
|
if (tablesInfo[i].ctts > 0 && sampleExtra[i] >= 0) {
|
||||||
writeEntryArray(tablesInfo[i].ctts, 1, sampleCount[i], sampleExtra[i]);// flush last entries
|
writeEntryArray(tablesInfo[i].ctts, 1, sampleCount[i], sampleExtra[i]);// flush last entries
|
||||||
|
outRestore();
|
||||||
}
|
}
|
||||||
sampleIndex[i] = -1;
|
sampleIndex[i] = -1;
|
||||||
break;
|
break;
|
||||||
|
@ -390,10 +380,6 @@ public class Mp4FromDashWriter {
|
||||||
} else {
|
} else {
|
||||||
tablesInfo[i].stco = writeEntryArray(tablesInfo[i].stco, 1, (int) chunkOffset);
|
tablesInfo[i].stco = writeEntryArray(tablesInfo[i].stco, 1, (int) chunkOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (singleChunk) {
|
|
||||||
tablesInfo[i].stco = -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
outRestore();
|
outRestore();
|
||||||
|
@ -470,7 +456,42 @@ public class Mp4FromDashWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initChunkTables(TablesInfo tables, int firstCount, int succesiveCount) {
|
||||||
|
// tables.stsz holds amount of samples of the track (total)
|
||||||
|
int totalSamples = (tables.stsz - firstCount);
|
||||||
|
float chunkAmount = totalSamples / (float) succesiveCount;
|
||||||
|
int remainChunkOffset = (int) Math.ceil(chunkAmount);
|
||||||
|
boolean remain = remainChunkOffset != (int) chunkAmount;
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
|
tables.stsc = 1;
|
||||||
|
if (firstCount != succesiveCount) {
|
||||||
|
tables.stsc++;
|
||||||
|
}
|
||||||
|
if (remain) {
|
||||||
|
tables.stsc++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// stsc_table_entry = [first_chunk, samples_per_chunk, sample_description_index]
|
||||||
|
tables.stsc_bEntries = new int[tables.stsc * 3];
|
||||||
|
tables.stco = remainChunkOffset + 1;// total entrys in chunk offset box
|
||||||
|
|
||||||
|
tables.stsc_bEntries[index++] = 1;
|
||||||
|
tables.stsc_bEntries[index++] = firstCount;
|
||||||
|
tables.stsc_bEntries[index++] = 1;
|
||||||
|
|
||||||
|
if (firstCount != succesiveCount) {
|
||||||
|
tables.stsc_bEntries[index++] = 2;
|
||||||
|
tables.stsc_bEntries[index++] = succesiveCount;
|
||||||
|
tables.stsc_bEntries[index++] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (remain) {
|
||||||
|
tables.stsc_bEntries[index++] = remainChunkOffset + 1;
|
||||||
|
tables.stsc_bEntries[index++] = totalSamples % succesiveCount;
|
||||||
|
tables.stsc_bEntries[index] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void outWrite(byte[] buffer) throws IOException {
|
private void outWrite(byte[] buffer) throws IOException {
|
||||||
outWrite(buffer, buffer.length);
|
outWrite(buffer, buffer.length);
|
||||||
|
@ -585,19 +606,29 @@ public class Mp4FromDashWriter {
|
||||||
|
|
||||||
|
|
||||||
private int make_ftyp() throws IOException {
|
private int make_ftyp() throws IOException {
|
||||||
byte[] buffer = new byte[]{
|
int size = 16 + (compatibleBrands.size() * 4);
|
||||||
0x00, 0x00, 0x00, 0x1C, 0x66, 0x74, 0x79, 0x70,// ftyp
|
if (overrideMainBrand != 0) size += 4;
|
||||||
0x6D, 0x70, 0x34, 0x32,// mayor brand (mp42)
|
|
||||||
0x00, 0x00, 0x02, 0x00,// default minor version (512)
|
|
||||||
0x6D, 0x70, 0x34, 0x31, 0x69, 0x73, 0x6F, 0x6D, 0x69, 0x73, 0x6F, 0x32// compatible brands: mp41 isom iso2
|
|
||||||
};
|
|
||||||
|
|
||||||
if (overrideMainBrand != 0)
|
ByteBuffer buffer = ByteBuffer.allocate(size);
|
||||||
ByteBuffer.wrap(buffer).putInt(8, overrideMainBrand);
|
buffer.putInt(size);
|
||||||
|
buffer.putInt(0x66747970);// "ftyp"
|
||||||
|
|
||||||
outWrite(buffer);
|
if (overrideMainBrand == 0) {
|
||||||
|
buffer.putInt(0x6D703432);// mayor brand "mp42"
|
||||||
|
buffer.putInt(512);// default minor version
|
||||||
|
} else {
|
||||||
|
buffer.putInt(overrideMainBrand);
|
||||||
|
buffer.putInt(0);
|
||||||
|
buffer.putInt(0x6D703432);// "mp42" compatible brand
|
||||||
|
}
|
||||||
|
|
||||||
return buffer.length;
|
for (Integer brand : compatibleBrands) {
|
||||||
|
buffer.putInt(brand);// compatible brand
|
||||||
|
}
|
||||||
|
|
||||||
|
outWrite(buffer.array());
|
||||||
|
|
||||||
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] make_mdat(long refSize, boolean is64) {
|
private byte[] make_mdat(long refSize, boolean is64) {
|
||||||
|
@ -740,13 +771,12 @@ public class Mp4FromDashWriter {
|
||||||
.array()
|
.array()
|
||||||
);
|
);
|
||||||
|
|
||||||
make_mdia(tracks[index].trak.mdia, tables, is64);
|
make_mdia(tracks[index].trak.mdia, tables, is64, tracks[index].kind == TrackKind.Audio);
|
||||||
|
|
||||||
lengthFor(start);
|
lengthFor(start);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void make_mdia(Mdia mdia, TablesInfo tablesInfo, boolean is64) throws IOException {
|
private void make_mdia(Mdia mdia, TablesInfo tablesInfo, boolean is64, boolean isAudio) throws IOException {
|
||||||
|
|
||||||
int start_mdia = auxOffset();
|
int start_mdia = auxOffset();
|
||||||
auxWrite(new byte[]{0x00, 0x00, 0x00, 0x00, 0x6D, 0x64, 0x69, 0x61});// mdia
|
auxWrite(new byte[]{0x00, 0x00, 0x00, 0x00, 0x6D, 0x64, 0x69, 0x61});// mdia
|
||||||
auxWrite(mdia.mdhd);
|
auxWrite(mdia.mdhd);
|
||||||
|
@ -766,7 +796,7 @@ public class Mp4FromDashWriter {
|
||||||
// And stsz can be empty if has a default sample size
|
// And stsz can be empty if has a default sample size
|
||||||
//
|
//
|
||||||
if (moovSimulation) {
|
if (moovSimulation) {
|
||||||
make(0x73747473, -1, 2, 1);
|
make(0x73747473, -1, 2, 1);// stts
|
||||||
if (tablesInfo.stss > 0) {
|
if (tablesInfo.stss > 0) {
|
||||||
make(0x73747373, -1, 1, tablesInfo.stss);
|
make(0x73747373, -1, 1, tablesInfo.stss);
|
||||||
}
|
}
|
||||||
|
@ -789,6 +819,11 @@ public class Mp4FromDashWriter {
|
||||||
tablesInfo.stco = make(is64 ? 0x636F3634 : 0x7374636F, -1, is64 ? 2 : 1, tablesInfo.stco);
|
tablesInfo.stco = make(is64 ? 0x636F3634 : 0x7374636F, -1, is64 ? 2 : 1, tablesInfo.stco);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isAudio) {
|
||||||
|
auxWrite(make_sgpd());
|
||||||
|
tablesInfo.sbgp = make_sbgp();// during simulation the returned offset is ignored
|
||||||
|
}
|
||||||
|
|
||||||
lengthFor(start_stbl);
|
lengthFor(start_stbl);
|
||||||
lengthFor(start_minf);
|
lengthFor(start_minf);
|
||||||
lengthFor(start_mdia);
|
lengthFor(start_mdia);
|
||||||
|
@ -816,6 +851,48 @@ public class Mp4FromDashWriter {
|
||||||
return buffer.array();
|
return buffer.array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int make_sbgp() throws IOException {
|
||||||
|
int offset = auxOffset();
|
||||||
|
|
||||||
|
auxWrite(new byte[] {
|
||||||
|
0x00, 0x00, 0x00, 0x1C,// box size
|
||||||
|
0x73, 0x62, 0x67, 0x70,// "sbpg"
|
||||||
|
0x00, 0x00, 0x00, 0x00,// default box flags
|
||||||
|
0x72, 0x6F, 0x6C, 0x6C,// group type "roll"
|
||||||
|
0x00, 0x00, 0x00, 0x01,// group table size
|
||||||
|
0x00, 0x00, 0x00, 0x00,// group[0] total samples (to be set later)
|
||||||
|
0x00, 0x00, 0x00, 0x01// group[0] description index
|
||||||
|
});
|
||||||
|
|
||||||
|
return offset + 0x14;
|
||||||
|
}
|
||||||
|
|
||||||
|
private byte[] make_sgpd() {
|
||||||
|
/*
|
||||||
|
* Sample Group Description Box
|
||||||
|
*
|
||||||
|
* ¿whats does?
|
||||||
|
* the table inside of this box gives information about the
|
||||||
|
* characteristics of sample groups. The descriptive information is any other
|
||||||
|
* information needed to define or characterize the sample group.
|
||||||
|
*
|
||||||
|
* ¿is replicabled this box?
|
||||||
|
* NO due lacks of documentation about this box but...
|
||||||
|
* most of m4a encoders and ffmpeg uses this box with dummy values (same values)
|
||||||
|
*/
|
||||||
|
|
||||||
|
ByteBuffer buffer = ByteBuffer.wrap(new byte[] {
|
||||||
|
0x00, 0x00, 0x00, 0x1A,// box size
|
||||||
|
0x73, 0x67, 0x70, 0x64,// "sgpd"
|
||||||
|
0x01, 0x00, 0x00, 0x00,// box flags (unknown flag sets)
|
||||||
|
0x72, 0x6F, 0x6C, 0x6C, // ¿¿group type??
|
||||||
|
0x00, 0x00, 0x00, 0x02,// ¿¿??
|
||||||
|
0x00, 0x00, 0x00, 0x01,// ¿¿??
|
||||||
|
(byte)0xFF, (byte)0xFF// ¿¿??
|
||||||
|
});
|
||||||
|
|
||||||
|
return buffer.array();
|
||||||
|
}
|
||||||
|
|
||||||
class TablesInfo {
|
class TablesInfo {
|
||||||
|
|
||||||
|
@ -827,5 +904,6 @@ public class Mp4FromDashWriter {
|
||||||
int stsz_default;
|
int stsz_default;
|
||||||
int stss;
|
int stss;
|
||||||
int stco;
|
int stco;
|
||||||
|
int sbgp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
package org.schabi.newpipe.streams;
|
||||||
|
|
||||||
|
import org.jsoup.Jsoup;
|
||||||
|
import org.jsoup.nodes.Document;
|
||||||
|
import org.jsoup.nodes.Element;
|
||||||
|
import org.jsoup.nodes.Node;
|
||||||
|
import org.jsoup.nodes.TextNode;
|
||||||
|
import org.jsoup.parser.Parser;
|
||||||
|
import org.jsoup.select.Elements;
|
||||||
|
import org.schabi.newpipe.streams.io.SharpStream;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kapodamy
|
||||||
|
*/
|
||||||
|
public class SrtFromTtmlWriter {
|
||||||
|
private static final String NEW_LINE = "\r\n";
|
||||||
|
|
||||||
|
private SharpStream out;
|
||||||
|
private boolean ignoreEmptyFrames;
|
||||||
|
private final Charset charset = StandardCharsets.UTF_8;
|
||||||
|
|
||||||
|
private int frameIndex = 0;
|
||||||
|
|
||||||
|
public SrtFromTtmlWriter(SharpStream out, boolean ignoreEmptyFrames) {
|
||||||
|
this.out = out;
|
||||||
|
this.ignoreEmptyFrames = ignoreEmptyFrames;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getTimestamp(Element frame, String attr) {
|
||||||
|
return frame
|
||||||
|
.attr(attr)
|
||||||
|
.replace('.', ',');// SRT subtitles uses comma as decimal separator
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeFrame(String begin, String end, StringBuilder text) throws IOException {
|
||||||
|
writeString(String.valueOf(frameIndex++));
|
||||||
|
writeString(NEW_LINE);
|
||||||
|
writeString(begin);
|
||||||
|
writeString(" --> ");
|
||||||
|
writeString(end);
|
||||||
|
writeString(NEW_LINE);
|
||||||
|
writeString(text.toString());
|
||||||
|
writeString(NEW_LINE);
|
||||||
|
writeString(NEW_LINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeString(String text) throws IOException {
|
||||||
|
out.write(text.getBytes(charset));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void build(SharpStream ttml) throws IOException {
|
||||||
|
/*
|
||||||
|
* TTML parser with BASIC support
|
||||||
|
* multiple CUE is not supported
|
||||||
|
* styling is not supported
|
||||||
|
* tag timestamps (in auto-generated subtitles) are not supported, maybe in the future
|
||||||
|
* also TimestampTagOption enum is not applicable
|
||||||
|
* Language parsing is not supported
|
||||||
|
*/
|
||||||
|
|
||||||
|
// parse XML
|
||||||
|
byte[] buffer = new byte[(int) ttml.available()];
|
||||||
|
ttml.read(buffer);
|
||||||
|
Document doc = Jsoup.parse(new ByteArrayInputStream(buffer), "UTF-8", "", Parser.xmlParser());
|
||||||
|
|
||||||
|
StringBuilder text = new StringBuilder(128);
|
||||||
|
Elements paragraph_list = doc.select("body > div > p");
|
||||||
|
|
||||||
|
// check if has frames
|
||||||
|
if (paragraph_list.size() < 1) return;
|
||||||
|
|
||||||
|
for (Element paragraph : paragraph_list) {
|
||||||
|
text.setLength(0);
|
||||||
|
|
||||||
|
for (Node children : paragraph.childNodes()) {
|
||||||
|
if (children instanceof TextNode)
|
||||||
|
text.append(((TextNode) children).text());
|
||||||
|
else if (children instanceof Element && ((Element) children).tagName().equalsIgnoreCase("br"))
|
||||||
|
text.append(NEW_LINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ignoreEmptyFrames && text.length() < 1) continue;
|
||||||
|
|
||||||
|
String begin = getTimestamp(paragraph, "begin");
|
||||||
|
String end = getTimestamp(paragraph, "end");
|
||||||
|
|
||||||
|
writeFrame(begin, end, text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,369 +0,0 @@
|
||||||
package org.schabi.newpipe.streams;
|
|
||||||
|
|
||||||
import org.schabi.newpipe.streams.io.SharpStream;
|
|
||||||
import org.w3c.dom.Document;
|
|
||||||
import org.w3c.dom.Element;
|
|
||||||
import org.w3c.dom.Node;
|
|
||||||
import org.w3c.dom.NodeList;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.xpath.XPathExpressionException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author kapodamy
|
|
||||||
*/
|
|
||||||
public class SubtitleConverter {
|
|
||||||
private static final String NEW_LINE = "\r\n";
|
|
||||||
|
|
||||||
public void dumpTTML(SharpStream in, final SharpStream out, final boolean ignoreEmptyFrames, final boolean detectYoutubeDuplicateLines
|
|
||||||
) throws IOException, ParseException, SAXException, ParserConfigurationException, XPathExpressionException {
|
|
||||||
|
|
||||||
final FrameWriter callback = new FrameWriter() {
|
|
||||||
int frameIndex = 0;
|
|
||||||
final Charset charset = Charset.forName("utf-8");
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void yield(SubtitleFrame frame) throws IOException {
|
|
||||||
if (ignoreEmptyFrames && frame.isEmptyText()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
out.write(String.valueOf(frameIndex++).getBytes(charset));
|
|
||||||
out.write(NEW_LINE.getBytes(charset));
|
|
||||||
out.write(getTime(frame.start, true).getBytes(charset));
|
|
||||||
out.write(" --> ".getBytes(charset));
|
|
||||||
out.write(getTime(frame.end, true).getBytes(charset));
|
|
||||||
out.write(NEW_LINE.getBytes(charset));
|
|
||||||
out.write(frame.text.getBytes(charset));
|
|
||||||
out.write(NEW_LINE.getBytes(charset));
|
|
||||||
out.write(NEW_LINE.getBytes(charset));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
read_xml_based(in, callback, detectYoutubeDuplicateLines,
|
|
||||||
"tt", "xmlns", "http://www.w3.org/ns/ttml",
|
|
||||||
new String[]{"timedtext", "head", "wp"},
|
|
||||||
new String[]{"body", "div", "p"},
|
|
||||||
"begin", "end", true
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void read_xml_based(SharpStream source, FrameWriter callback, boolean detectYoutubeDuplicateLines,
|
|
||||||
String root, String formatAttr, String formatVersion, String[] cuePath, String[] framePath,
|
|
||||||
String timeAttr, String durationAttr, boolean hasTimestamp
|
|
||||||
) throws IOException, ParseException, SAXException, ParserConfigurationException, XPathExpressionException {
|
|
||||||
/*
|
|
||||||
* XML based subtitles parser with BASIC support
|
|
||||||
* multiple CUE is not supported
|
|
||||||
* styling is not supported
|
|
||||||
* tag timestamps (in auto-generated subtitles) are not supported, maybe in the future
|
|
||||||
* also TimestampTagOption enum is not applicable
|
|
||||||
* Language parsing is not supported
|
|
||||||
*/
|
|
||||||
|
|
||||||
byte[] buffer = new byte[(int) source.available()];
|
|
||||||
source.read(buffer);
|
|
||||||
|
|
||||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
|
||||||
factory.setNamespaceAware(true);
|
|
||||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
|
||||||
Document xml = builder.parse(new ByteArrayInputStream(buffer));
|
|
||||||
|
|
||||||
String attr;
|
|
||||||
|
|
||||||
// get the format version or namespace
|
|
||||||
Element node = xml.getDocumentElement();
|
|
||||||
|
|
||||||
if (node == null) {
|
|
||||||
throw new ParseException("Can't get the format version. ¿wrong namespace?", -1);
|
|
||||||
} else if (!node.getNodeName().equals(root)) {
|
|
||||||
throw new ParseException("Invalid root", -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (formatAttr.equals("xmlns")) {
|
|
||||||
if (!node.getNamespaceURI().equals(formatVersion)) {
|
|
||||||
throw new UnsupportedOperationException("Expected xml namespace: " + formatVersion);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
attr = node.getAttributeNS(formatVersion, formatAttr);
|
|
||||||
if (attr == null) {
|
|
||||||
throw new ParseException("Can't get the format attribute", -1);
|
|
||||||
}
|
|
||||||
if (!attr.equals(formatVersion)) {
|
|
||||||
throw new ParseException("Invalid format version : " + attr, -1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NodeList node_list;
|
|
||||||
|
|
||||||
int line_break = 0;// Maximum characters per line if present (valid for TranScript v3)
|
|
||||||
|
|
||||||
if (!hasTimestamp) {
|
|
||||||
node_list = selectNodes(xml, cuePath, formatVersion);
|
|
||||||
|
|
||||||
if (node_list != null) {
|
|
||||||
// if the subtitle has multiple CUEs, use the highest value
|
|
||||||
for (int i = 0; i < node_list.getLength(); i++) {
|
|
||||||
try {
|
|
||||||
int tmp = Integer.parseInt(((Element) node_list.item(i)).getAttributeNS(formatVersion, "ah"));
|
|
||||||
if (tmp > line_break) {
|
|
||||||
line_break = tmp;
|
|
||||||
}
|
|
||||||
} catch (Exception err) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse every frame
|
|
||||||
node_list = selectNodes(xml, framePath, formatVersion);
|
|
||||||
|
|
||||||
if (node_list == null) {
|
|
||||||
return;// no frames detected
|
|
||||||
}
|
|
||||||
|
|
||||||
int fs_ff = -1;// first timestamp of first frame
|
|
||||||
boolean limit_lines = false;
|
|
||||||
|
|
||||||
for (int i = 0; i < node_list.getLength(); i++) {
|
|
||||||
Element elem = (Element) node_list.item(i);
|
|
||||||
SubtitleFrame obj = new SubtitleFrame();
|
|
||||||
obj.text = elem.getTextContent();
|
|
||||||
|
|
||||||
attr = elem.getAttribute(timeAttr);// ¡this cant be null!
|
|
||||||
obj.start = hasTimestamp ? parseTimestamp(attr) : Integer.parseInt(attr);
|
|
||||||
|
|
||||||
attr = elem.getAttribute(durationAttr);
|
|
||||||
if (obj.text == null || attr == null) {
|
|
||||||
continue;// normally is a blank line (on auto-generated subtitles) ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hasTimestamp) {
|
|
||||||
obj.end = parseTimestamp(attr);
|
|
||||||
|
|
||||||
if (detectYoutubeDuplicateLines) {
|
|
||||||
if (limit_lines) {
|
|
||||||
int swap = obj.end;
|
|
||||||
obj.end = fs_ff;
|
|
||||||
fs_ff = swap;
|
|
||||||
} else {
|
|
||||||
if (fs_ff < 0) {
|
|
||||||
fs_ff = obj.end;
|
|
||||||
} else {
|
|
||||||
if (fs_ff < obj.start) {
|
|
||||||
limit_lines = true;// the subtitles has duplicated lines
|
|
||||||
} else {
|
|
||||||
detectYoutubeDuplicateLines = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
obj.end = obj.start + Integer.parseInt(attr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (/*node.getAttribute("w").equals("1") &&*/line_break > 1 && obj.text.length() > line_break) {
|
|
||||||
|
|
||||||
// implement auto line breaking (once)
|
|
||||||
StringBuilder text = new StringBuilder(obj.text);
|
|
||||||
obj.text = null;
|
|
||||||
|
|
||||||
switch (text.charAt(line_break)) {
|
|
||||||
case ' ':
|
|
||||||
case '\t':
|
|
||||||
putBreakAt(line_break, text);
|
|
||||||
break;
|
|
||||||
default:// find the word start position
|
|
||||||
for (int j = line_break - 1; j > 0; j--) {
|
|
||||||
switch (text.charAt(j)) {
|
|
||||||
case ' ':
|
|
||||||
case '\t':
|
|
||||||
putBreakAt(j, text);
|
|
||||||
j = -1;
|
|
||||||
break;
|
|
||||||
case '\r':
|
|
||||||
case '\n':
|
|
||||||
j = -1;// long word, just ignore
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
obj.text = text.toString();// set the processed text
|
|
||||||
}
|
|
||||||
|
|
||||||
callback.yield(obj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static NodeList selectNodes(Document xml, String[] path, String namespaceUri) {
|
|
||||||
Element ref = xml.getDocumentElement();
|
|
||||||
|
|
||||||
for (int i = 0; i < path.length - 1; i++) {
|
|
||||||
NodeList nodes = ref.getChildNodes();
|
|
||||||
if (nodes.getLength() < 1) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Element elem;
|
|
||||||
for (int j = 0; j < nodes.getLength(); j++) {
|
|
||||||
if (nodes.item(j).getNodeType() == Node.ELEMENT_NODE) {
|
|
||||||
elem = (Element) nodes.item(j);
|
|
||||||
if (elem.getNodeName().equals(path[i]) && elem.getNamespaceURI().equals(namespaceUri)) {
|
|
||||||
ref = elem;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ref.getElementsByTagNameNS(namespaceUri, path[path.length - 1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int parseTimestamp(String multiImpl) throws NumberFormatException, ParseException {
|
|
||||||
if (multiImpl.length() < 1) {
|
|
||||||
return 0;
|
|
||||||
} else if (multiImpl.length() == 1) {
|
|
||||||
return Integer.parseInt(multiImpl) * 1000;// ¡this must be a number in seconds!
|
|
||||||
}
|
|
||||||
|
|
||||||
// detect wallclock-time
|
|
||||||
if (multiImpl.startsWith("wallclock(")) {
|
|
||||||
throw new UnsupportedOperationException("Parsing wallclock timestamp is not implemented");
|
|
||||||
}
|
|
||||||
|
|
||||||
// detect offset-time
|
|
||||||
if (multiImpl.indexOf(':') < 0) {
|
|
||||||
int multiplier = 1000;
|
|
||||||
char metric = multiImpl.charAt(multiImpl.length() - 1);
|
|
||||||
switch (metric) {
|
|
||||||
case 'h':
|
|
||||||
multiplier *= 3600000;
|
|
||||||
break;
|
|
||||||
case 'm':
|
|
||||||
multiplier *= 60000;
|
|
||||||
break;
|
|
||||||
case 's':
|
|
||||||
if (multiImpl.charAt(multiImpl.length() - 2) == 'm') {
|
|
||||||
multiplier = 1;// ms
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (!Character.isDigit(metric)) {
|
|
||||||
throw new NumberFormatException("Invalid metric suffix found on : " + multiImpl);
|
|
||||||
}
|
|
||||||
metric = '\0';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
String offset_time = multiImpl;
|
|
||||||
|
|
||||||
if (multiplier == 1) {
|
|
||||||
offset_time = offset_time.substring(0, offset_time.length() - 2);
|
|
||||||
} else if (metric != '\0') {
|
|
||||||
offset_time = offset_time.substring(0, offset_time.length() - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
double time_metric_based = Double.parseDouble(offset_time);
|
|
||||||
if (Math.abs(time_metric_based) <= Double.MAX_VALUE) {
|
|
||||||
return (int) (time_metric_based * multiplier);
|
|
||||||
}
|
|
||||||
} catch (Exception err) {
|
|
||||||
throw new UnsupportedOperationException("Invalid or not implemented timestamp on: " + multiImpl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// detect clock-time
|
|
||||||
int time = 0;
|
|
||||||
String[] units = multiImpl.split(":");
|
|
||||||
|
|
||||||
if (units.length < 3) {
|
|
||||||
throw new ParseException("Invalid clock-time timestamp", -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
time += Integer.parseInt(units[0]) * 3600000;// hours
|
|
||||||
time += Integer.parseInt(units[1]) * 60000;//minutes
|
|
||||||
time += Float.parseFloat(units[2]) * 1000f;// seconds and milliseconds (if present)
|
|
||||||
|
|
||||||
// frames and sub-frames are ignored (not implemented)
|
|
||||||
// time += units[3] * fps;
|
|
||||||
return time;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void putBreakAt(int idx, StringBuilder str) {
|
|
||||||
// this should be optimized at compile time
|
|
||||||
|
|
||||||
if (NEW_LINE.length() > 1) {
|
|
||||||
str.delete(idx, idx + 1);// remove after replace
|
|
||||||
str.insert(idx, NEW_LINE);
|
|
||||||
} else {
|
|
||||||
str.setCharAt(idx, NEW_LINE.charAt(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String getTime(int time, boolean comma) {
|
|
||||||
// cast every value to integer to avoid auto-round in ToString("00").
|
|
||||||
StringBuilder str = new StringBuilder(12);
|
|
||||||
str.append(numberToString(time / 1000 / 3600, 2));// hours
|
|
||||||
str.append(':');
|
|
||||||
str.append(numberToString(time / 1000 / 60 % 60, 2));// minutes
|
|
||||||
str.append(':');
|
|
||||||
str.append(numberToString(time / 1000 % 60, 2));// seconds
|
|
||||||
str.append(comma ? ',' : '.');
|
|
||||||
str.append(numberToString(time % 1000, 3));// miliseconds
|
|
||||||
|
|
||||||
return str.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String numberToString(int nro, int pad) {
|
|
||||||
return String.format(Locale.ENGLISH, "%0".concat(String.valueOf(pad)).concat("d"), nro);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************
|
|
||||||
* helper classes *
|
|
||||||
******************/
|
|
||||||
|
|
||||||
private interface FrameWriter {
|
|
||||||
|
|
||||||
void yield(SubtitleFrame frame) throws IOException;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class SubtitleFrame {
|
|
||||||
//Java no support unsigned int
|
|
||||||
|
|
||||||
public int end;
|
|
||||||
public int start;
|
|
||||||
public String text = "";
|
|
||||||
|
|
||||||
private boolean isEmptyText() {
|
|
||||||
if (text == null) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < text.length(); i++) {
|
|
||||||
switch (text.charAt(i)) {
|
|
||||||
case ' ':
|
|
||||||
case '\t':
|
|
||||||
case '\r':
|
|
||||||
case '\n':
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -11,5 +11,7 @@ public class Constants {
|
||||||
public static final String KEY_THEME_CHANGE = "key_theme_change";
|
public static final String KEY_THEME_CHANGE = "key_theme_change";
|
||||||
public static final String KEY_MAIN_PAGE_CHANGE = "key_main_page_change";
|
public static final String KEY_MAIN_PAGE_CHANGE = "key_main_page_change";
|
||||||
|
|
||||||
|
public static final String KEY_ENABLE_WATCH_HISTORY = "enable_watch_history";
|
||||||
|
|
||||||
public static final int NO_SERVICE_ID = -1;
|
public static final int NO_SERVICE_ID = -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package org.schabi.newpipe.util;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
|
import org.schabi.newpipe.R;
|
||||||
|
|
||||||
|
|
||||||
|
public class KoreUtil {
|
||||||
|
private KoreUtil() { }
|
||||||
|
|
||||||
|
public static void showInstallKoreDialog(final Context context) {
|
||||||
|
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||||
|
builder.setMessage(R.string.kore_not_found)
|
||||||
|
.setPositiveButton(R.string.install,
|
||||||
|
(DialogInterface dialog, int which) -> NavigationHelper.installKore(context))
|
||||||
|
.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
|
||||||
|
});
|
||||||
|
builder.create().show();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,17 @@
|
||||||
package org.schabi.newpipe.util;
|
package org.schabi.newpipe.util;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.res.Configuration;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.PluralsRes;
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
|
||||||
import org.ocpsoft.prettytime.PrettyTime;
|
import org.ocpsoft.prettytime.PrettyTime;
|
||||||
import org.ocpsoft.prettytime.units.Decade;
|
import org.ocpsoft.prettytime.units.Decade;
|
||||||
|
@ -18,10 +26,6 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.PluralsRes;
|
|
||||||
import androidx.annotation.StringRes;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by chschtsch on 12/29/15.
|
* Created by chschtsch on 12/29/15.
|
||||||
*
|
*
|
||||||
|
@ -44,14 +48,14 @@ import androidx.annotation.StringRes;
|
||||||
|
|
||||||
public class Localization {
|
public class Localization {
|
||||||
|
|
||||||
private static PrettyTime prettyTime;
|
|
||||||
private static final String DOT_SEPARATOR = " • ";
|
private static final String DOT_SEPARATOR = " • ";
|
||||||
|
private static PrettyTime prettyTime;
|
||||||
|
|
||||||
private Localization() {
|
private Localization() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init() {
|
public static void init(Context context) {
|
||||||
initPrettyTime();
|
initPrettyTime(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ -79,14 +83,20 @@ public class Localization {
|
||||||
public static org.schabi.newpipe.extractor.localization.Localization getPreferredLocalization(final Context context) {
|
public static org.schabi.newpipe.extractor.localization.Localization getPreferredLocalization(final Context context) {
|
||||||
final String contentLanguage = PreferenceManager
|
final String contentLanguage = PreferenceManager
|
||||||
.getDefaultSharedPreferences(context)
|
.getDefaultSharedPreferences(context)
|
||||||
.getString(context.getString(R.string.content_language_key), context.getString(R.string.default_language_value));
|
.getString(context.getString(R.string.content_language_key), context.getString(R.string.default_localization_key));
|
||||||
|
if (contentLanguage.equals(context.getString(R.string.default_localization_key))) {
|
||||||
|
return org.schabi.newpipe.extractor.localization.Localization.fromLocale(Locale.getDefault());
|
||||||
|
}
|
||||||
return org.schabi.newpipe.extractor.localization.Localization.fromLocalizationCode(contentLanguage);
|
return org.schabi.newpipe.extractor.localization.Localization.fromLocalizationCode(contentLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ContentCountry getPreferredContentCountry(final Context context) {
|
public static ContentCountry getPreferredContentCountry(final Context context) {
|
||||||
final String contentCountry = PreferenceManager
|
final String contentCountry = PreferenceManager
|
||||||
.getDefaultSharedPreferences(context)
|
.getDefaultSharedPreferences(context)
|
||||||
.getString(context.getString(R.string.content_country_key), context.getString(R.string.default_country_value));
|
.getString(context.getString(R.string.content_country_key), context.getString(R.string.default_localization_key));
|
||||||
|
if (contentCountry.equals(context.getString(R.string.default_localization_key))) {
|
||||||
|
return new ContentCountry(Locale.getDefault().getCountry());
|
||||||
|
}
|
||||||
return new ContentCountry(contentCountry);
|
return new ContentCountry(contentCountry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +104,7 @@ public class Localization {
|
||||||
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
|
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
String languageCode = sp.getString(context.getString(R.string.content_language_key),
|
String languageCode = sp.getString(context.getString(R.string.content_language_key),
|
||||||
context.getString(R.string.default_language_value));
|
context.getString(R.string.default_localization_key));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (languageCode.length() == 2) {
|
if (languageCode.length() == 2) {
|
||||||
|
@ -110,31 +120,31 @@ public class Localization {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String localizeNumber(Context context, long number) {
|
public static String localizeNumber(Context context, long number) {
|
||||||
Locale locale = getPreferredLocale(context);
|
NumberFormat nf = NumberFormat.getInstance(getAppLocale(context));
|
||||||
NumberFormat nf = NumberFormat.getInstance(locale);
|
|
||||||
return nf.format(number);
|
return nf.format(number);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String formatDate(Date date) {
|
public static String formatDate(Date date, Context context) {
|
||||||
return DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault()).format(date);
|
return DateFormat.getDateInstance(DateFormat.MEDIUM, getAppLocale(context)).format(date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StringFormatInvalid")
|
||||||
public static String localizeUploadDate(Context context, Date date) {
|
public static String localizeUploadDate(Context context, Date date) {
|
||||||
return context.getString(R.string.upload_date_text, formatDate(date));
|
return context.getString(R.string.upload_date_text, formatDate(date, context));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String localizeViewCount(Context context, long viewCount) {
|
public static String localizeViewCount(Context context, long viewCount) {
|
||||||
return getQuantity(context, R.plurals.views, R.string.no_views, viewCount, localizeNumber(context, viewCount));
|
return getQuantity(context, R.plurals.views, R.string.no_views, viewCount, localizeNumber(context, viewCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String localizeSubscribersCount(Context context, long subscriberCount) {
|
|
||||||
return getQuantity(context, R.plurals.subscribers, R.string.no_subscribers, subscriberCount, localizeNumber(context, subscriberCount));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String localizeStreamCount(Context context, long streamCount) {
|
public static String localizeStreamCount(Context context, long streamCount) {
|
||||||
return getQuantity(context, R.plurals.videos, R.string.no_videos, streamCount, localizeNumber(context, streamCount));
|
return getQuantity(context, R.plurals.videos, R.string.no_videos, streamCount, localizeNumber(context, streamCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String localizeWatchingCount(Context context, long watchingCount) {
|
||||||
|
return getQuantity(context, R.plurals.watching, R.string.no_one_watching, watchingCount, localizeNumber(context, watchingCount));
|
||||||
|
}
|
||||||
|
|
||||||
public static String shortCount(Context context, long count) {
|
public static String shortCount(Context context, long count) {
|
||||||
if (count >= 1000000000) {
|
if (count >= 1000000000) {
|
||||||
return Long.toString(count / 1000000000) + context.getString(R.string.short_billion);
|
return Long.toString(count / 1000000000) + context.getString(R.string.short_billion);
|
||||||
|
@ -151,7 +161,7 @@ public class Localization {
|
||||||
return getQuantity(context, R.plurals.listening, R.string.no_one_listening, listeningCount, shortCount(context, listeningCount));
|
return getQuantity(context, R.plurals.listening, R.string.no_one_listening, listeningCount, shortCount(context, listeningCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String watchingCount(Context context, long watchingCount) {
|
public static String shortWatchingCount(Context context, long watchingCount) {
|
||||||
return getQuantity(context, R.plurals.watching, R.string.no_one_watching, watchingCount, shortCount(context, watchingCount));
|
return getQuantity(context, R.plurals.watching, R.string.no_one_watching, watchingCount, shortCount(context, watchingCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,21 +209,49 @@ public class Localization {
|
||||||
// Pretty Time
|
// Pretty Time
|
||||||
//////////////////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
private static void initPrettyTime() {
|
private static void initPrettyTime(Context context) {
|
||||||
prettyTime = new PrettyTime(Locale.getDefault());
|
prettyTime = new PrettyTime(getAppLocale(context));
|
||||||
// Do not use decades as YouTube doesn't either.
|
// Do not use decades as YouTube doesn't either.
|
||||||
prettyTime.removeUnit(Decade.class);
|
prettyTime.removeUnit(Decade.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PrettyTime getPrettyTime() {
|
private static PrettyTime getPrettyTime() {
|
||||||
// If pretty time's Locale is different, init again with the new one.
|
|
||||||
if (!prettyTime.getLocale().equals(Locale.getDefault())) {
|
|
||||||
initPrettyTime();
|
|
||||||
}
|
|
||||||
return prettyTime;
|
return prettyTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String relativeTime(Calendar calendarTime) {
|
public static String relativeTime(Calendar calendarTime) {
|
||||||
return getPrettyTime().formatUnrounded(calendarTime);
|
String time = getPrettyTime().formatUnrounded(calendarTime);
|
||||||
|
return time.startsWith("-") ? time.substring(1) : time;
|
||||||
|
//workaround fix for russian showing -1 day ago, -19hrs ago…
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void changeAppLanguage(Locale loc, Resources res) {
|
||||||
|
DisplayMetrics dm = res.getDisplayMetrics();
|
||||||
|
Configuration conf = res.getConfiguration();
|
||||||
|
conf.setLocale(loc);
|
||||||
|
res.updateConfiguration(conf, dm);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Locale getAppLocale(Context context) {
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
String lang = prefs.getString(context.getString(R.string.app_language_key), "en");
|
||||||
|
Locale loc;
|
||||||
|
if (lang.equals(context.getString(R.string.default_localization_key))) {
|
||||||
|
loc = Locale.getDefault();
|
||||||
|
} else if (lang.matches(".*-.*")) {
|
||||||
|
//to differentiate different versions of the language
|
||||||
|
//for example, pt (portuguese in Portugal) and pt-br (portuguese in Brazil)
|
||||||
|
String[] localisation = lang.split("-");
|
||||||
|
lang = localisation[0];
|
||||||
|
String country = localisation[1];
|
||||||
|
loc = new Locale(lang, country);
|
||||||
|
} else {
|
||||||
|
loc = new Locale(lang);
|
||||||
|
}
|
||||||
|
return loc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void assureCorrectAppLanguage(Context c) {
|
||||||
|
changeAppLanguage(getAppLocale(c), c.getResources());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,12 +109,14 @@ public class NavigationHelper {
|
||||||
final float playbackPitch,
|
final float playbackPitch,
|
||||||
final boolean playbackSkipSilence,
|
final boolean playbackSkipSilence,
|
||||||
@Nullable final String playbackQuality,
|
@Nullable final String playbackQuality,
|
||||||
final boolean resumePlayback) {
|
final boolean resumePlayback,
|
||||||
|
final boolean startPaused) {
|
||||||
return getPlayerIntent(context, targetClazz, playQueue, playbackQuality, resumePlayback)
|
return getPlayerIntent(context, targetClazz, playQueue, playbackQuality, resumePlayback)
|
||||||
.putExtra(BasePlayer.REPEAT_MODE, repeatMode)
|
.putExtra(BasePlayer.REPEAT_MODE, repeatMode)
|
||||||
.putExtra(BasePlayer.PLAYBACK_SPEED, playbackSpeed)
|
.putExtra(BasePlayer.PLAYBACK_SPEED, playbackSpeed)
|
||||||
.putExtra(BasePlayer.PLAYBACK_PITCH, playbackPitch)
|
.putExtra(BasePlayer.PLAYBACK_PITCH, playbackPitch)
|
||||||
.putExtra(BasePlayer.PLAYBACK_SKIP_SILENCE, playbackSkipSilence);
|
.putExtra(BasePlayer.PLAYBACK_SKIP_SILENCE, playbackSkipSilence)
|
||||||
|
.putExtra(BasePlayer.START_PAUSED, startPaused);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void playOnMainPlayer(final Context context, final PlayQueue queue, final boolean resumePlayback) {
|
public static void playOnMainPlayer(final Context context, final PlayQueue queue, final boolean resumePlayback) {
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class ServiceHelper {
|
||||||
public static String getTranslatedFilterString(String filter, Context c) {
|
public static String getTranslatedFilterString(String filter, Context c) {
|
||||||
switch (filter) {
|
switch (filter) {
|
||||||
case "all": return c.getString(R.string.all);
|
case "all": return c.getString(R.string.all);
|
||||||
case "videos": return c.getString(R.string.videos);
|
case "videos": return c.getString(R.string.videos_string);
|
||||||
case "channels": return c.getString(R.string.channels);
|
case "channels": return c.getString(R.string.channels);
|
||||||
case "playlists": return c.getString(R.string.playlists);
|
case "playlists": return c.getString(R.string.playlists);
|
||||||
case "tracks": return c.getString(R.string.tracks);
|
case "tracks": return c.getString(R.string.tracks);
|
||||||
|
|
|
@ -223,6 +223,7 @@ public class DownloadMission extends Mission {
|
||||||
conn.setInstanceFollowRedirects(true);
|
conn.setInstanceFollowRedirects(true);
|
||||||
conn.setRequestProperty("User-Agent", DownloaderImpl.USER_AGENT);
|
conn.setRequestProperty("User-Agent", DownloaderImpl.USER_AGENT);
|
||||||
conn.setRequestProperty("Accept", "*/*");
|
conn.setRequestProperty("Accept", "*/*");
|
||||||
|
conn.setRequestProperty("Accept-Encoding", "*");
|
||||||
|
|
||||||
if (headRequest) conn.setRequestMethod("HEAD");
|
if (headRequest) conn.setRequestMethod("HEAD");
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ public abstract class Postprocessing implements Serializable {
|
||||||
|
|
||||||
private transient DownloadMission mission;
|
private transient DownloadMission mission;
|
||||||
|
|
||||||
private File tempFile;
|
private transient File tempFile;
|
||||||
|
|
||||||
Postprocessing(boolean reserveSpace, boolean worksOnSameFile, String algorithmName) {
|
Postprocessing(boolean reserveSpace, boolean worksOnSameFile, String algorithmName) {
|
||||||
this.reserveSpace = reserveSpace;
|
this.reserveSpace = reserveSpace;
|
||||||
|
@ -95,8 +95,12 @@ public abstract class Postprocessing implements Serializable {
|
||||||
|
|
||||||
public void cleanupTemporalDir() {
|
public void cleanupTemporalDir() {
|
||||||
if (tempFile != null && tempFile.exists()) {
|
if (tempFile != null && tempFile.exists()) {
|
||||||
//noinspection ResultOfMethodCallIgnored
|
try {
|
||||||
tempFile.delete();
|
//noinspection ResultOfMethodCallIgnored
|
||||||
|
tempFile.delete();
|
||||||
|
} catch (Exception e) {
|
||||||
|
// nothing to do
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,10 @@ package us.shandian.giga.postprocessing;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.schabi.newpipe.streams.SubtitleConverter;
|
import org.schabi.newpipe.streams.SrtFromTtmlWriter;
|
||||||
import org.schabi.newpipe.streams.io.SharpStream;
|
import org.schabi.newpipe.streams.io.SharpStream;
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.ParseException;
|
|
||||||
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.xpath.XPathExpressionException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kapodamy
|
* @author kapodamy
|
||||||
|
@ -27,33 +22,16 @@ class TtmlConverter extends Postprocessing {
|
||||||
int process(SharpStream out, SharpStream... sources) throws IOException {
|
int process(SharpStream out, SharpStream... sources) throws IOException {
|
||||||
// check if the subtitle is already in srt and copy, this should never happen
|
// check if the subtitle is already in srt and copy, this should never happen
|
||||||
String format = getArgumentAt(0, null);
|
String format = getArgumentAt(0, null);
|
||||||
|
boolean ignoreEmptyFrames = getArgumentAt(1, "true").equals("true");
|
||||||
|
|
||||||
if (format == null || format.equals("ttml")) {
|
if (format == null || format.equals("ttml")) {
|
||||||
SubtitleConverter ttmlDumper = new SubtitleConverter();
|
SrtFromTtmlWriter writer = new SrtFromTtmlWriter(out, ignoreEmptyFrames);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ttmlDumper.dumpTTML(
|
writer.build(sources[0]);
|
||||||
sources[0],
|
|
||||||
out,
|
|
||||||
getArgumentAt(1, "true").equals("true"),
|
|
||||||
getArgumentAt(2, "true").equals("true")
|
|
||||||
);
|
|
||||||
} catch (Exception err) {
|
} catch (Exception err) {
|
||||||
Log.e(TAG, "subtitle parse failed", err);
|
Log.e(TAG, "subtitle parse failed", err);
|
||||||
|
return err instanceof IOException ? 1 : 8;
|
||||||
if (err instanceof IOException) {
|
|
||||||
return 1;
|
|
||||||
} else if (err instanceof ParseException) {
|
|
||||||
return 2;
|
|
||||||
} else if (err instanceof SAXException) {
|
|
||||||
return 3;
|
|
||||||
} else if (err instanceof ParserConfigurationException) {
|
|
||||||
return 4;
|
|
||||||
} else if (err instanceof XPathExpressionException) {
|
|
||||||
return 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 8;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK_RESULT;
|
return OK_RESULT;
|
||||||
|
|
|
@ -139,6 +139,9 @@ public class DownloadManager {
|
||||||
Log.d(TAG, "Loading pending downloads from directory: " + mPendingMissionsDir.getAbsolutePath());
|
Log.d(TAG, "Loading pending downloads from directory: " + mPendingMissionsDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File tempDir = pickAvailableTemporalDir(ctx);
|
||||||
|
Log.i(TAG, "using '" + tempDir + "' as temporal directory");
|
||||||
|
|
||||||
for (File sub : subs) {
|
for (File sub : subs) {
|
||||||
if (!sub.isFile()) continue;
|
if (!sub.isFile()) continue;
|
||||||
if (sub.getName().equals(".tmp")) continue;
|
if (sub.getName().equals(".tmp")) continue;
|
||||||
|
@ -184,7 +187,7 @@ public class DownloadManager {
|
||||||
|
|
||||||
if (mis.psAlgorithm != null) {
|
if (mis.psAlgorithm != null) {
|
||||||
mis.psAlgorithm.cleanupTemporalDir();
|
mis.psAlgorithm.cleanupTemporalDir();
|
||||||
mis.psAlgorithm.setTemporalDir(pickAvailableTemporalDir(ctx));
|
mis.psAlgorithm.setTemporalDir(tempDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
mis.metadata = sub;
|
mis.metadata = sub;
|
||||||
|
@ -513,13 +516,21 @@ public class DownloadManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
static File pickAvailableTemporalDir(@NonNull Context ctx) {
|
static File pickAvailableTemporalDir(@NonNull Context ctx) {
|
||||||
if (isDirectoryAvailable(ctx.getExternalFilesDir(null)))
|
File dir = ctx.getExternalFilesDir(null);
|
||||||
return ctx.getExternalFilesDir(null);
|
if (isDirectoryAvailable(dir)) return dir;
|
||||||
else if (isDirectoryAvailable(ctx.getFilesDir()))
|
|
||||||
return ctx.getFilesDir();
|
dir = ctx.getFilesDir();
|
||||||
|
if (isDirectoryAvailable(dir)) return dir;
|
||||||
|
|
||||||
// this never should happen
|
// this never should happen
|
||||||
return ctx.getDir("tmp", Context.MODE_PRIVATE);
|
dir = ctx.getDir("muxing_tmp", Context.MODE_PRIVATE);
|
||||||
|
if (isDirectoryAvailable(dir)) return dir;
|
||||||
|
|
||||||
|
// fallback to cache dir
|
||||||
|
dir = ctx.getCacheDir();
|
||||||
|
if (isDirectoryAvailable(dir)) return dir;
|
||||||
|
|
||||||
|
throw new RuntimeException("Not temporal directories are available");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -534,7 +534,7 @@ public class MissionAdapter extends Adapter<ViewHolder> implements Handler.Callb
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setNegativeButton(android.R.string.ok, (dialog, which) -> dialog.cancel())
|
builder.setNegativeButton(R.string.finish, (dialog, which) -> dialog.cancel())
|
||||||
.setTitle(mission.storage.getName())
|
.setTitle(mission.storage.getName())
|
||||||
.create()
|
.create()
|
||||||
.show();
|
.show();
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24.0"
|
||||||
|
android:viewportHeight="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"/>
|
||||||
|
</vector>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||||
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="#FF000000" android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"/>
|
||||||
|
</vector>
|
|
@ -304,10 +304,9 @@
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="4dp"
|
android:paddingRight="4dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/duration_live_button"
|
android:text="@string/duration_live"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
android:textColor="?attr/colorAccent"
|
android:textColor="?attr/colorAccent"
|
||||||
android:maxLength="4"
|
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -305,7 +305,7 @@
|
||||||
tools:text="English" />
|
tools:text="English" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/share"
|
android:id="@+id/kodi"
|
||||||
android:layout_width="30dp"
|
android:layout_width="30dp"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:layout_marginLeft="4dp"
|
android:layout_marginLeft="4dp"
|
||||||
|
@ -316,6 +316,25 @@
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="5dp"
|
android:padding="5dp"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
|
android:src="@drawable/ic_cast_white_24dp"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:contentDescription="@string/play_with_kodi_title"
|
||||||
|
tools:ignore="RtlHardcoded"
|
||||||
|
android:visibility="visible"/>
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/share"
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginLeft="4dp"
|
||||||
|
android:layout_marginRight="2dp"
|
||||||
|
android:layout_toLeftOf="@id/kodi"
|
||||||
|
android:layout_alignWithParentIfMissing="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:padding="5dp"
|
||||||
|
android:scaleType="fitXY"
|
||||||
android:src="@drawable/ic_share_white_24dp"
|
android:src="@drawable/ic_share_white_24dp"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:contentDescription="@string/share"
|
android:contentDescription="@string/share"
|
||||||
|
@ -423,10 +442,9 @@
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="4dp"
|
android:paddingRight="4dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/duration_live_button"
|
android:text="@string/duration_live"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:maxLength="4"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
|
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
|
||||||
|
|
|
@ -303,7 +303,7 @@
|
||||||
tools:text="English" />
|
tools:text="English" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/share"
|
android:id="@+id/kodi"
|
||||||
android:layout_width="30dp"
|
android:layout_width="30dp"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:layout_marginLeft="4dp"
|
android:layout_marginLeft="4dp"
|
||||||
|
@ -314,6 +314,25 @@
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="5dp"
|
android:padding="5dp"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
|
android:src="@drawable/ic_cast_white_24dp"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:contentDescription="@string/play_with_kodi_title"
|
||||||
|
tools:ignore="RtlHardcoded"
|
||||||
|
android:visibility="visible"/>
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/share"
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginLeft="4dp"
|
||||||
|
android:layout_marginRight="2dp"
|
||||||
|
android:layout_toLeftOf="@id/kodi"
|
||||||
|
android:layout_alignWithParentIfMissing="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:padding="5dp"
|
||||||
|
android:scaleType="fitXY"
|
||||||
android:src="@drawable/ic_share_white_24dp"
|
android:src="@drawable/ic_share_white_24dp"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:contentDescription="@string/share"
|
android:contentDescription="@string/share"
|
||||||
|
@ -421,10 +440,9 @@
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="4dp"
|
android:paddingRight="4dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/duration_live_button"
|
android:text="@string/duration_live"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:maxLength="4"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
|
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
|
||||||
|
|
|
@ -154,10 +154,9 @@
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="4dp"
|
android:paddingRight="4dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/duration_live_button"
|
android:text="@string/duration_live"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
android:textColor="?attr/colorAccent"
|
android:textColor="?attr/colorAccent"
|
||||||
android:maxLength="4"
|
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -14,9 +14,7 @@
|
||||||
android:minHeight="?attr/actionBarSize"
|
android:minHeight="?attr/actionBarSize"
|
||||||
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
|
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
|
||||||
app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar"
|
app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar"
|
||||||
app:titleTextAppearance="@style/Toolbar.Title">
|
app:titleTextAppearance="@style/Toolbar.Title"/>
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
|
||||||
|
|
||||||
<WebView
|
<WebView
|
||||||
android:id="@+id/reCaptchaWebView"
|
android:id="@+id/reCaptchaWebView"
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/playlist_name_edit_text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:importantForAutofill="no"
|
||||||
|
android:inputType="text"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:layout_margin="10dp"
|
||||||
|
android:hint="@string/playlist_name_input"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -208,10 +208,9 @@
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="4dp"
|
android:paddingRight="4dp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:text="@string/duration_live_button"
|
android:text="@string/duration_live"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:maxLength="4"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
|
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
|
||||||
|
|
|
@ -27,8 +27,4 @@
|
||||||
android:title="@string/clear_download_history"
|
android:title="@string/clear_download_history"
|
||||||
app:showAsAction="ifRoom" />
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
<item android:id="@+id/action_settings"
|
|
||||||
android:title="@string/settings"
|
|
||||||
app:showAsAction="never" />
|
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/action_show_downloads"
|
|
||||||
android:orderInCategory="980"
|
|
||||||
android:title="@string/downloads"
|
|
||||||
app:showAsAction="never"/>
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/action_history"
|
|
||||||
android:orderInCategory="981"
|
|
||||||
android:title="@string/action_history"
|
|
||||||
app:showAsAction="never"/>
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/action_settings"
|
|
||||||
android:orderInCategory="990"
|
|
||||||
android:title="@string/settings"
|
|
||||||
app:showAsAction="never"/>
|
|
||||||
</menu>
|
|
|
@ -3,14 +3,4 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
tools:context="org.schabi.newpipe.about.AboutActivity">
|
tools:context="org.schabi.newpipe.about.AboutActivity">
|
||||||
|
|
||||||
<item android:id="@+id/action_show_downloads"
|
|
||||||
android:orderInCategory="980"
|
|
||||||
android:title="@string/downloads"
|
|
||||||
app:showAsAction="never"/>
|
|
||||||
|
|
||||||
<item android:id="@+id/action_settings"
|
|
||||||
android:orderInCategory="990"
|
|
||||||
android:title="@string/settings"
|
|
||||||
app:showAsAction="never"/>
|
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
@ -10,11 +10,6 @@
|
||||||
android:visible="true"
|
android:visible="true"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
|
|
||||||
<item android:id="@+id/action_settings"
|
|
||||||
android:orderInCategory="990"
|
|
||||||
android:title="@string/settings"
|
|
||||||
app:showAsAction="never"/>
|
|
||||||
|
|
||||||
<item android:id="@+id/action_system_audio"
|
<item android:id="@+id/action_system_audio"
|
||||||
android:orderInCategory="996"
|
android:orderInCategory="996"
|
||||||
android:title="@string/play_queue_audio_settings"
|
android:title="@string/play_queue_audio_settings"
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_item_done"
|
||||||
|
android:title="@string/recaptcha_done_button"
|
||||||
|
android:icon="?attr/ic_done"
|
||||||
|
app:showAsAction="always"/>
|
||||||
|
</menu>
|
|
@ -20,7 +20,7 @@
|
||||||
<string name="download_path_summary">يتم تخزين ملفات الفيديو التي تم تنزيلها هنا</string>
|
<string name="download_path_summary">يتم تخزين ملفات الفيديو التي تم تنزيلها هنا</string>
|
||||||
<string name="download_path_title">مجلد تحميل الفيديو</string>
|
<string name="download_path_title">مجلد تحميل الفيديو</string>
|
||||||
<string name="err_dir_create">"لا يمكن إنشاء مجلد للتنزيلات في '%1$s'"</string>
|
<string name="err_dir_create">"لا يمكن إنشاء مجلد للتنزيلات في '%1$s'"</string>
|
||||||
<string name="info_dir_created">دليل التنزيل الذي تم إنشاؤه \'%1$s\'</string>
|
<string name="info_dir_created">إنشاء دليل التحميل \'%1$s\'</string>
|
||||||
<string name="install">تثبيت</string>
|
<string name="install">تثبيت</string>
|
||||||
<string name="kore_not_found">تطبيق Kore غير موجود. هل تريد تثبيته ؟</string>
|
<string name="kore_not_found">تطبيق Kore غير موجود. هل تريد تثبيته ؟</string>
|
||||||
<string name="light_theme_title">مضيء</string>
|
<string name="light_theme_title">مضيء</string>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
<string name="share">مشاركة</string>
|
<string name="share">مشاركة</string>
|
||||||
<string name="share_dialog_title">مشاركة بواسطة</string>
|
<string name="share_dialog_title">مشاركة بواسطة</string>
|
||||||
<string name="show_next_and_similar_title">عرض مقاطع الفيديو \"التالية\" و \"المشابهة\"</string>
|
<string name="show_next_and_similar_title">عرض مقاطع الفيديو \"التالية\" و \"المشابهة\"</string>
|
||||||
<string name="show_play_with_kodi_summary">عرض خيارات تشغيل الفيديو من خلال مركز كودي ميديا</string>
|
<string name="show_play_with_kodi_summary">اعرض خيار لتشغيل الفيديو عبر مركز وسائط Kodi</string>
|
||||||
<string name="show_play_with_kodi_title">عرض خيار التشغيل بواسطة كودي</string>
|
<string name="show_play_with_kodi_title">عرض خيار التشغيل بواسطة كودي</string>
|
||||||
<string name="theme_title">السمة</string>
|
<string name="theme_title">السمة</string>
|
||||||
<string name="upload_date_text">تم النشر يوم %1$s</string>
|
<string name="upload_date_text">تم النشر يوم %1$s</string>
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
<string name="general_error">خطأ</string>
|
<string name="general_error">خطأ</string>
|
||||||
<string name="parsing_error">تعذرت عملية تحليل الموقع</string>
|
<string name="parsing_error">تعذرت عملية تحليل الموقع</string>
|
||||||
<string name="youtube_signature_decryption_error">تعذر فك تشفير توقيع رابط الفيديو</string>
|
<string name="youtube_signature_decryption_error">تعذر فك تشفير توقيع رابط الفيديو</string>
|
||||||
<string name="main_bg_subtitle">اضغط بحث للبدء</string>
|
<string name="main_bg_subtitle">انقر فوق بحث لتبدأ</string>
|
||||||
<string name="subscribe_button_title">اشتراك</string>
|
<string name="subscribe_button_title">اشتراك</string>
|
||||||
<string name="subscribed_button_title">مشترك</string>
|
<string name="subscribed_button_title">مشترك</string>
|
||||||
<string name="tab_main">الرئيسية</string>
|
<string name="tab_main">الرئيسية</string>
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
<string name="enable_watch_history_title">مراقبة السجل</string>
|
<string name="enable_watch_history_title">مراقبة السجل</string>
|
||||||
<string name="settings_category_history_title">التاريخ و ذاكرة التخزين المؤقت</string>
|
<string name="settings_category_history_title">التاريخ و ذاكرة التخزين المؤقت</string>
|
||||||
<string name="content">محتوى</string>
|
<string name="content">محتوى</string>
|
||||||
<string name="downloads">الملفات المحملة</string>
|
<string name="downloads">التحميلات</string>
|
||||||
<string name="downloads_title">الملفات المحملة</string>
|
<string name="downloads_title">التحميلات</string>
|
||||||
<string name="all">الجميع</string>
|
<string name="all">الجميع</string>
|
||||||
<string name="channel">القناة</string>
|
<string name="channel">القناة</string>
|
||||||
<string name="video">الفيديو</string>
|
<string name="video">الفيديو</string>
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
<string name="title_activity_history">التاريخ</string>
|
<string name="title_activity_history">التاريخ</string>
|
||||||
<string name="action_history">التاريخ</string>
|
<string name="action_history">التاريخ</string>
|
||||||
<string name="open_in_popup_mode">فتح في وضع منبثق</string>
|
<string name="open_in_popup_mode">فتح في وضع منبثق</string>
|
||||||
<string name="use_external_video_player_summary">إزالة الصوت في بعض مستوى الدقة</string>
|
<string name="use_external_video_player_summary">يزيل الصوت في بعض القرارات</string>
|
||||||
<string name="popup_mode_share_menu_title">وضع النوافذ المنبثقة NewPipe</string>
|
<string name="popup_mode_share_menu_title">وضع النوافذ المنبثقة NewPipe</string>
|
||||||
<string name="channel_unsubscribed">تم إلغاء الاشتراك في القناة</string>
|
<string name="channel_unsubscribed">تم إلغاء الاشتراك في القناة</string>
|
||||||
<string name="subscription_change_failed">تعذر تغيير حالة الاشتراك</string>
|
<string name="subscription_change_failed">تعذر تغيير حالة الاشتراك</string>
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
<string name="show_age_restricted_content_title">محتوى مقيد بحسب العمر</string>
|
<string name="show_age_restricted_content_title">محتوى مقيد بحسب العمر</string>
|
||||||
<string name="video_is_age_restricted">"إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"."</string>
|
<string name="video_is_age_restricted">"إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"."</string>
|
||||||
<string name="duration_live">بث مباشر</string>
|
<string name="duration_live">بث مباشر</string>
|
||||||
<string name="error_report_title">تقرير عن مشكلة</string>
|
<string name="error_report_title">تقرير خطأ</string>
|
||||||
<string name="playlist">قائمة التشغيل</string>
|
<string name="playlist">قائمة التشغيل</string>
|
||||||
<string name="yes">نعم</string>
|
<string name="yes">نعم</string>
|
||||||
<string name="later">لاحقاً</string>
|
<string name="later">لاحقاً</string>
|
||||||
|
@ -155,15 +155,15 @@
|
||||||
<string name="storage_permission_denied">تم رفض إذن الوصول إلى التخزين</string>
|
<string name="storage_permission_denied">تم رفض إذن الوصول إلى التخزين</string>
|
||||||
<string name="short_thousand">ألف</string>
|
<string name="short_thousand">ألف</string>
|
||||||
<string name="short_million">مليون</string>
|
<string name="short_million">مليون</string>
|
||||||
<string name="short_billion">G</string>
|
<string name="short_billion">B</string>
|
||||||
<string name="no_subscribers">ليس هناك مشترِكون</string>
|
<string name="no_subscribers">ليس هناك مشترِكون</string>
|
||||||
<plurals name="subscribers">
|
<plurals name="subscribers">
|
||||||
<item quantity="zero">%s لا يوجد مشاركين</item>
|
<item quantity="zero">%s لا يوجد مشترك</item>
|
||||||
<item quantity="one">%s مشترك</item>
|
<item quantity="one">%s مشترك</item>
|
||||||
<item quantity="two">%s مشاريكان</item>
|
<item quantity="two">%s المشتركين</item>
|
||||||
<item quantity="few">%s اشتراكات</item>
|
<item quantity="few">%s المشتركين</item>
|
||||||
<item quantity="many">%s مشاركون</item>
|
<item quantity="many">%s المشتركين</item>
|
||||||
<item quantity="other">%s اشتراك</item>
|
<item quantity="other">%s المشتركين</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_views">دون مشاهدات</string>
|
<string name="no_views">دون مشاهدات</string>
|
||||||
<string name="no_videos">لاتوجد فيديوهات</string>
|
<string name="no_videos">لاتوجد فيديوهات</string>
|
||||||
|
@ -187,7 +187,7 @@
|
||||||
<string name="no_available_dir">يرجى تحديد مجلد التنزيل لاحقا في الإعدادات</string>
|
<string name="no_available_dir">يرجى تحديد مجلد التنزيل لاحقا في الإعدادات</string>
|
||||||
<string name="msg_popup_permission">هذا الإذن مطلوب
|
<string name="msg_popup_permission">هذا الإذن مطلوب
|
||||||
\nللفتح في وضع النافذة المنبثقة</string>
|
\nللفتح في وضع النافذة المنبثقة</string>
|
||||||
<string name="reCaptchaActivity">اختبار reCAPTCHA</string>
|
<string name="recaptcha">اختبار reCAPTCHA</string>
|
||||||
<string name="settings_file_charset_title">السماح بالرموز في أسماء الملفات</string>
|
<string name="settings_file_charset_title">السماح بالرموز في أسماء الملفات</string>
|
||||||
<string name="settings_file_replacement_character_summary">يتم استبدال الرموز غير المسموح بها بهذه القيمة</string>
|
<string name="settings_file_replacement_character_summary">يتم استبدال الرموز غير المسموح بها بهذه القيمة</string>
|
||||||
<string name="settings_file_replacement_character_title">استبدال الحرف</string>
|
<string name="settings_file_replacement_character_title">استبدال الحرف</string>
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
<string name="action_open_website">فتح الموقع</string>
|
<string name="action_open_website">فتح الموقع</string>
|
||||||
<string name="tab_contributors">المساهمون</string>
|
<string name="tab_contributors">المساهمون</string>
|
||||||
<string name="tab_licenses">التراخيص</string>
|
<string name="tab_licenses">التراخيص</string>
|
||||||
<string name="app_description">تطبيق مجاني خفيف الوزن وبث حي على نظام أندرويد.</string>
|
<string name="app_description">تطبيق مجاني خفيف البث على أندرويد.</string>
|
||||||
<string name="contribution_title">ساهم</string>
|
<string name="contribution_title">ساهم</string>
|
||||||
<string name="contribution_encouragement">إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل !</string>
|
<string name="contribution_encouragement">إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل !</string>
|
||||||
<string name="view_on_github">عرض على GitHub</string>
|
<string name="view_on_github">عرض على GitHub</string>
|
||||||
|
@ -235,23 +235,23 @@
|
||||||
<string name="play_queue_audio_settings">الإعدادات الصوتية</string>
|
<string name="play_queue_audio_settings">الإعدادات الصوتية</string>
|
||||||
<string name="start_here_on_main">تشغيل هنا</string>
|
<string name="start_here_on_main">تشغيل هنا</string>
|
||||||
<string name="start_here_on_popup">بدأ التشغيل في نافذة منبثقة جديدة</string>
|
<string name="start_here_on_popup">بدأ التشغيل في نافذة منبثقة جديدة</string>
|
||||||
<string name="reCaptcha_title">تحدي الكابتشا</string>
|
<string name="title_activity_recaptcha">تحدي الكابتشا</string>
|
||||||
<string name="hold_to_append">ضغط مطول للإدراج الى قائمة الانتظار</string>
|
<string name="hold_to_append">ضغط مطول للإدراج الى قائمة الانتظار</string>
|
||||||
<plurals name="views">
|
<plurals name="views">
|
||||||
<item quantity="zero">%s بدون مشهد</item>
|
<item quantity="zero">%s بدون مشهادة</item>
|
||||||
<item quantity="one">%s شاهد</item>
|
<item quantity="one">%s مشاهدة</item>
|
||||||
<item quantity="two">%s مشاهدتان</item>
|
<item quantity="two">%s مشاهدة</item>
|
||||||
<item quantity="few">%s مشاهدات</item>
|
<item quantity="few">%s مشاهدة</item>
|
||||||
<item quantity="many">%s مشاهدون</item>
|
<item quantity="many">%s مشاهدة</item>
|
||||||
<item quantity="other">%s شاهدو</item>
|
<item quantity="other">%s مشاهدة</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="zero">فيديوهات</item>
|
<item quantity="zero">%s فيديو</item>
|
||||||
<item quantity="one">فيديوهات</item>
|
<item quantity="one">%s أشرطة فيديو</item>
|
||||||
<item quantity="two">فيديوهات</item>
|
<item quantity="two">%s أشرطة فيديو</item>
|
||||||
<item quantity="few">فيديوهات</item>
|
<item quantity="few">%s أشرطة فيديو</item>
|
||||||
<item quantity="many">فيديوهات</item>
|
<item quantity="many">%s أشرطة فيديو</item>
|
||||||
<item quantity="other">فيديوهات</item>
|
<item quantity="other">%s أشرطة فيديو</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="recaptcha_request_toast">طلب اختبار الكابتشا مطلوب</string>
|
<string name="recaptcha_request_toast">طلب اختبار الكابتشا مطلوب</string>
|
||||||
<string name="copyright" formatted="true">© %1$sبواسطة%2$sتحت%3$s</string>
|
<string name="copyright" formatted="true">© %1$sبواسطة%2$sتحت%3$s</string>
|
||||||
|
@ -425,7 +425,7 @@
|
||||||
<string name="app_update_notification_channel_name">تتبيه تحديث التطبيق</string>
|
<string name="app_update_notification_channel_name">تتبيه تحديث التطبيق</string>
|
||||||
<string name="volume_gesture_control_title">إيماءة التحكم بالصوت</string>
|
<string name="volume_gesture_control_title">إيماءة التحكم بالصوت</string>
|
||||||
<string name="events">الأحداث</string>
|
<string name="events">الأحداث</string>
|
||||||
<string name="app_update_notification_channel_description">إخطارات لنسخة NewPipe الجديدة</string>
|
<string name="app_update_notification_channel_description">الإخطارات لإصدار NewPipe الجديد</string>
|
||||||
<string name="download_to_sdcard_error_title">وحدة التخزين الخارجية غير متوفرة</string>
|
<string name="download_to_sdcard_error_title">وحدة التخزين الخارجية غير متوفرة</string>
|
||||||
<string name="download_to_sdcard_error_message">"التنزيل على بطاقة SD الخارجية غير ممكن. إعادة تعيين موقع مجلد التحميل؟"</string>
|
<string name="download_to_sdcard_error_message">"التنزيل على بطاقة SD الخارجية غير ممكن. إعادة تعيين موقع مجلد التحميل؟"</string>
|
||||||
<string name="saved_tabs_invalid_json">باستخدام علامات التبويب الافتراضية ، خطأ أثناء قراءة علامات التبويب المحفوظة</string>
|
<string name="saved_tabs_invalid_json">باستخدام علامات التبويب الافتراضية ، خطأ أثناء قراءة علامات التبويب المحفوظة</string>
|
||||||
|
@ -449,7 +449,7 @@
|
||||||
<string name="paused">متوقف</string>
|
<string name="paused">متوقف</string>
|
||||||
<string name="queued">في قائمة الانتظار</string>
|
<string name="queued">في قائمة الانتظار</string>
|
||||||
<string name="post_processing">قيد المعالجة</string>
|
<string name="post_processing">قيد المعالجة</string>
|
||||||
<string name="enqueue">قائمه انتظار</string>
|
<string name="enqueue">طابور</string>
|
||||||
<string name="permission_denied">تم رفضها من قبل النظام</string>
|
<string name="permission_denied">تم رفضها من قبل النظام</string>
|
||||||
<string name="download_failed">فشل التنزيل</string>
|
<string name="download_failed">فشل التنزيل</string>
|
||||||
<string name="download_finished">تم الانتهاء من التحميل</string>
|
<string name="download_finished">تم الانتهاء من التحميل</string>
|
||||||
|
@ -504,7 +504,7 @@
|
||||||
<string name="error_insufficient_storage">لم يتبقى مساحة في الجهاز</string>
|
<string name="error_insufficient_storage">لم يتبقى مساحة في الجهاز</string>
|
||||||
<string name="error_progress_lost">تم فقد التقدم بسبب حذف الملف</string>
|
<string name="error_progress_lost">تم فقد التقدم بسبب حذف الملف</string>
|
||||||
<string name="error_timeout">انتهى وقت الاتصال</string>
|
<string name="error_timeout">انتهى وقت الاتصال</string>
|
||||||
<string name="confirm_prompt">هل أنت واثق؟</string>
|
<string name="confirm_prompt">هل تريد محو سجل التنزيل أو حذف جميع الملفات التي تم تنزيلها؟</string>
|
||||||
<string name="enable_queue_limit">حد قائمة انتظار التنزيل</string>
|
<string name="enable_queue_limit">حد قائمة انتظار التنزيل</string>
|
||||||
<string name="enable_queue_limit_desc">سيتم تشغيل تنزيل واحد في نفس الوقت</string>
|
<string name="enable_queue_limit_desc">سيتم تشغيل تنزيل واحد في نفس الوقت</string>
|
||||||
<string name="start_downloads">بدء التنزيلات</string>
|
<string name="start_downloads">بدء التنزيلات</string>
|
||||||
|
@ -542,11 +542,11 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="seek_duration_title">تسريع إلى الأمام/-ترجيع وقت البحث</string>
|
<string name="seek_duration_title">تسريع إلى الأمام/-ترجيع وقت البحث</string>
|
||||||
<string name="peertube_instance_url_title">مثيلات خوادم پيرتيوب</string>
|
<string name="peertube_instance_url_title">مثيلات خوادم پيرتيوب</string>
|
||||||
<string name="peertube_instance_url_summary">عيّن مثيلات خوادم پيرتيوب التي تُفضّلها</string>
|
<string name="peertube_instance_url_summary">حدد مثيلات PeerTube المفضلة لديك</string>
|
||||||
<string name="peertube_instance_add_title">إضافة نموذج</string>
|
<string name="peertube_instance_add_title">إضافة نموذج</string>
|
||||||
<string name="peertube_instance_add_help">أدخل رابط مثيل الخادم</string>
|
<string name="peertube_instance_add_help">أدخل عنوان URL للمثيل</string>
|
||||||
<string name="peertube_instance_add_fail">فشل في التحقق من مثيل الخادم</string>
|
<string name="peertube_instance_add_fail">لا يمكن التحقق من صحة المثال</string>
|
||||||
<string name="peertube_instance_add_https_only">فقط عناوين https المدعومة</string>
|
<string name="peertube_instance_add_https_only">يتم دعم عناوين URL HTTPS فقط</string>
|
||||||
<string name="peertube_instance_add_exists">مثيل الخادم موجود بالفعل</string>
|
<string name="peertube_instance_add_exists">مثيل الخادم موجود بالفعل</string>
|
||||||
<string name="local">محلي</string>
|
<string name="local">محلي</string>
|
||||||
<string name="recently_added">أضيف مؤخرا</string>
|
<string name="recently_added">أضيف مؤخرا</string>
|
||||||
|
@ -554,5 +554,16 @@
|
||||||
<string name="playlist_no_uploader">تم إنشاؤه-تلقائيًا (لم يتم العثور على برنامج تحميل)</string>
|
<string name="playlist_no_uploader">تم إنشاؤه-تلقائيًا (لم يتم العثور على برنامج تحميل)</string>
|
||||||
<string name="recovering">استرد</string>
|
<string name="recovering">استرد</string>
|
||||||
<string name="error_download_resource_gone">لا يمكن استرداد هذا التنزيل</string>
|
<string name="error_download_resource_gone">لا يمكن استرداد هذا التنزيل</string>
|
||||||
<string name="choose_instance_prompt">اختيار مثيل خادم</string>
|
<string name="choose_instance_prompt">اختيار مثيل</string>
|
||||||
|
<string name="peertube_instance_url_help">ابحث عن الحالات التي تناسبك على %s</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">تمكين قفل شاشة الصور المصغرة الفيديو</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_summary">عند استخدام مشغل الخلفية ، سيتم عرض صورة مصغرة للفيديو على شاشة القفل</string>
|
||||||
|
<string name="clear_download_history">تنظيف تاريخ التحميل</string>
|
||||||
|
<string name="delete_downloaded_files">حذف الملفات التي تم تنزيلها</string>
|
||||||
|
<string name="deleted_downloads">التنزيلات %1$s المحذوفة</string>
|
||||||
|
<string name="permission_display_over_apps">إعطاء إذن لعرضه على التطبيقات الأخرى</string>
|
||||||
|
<string name="app_language_title">لغة التطبيق</string>
|
||||||
|
<string name="systems_language">النظام الافتراضي</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">اضغط على \"تم\" عند حلها</string>
|
||||||
|
<string name="recaptcha_done_button">منجز</string>
|
||||||
</resources>
|
</resources>
|
|
@ -58,8 +58,8 @@
|
||||||
<string name="short_billion">Mil mill.</string>
|
<string name="short_billion">Mil mill.</string>
|
||||||
<string name="msg_popup_permission">Precísase esti permisu
|
<string name="msg_popup_permission">Precísase esti permisu
|
||||||
\np\'abrir nel mou ventanu</string>
|
\np\'abrir nel mou ventanu</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Retu de reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Retu de reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Solicitóse\'l retu de reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Solicitóse\'l retu de reCAPTCHA</string>
|
||||||
<string name="controls_background_title">En segundu planu</string>
|
<string name="controls_background_title">En segundu planu</string>
|
||||||
<string name="controls_popup_title">Ventanu</string>
|
<string name="controls_popup_title">Ventanu</string>
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
<string name="msg_running_detail">点击了解详情</string>
|
<string name="msg_running_detail">点击了解详情</string>
|
||||||
<string name="msg_wait">请稍候…</string>
|
<string name="msg_wait">请稍候…</string>
|
||||||
<string name="msg_copied">复制至剪贴板</string>
|
<string name="msg_copied">复制至剪贴板</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA验证码</string>
|
<string name="recaptcha">reCAPTCHA验证码</string>
|
||||||
<string name="controls_popup_title">悬浮窗播放</string>
|
<string name="controls_popup_title">悬浮窗播放</string>
|
||||||
<string name="title_activity_about">关于NewPipe</string>
|
<string name="title_activity_about">关于NewPipe</string>
|
||||||
<string name="action_settings">设置</string>
|
<string name="action_settings">设置</string>
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
<string name="search_no_results">没有结果</string>
|
<string name="search_no_results">没有结果</string>
|
||||||
<string name="no_subscribers">没有订阅者</string>
|
<string name="no_subscribers">没有订阅者</string>
|
||||||
<plurals name="subscribers">
|
<plurals name="subscribers">
|
||||||
<item quantity="one">%s个订阅者</item>
|
<item quantity="one">%s 位订阅者</item>
|
||||||
<item quantity="other"/>
|
<item quantity="other"/>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_videos">没有视频</string>
|
<string name="no_videos">没有视频</string>
|
||||||
|
@ -148,7 +148,7 @@
|
||||||
<string name="missions_header_pending">等待中…</string>
|
<string name="missions_header_pending">等待中…</string>
|
||||||
<string name="paused">已暂停</string>
|
<string name="paused">已暂停</string>
|
||||||
<string name="queued">排队中</string>
|
<string name="queued">排队中</string>
|
||||||
<string name="enqueue">已加入队列</string>
|
<string name="enqueue">加入队列</string>
|
||||||
<string name="permission_denied">操作已被系统拒绝</string>
|
<string name="permission_denied">操作已被系统拒绝</string>
|
||||||
<string name="download_failed">下载失败</string>
|
<string name="download_failed">下载失败</string>
|
||||||
<string name="download_finished">下载完成</string>
|
<string name="download_finished">下载完成</string>
|
||||||
|
@ -207,7 +207,7 @@
|
||||||
<string name="no_available_dir">请稍后在设置中设定下载目录</string>
|
<string name="no_available_dir">请稍后在设置中设定下载目录</string>
|
||||||
<string name="msg_popup_permission">用悬浮窗模式
|
<string name="msg_popup_permission">用悬浮窗模式
|
||||||
\n需要此权限</string>
|
\n需要此权限</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA验证</string>
|
<string name="title_activity_recaptcha">reCAPTCHA验证</string>
|
||||||
<string name="recaptcha_request_toast">请求的新的CAPTCHA验证</string>
|
<string name="recaptcha_request_toast">请求的新的CAPTCHA验证</string>
|
||||||
<string name="popup_mode_share_menu_title">NewPipe 悬浮窗模式</string>
|
<string name="popup_mode_share_menu_title">NewPipe 悬浮窗模式</string>
|
||||||
<string name="popup_playing_toast">在悬浮窗中播放</string>
|
<string name="popup_playing_toast">在悬浮窗中播放</string>
|
||||||
|
@ -219,7 +219,7 @@
|
||||||
<string name="popup_remember_size_pos_summary">记住最后一次使用悬浮窗的大小和位置</string>
|
<string name="popup_remember_size_pos_summary">记住最后一次使用悬浮窗的大小和位置</string>
|
||||||
<string name="settings_category_popup_title">悬浮窗</string>
|
<string name="settings_category_popup_title">悬浮窗</string>
|
||||||
<string name="popup_resizing_indicator_title">调整大小</string>
|
<string name="popup_resizing_indicator_title">调整大小</string>
|
||||||
<string name="use_external_video_player_summary">部分分辨率的视频将没有声音</string>
|
<string name="use_external_video_player_summary">隐藏部分没有音频的分辨率</string>
|
||||||
<string name="player_gesture_controls_title">播放器手势控制</string>
|
<string name="player_gesture_controls_title">播放器手势控制</string>
|
||||||
<string name="player_gesture_controls_summary">使用手势控制播放器的亮度和音量</string>
|
<string name="player_gesture_controls_summary">使用手势控制播放器的亮度和音量</string>
|
||||||
<string name="show_search_suggestions_summary">显示搜索建议</string>
|
<string name="show_search_suggestions_summary">显示搜索建议</string>
|
||||||
|
@ -410,13 +410,13 @@
|
||||||
<string name="privacy_policy_encouragement">NewPipe 项目非常重视您的隐私。因此,未经您的同意,应用程序不会收集任何数据。
|
<string name="privacy_policy_encouragement">NewPipe 项目非常重视您的隐私。因此,未经您的同意,应用程序不会收集任何数据。
|
||||||
\nNewPipe 的隐私政策详细解释了在发送崩溃报告时发送和存储的数据。</string>
|
\nNewPipe 的隐私政策详细解释了在发送崩溃报告时发送和存储的数据。</string>
|
||||||
<string name="read_privacy_policy">阅读隐私政策</string>
|
<string name="read_privacy_policy">阅读隐私政策</string>
|
||||||
<string name="start_accept_privacy_policy">为了遵守欧洲一般数据保护条例 (GDPR),我们提请您注意 NewPipe 的隐私政策。请仔细阅读。
|
<string name="start_accept_privacy_policy">为了遵守欧盟的《通用数据保护条例》(GDPR),我们特此提醒您注意 NewPipe 的隐私政策。请您仔细阅读。
|
||||||
\n您必须接受它才能向我们发送错误报告。</string>
|
\n您必须在同意以后才能向我们发送错误报告。</string>
|
||||||
<string name="accept">接受</string>
|
<string name="accept">接受</string>
|
||||||
<string name="decline">拒绝</string>
|
<string name="decline">拒绝</string>
|
||||||
<string name="limit_data_usage_none_description">无限制</string>
|
<string name="limit_data_usage_none_description">无限制</string>
|
||||||
<string name="limit_mobile_data_usage_title">使用移动数据时限制分辨率</string>
|
<string name="limit_mobile_data_usage_title">使用移动数据时限制分辨率</string>
|
||||||
<string name="minimize_on_exit_title">切换应用时最小化</string>
|
<string name="minimize_on_exit_title">退出应用时最小化</string>
|
||||||
<string name="minimize_on_exit_summary">从主播放器切换到其他应用时的操作 - %s</string>
|
<string name="minimize_on_exit_summary">从主播放器切换到其他应用时的操作 - %s</string>
|
||||||
<string name="skip_silence_checkbox">静音时快进</string>
|
<string name="skip_silence_checkbox">静音时快进</string>
|
||||||
<string name="playback_step">滑块[比例尺]</string>
|
<string name="playback_step">滑块[比例尺]</string>
|
||||||
|
@ -487,7 +487,7 @@
|
||||||
<string name="error_insufficient_storage">设备上没有剩余储存空间</string>
|
<string name="error_insufficient_storage">设备上没有剩余储存空间</string>
|
||||||
<string name="error_progress_lost">进度丢失,文件已被删除</string>
|
<string name="error_progress_lost">进度丢失,文件已被删除</string>
|
||||||
<string name="error_timeout">连接超时</string>
|
<string name="error_timeout">连接超时</string>
|
||||||
<string name="confirm_prompt">你确定吗?</string>
|
<string name="confirm_prompt">是否要清除下载历史记录或删除所有下载的文件?</string>
|
||||||
<string name="enable_queue_limit">最大下载队列</string>
|
<string name="enable_queue_limit">最大下载队列</string>
|
||||||
<string name="enable_queue_limit_desc">同时只允许一个下载进行</string>
|
<string name="enable_queue_limit_desc">同时只允许一个下载进行</string>
|
||||||
<string name="start_downloads">开始下载</string>
|
<string name="start_downloads">开始下载</string>
|
||||||
|
@ -504,12 +504,12 @@
|
||||||
<string name="delete_playback_states_alert">删除所有播放位置记录?</string>
|
<string name="delete_playback_states_alert">删除所有播放位置记录?</string>
|
||||||
<string name="download_choose_new_path">更改下载目录让内容生效</string>
|
<string name="download_choose_new_path">更改下载目录让内容生效</string>
|
||||||
<string name="default_kiosk_page_summary">『时下流行』页-默认</string>
|
<string name="default_kiosk_page_summary">『时下流行』页-默认</string>
|
||||||
<string name="no_one_watching">无人在线观看</string>
|
<string name="no_one_watching">没有人在观看</string>
|
||||||
<plurals name="watching">
|
<plurals name="watching">
|
||||||
<item quantity="one">%s 人在观看</item>
|
<item quantity="one">%s 人在观看</item>
|
||||||
<item quantity="other"/>
|
<item quantity="other"/>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_one_listening">没人在听</string>
|
<string name="no_one_listening">没有人在听</string>
|
||||||
<plurals name="listening">
|
<plurals name="listening">
|
||||||
<item quantity="one">%s 人在听</item>
|
<item quantity="one">%s 人在听</item>
|
||||||
<item quantity="other"/>
|
<item quantity="other"/>
|
||||||
|
@ -519,9 +519,9 @@
|
||||||
<string name="peertube_instance_url_summary">设置自己喜欢的PeerTube服务器</string>
|
<string name="peertube_instance_url_summary">设置自己喜欢的PeerTube服务器</string>
|
||||||
<string name="peertube_instance_url_help">查找最适合你的服务器%s</string>
|
<string name="peertube_instance_url_help">查找最适合你的服务器%s</string>
|
||||||
<string name="peertube_instance_add_title">添加服务器</string>
|
<string name="peertube_instance_add_title">添加服务器</string>
|
||||||
<string name="peertube_instance_add_help">输入服务器网址</string>
|
<string name="peertube_instance_add_help">输入服务器网址(URL)</string>
|
||||||
<string name="peertube_instance_add_fail">无法验证服务器</string>
|
<string name="peertube_instance_add_fail">无法验证服务器</string>
|
||||||
<string name="peertube_instance_add_https_only">仅支持 https URL</string>
|
<string name="peertube_instance_add_https_only">仅支持 HTTPS和URL</string>
|
||||||
<string name="peertube_instance_add_exists">该服务器已存在</string>
|
<string name="peertube_instance_add_exists">该服务器已存在</string>
|
||||||
<string name="local">本地</string>
|
<string name="local">本地</string>
|
||||||
<string name="recently_added">最近添加</string>
|
<string name="recently_added">最近添加</string>
|
||||||
|
@ -531,9 +531,10 @@
|
||||||
<string name="error_download_resource_gone">无法恢复此下载</string>
|
<string name="error_download_resource_gone">无法恢复此下载</string>
|
||||||
<string name="choose_instance_prompt">选择一个服务器</string>
|
<string name="choose_instance_prompt">选择一个服务器</string>
|
||||||
<string name="seek_duration_title">快进 / 快退的单位时间</string>
|
<string name="seek_duration_title">快进 / 快退的单位时间</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">在锁屏界面显示视频缩略图</string>
|
<string name="enable_lock_screen_video_thumbnail_title">在锁屏上显示视频缩略图</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">在后台播放时,锁屏界面将会显示视频的缩略图</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">在后台播放时,锁屏上将会显示视频的缩略图</string>
|
||||||
<string name="clear_download_history">清除下载历史记录</string>
|
<string name="clear_download_history">清除下载历史记录</string>
|
||||||
<string name="delete_downloaded_files">删除下载了的文件</string>
|
<string name="delete_downloaded_files">删除下载了的文件</string>
|
||||||
<string name="deleted_downloads">已删除 %1$s 下载</string>
|
<string name="deleted_downloads">已删除 %1$s 下载</string>
|
||||||
|
<string name="permission_display_over_apps">授予在其他应用上层显示的权限</string>
|
||||||
</resources>
|
</resources>
|
|
@ -247,8 +247,8 @@
|
||||||
<string name="msg_popup_permission">Гэтае разрозненне трэба для
|
<string name="msg_popup_permission">Гэтае разрозненне трэба для
|
||||||
\nпрайгравання ў акне</string>
|
\nпрайгравання ў акне</string>
|
||||||
<string name="one_item_deleted">1 элемент выдалены.</string>
|
<string name="one_item_deleted">1 элемент выдалены.</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Запыт reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Запыт reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Запытаны ўвод reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Запытаны ўвод reCAPTCHA</string>
|
||||||
<string name="settings_category_downloads_title">Загрузкі</string>
|
<string name="settings_category_downloads_title">Загрузкі</string>
|
||||||
<string name="settings_file_charset_title">Дапушчальныя сімвалы назвы файлаў</string>
|
<string name="settings_file_charset_title">Дапушчальныя сімвалы назвы файлаў</string>
|
||||||
|
|
|
@ -269,8 +269,8 @@
|
||||||
<string name="msg_popup_permission">Това разрешение се изисква за
|
<string name="msg_popup_permission">Това разрешение се изисква за
|
||||||
\nвъзпроизвеждане в отделен прозорец</string>
|
\nвъзпроизвеждане в отделен прозорец</string>
|
||||||
<string name="one_item_deleted">1 елемент е изтрит.</string>
|
<string name="one_item_deleted">1 елемент е изтрит.</string>
|
||||||
<string name="reCaptchaActivity">преКАПЧА</string>
|
<string name="recaptcha">преКАПЧА</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA заявка</string>
|
<string name="title_activity_recaptcha">reCAPTCHA заявка</string>
|
||||||
<string name="recaptcha_request_toast">Изисква се въвеждане на reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Изисква се въвеждане на reCAPTCHA</string>
|
||||||
<string name="settings_category_downloads_title">Изтегляне</string>
|
<string name="settings_category_downloads_title">Изтегляне</string>
|
||||||
<string name="charset_most_special_characters">Повечето специални символи</string>
|
<string name="charset_most_special_characters">Повечето специални символи</string>
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="main_bg_subtitle">শুরু করতে অনুসন্ধান এ আলতো চাপ</string>
|
<string name="main_bg_subtitle">অনুসন্ধান এ চাপ দিয়ে শুরু করুন</string>
|
||||||
<string name="view_count_text">"%1$s জন দেখছে"</string>
|
<string name="view_count_text">"%1$s জন দেখছে"</string>
|
||||||
<string name="upload_date_text">প্রকাশকাল %1$s</string>
|
<string name="upload_date_text">প্রকাশকাল %1$s</string>
|
||||||
<string name="no_player_found">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। তুমি কি VLC ইনস্টল করতে চাও?</string>
|
<string name="no_player_found">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চাও\?</string>
|
||||||
<string name="install">ইনস্টল</string>
|
<string name="install">ইনস্টল</string>
|
||||||
<string name="cancel">বাদ দিন</string>
|
<string name="cancel">বাদ দিন</string>
|
||||||
<!-- <string name="fdroid_vlc_url" translatable="false">https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc</string> -->
|
|
||||||
<string name="open_in_browser">ব্রাউজারে ওপেন করো</string>
|
<string name="open_in_browser">ব্রাউজারে ওপেন করো</string>
|
||||||
<string name="open_in_popup_mode">পপ-আপ মোডে ওপেন করো</string>
|
<string name="open_in_popup_mode">পপ-আপ মোডে ওপেন করো</string>
|
||||||
<string name="share">শেয়ার</string>
|
<string name="share">শেয়ার</string>
|
||||||
|
@ -16,13 +15,13 @@
|
||||||
<string name="did_you_mean">আপনি কি বুঝিয়েছেনঃ %1$s ?</string>
|
<string name="did_you_mean">আপনি কি বুঝিয়েছেনঃ %1$s ?</string>
|
||||||
<string name="share_dialog_title">শেয়ার করুন</string>
|
<string name="share_dialog_title">শেয়ার করুন</string>
|
||||||
<string name="choose_browser">ব্রাউজার বাছাই করুন</string>
|
<string name="choose_browser">ব্রাউজার বাছাই করুন</string>
|
||||||
<string name="screen_rotation">রোটেশন</string>
|
<string name="screen_rotation">ঘূর্ণন</string>
|
||||||
<string name="use_external_video_player_title">বাইরের ভিডিও প্লেয়ার ব্যবহার করুন</string>
|
<string name="use_external_video_player_title">বাইরের ভিডিও প্লেয়ার ব্যবহার করুন</string>
|
||||||
<string name="use_external_audio_player_title">বহির্গত অডিও প্লেয়ার ব্যবহার করুন</string>
|
<string name="use_external_audio_player_title">বহির্গত অডিও প্লেয়ার ব্যবহার করুন</string>
|
||||||
<string name="popup_mode_share_menu_title">NewPipe পপআপ মোড</string>
|
<string name="popup_mode_share_menu_title">পপআপ মোড</string>
|
||||||
<string name="controls_background_title">ব্যাকগ্রাউন্ড</string>
|
<string name="controls_background_title">ব্যাকগ্রাউন্ড</string>
|
||||||
<string name="controls_popup_title">পপআপ</string>
|
<string name="controls_popup_title">পপআপ</string>
|
||||||
<string name="download_path_title">ভিডিও ডাউনলোড করার পাথ</string>
|
<string name="download_path_title">ভিডিও ডাউনলোড করার ফোল্ডার</string>
|
||||||
<string name="download_path_summary">ডাউনলোড করা ভিডিওগুলো রাখার ফোল্ডার</string>
|
<string name="download_path_summary">ডাউনলোড করা ভিডিওগুলো রাখার ফোল্ডার</string>
|
||||||
<string name="download_path_dialog_title">ভিডিওগুলির জন্য ডাউনলোডের পাথ প্রবেশ করাও</string>
|
<string name="download_path_dialog_title">ভিডিওগুলির জন্য ডাউনলোডের পাথ প্রবেশ করাও</string>
|
||||||
<string name="download_path_audio_title">অডিও ডাউনলোড পাথ</string>
|
<string name="download_path_audio_title">অডিও ডাউনলোড পাথ</string>
|
||||||
|
@ -36,7 +35,6 @@
|
||||||
<string name="show_higher_resolutions_summary">শুধুমাত্র কিছু ডিভাইস 2k / 4k ভিডিও চালানোয় সমর্থন</string>
|
<string name="show_higher_resolutions_summary">শুধুমাত্র কিছু ডিভাইস 2k / 4k ভিডিও চালানোয় সমর্থন</string>
|
||||||
<string name="play_with_kodi_title">Kodi এর মাধ্যমে চালাও</string>
|
<string name="play_with_kodi_title">Kodi এর মাধ্যমে চালাও</string>
|
||||||
<string name="kore_not_found">Kore অ্যাপ্লিকেশন খুঁজে পাওয়া যায়নি। Kore ইনস্টল করবে?</string>
|
<string name="kore_not_found">Kore অ্যাপ্লিকেশন খুঁজে পাওয়া যায়নি। Kore ইনস্টল করবে?</string>
|
||||||
<!-- <string name="fdroid_kore_url" translatable="false">https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore</string> -->
|
|
||||||
<string name="show_play_with_kodi_title">দেখাও \"Kodi এর মাধ্যমে চালাও \" বিকল্প</string>
|
<string name="show_play_with_kodi_title">দেখাও \"Kodi এর মাধ্যমে চালাও \" বিকল্প</string>
|
||||||
<string name="show_play_with_kodi_summary">Kodi মিডিয়া সেন্টারে এর মাধ্যমে ভিডিও প্লে করার জন্য একটি বিকল্প প্রদর্শন কর</string>
|
<string name="show_play_with_kodi_summary">Kodi মিডিয়া সেন্টারে এর মাধ্যমে ভিডিও প্লে করার জন্য একটি বিকল্প প্রদর্শন কর</string>
|
||||||
<string name="play_audio">অডিও</string>
|
<string name="play_audio">অডিও</string>
|
||||||
|
@ -57,10 +55,8 @@
|
||||||
<string name="settings_category_popup_title">পপআপ</string>
|
<string name="settings_category_popup_title">পপআপ</string>
|
||||||
<string name="settings_category_appearance_title">অ্যাপিয়ারেন্স</string>
|
<string name="settings_category_appearance_title">অ্যাপিয়ারেন্স</string>
|
||||||
<string name="settings_category_other_title">অন্যান্য</string>
|
<string name="settings_category_other_title">অন্যান্য</string>
|
||||||
<!-- <string name="background_player_time_text" translatable="false">%1$s - NewPipe</string> -->
|
|
||||||
<string name="background_player_playing_toast">ব্যাকগ্রাউন্ডে চলছে</string>
|
<string name="background_player_playing_toast">ব্যাকগ্রাউন্ডে চলছে</string>
|
||||||
<string name="popup_playing_toast">পপআপ মোডে চলছে</string>
|
<string name="popup_playing_toast">পপআপ মোডে চলছে</string>
|
||||||
<!-- <string name="c3s_url" translatable="false">https://www.c3s.cc/</string> -->
|
|
||||||
<string name="play_btn_text">চালাও</string>
|
<string name="play_btn_text">চালাও</string>
|
||||||
<string name="content">কন্টেন্ট</string>
|
<string name="content">কন্টেন্ট</string>
|
||||||
<string name="show_age_restricted_content_title">বয়স সীমাবদ্ধ কন্টেন্ট দেখাও</string>
|
<string name="show_age_restricted_content_title">বয়স সীমাবদ্ধ কন্টেন্ট দেখাও</string>
|
||||||
|
@ -93,7 +89,6 @@
|
||||||
<string name="app_ui_crash">অ্যাপ / UI ক্র্যাশ করেছে</string>
|
<string name="app_ui_crash">অ্যাপ / UI ক্র্যাশ করেছে</string>
|
||||||
<!-- error activity -->
|
<!-- error activity -->
|
||||||
<string name="sorry_string">দুঃখিত, এটা ঘটা উচিত ছিল না।</string>
|
<string name="sorry_string">দুঃখিত, এটা ঘটা উচিত ছিল না।</string>
|
||||||
<!-- <string name="guru_meditation" translatable="false">Guru Meditation.</string> -->
|
|
||||||
<string name="error_report_button_text">মেইলের মাধ্যমে ত্রুটি প্রতিবেদন করো</string>
|
<string name="error_report_button_text">মেইলের মাধ্যমে ত্রুটি প্রতিবেদন করো</string>
|
||||||
<string name="error_snackbar_message">দুঃখিত, কিছু ত্রুটি ঘটেছে।</string>
|
<string name="error_snackbar_message">দুঃখিত, কিছু ত্রুটি ঘটেছে।</string>
|
||||||
<string name="error_snackbar_action">প্রতিবেদন</string>
|
<string name="error_snackbar_action">প্রতিবেদন</string>
|
||||||
|
@ -142,11 +137,8 @@
|
||||||
<string name="msg_copied">ক্লিপবোর্ডে অনুলিপি করা হয়েছে।</string>
|
<string name="msg_copied">ক্লিপবোর্ডে অনুলিপি করা হয়েছে।</string>
|
||||||
<string name="no_available_dir">অনুগ্রহ করে একটি উপলব্ধ ডাউনলোড ডিরেক্টরি নির্বাচন করো।</string>
|
<string name="no_available_dir">অনুগ্রহ করে একটি উপলব্ধ ডাউনলোড ডিরেক্টরি নির্বাচন করো।</string>
|
||||||
<string name="msg_popup_permission">এই অনুমতিটি পপআপ মোডে খুলতে প্রয়োজন</string>
|
<string name="msg_popup_permission">এই অনুমতিটি পপআপ মোডে খুলতে প্রয়োজন</string>
|
||||||
<!-- Checksum types -->
|
<string name="recaptcha">রিক্যাপচা</string>
|
||||||
<!-- <string name="md5" translatable="false">MD5</string> -->
|
<string name="title_activity_recaptcha">reCAPTCHA চ্যালেঞ্জ</string>
|
||||||
<!-- <string name="sha1" translatable="false">SHA1</string> -->
|
|
||||||
<string name="reCaptchaActivity">রিক্যাপচা</string>
|
|
||||||
<string name="reCaptcha_title">reCAPTCHA চ্যালেঞ্জ</string>
|
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA চ্যালেঞ্জ অনুরোধ করা হয়েছে</string>
|
<string name="recaptcha_request_toast">reCAPTCHA চ্যালেঞ্জ অনুরোধ করা হয়েছে</string>
|
||||||
<!-- End of GigaGet's Strings -->
|
<!-- End of GigaGet's Strings -->
|
||||||
<string name="info_labels">কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর:</string>
|
<string name="info_labels">কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর:</string>
|
||||||
|
@ -171,7 +163,7 @@
|
||||||
<string name="action_open_website">ওয়েব সাইট খুলুন</string>
|
<string name="action_open_website">ওয়েব সাইট খুলুন</string>
|
||||||
<string name="website_title">ওয়েব সাইট</string>
|
<string name="website_title">ওয়েব সাইট</string>
|
||||||
<string name="no_player_found_toast">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি (প্লে করতে VLC ইন্সটল করতে পারেন)</string>
|
<string name="no_player_found_toast">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি (প্লে করতে VLC ইন্সটল করতে পারেন)</string>
|
||||||
<string name="use_external_video_player_summary">কিছু রেজোলিউশনে ভিডিওর অডিও কাজ করে না</string>
|
<string name="use_external_video_player_summary">কিছু কিছু রেজোলিউশনে অডিও বন্ধ করে দেয়</string>
|
||||||
<string name="subscribe_button_title">সাবস্ক্রাইব</string>
|
<string name="subscribe_button_title">সাবস্ক্রাইব</string>
|
||||||
<string name="subscribed_button_title">সাবস্ক্রাইব করা আছে</string>
|
<string name="subscribed_button_title">সাবস্ক্রাইব করা আছে</string>
|
||||||
<string name="channel_unsubscribed">চ্যানেল থেকে আনসাবস্ক্রাইব্ড</string>
|
<string name="channel_unsubscribed">চ্যানেল থেকে আনসাবস্ক্রাইব্ড</string>
|
||||||
|
@ -183,4 +175,5 @@
|
||||||
<string name="use_inexact_seek_title">দ্রুত টানা ব্যাবহার করুন</string>
|
<string name="use_inexact_seek_title">দ্রুত টানা ব্যাবহার করুন</string>
|
||||||
<string name="unsubscribe">আনসাবস্ক্রাইব</string>
|
<string name="unsubscribe">আনসাবস্ক্রাইব</string>
|
||||||
<string name="tab_new">নতুন ট্যাব</string>
|
<string name="tab_new">নতুন ট্যাব</string>
|
||||||
|
<string name="tab_choose">ট্যাব পছন্দ করুন</string>
|
||||||
</resources>
|
</resources>
|
|
@ -67,7 +67,7 @@
|
||||||
<string name="finish">D\'acord</string>
|
<string name="finish">D\'acord</string>
|
||||||
<string name="msg_name">Nom de fitxer</string>
|
<string name="msg_name">Nom de fitxer</string>
|
||||||
<string name="msg_error">Error</string>
|
<string name="msg_error">Error</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="settings_category_downloads_title">Baixades</string>
|
<string name="settings_category_downloads_title">Baixades</string>
|
||||||
<string name="action_settings">Paràmetres</string>
|
<string name="action_settings">Paràmetres</string>
|
||||||
<string name="action_about">Quant a</string>
|
<string name="action_about">Quant a</string>
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
<string name="msg_running_detail">Feu un toc aquí per a més detalls</string>
|
<string name="msg_running_detail">Feu un toc aquí per a més detalls</string>
|
||||||
<string name="no_available_dir">Defineix una carpeta de baixades més endavant als paràmetres</string>
|
<string name="no_available_dir">Defineix una carpeta de baixades més endavant als paràmetres</string>
|
||||||
<string name="msg_popup_permission">Es necessita aquest permís per a obrir el mode emergent</string>
|
<string name="msg_popup_permission">Es necessita aquest permís per a obrir el mode emergent</string>
|
||||||
<string name="reCaptcha_title">Camp reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Camp reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">S\'ha sol·licitat l\'emplenament d\'un camp reCAPTCHA</string>
|
<string name="recaptcha_request_toast">S\'ha sol·licitat l\'emplenament d\'un camp reCAPTCHA</string>
|
||||||
<string name="settings_file_replacement_character_summary">Se substituiran els caràcters no vàlids amb aquest valor</string>
|
<string name="settings_file_replacement_character_summary">Se substituiran els caràcters no vàlids amb aquest valor</string>
|
||||||
<string name="settings_file_replacement_character_title">Caràcter de substitució</string>
|
<string name="settings_file_replacement_character_title">Caràcter de substitució</string>
|
||||||
|
|
|
@ -1,504 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="main_bg_subtitle">点击搜索按钮即可开始使用</string>
|
|
||||||
<string name="view_count_text">%1$s 次观看</string>
|
|
||||||
<string name="upload_date_text">发布于 %1$s</string>
|
|
||||||
<string name="no_player_found">找不到媒体播放器。您要安装 VLC 吗?</string>
|
|
||||||
<string name="no_player_found_toast">找不到媒体播放器(您可以安装 VLC 来播放)。</string>
|
|
||||||
<string name="install">安装</string>
|
|
||||||
<string name="cancel">取消</string>
|
|
||||||
<string name="open_in_browser">在浏览器中打开</string>
|
|
||||||
<string name="open_in_popup_mode">在悬浮窗模式下打开</string>
|
|
||||||
<string name="share">分享</string>
|
|
||||||
<string name="download">下载</string>
|
|
||||||
<string name="controls_download_desc">下载媒体文件</string>
|
|
||||||
<string name="search">搜索</string>
|
|
||||||
<string name="settings">设置</string>
|
|
||||||
<string name="did_you_mean">您是不是要找:%1$s?</string>
|
|
||||||
<string name="share_dialog_title">分享至</string>
|
|
||||||
<string name="choose_browser">选择浏览器</string>
|
|
||||||
<string name="screen_rotation">旋转</string>
|
|
||||||
<string name="use_external_video_player_title">使用外部视频播放器</string>
|
|
||||||
<string name="use_external_video_player_summary">删除某些分辨率下的音频</string>
|
|
||||||
<string name="use_external_audio_player_title">使用外部音频播放器</string>
|
|
||||||
<string name="popup_mode_share_menu_title">NewPipe 悬浮窗模式</string>
|
|
||||||
<string name="subscribe_button_title">订阅</string>
|
|
||||||
<string name="subscribed_button_title">已订阅</string>
|
|
||||||
<string name="channel_unsubscribed">退订成功</string>
|
|
||||||
<string name="subscription_change_failed">无法更改订阅</string>
|
|
||||||
<string name="subscription_update_failed">无法更新订阅</string>
|
|
||||||
<string name="show_info">显示信息</string>
|
|
||||||
<string name="tab_main">主页</string>
|
|
||||||
<string name="tab_subscriptions">订阅</string>
|
|
||||||
<string name="tab_bookmarks">已添加书签到播放列表</string>
|
|
||||||
<string name="fragment_whats_new">新功能</string>
|
|
||||||
<string name="controls_background_title">转到后台</string>
|
|
||||||
<string name="controls_popup_title">悬浮窗</string>
|
|
||||||
<string name="controls_add_to_playlist_title">添加到</string>
|
|
||||||
<string name="download_path_title">视频下载文件夹</string>
|
|
||||||
<string name="download_path_summary">已下载的视频储存在此处</string>
|
|
||||||
<string name="download_path_dialog_title">选择视频文件的下载文件夹</string>
|
|
||||||
<string name="download_path_audio_title">音频下载文件夹</string>
|
|
||||||
<string name="download_path_audio_summary">已下载的音频存储在此处</string>
|
|
||||||
<string name="download_path_audio_dialog_title">选择音频文件的下载文件夹</string>
|
|
||||||
<string name="autoplay_by_calling_app_title">自动播放</string>
|
|
||||||
<string name="autoplay_by_calling_app_summary">NewPipes被其它程序调用时播放视频</string>
|
|
||||||
<string name="default_resolution_title">默认分辨率</string>
|
|
||||||
<string name="default_popup_resolution_title">默认悬浮窗分辨率</string>
|
|
||||||
<string name="show_higher_resolutions_title">显示更高的分辨率</string>
|
|
||||||
<string name="show_higher_resolutions_summary">只有部分设备支持播放 2K/4K 视频</string>
|
|
||||||
<string name="play_with_kodi_title">用 Kodi 播放</string>
|
|
||||||
<string name="kore_not_found">没找到 Kore 应用,需要安装它吗?</string>
|
|
||||||
<string name="show_play_with_kodi_title">显示“用 Kodi 播放”选项</string>
|
|
||||||
<string name="show_play_with_kodi_summary">显示以 Kodi 媒体中心播放视频的选项</string>
|
|
||||||
<string name="play_audio">音频</string>
|
|
||||||
<string name="default_audio_format_title">默认音频格式</string>
|
|
||||||
<string name="default_video_format_title">默认视频格式</string>
|
|
||||||
<string name="theme_title">主题</string>
|
|
||||||
<string name="light_theme_title">亮色</string>
|
|
||||||
<string name="dark_theme_title">酷黑</string>
|
|
||||||
<string name="black_theme_title">黑色</string>
|
|
||||||
<string name="popup_remember_size_pos_title">记住悬浮窗的尺寸与位置</string>
|
|
||||||
<string name="popup_remember_size_pos_summary">记住上一次悬浮窗的位置以及大小</string>
|
|
||||||
<string name="thumbnail_cache_wipe_complete_notice">已清除图像缓存</string>
|
|
||||||
<string name="minimize_on_exit_popup_description">最小化悬浮窗播放器</string>
|
|
||||||
<string name="clear_views_history_title">清除观看历史</string>
|
|
||||||
<string name="search_history_deleted">搜索记录已删除。</string>
|
|
||||||
<string name="general_error">错误</string>
|
|
||||||
<string name="network_error">网络错误</string>
|
|
||||||
<string name="report_error">举报错误</string>
|
|
||||||
<string name="search_no_results">没有结果</string>
|
|
||||||
<string name="start">开始</string>
|
|
||||||
<string name="pause">暂停</string>
|
|
||||||
<string name="view">播放</string>
|
|
||||||
<string name="create">创建</string>
|
|
||||||
<string name="delete">删除</string>
|
|
||||||
<string name="delete_all">删除所有</string>
|
|
||||||
<string name="add">新任务</string>
|
|
||||||
<string name="finish">好
|
|
||||||
\n</string>
|
|
||||||
<string name="msg_error">错误
|
|
||||||
\n</string>
|
|
||||||
<string name="msg_server_unsupported">不支持的服务器</string>
|
|
||||||
<string name="msg_exists">文件已存在</string>
|
|
||||||
<string name="msg_running">NewPipe 下载中</string>
|
|
||||||
<string name="msg_wait">请稍等…</string>
|
|
||||||
<string name="charset_letters_and_digits">字母与数字</string>
|
|
||||||
<string name="charset_most_special_characters">最特别的字符</string>
|
|
||||||
<string name="toast_no_player">这个文件里没有已下载应用程式</string>
|
|
||||||
<string name="title_activity_about">关于NewPipe</string>
|
|
||||||
<string name="action_settings">设置</string>
|
|
||||||
<string name="action_about">关于</string>
|
|
||||||
<string name="title_licenses">第三方执照</string>
|
|
||||||
<string name="action_open_website">打开网页</string>
|
|
||||||
<string name="unbookmark_playlist">删除书签</string>
|
|
||||||
<string name="delete_playlist_prompt">确定删除该播放列表吗?</string>
|
|
||||||
<string name="playlist_creation_success">已创建播放列表</string>
|
|
||||||
<string name="playlist_add_stream_success">播放列表</string>
|
|
||||||
<string name="playback_step">步骤</string>
|
|
||||||
<string name="playback_reset">重置</string>
|
|
||||||
<string name="start_accept_privacy_policy">为了遵守欧洲通用数据保护法规(GDPR,我们请你注意NewPipe的隐私政策.请仔细阅读.
|
|
||||||
\n你必须接受它才能将错误报告发送给我们.</string>
|
|
||||||
<string name="accept">接受</string>
|
|
||||||
<string name="decline">拒绝</string>
|
|
||||||
<string name="limit_data_usage_none_description">没有限制</string>
|
|
||||||
<string name="limit_mobile_data_usage_title">使用移动数据时的解析度限制</string>
|
|
||||||
<string name="minimize_on_exit_title">最小化应用程序切换</string>
|
|
||||||
<string name="minimize_on_exit_summary">从主视频播放器切换到其他应用时的操作 - %s</string>
|
|
||||||
<string name="minimize_on_exit_none_description">没有</string>
|
|
||||||
<string name="minimize_on_exit_background_description">最小化后台播放</string>
|
|
||||||
<string name="use_inexact_seek_title">使用快速粗略定位</string>
|
|
||||||
<string name="use_inexact_seek_summary">粗略定位功能允许播放器以略低的精确度为代价换取更快的定位速度</string>
|
|
||||||
<string name="download_thumbnail_title">下载缩略图</string>
|
|
||||||
<string name="metadata_cache_wipe_title">清除缓存的元数据</string>
|
|
||||||
<string name="metadata_cache_wipe_summary">移除所有缓存的网页数据</string>
|
|
||||||
<string name="metadata_cache_wipe_complete_notice">已清除缓存的元数据</string>
|
|
||||||
<string name="download_thumbnail_summary">不加载缩略图时,可以节省数据和存储空间。更改后将清除存储空间和扩展空间的缓存。</string>
|
|
||||||
<string name="auto_queue_title">自动排列下一个媒体</string>
|
|
||||||
<string name="auto_queue_summary">在非重复排列中播放最后一个媒体时自动推荐相关媒体</string>
|
|
||||||
<string name="player_gesture_controls_title">玩家手势控制</string>
|
|
||||||
<string name="player_gesture_controls_summary">使用手势控制播放器的亮度和音量</string>
|
|
||||||
<string name="show_search_suggestions_title">搜索建议</string>
|
|
||||||
<string name="show_search_suggestions_summary">搜索时显示建议</string>
|
|
||||||
<string name="enable_search_history_title">搜索历史记录</string>
|
|
||||||
<string name="enable_search_history_summary">在本地存储搜索</string>
|
|
||||||
<string name="enable_watch_history_title">观看历史</string>
|
|
||||||
<string name="enable_watch_history_summary">记录观看过的视频</string>
|
|
||||||
<string name="resume_on_audio_focus_gain_title">取得视窗焦点时继续播放</string>
|
|
||||||
<string name="resume_on_audio_focus_gain_summary">在被打断后继续播放(例如有来电)</string>
|
|
||||||
<string name="download_dialog_title">下载</string>
|
|
||||||
<string name="next_video_title">下一部</string>
|
|
||||||
<string name="show_next_and_similar_title">显示「下一部」及「相关」的视频</string>
|
|
||||||
<string name="show_hold_to_append_title">显示「长按以新增」的提示</string>
|
|
||||||
<string name="show_hold_to_append_summary">在视频详细信息页按下后台播放或悬浮窗按钮时提示</string>
|
|
||||||
<string name="url_not_supported_toast">不支持该网址</string>
|
|
||||||
<string name="default_content_country_title">默认内容的国家</string>
|
|
||||||
<string name="service_title">服务</string>
|
|
||||||
<string name="settings_category_player_title">播放器</string>
|
|
||||||
<string name="settings_category_player_behavior_title">行为</string>
|
|
||||||
<string name="settings_category_video_audio_title">视频与音频</string>
|
|
||||||
<string name="settings_category_history_title">历史记录和缓存数据</string>
|
|
||||||
<string name="settings_category_popup_title">悬浮窗</string>
|
|
||||||
<string name="settings_category_appearance_title">外观</string>
|
|
||||||
<string name="settings_category_other_title">其他</string>
|
|
||||||
<string name="settings_category_debug_title">调试</string>
|
|
||||||
<string name="background_player_playing_toast">在后台播放</string>
|
|
||||||
<string name="popup_playing_toast">在悬浮窗下播放</string>
|
|
||||||
<string name="background_player_append">已添加到后台播放队列</string>
|
|
||||||
<string name="popup_playing_append">已添加到悬浮窗播放队列</string>
|
|
||||||
<string name="play_btn_text">播放</string>
|
|
||||||
<string name="content">内容</string>
|
|
||||||
<string name="show_age_restricted_content_title">年龄限制内容</string>
|
|
||||||
<string name="video_is_age_restricted">显示有年龄限制的视频。可以从设置中允许该内容。</string>
|
|
||||||
<string name="duration_live">直播</string>
|
|
||||||
<string name="downloads">下载</string>
|
|
||||||
<string name="downloads_title">下载</string>
|
|
||||||
<string name="error_report_title">错误报告</string>
|
|
||||||
<string name="all">所有</string>
|
|
||||||
<string name="channel">频道</string>
|
|
||||||
<string name="channels">频道</string>
|
|
||||||
<string name="playlist">播放列表</string>
|
|
||||||
<string name="playlists">播放列表</string>
|
|
||||||
<string name="tracks">曲目</string>
|
|
||||||
<string name="users">用户</string>
|
|
||||||
<string name="yes">是的</string>
|
|
||||||
<string name="later">稍等</string>
|
|
||||||
<string name="disabled">不适用</string>
|
|
||||||
<string name="filter">过滤</string>
|
|
||||||
<string name="refresh">刷新</string>
|
|
||||||
<string name="clear">清除</string>
|
|
||||||
<string name="popup_resizing_indicator_title">调整</string>
|
|
||||||
<string name="best_resolution">最佳分辨率</string>
|
|
||||||
<string name="undo">复原</string>
|
|
||||||
<string name="play_all">全部播放</string>
|
|
||||||
<string name="always">总是</string>
|
|
||||||
<string name="just_once">仅一次</string>
|
|
||||||
<string name="file">文件</string>
|
|
||||||
<string name="notification_channel_name">NewPipe 通知</string>
|
|
||||||
<string name="notification_channel_description">NewPipe 后台播放和悬浮窗播放的通知</string>
|
|
||||||
<string name="unknown_content">[未知]</string>
|
|
||||||
<string name="toggle_orientation">切换方向</string>
|
|
||||||
<string name="switch_to_background">切换到后台</string>
|
|
||||||
<string name="switch_to_popup">切换到悬浮窗</string>
|
|
||||||
<string name="switch_to_main">切换到首页</string>
|
|
||||||
<string name="import_data_title">导入数据库</string>
|
|
||||||
<string name="export_data_title">导出数据库</string>
|
|
||||||
<string name="import_data_summary">覆盖您当前的历史记录和订阅</string>
|
|
||||||
<string name="export_data_summary">导出历史记录、订阅和播放列表</string>
|
|
||||||
<string name="clear_views_history_summary">删除播放过的媒体的历史记录及回放位置</string>
|
|
||||||
<string name="delete_view_history_alert">确定要清除所有观看历史记录吗?</string>
|
|
||||||
<string name="watch_history_deleted">观看历史记录已清除。</string>
|
|
||||||
<string name="clear_search_history_title">清除搜索历史记录</string>
|
|
||||||
<string name="clear_search_history_summary">清除搜索关键词的历史记录</string>
|
|
||||||
<string name="delete_search_history_alert">确定要清除所有搜索历史记录吗?</string>
|
|
||||||
<string name="could_not_load_thumbnails">无法加载所有缩略图</string>
|
|
||||||
<string name="youtube_signature_decryption_error">无法解析视频网址签名</string>
|
|
||||||
<string name="parsing_error">无法解析网站</string>
|
|
||||||
<string name="light_parsing_error">无法完全解析网站</string>
|
|
||||||
<string name="content_not_available">内容不可用</string>
|
|
||||||
<string name="could_not_setup_download_menu">无法设置下载菜单</string>
|
|
||||||
<string name="live_streams_not_supported">目前还不支持观看直播</string>
|
|
||||||
<string name="could_not_get_stream">无法获得任何媒体</string>
|
|
||||||
<string name="could_not_load_image">无法加载图片</string>
|
|
||||||
<string name="app_ui_crash">应用程序或界面出现崩溃了</string>
|
|
||||||
<string name="player_stream_failure">无法播放此媒体</string>
|
|
||||||
<string name="player_unrecoverable_failure">发生了无法恢复的播放器错误</string>
|
|
||||||
<string name="player_recoverable_failure">正在从播放器错误中恢复</string>
|
|
||||||
<string name="external_player_unsupported_link_type">外部播放器不支持此类型的链接</string>
|
|
||||||
<string name="invalid_url_toast">无效的网址</string>
|
|
||||||
<string name="video_streams_empty">找不到视频串流</string>
|
|
||||||
<string name="audio_streams_empty">找不到音频串流</string>
|
|
||||||
<string name="invalid_directory">无效的文件夹</string>
|
|
||||||
<string name="invalid_source">无效的文件/内容来源</string>
|
|
||||||
<string name="invalid_file">该文件不存在或缺少读写权限</string>
|
|
||||||
<string name="file_name_empty_error">文件名不能为空</string>
|
|
||||||
<string name="error_occurred_detail">发生错误:%1$s</string>
|
|
||||||
<string name="no_streams_available_download">没有可供下载的串流</string>
|
|
||||||
<string name="sorry_string">抱歉,这不应该发生的。</string>
|
|
||||||
<string name="error_report_button_text">通过电子邮件报告错误</string>
|
|
||||||
<string name="error_snackbar_message">抱歉,发生了一些错误。</string>
|
|
||||||
<string name="error_snackbar_action">报告</string>
|
|
||||||
<string name="what_device_headline">信息:</string>
|
|
||||||
<string name="what_happened_headline">发生了什么:</string>
|
|
||||||
<string name="info_labels">事件:\\n请求:\\n内容语言:\\n服务:\\nGMT 时间:\\n组件:\\n版本:\\n系统版本:</string>
|
|
||||||
<string name="your_comment">您的评论(请用英语):</string>
|
|
||||||
<string name="error_details_headline">详细:</string>
|
|
||||||
<string name="list_thumbnail_view_description">视频预览缩略图</string>
|
|
||||||
<string name="detail_thumbnail_view_description">视频预览缩略图</string>
|
|
||||||
<string name="detail_uploader_thumbnail_view_description">上传者的头像缩略图</string>
|
|
||||||
<string name="detail_likes_img_view_description">喜欢</string>
|
|
||||||
<string name="detail_dislikes_img_view_description">不喜欢</string>
|
|
||||||
<string name="use_tor_title">使用 Tor</string>
|
|
||||||
<string name="use_tor_summary">(实验性)通过 Tor 强制下载流量以增加隐私(暂不支持视频媒体)。</string>
|
|
||||||
<string name="user_report">用户报告</string>
|
|
||||||
<string name="empty_subscription_feed_subtitle">这里什么都没有</string>
|
|
||||||
<string name="detail_drag_description">拖动以重新排序</string>
|
|
||||||
<string name="err_dir_create">无法创建下载目录「%1$s」</string>
|
|
||||||
<string name="info_dir_created">已成功创建下载目录「%1$s」</string>
|
|
||||||
<string name="video">视频</string>
|
|
||||||
<string name="audio">音频</string>
|
|
||||||
<string name="retry">重试</string>
|
|
||||||
<string name="storage_permission_denied">手机存储访问权限被拒绝</string>
|
|
||||||
<string name="short_thousand">千</string>
|
|
||||||
<string name="short_million">万</string>
|
|
||||||
<string name="short_billion">十亿</string>
|
|
||||||
<string name="no_subscribers">没有订阅者</string>
|
|
||||||
<plurals name="subscribers">
|
|
||||||
<item quantity="one">%s 位订阅者</item>
|
|
||||||
<item quantity="other"/>
|
|
||||||
</plurals>
|
|
||||||
<string name="no_views">无观看次数</string>
|
|
||||||
<plurals name="views">
|
|
||||||
<item quantity="one">%s 次观看</item>
|
|
||||||
<item quantity="other"/>
|
|
||||||
</plurals>
|
|
||||||
<string name="no_videos">没有视频</string>
|
|
||||||
<string name="delete_one">删除</string>
|
|
||||||
<string name="checksum">校验</string>
|
|
||||||
<string name="dismiss">退出</string>
|
|
||||||
<string name="rename">重命名</string>
|
|
||||||
<string name="msg_name">文件名</string>
|
|
||||||
<string name="msg_threads">线程</string>
|
|
||||||
<string name="msg_url_malform">错误的网址或网络不可用</string>
|
|
||||||
<string name="msg_running_detail">点按以查看详细信息</string>
|
|
||||||
<string name="msg_copied">复制到剪贴板</string>
|
|
||||||
<string name="no_available_dir">请稍后在设置中定义一个下载文件夹</string>
|
|
||||||
<string name="msg_popup_permission">在悬浮窗模式打开
|
|
||||||
\n需要此权限</string>
|
|
||||||
<string name="one_item_deleted">已删除一个项目。</string>
|
|
||||||
<string name="reCaptchaActivity">reCAPTCHA 验证</string>
|
|
||||||
<string name="reCaptcha_title">reCAPTCHA 验证</string>
|
|
||||||
<string name="recaptcha_request_toast">需完成 reCAPTCHA 验证</string>
|
|
||||||
<string name="settings_category_downloads_title">下载</string>
|
|
||||||
<string name="settings_file_charset_title">文件名中允许的字符</string>
|
|
||||||
<string name="settings_file_replacement_character_summary">无效字符将替换为该值</string>
|
|
||||||
<string name="settings_file_replacement_character_title">替换字符</string>
|
|
||||||
<string name="copyright" formatted="true">© %1$s 由 %2$s 使用 %3$s 版权所有</string>
|
|
||||||
<string name="error_unable_to_load_license">无法加载许可证</string>
|
|
||||||
<string name="tab_about">关于</string>
|
|
||||||
<string name="tab_contributors">贡献者</string>
|
|
||||||
<string name="tab_licenses">许可证</string>
|
|
||||||
<string name="app_description">安卓上开源且轻便的媒体播放器。</string>
|
|
||||||
<string name="contribution_title">贡献</string>
|
|
||||||
<string name="contribution_encouragement">您是否有想法帮助我们:翻译、界面设计、代码优化以及真正繁重的功能扩展 - 我们随时欢迎您提供帮助。让 NewPipe 越变越好!</string>
|
|
||||||
<string name="view_on_github">在 GitHub 上查看</string>
|
|
||||||
<string name="donation_title">捐赠</string>
|
|
||||||
<string name="donation_encouragement">NewPipe 由社区人员维护和开发额,他们耗费时间务求为您带来最佳体验。现在是时候回过头来,让我们的开发人员能够在使 NewPipe 更加完美的同时,享受一杯咖啡。</string>
|
|
||||||
<string name="give_back">回馈</string>
|
|
||||||
<string name="website_title">网站</string>
|
|
||||||
<string name="website_encouragement">访问 NewPipe 网站了解更多信息和新闻。</string>
|
|
||||||
<string name="privacy_policy_title">NewPipe 的隐私政策</string>
|
|
||||||
<string name="privacy_policy_encouragement">NewPipe 项目是非常重视您的隐私。因此,未经您的同意,该应用程序不会收集任何数据。
|
|
||||||
\nNewPipe 的隐私政策详细说明了当您发送崩溃报告时,什么资料会被传送及储存。</string>
|
|
||||||
<string name="read_privacy_policy">阅读隐私政策</string>
|
|
||||||
<string name="app_license_title">NewPipe 的许可证</string>
|
|
||||||
<string name="app_license">NewPipe 是一个 Copyleft 的自由软件:您可以随意使用、研究、分享或改进它。在遵守由自由软件基金会所发布的 GNU 通用公共授权条款的状况下,您可以自由地再发布或修改它;授权条款预设使用第三版,但您也可以选择更新的版本。</string>
|
|
||||||
<string name="read_full_license">阅读许可证</string>
|
|
||||||
<string name="title_activity_history">历史记录</string>
|
|
||||||
<string name="title_history_search">搜索</string>
|
|
||||||
<string name="title_history_view">观看</string>
|
|
||||||
<string name="history_disabled">历史记录被关闭了</string>
|
|
||||||
<string name="action_history">历史记录</string>
|
|
||||||
<string name="history_empty">没有历史记录</string>
|
|
||||||
<string name="history_cleared">清除历史记录</string>
|
|
||||||
<string name="item_deleted">项目已删除</string>
|
|
||||||
<string name="delete_item_search_history">确定要从搜索历史记录中删除该项吗?</string>
|
|
||||||
<string name="delete_stream_history_prompt">确定要从观看历史记录中删除该项吗?</string>
|
|
||||||
<string name="delete_all_history_prompt">您确定要删除历史记录中的所有项吗?</string>
|
|
||||||
<string name="title_last_played">上一次播放</string>
|
|
||||||
<string name="title_most_played">最受欢迎</string>
|
|
||||||
<string name="main_page_content">首页内容</string>
|
|
||||||
<string name="blank_page_summary">空白页面</string>
|
|
||||||
<string name="kiosk_page_summary">互动页面</string>
|
|
||||||
<string name="subscription_page_summary">订阅页面</string>
|
|
||||||
<string name="feed_page_summary">Feed 页面</string>
|
|
||||||
<string name="channel_page_summary">频道页面</string>
|
|
||||||
<string name="select_a_channel">选择一个频道</string>
|
|
||||||
<string name="no_channel_subscribed_yet">尚未订阅任何频道</string>
|
|
||||||
<string name="select_a_kiosk">选择一个互动</string>
|
|
||||||
<string name="export_complete_toast">输出</string>
|
|
||||||
<string name="import_complete_toast">接入</string>
|
|
||||||
<string name="no_valid_zip_file">无效的压缩文件</string>
|
|
||||||
<string name="could_not_import_all_files">警告:无法导入所有文件。</string>
|
|
||||||
<string name="override_current_data">这将覆盖您当前的设定。</string>
|
|
||||||
<string name="import_settings">您是否要导入设定?</string>
|
|
||||||
<string name="kiosk">互动</string>
|
|
||||||
<string name="trending">趋势</string>
|
|
||||||
<string name="top_50">前 50</string>
|
|
||||||
<string name="new_and_hot">最新和热门</string>
|
|
||||||
<string name="title_activity_background_player">转到后台播放</string>
|
|
||||||
<string name="title_activity_popup_player">悬浮窗播放</string>
|
|
||||||
<string name="play_queue_remove">移除</string>
|
|
||||||
<string name="play_queue_stream_detail">详细</string>
|
|
||||||
<string name="play_queue_audio_settings">音频设置</string>
|
|
||||||
<string name="hold_to_append">长按加入队列</string>
|
|
||||||
<string name="enqueue_on_background">加入后台播放列表</string>
|
|
||||||
<string name="enqueue_on_popup">加入悬浮窗播放列表</string>
|
|
||||||
<string name="start_here_on_main">从这里开始播放</string>
|
|
||||||
<string name="start_here_on_background">开始在后台播放</string>
|
|
||||||
<string name="start_here_on_popup">开始在新悬浮窗播放</string>
|
|
||||||
<string name="drawer_open">打开抽屉</string>
|
|
||||||
<string name="drawer_close">关闭抽屉</string>
|
|
||||||
<string name="drawer_header_action_paceholder_text">很快就会出现在这里 ;D</string>
|
|
||||||
<string name="preferred_open_action_settings_title">偏好的「开启」动作</string>
|
|
||||||
<string name="preferred_open_action_settings_summary">开启内容时的默认动作 - %s</string>
|
|
||||||
<string name="video_player">视频播放器</string>
|
|
||||||
<string name="background_player">后台播放器</string>
|
|
||||||
<string name="popup_player">悬浮窗播放器</string>
|
|
||||||
<string name="always_ask_open_action">总是询问</string>
|
|
||||||
<string name="preferred_player_fetcher_notification_title">正在获取信息…</string>
|
|
||||||
<string name="preferred_player_fetcher_notification_message">正在载入请求的内容</string>
|
|
||||||
<string name="create_playlist">新的播放列表</string>
|
|
||||||
<string name="delete_playlist">删除</string>
|
|
||||||
<string name="rename_playlist">重命名</string>
|
|
||||||
<string name="playlist_name_input">名称</string>
|
|
||||||
<string name="append_playlist">添加到播放列表</string>
|
|
||||||
<string name="set_as_playlist_thumbnail">设为播放列表缩略图</string>
|
|
||||||
<string name="bookmark_playlist">将播放列表加入书签</string>
|
|
||||||
<string name="playlist_thumbnail_change_success">播放列表缩略图已更改。</string>
|
|
||||||
<string name="playlist_delete_failure">无法删除播放列表。</string>
|
|
||||||
<string name="caption_none">没有字幕</string>
|
|
||||||
<string name="resize_fit">合适</string>
|
|
||||||
<string name="resize_fill">填满</string>
|
|
||||||
<string name="resize_zoom">缩放</string>
|
|
||||||
<string name="caption_auto_generated">自动生成</string>
|
|
||||||
<string name="caption_setting_title">字幕</string>
|
|
||||||
<string name="caption_setting_description">修改播放器字幕文本比列和背景样式。需要重启才能生效。</string>
|
|
||||||
<string name="enable_leak_canary_title">启用 LeakCanary</string>
|
|
||||||
<string name="enable_leak_canary_summary">内存泄漏监视可能导致应用程序在存储时无响应</string>
|
|
||||||
<string name="enable_disposed_exceptions_title">报告活动周期外错误</string>
|
|
||||||
<string name="enable_disposed_exceptions_summary">强制报告在处理完片段或活动周期外发生的无法传递的 Rx 异常</string>
|
|
||||||
<string name="import_export_title">导入/导出</string>
|
|
||||||
<string name="import_title">导入</string>
|
|
||||||
<string name="import_from">导入至</string>
|
|
||||||
<string name="export_to">导出到</string>
|
|
||||||
<string name="import_ongoing">正在导入…</string>
|
|
||||||
<string name="export_ongoing">正在导出…</string>
|
|
||||||
<string name="import_file_title">导入文件</string>
|
|
||||||
<string name="previous_export">之前的导出</string>
|
|
||||||
<string name="subscriptions_import_unsuccessful">无法导入订阅</string>
|
|
||||||
<string name="subscriptions_export_unsuccessful">无法导出订阅</string>
|
|
||||||
<string name="import_youtube_instructions">通过下载导出文件来导入 YouTube 订阅:
|
|
||||||
\n
|
|
||||||
\n1.移至该网址:%1$s
|
|
||||||
\n2.当被询问时登入帐号
|
|
||||||
\n3.应该开始下载(这是导出文件)</string>
|
|
||||||
<string name="import_soundcloud_instructions">通过输入 URL 或 ID 来导入 SoundCloud的配置文件:
|
|
||||||
\n
|
|
||||||
\n1.在浏览器中启用「桌面模式」(该网站不适用于移动设备)
|
|
||||||
\n2.移至该网址:%1$s
|
|
||||||
\n3.当被询问时登入帐号
|
|
||||||
\n4.复制您重定向的配置文件到网址。</string>
|
|
||||||
<string name="import_soundcloud_instructions_hint">您的 ID,soundcloud.com/yourid</string>
|
|
||||||
<string name="import_network_expensive_warning">请记住,此操作可能造成昂贵的网络花费。
|
|
||||||
\n
|
|
||||||
\n您是否要继续?</string>
|
|
||||||
<string name="playback_speed_control">播放速度控制</string>
|
|
||||||
<string name="playback_tempo">速度</string>
|
|
||||||
<string name="playback_pitch">音量</string>
|
|
||||||
<string name="unhook_checkbox">取消链接(可能会导致扭曲)</string>
|
|
||||||
<string name="skip_silence_checkbox">静音时快进</string>
|
|
||||||
<string name="unsubscribe">退订</string>
|
|
||||||
<string name="tab_new">新标签</string>
|
|
||||||
<string name="tab_choose">选择标签</string>
|
|
||||||
<string name="volume_gesture_control_title">音量手势控制</string>
|
|
||||||
<string name="volume_gesture_control_summary">用手势控制播放器的音量</string>
|
|
||||||
<string name="brightness_gesture_control_title">手势控制亮度</string>
|
|
||||||
<string name="brightness_gesture_control_summary">用手势控制播放器的亮度</string>
|
|
||||||
<string name="content_language_title">默认的内容语言</string>
|
|
||||||
<string name="settings_category_updates_title">升级</string>
|
|
||||||
<string name="file_deleted">文件已删除</string>
|
|
||||||
<string name="app_update_notification_channel_name">应用升级通知</string>
|
|
||||||
<string name="app_update_notification_channel_description">新 NewPipe 版本通知</string>
|
|
||||||
<string name="download_to_sdcard_error_title">外储存不可行</string>
|
|
||||||
<string name="download_to_sdcard_error_message">无法下载到外部SD卡。重置下载文件夹位置?</string>
|
|
||||||
<string name="restore_defaults">恢复默认</string>
|
|
||||||
<string name="restore_defaults_confirmation">您真的要恢复至默认吗?</string>
|
|
||||||
<string name="selection">选择</string>
|
|
||||||
<string name="updates_setting_title">升级</string>
|
|
||||||
<string name="list">列表</string>
|
|
||||||
<string name="auto">自动</string>
|
|
||||||
<string name="app_update_notification_content_text">轻按以下载</string>
|
|
||||||
<string name="missions_header_finished">已完成</string>
|
|
||||||
<string name="missions_header_pending">有待</string>
|
|
||||||
<string name="paused">已暂停</string>
|
|
||||||
<string name="queued">已加入队列</string>
|
|
||||||
<string name="post_processing">后处理</string>
|
|
||||||
<string name="enqueue">队列</string>
|
|
||||||
<string name="permission_denied">系统拒绝该行动</string>
|
|
||||||
<string name="download_failed">下载失败</string>
|
|
||||||
<string name="download_finished">下载完成</string>
|
|
||||||
<string name="download_finished_more">%s已下载完毕</string>
|
|
||||||
<string name="generate_unique_name">生成独特的名字</string>
|
|
||||||
<string name="overwrite">覆写</string>
|
|
||||||
<string name="overwrite_finished_warning">同名的已下载文件已经存在</string>
|
|
||||||
<string name="download_already_running">同名下载进行中</string>
|
|
||||||
<string name="show_error">显示错误</string>
|
|
||||||
<string name="label_code">代码</string>
|
|
||||||
<string name="error_file_creation">无法创建该文件</string>
|
|
||||||
<string name="error_permission_denied">系统拒绝此批准</string>
|
|
||||||
<string name="error_ssl_exception">安全连接失败</string>
|
|
||||||
<string name="error_unknown_host">找不到服务器</string>
|
|
||||||
<string name="error_connect_host">连不上服务器</string>
|
|
||||||
<string name="error_http_no_content">伺服器没回送数据</string>
|
|
||||||
<string name="error_http_not_found">找不到</string>
|
|
||||||
<string name="error_postprocessing_failed">后处理失败</string>
|
|
||||||
<string name="clear_finished_download">清除已完毕的下载</string>
|
|
||||||
<string name="stop">停</string>
|
|
||||||
<string name="max_retry_msg">重试上限</string>
|
|
||||||
<string name="max_retry_desc">取消下载前可以尝试的最多次数</string>
|
|
||||||
<string name="pause_downloads_on_mobile">换成手机数据时中断</string>
|
|
||||||
<string name="events">事件</string>
|
|
||||||
<string name="saved_tabs_invalid_json">使用默认选项卡, 读取保存的选项卡时出错</string>
|
|
||||||
<string name="subscribers_count_not_available">订阅者计数不可用</string>
|
|
||||||
<string name="main_page_content_summary">主页上显示的选项卡</string>
|
|
||||||
<string name="conferences">会议</string>
|
|
||||||
<string name="updates_setting_description">显示通知, 以便在新版本可用时提示应用更新</string>
|
|
||||||
<string name="list_view_mode">列表视图模式</string>
|
|
||||||
<string name="grid">网格</string>
|
|
||||||
<string name="switch_view">切换视图</string>
|
|
||||||
<string name="app_update_notification_content_title">NewPipe 更新可用!</string>
|
|
||||||
<string name="error_path_creation">无法创建目标文件夹</string>
|
|
||||||
<string name="error_http_unsupported_range">服务器不接受多线程下载, 请使用 @string/msg_threads = 1重试</string>
|
|
||||||
<string name="pause_downloads_on_mobile_desc">切换至移动数据时有用,尽管一些下载无法被暂停</string>
|
|
||||||
<string name="show_comments_title">显示评论</string>
|
|
||||||
<string name="show_comments_summary">禁用停止显示评论</string>
|
|
||||||
<string name="autoplay_title">自动播放</string>
|
|
||||||
<plurals name="comments">
|
|
||||||
<item quantity="one">评论</item>
|
|
||||||
<item quantity="other"/>
|
|
||||||
</plurals>
|
|
||||||
<string name="no_comments">没有评论</string>
|
|
||||||
<string name="error_unable_to_load_comments">无法加载评论</string>
|
|
||||||
<string name="close">关闭</string>
|
|
||||||
<string name="enable_playback_resume_title">继续播放</string>
|
|
||||||
<string name="enable_playback_resume_summary">恢复上次播放位置</string>
|
|
||||||
<string name="enable_playback_state_lists_title">列表中的位置</string>
|
|
||||||
<string name="enable_playback_state_lists_summary">在列表中显示播放位置指示符</string>
|
|
||||||
<string name="settings_category_clear_data_title">清除数据</string>
|
|
||||||
<string name="watch_history_states_deleted">播放位置已删除。</string>
|
|
||||||
<string name="missing_file">文件被移动或删除</string>
|
|
||||||
<string name="overwrite_unrelated_warning">已存在具有此名称的文件</string>
|
|
||||||
<string name="overwrite_failed">无法覆盖该文件</string>
|
|
||||||
<string name="download_already_pending">同名文件正在等待下载</string>
|
|
||||||
<string name="error_postprocessing_stopped">处理此文件时 NewPipe 已关闭</string>
|
|
||||||
<string name="error_insufficient_storage">设备上没有剩余空间</string>
|
|
||||||
<string name="error_progress_lost">进度丢失,因为文件已被删除</string>
|
|
||||||
<string name="error_timeout">连接超时</string>
|
|
||||||
<string name="confirm_prompt">你确定吗?</string>
|
|
||||||
<string name="enable_queue_limit">限制下载队列</string>
|
|
||||||
<string name="enable_queue_limit_desc">同时只有一个下载进行</string>
|
|
||||||
<string name="start_downloads">开始全部下载</string>
|
|
||||||
<string name="pause_downloads">暂停全部下载</string>
|
|
||||||
<string name="downloads_storage_ask_title">询问下载位置</string>
|
|
||||||
<string name="downloads_storage_ask_summary">每次下载将询问保存的位置</string>
|
|
||||||
<string name="downloads_storage_ask_summary_kitkat">每次下载将询问保存的位置.
|
|
||||||
\n如果要下载到外部SD卡,请选择外部存储访问框架</string>
|
|
||||||
<string name="downloads_storage_use_saf_title">使用存储访问框架</string>
|
|
||||||
<string name="downloads_storage_use_saf_summary">存储访问框架(SAF)允许下载文件到外部SD卡。
|
|
||||||
\n注:一些设备不兼容SAF</string>
|
|
||||||
<string name="clear_playback_states_title">删除回放位置</string>
|
|
||||||
<string name="clear_playback_states_summary">删除所有回放位置</string>
|
|
||||||
<string name="delete_playback_states_alert">删除所有的回放位置吗?</string>
|
|
||||||
<string name="download_choose_new_path">更改要生效的下载文件夹</string>
|
|
||||||
</resources>
|
|
|
@ -20,7 +20,7 @@
|
||||||
<string name="download_path_audio_title">Složka pro stažené audio</string>
|
<string name="download_path_audio_title">Složka pro stažené audio</string>
|
||||||
<string name="default_resolution_title">Výchozí rozlišení</string>
|
<string name="default_resolution_title">Výchozí rozlišení</string>
|
||||||
<string name="play_with_kodi_title">Přehrát pomocí Kodi</string>
|
<string name="play_with_kodi_title">Přehrát pomocí Kodi</string>
|
||||||
<string name="kore_not_found">Aplikace Kore nenalezena. Chcete ji nainstalovat?</string>
|
<string name="kore_not_found">Nainstalovat chybějící aplikaci Kore\?</string>
|
||||||
<string name="view_count_text">%1$s zhlédnutí</string>
|
<string name="view_count_text">%1$s zhlédnutí</string>
|
||||||
<string name="download_path_title">Adresář pro stažená videa</string>
|
<string name="download_path_title">Adresář pro stažená videa</string>
|
||||||
<string name="download_path_summary">Stažená videa jsou uložena tady</string>
|
<string name="download_path_summary">Stažená videa jsou uložena tady</string>
|
||||||
|
@ -61,10 +61,10 @@
|
||||||
<string name="autoplay_by_calling_app_summary">Přehrává video, když je NewPipe otevřen z jiné aplikace</string>
|
<string name="autoplay_by_calling_app_summary">Přehrává video, když je NewPipe otevřen z jiné aplikace</string>
|
||||||
<string name="content">Obsah</string>
|
<string name="content">Obsah</string>
|
||||||
<string name="show_age_restricted_content_title">Věkově omezený obsah</string>
|
<string name="show_age_restricted_content_title">Věkově omezený obsah</string>
|
||||||
<string name="video_is_age_restricted">Zobrazit video s věkovým omezením. Povolit tento obsah lze v \"Nastavení\".</string>
|
<string name="video_is_age_restricted">Zobrazit video s věkovým omezením. Změnit tuto volbu v budoucnu lze v \"Nastavení\".</string>
|
||||||
<string name="duration_live">ŽIVĚ</string>
|
<string name="duration_live">Živě</string>
|
||||||
<string name="light_parsing_error">Nebylo možné kompletně analyzovat stránku</string>
|
<string name="light_parsing_error">Nebylo možné kompletně analyzovat stránku</string>
|
||||||
<string name="main_bg_subtitle">Začni stiskem hledat</string>
|
<string name="main_bg_subtitle">Začni klepnutím na \"Hledat\"</string>
|
||||||
<string name="msg_copied">Zkopírováno do schránky</string>
|
<string name="msg_copied">Zkopírováno do schránky</string>
|
||||||
<string name="msg_wait">Počkejte prosím…</string>
|
<string name="msg_wait">Počkejte prosím…</string>
|
||||||
<string name="msg_running">NewPipe stahuje</string>
|
<string name="msg_running">NewPipe stahuje</string>
|
||||||
|
@ -84,9 +84,9 @@
|
||||||
<string name="report_error">Nahlásit chybu</string>
|
<string name="report_error">Nahlásit chybu</string>
|
||||||
<string name="error_details_headline">Podrobnosti:</string>
|
<string name="error_details_headline">Podrobnosti:</string>
|
||||||
<string name="what_happened_headline">Co se stalo:</string>
|
<string name="what_happened_headline">Co se stalo:</string>
|
||||||
<string name="error_snackbar_action">NAHLÁSIT</string>
|
<string name="error_snackbar_action">Nahlásit</string>
|
||||||
<string name="sorry_string">Omlouváme se, tohle se nemělo stát.</string>
|
<string name="sorry_string">Omlouváme se, tohle se nemělo stát.</string>
|
||||||
<string name="error_report_button_text">Nahlásit chybu přes e-mail</string>
|
<string name="error_report_button_text">Nahlásit tuto chybu přes e-mail</string>
|
||||||
<string name="error_snackbar_message">Omlouváme se, nastaly určité chyby.</string>
|
<string name="error_snackbar_message">Omlouváme se, nastaly určité chyby.</string>
|
||||||
<string name="could_not_load_image">Nepodařilo se nahrát obrázek</string>
|
<string name="could_not_load_image">Nepodařilo se nahrát obrázek</string>
|
||||||
<string name="app_ui_crash">Aplikace/UI spadlo</string>
|
<string name="app_ui_crash">Aplikace/UI spadlo</string>
|
||||||
|
@ -98,12 +98,12 @@
|
||||||
<string name="downloads_title">Stažené soubory</string>
|
<string name="downloads_title">Stažené soubory</string>
|
||||||
<string name="what_device_headline">Info:</string>
|
<string name="what_device_headline">Info:</string>
|
||||||
<string name="your_comment">Vaše poznámky (anglicky):</string>
|
<string name="your_comment">Vaše poznámky (anglicky):</string>
|
||||||
<string name="storage_permission_denied">Oprávnění přístupu do úložiště zamítnuto</string>
|
<string name="storage_permission_denied">Nejdříve udělit oprávnění přístupu k úložišti</string>
|
||||||
<string name="view">Přehrát</string>
|
<string name="view">Přehrát</string>
|
||||||
<string name="add">Nová mise</string>
|
<string name="add">Nová mise</string>
|
||||||
<string name="finish">OK</string>
|
<string name="finish">OK</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Výzva reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Výzva reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Požadována výzva reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Požadována výzva reCAPTCHA</string>
|
||||||
<string name="black_theme_title">Černé</string>
|
<string name="black_theme_title">Černé</string>
|
||||||
<string name="checksum">Kontrolní součet</string>
|
<string name="checksum">Kontrolní součet</string>
|
||||||
|
@ -121,11 +121,11 @@
|
||||||
otevření ve vyskakovacím okně</string>
|
otevření ve vyskakovacím okně</string>
|
||||||
<string name="use_external_video_player_summary">Odstraňuje zvuk v některých rozlišeních</string>
|
<string name="use_external_video_player_summary">Odstraňuje zvuk v některých rozlišeních</string>
|
||||||
<string name="show_higher_resolutions_title">Zobrazovat vyšší rozlišení</string>
|
<string name="show_higher_resolutions_title">Zobrazovat vyšší rozlišení</string>
|
||||||
<string name="show_higher_resolutions_summary">Pouze některá zařízení podporují přehrávání 2K/4K videí</string>
|
<string name="show_higher_resolutions_summary">Pouze některá zařízení dokáží přehrát 2K/4K videa</string>
|
||||||
<string name="default_video_format_title">Výchozí formát videa</string>
|
<string name="default_video_format_title">Výchozí formát videa</string>
|
||||||
<string name="popup_remember_size_pos_title">Pamatovat si velikost a pozici vyskakovacího okna</string>
|
<string name="popup_remember_size_pos_title">Pamatovat si velikost a pozici vyskakovacího okna</string>
|
||||||
<string name="popup_remember_size_pos_summary">Pamatovat si poslední velikost a pozici vyskakovacího okna</string>
|
<string name="popup_remember_size_pos_summary">Pamatovat si poslední velikost a pozici vyskakovacího okna</string>
|
||||||
<string name="popup_mode_share_menu_title">NewPipe režim vyskakovacího okna</string>
|
<string name="popup_mode_share_menu_title">Režim vyskakovacího okna</string>
|
||||||
<string name="subscribe_button_title">Odebírat</string>
|
<string name="subscribe_button_title">Odebírat</string>
|
||||||
<string name="subscribed_button_title">Odebíráno</string>
|
<string name="subscribed_button_title">Odebíráno</string>
|
||||||
<string name="channel_unsubscribed">Odběr zrušen</string>
|
<string name="channel_unsubscribed">Odběr zrušen</string>
|
||||||
|
@ -138,14 +138,14 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="controls_popup_title">V okně</string>
|
<string name="controls_popup_title">V okně</string>
|
||||||
<string name="default_popup_resolution_title">Výchozí rozlišení vyskakovacího okna</string>
|
<string name="default_popup_resolution_title">Výchozí rozlišení vyskakovacího okna</string>
|
||||||
<string name="player_gesture_controls_title">Ovládání přehrávače gesty</string>
|
<string name="player_gesture_controls_title">Ovládání přehrávače gesty</string>
|
||||||
<string name="player_gesture_controls_summary">Používat gesta pro nastavení jasu a hlasitosti přehrávače</string>
|
<string name="player_gesture_controls_summary">Používat gesta pro ovládání jasu a hlasitosti přehrávače</string>
|
||||||
<string name="show_search_suggestions_title">Návrhy vyhledávání</string>
|
<string name="show_search_suggestions_title">Návrhy vyhledávání</string>
|
||||||
<string name="show_search_suggestions_summary">Zobrazovat návrhy při vyhledávání</string>
|
<string name="show_search_suggestions_summary">Zobrazovat návrhy při vyhledávání</string>
|
||||||
<string name="enable_search_history_title">Historie vyhledávání</string>
|
<string name="enable_search_history_title">Historie vyhledávání</string>
|
||||||
<string name="enable_search_history_summary">Hledané výrazy lokálně uchovávat</string>
|
<string name="enable_search_history_summary">Hledané výrazy lokálně uchovávat</string>
|
||||||
<string name="enable_watch_history_title">Historie zhlédnutí</string>
|
<string name="enable_watch_history_title">Historie sledování</string>
|
||||||
<string name="enable_watch_history_summary">Evidovat zhlédnutá videa</string>
|
<string name="enable_watch_history_summary">Evidovat zhlédnutá videa</string>
|
||||||
<string name="resume_on_audio_focus_gain_title">Přehrávat po přechodu do popředí</string>
|
<string name="resume_on_audio_focus_gain_title">Obnovit přehrávání</string>
|
||||||
<string name="resume_on_audio_focus_gain_summary">Pokračovat v přehrávání po přerušení (např. hovor)</string>
|
<string name="resume_on_audio_focus_gain_summary">Pokračovat v přehrávání po přerušení (např. hovor)</string>
|
||||||
<string name="settings_category_player_title">Přehrávač</string>
|
<string name="settings_category_player_title">Přehrávač</string>
|
||||||
<string name="settings_category_player_behavior_title">Chování</string>
|
<string name="settings_category_player_behavior_title">Chování</string>
|
||||||
|
@ -179,9 +179,9 @@ otevření ve vyskakovacím okně</string>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_videos">Žádná videa</string>
|
<string name="no_videos">Žádná videa</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="one">%s video</item>
|
<item quantity="one">%s Video</item>
|
||||||
<item quantity="few">%s videa</item>
|
<item quantity="few">%s Videa</item>
|
||||||
<item quantity="other">%s videí</item>
|
<item quantity="other">%s Videí</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="settings_category_downloads_title">Stahování</string>
|
<string name="settings_category_downloads_title">Stahování</string>
|
||||||
<string name="settings_file_charset_title">Povolené znaky v názvech souborů</string>
|
<string name="settings_file_charset_title">Povolené znaky v názvech souborů</string>
|
||||||
|
@ -214,7 +214,7 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="history_cleared">Historie vymazána</string>
|
<string name="history_cleared">Historie vymazána</string>
|
||||||
<string name="item_deleted">Položka byla odstraněna</string>
|
<string name="item_deleted">Položka byla odstraněna</string>
|
||||||
<string name="show_hold_to_append_title">Zobrazovat tip \"Podržet pro přidání\"</string>
|
<string name="show_hold_to_append_title">Zobrazovat tip \"Podržet pro přidání\"</string>
|
||||||
<string name="show_hold_to_append_summary">Zobrazí se po stisku tlačítek přehrát na pozadí nebo přehrát v okně na stránce s videem</string>
|
<string name="show_hold_to_append_summary">Ukázat tip po stisku na pozadí nebo na popup tlačítko v \"Podrobnostech\" o videu</string>
|
||||||
<string name="background_player_append">Ve frontě přehrávače na pozadí</string>
|
<string name="background_player_append">Ve frontě přehrávače na pozadí</string>
|
||||||
<string name="popup_playing_append">Ve frontě přehrávače v okně</string>
|
<string name="popup_playing_append">Ve frontě přehrávače v okně</string>
|
||||||
<string name="play_all">Přehrát vše</string>
|
<string name="play_all">Přehrát vše</string>
|
||||||
|
@ -248,7 +248,7 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="start_here_on_background">Začít přehrávat na pozadí</string>
|
<string name="start_here_on_background">Začít přehrávat na pozadí</string>
|
||||||
<string name="start_here_on_popup">Začít přehrávat v okně</string>
|
<string name="start_here_on_popup">Začít přehrávat v okně</string>
|
||||||
<string name="donation_title">Donate</string>
|
<string name="donation_title">Donate</string>
|
||||||
<string name="donation_encouragement">NewPipe je vyvíjen dobrovolníky, kteří tráví svůj čas, aby vaše zkušenost s aplikací byla co nejlepší. Vraťte vývojářům něco zpět, aby mohli NewPipe dále zlepšovat a zároveň si vychutnat šálek kávy.</string>
|
<string name="donation_encouragement">NewPipe je vyvíjen dobrovolníky, kteří tráví svůj volný čas, aby vaše zkušenost s aplikací byla co nejlepší. Vraťte vývojářům něco zpět, aby mohli NewPipe dále zlepšovat a zároveň si vychutnat šálek kávy.</string>
|
||||||
<string name="give_back">Daruj</string>
|
<string name="give_back">Daruj</string>
|
||||||
<string name="website_title">Webová stránka</string>
|
<string name="website_title">Webová stránka</string>
|
||||||
<string name="website_encouragement">Pro další informace a novinky navštivte webovou stránku NewPipe.</string>
|
<string name="website_encouragement">Pro další informace a novinky navštivte webovou stránku NewPipe.</string>
|
||||||
|
@ -316,10 +316,10 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="resize_zoom">Zvětšit</string>
|
<string name="resize_zoom">Zvětšit</string>
|
||||||
<string name="settings_category_debug_title">Ladění</string>
|
<string name="settings_category_debug_title">Ladění</string>
|
||||||
<string name="caption_auto_generated">"Automaticky generováno "</string>
|
<string name="caption_auto_generated">"Automaticky generováno "</string>
|
||||||
<string name="enable_leak_canary_title">Povolit službu LeakCanary</string>
|
<string name="enable_leak_canary_title">LeakCanary</string>
|
||||||
<string name="enable_leak_canary_summary">Monitoring úniku paměti může způsobit nereagování aplikace při heap dumpingu</string>
|
<string name="enable_leak_canary_summary">Monitoring úniku paměti může způsobit nereagování aplikace při heap dumpingu</string>
|
||||||
<string name="enable_disposed_exceptions_title">Nahlásit mimo-cyklické chyby</string>
|
<string name="enable_disposed_exceptions_title">Nahlásit mimo-cyklické chyby</string>
|
||||||
<string name="enable_disposed_exceptions_summary">Vynutit vykazování výjimek Rx mimo fragment nebo životnost cyklu po odstranění</string>
|
<string name="enable_disposed_exceptions_summary">Vynutit hlášení nedoručitelných výjimek Rx mimo životnost fragmentu nebo aktivity po odstranění</string>
|
||||||
<string name="use_inexact_seek_title">Použít rychlé nepřesné hledání</string>
|
<string name="use_inexact_seek_title">Použít rychlé nepřesné hledání</string>
|
||||||
<string name="use_inexact_seek_summary">Nepřesné hledání umožní přehrávači posouvat se rychleji, ale se sníženou přesností</string>
|
<string name="use_inexact_seek_summary">Nepřesné hledání umožní přehrávači posouvat se rychleji, ale se sníženou přesností</string>
|
||||||
<string name="download_thumbnail_title">Načítat náhledy</string>
|
<string name="download_thumbnail_title">Načítat náhledy</string>
|
||||||
|
@ -329,7 +329,7 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="metadata_cache_wipe_summary">Odebrat všechna data uložená v mezipaměti</string>
|
<string name="metadata_cache_wipe_summary">Odebrat všechna data uložená v mezipaměti</string>
|
||||||
<string name="metadata_cache_wipe_complete_notice">Mezipaměť metadat vymazána</string>
|
<string name="metadata_cache_wipe_complete_notice">Mezipaměť metadat vymazána</string>
|
||||||
<string name="auto_queue_title">Automatická fronta dalšího streamu</string>
|
<string name="auto_queue_title">Automatická fronta dalšího streamu</string>
|
||||||
<string name="auto_queue_summary">Automaticky připojí související stream při přehrávání posledního streamu v neopakující se frontě</string>
|
<string name="auto_queue_summary">Pokračovat konečnou (neopakující se) frontu playbacku připojením souvisejícího streamu</string>
|
||||||
<string name="file">Soubor</string>
|
<string name="file">Soubor</string>
|
||||||
<string name="invalid_directory">Neexistující složka</string>
|
<string name="invalid_directory">Neexistující složka</string>
|
||||||
<string name="invalid_source">Neexistující zdroj souboru/obsahu</string>
|
<string name="invalid_source">Neexistující zdroj souboru/obsahu</string>
|
||||||
|
@ -365,7 +365,7 @@ otevření ve vyskakovacím okně</string>
|
||||||
\n
|
\n
|
||||||
\nChcete pokračovat?</string>
|
\nChcete pokračovat?</string>
|
||||||
<string name="playback_speed_control">Ovládání rychlosti přehrávání</string>
|
<string name="playback_speed_control">Ovládání rychlosti přehrávání</string>
|
||||||
<string name="playback_tempo">Rychlost</string>
|
<string name="playback_tempo">Tempo</string>
|
||||||
<string name="playback_pitch">Výška tónu</string>
|
<string name="playback_pitch">Výška tónu</string>
|
||||||
<string name="unhook_checkbox">Rozpojit (může způsobit zkreslení)</string>
|
<string name="unhook_checkbox">Rozpojit (může způsobit zkreslení)</string>
|
||||||
<string name="playback_default">Výchozí nastavení</string>
|
<string name="playback_default">Výchozí nastavení</string>
|
||||||
|
@ -414,13 +414,13 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="volume_gesture_control_title">Ovládání hlasitosti gesty</string>
|
<string name="volume_gesture_control_title">Ovládání hlasitosti gesty</string>
|
||||||
<string name="volume_gesture_control_summary">Používat gesta pro ovládání hlasitosti přehrávače</string>
|
<string name="volume_gesture_control_summary">Používat gesta pro ovládání hlasitosti přehrávače</string>
|
||||||
<string name="brightness_gesture_control_title">Ovládání jasu gesty</string>
|
<string name="brightness_gesture_control_title">Ovládání jasu gesty</string>
|
||||||
<string name="brightness_gesture_control_summary">Používat gesta pro kontrolu jasu přehrávače</string>
|
<string name="brightness_gesture_control_summary">Používat gesta pro ovládání jasu přehrávače</string>
|
||||||
<string name="settings_category_updates_title">Aktualizace</string>
|
<string name="settings_category_updates_title">Aktualizace</string>
|
||||||
<string name="file_deleted">Soubor smazán</string>
|
<string name="file_deleted">Soubor smazán</string>
|
||||||
<string name="app_update_notification_channel_name">Notifikace aktualizace aplikace</string>
|
<string name="app_update_notification_channel_name">Notifikace aktualizace aplikace</string>
|
||||||
<string name="app_update_notification_channel_description">Notifikace pro novou verzi NewPipe</string>
|
<string name="app_update_notification_channel_description">Notifikace pro novou verzi NewPipe</string>
|
||||||
<string name="download_to_sdcard_error_title">Externí úložiště není k dispozici</string>
|
<string name="download_to_sdcard_error_title">Externí úložiště není k dispozici</string>
|
||||||
<string name="saved_tabs_invalid_json">Chyba při načítání uložených karet, použijí se výchozí karty</string>
|
<string name="saved_tabs_invalid_json">Nelze načíst uložené karty, takže se použijí výchozí karty</string>
|
||||||
<string name="restore_defaults">Obnovit do výchozího nastavení</string>
|
<string name="restore_defaults">Obnovit do výchozího nastavení</string>
|
||||||
<string name="restore_defaults_confirmation">Chcete obnovit výchozí nastavení\?</string>
|
<string name="restore_defaults_confirmation">Chcete obnovit výchozí nastavení\?</string>
|
||||||
<string name="subscribers_count_not_available">Počet odběratelů není k dispozici</string>
|
<string name="subscribers_count_not_available">Počet odběratelů není k dispozici</string>
|
||||||
|
@ -457,7 +457,7 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="error_path_creation">Cílovou složku nelze vytvořit</string>
|
<string name="error_path_creation">Cílovou složku nelze vytvořit</string>
|
||||||
<string name="error_file_creation">Soubor nelze vytvořit</string>
|
<string name="error_file_creation">Soubor nelze vytvořit</string>
|
||||||
<string name="error_permission_denied">Oprávnění odepřeno systémem</string>
|
<string name="error_permission_denied">Oprávnění odepřeno systémem</string>
|
||||||
<string name="error_ssl_exception">Zabezpečené připojení selhalo</string>
|
<string name="error_ssl_exception">Nelze navázat zabezpečené připojení</string>
|
||||||
<string name="error_unknown_host">Server se nepodařilo najít</string>
|
<string name="error_unknown_host">Server se nepodařilo najít</string>
|
||||||
<string name="error_connect_host">Nelze se připojit k serveru</string>
|
<string name="error_connect_host">Nelze se připojit k serveru</string>
|
||||||
<string name="error_http_no_content">Server neposílá data</string>
|
<string name="error_http_no_content">Server neposílá data</string>
|
||||||
|
@ -483,8 +483,8 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="close">Zavřít</string>
|
<string name="close">Zavřít</string>
|
||||||
<string name="download_to_sdcard_error_message">Stahování na externí SD kartu není možné. Resetovat umístění složky pro stahování\?</string>
|
<string name="download_to_sdcard_error_message">Stahování na externí SD kartu není možné. Resetovat umístění složky pro stahování\?</string>
|
||||||
<string name="enable_playback_resume_title">Pokračovat v přehrávání</string>
|
<string name="enable_playback_resume_title">Pokračovat v přehrávání</string>
|
||||||
<string name="enable_playback_resume_summary">Obnovit poslední přehrávanou pozici</string>
|
<string name="enable_playback_resume_summary">Obnovit poslední pozici přehrávání</string>
|
||||||
<string name="enable_playback_state_lists_title">Pořadí v seznamech</string>
|
<string name="enable_playback_state_lists_title">Pozice v seznamech</string>
|
||||||
<string name="settings_category_clear_data_title">Vymazat data</string>
|
<string name="settings_category_clear_data_title">Vymazat data</string>
|
||||||
<string name="missing_file">Soubor přemístěn nebo smazán</string>
|
<string name="missing_file">Soubor přemístěn nebo smazán</string>
|
||||||
<string name="overwrite_failed">soubor nelze přepsat</string>
|
<string name="overwrite_failed">soubor nelze přepsat</string>
|
||||||
|
@ -492,7 +492,7 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="error_postprocessing_stopped">NewPipe byl ukončen v průběhu zpracovávání souboru</string>
|
<string name="error_postprocessing_stopped">NewPipe byl ukončen v průběhu zpracovávání souboru</string>
|
||||||
<string name="error_insufficient_storage">V zařízení nezbývá žádné místo</string>
|
<string name="error_insufficient_storage">V zařízení nezbývá žádné místo</string>
|
||||||
<string name="error_progress_lost">Postup ztracen, protože soubor byl smazán</string>
|
<string name="error_progress_lost">Postup ztracen, protože soubor byl smazán</string>
|
||||||
<string name="confirm_prompt">Jste si jisti\?</string>
|
<string name="confirm_prompt">Jste si jisti smazáním své historie stahování nebo smazáním všech stažených souborů\?</string>
|
||||||
<string name="enable_queue_limit">Omezit frontu stahování</string>
|
<string name="enable_queue_limit">Omezit frontu stahování</string>
|
||||||
<string name="enable_queue_limit_desc">Najednou se bude stahovat pouze jeden soubor</string>
|
<string name="enable_queue_limit_desc">Najednou se bude stahovat pouze jeden soubor</string>
|
||||||
<string name="start_downloads">Začít stahování</string>
|
<string name="start_downloads">Začít stahování</string>
|
||||||
|
@ -502,9 +502,9 @@ otevření ve vyskakovacím okně</string>
|
||||||
<string name="downloads_storage_ask_summary_kitkat">Budete dotázáni, kam jednotlivé soubory stáhnout.
|
<string name="downloads_storage_ask_summary_kitkat">Budete dotázáni, kam jednotlivé soubory stáhnout.
|
||||||
\nZvolte SAF, pokud si přejete stahovat na externí SD kartu</string>
|
\nZvolte SAF, pokud si přejete stahovat na externí SD kartu</string>
|
||||||
<string name="downloads_storage_use_saf_title">Použít SAF</string>
|
<string name="downloads_storage_use_saf_title">Použít SAF</string>
|
||||||
<string name="downloads_storage_use_saf_summary">Storage Access Framework umožňuje stahovat na externí SD kartu.
|
<string name="downloads_storage_use_saf_summary">\"Storage Access Framework\" umožňuje stahovat na externí SD kartu.
|
||||||
\nUpozornění: některá zařízení jsou nekompatibilní</string>
|
\nUpozornění: některá zařízení jsou nekompatibilní</string>
|
||||||
<string name="enable_playback_state_lists_summary">Ukázat poziční indikátory playbacku v seznamech</string>
|
<string name="enable_playback_state_lists_summary">Zobrazit pozici přehrávání v seznamech</string>
|
||||||
<string name="watch_history_states_deleted">Pozice playbacku smazány.</string>
|
<string name="watch_history_states_deleted">Pozice playbacku smazány.</string>
|
||||||
<string name="error_timeout">Timeout spojení</string>
|
<string name="error_timeout">Timeout spojení</string>
|
||||||
<string name="clear_playback_states_title">Smazat pozice playbacku</string>
|
<string name="clear_playback_states_title">Smazat pozice playbacku</string>
|
||||||
|
@ -526,4 +526,30 @@ otevření ve vyskakovacím okně</string>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="localization_changes_requires_app_restart">Ke změně jazyka dojde po restartu aplikace.</string>
|
<string name="localization_changes_requires_app_restart">Ke změně jazyka dojde po restartu aplikace.</string>
|
||||||
<string name="default_kiosk_page_summary">Výchozí kiosek</string>
|
<string name="default_kiosk_page_summary">Výchozí kiosek</string>
|
||||||
|
<string name="seek_duration_title">Délka přetočení vpřed/zpět</string>
|
||||||
|
<string name="peertube_instance_url_title">Instance PeerTube</string>
|
||||||
|
<string name="peertube_instance_url_summary">Vybrat oblíbené instance PeerTube</string>
|
||||||
|
<string name="peertube_instance_url_help">Vyhledat instance, které se vám líbí, na %s</string>
|
||||||
|
<string name="peertube_instance_add_title">Přidat instanci</string>
|
||||||
|
<string name="peertube_instance_add_help">Zadat URL instance</string>
|
||||||
|
<string name="peertube_instance_add_fail">Instanci nebylo možno potvrdit</string>
|
||||||
|
<string name="peertube_instance_add_https_only">Podporujeme pouze URL s HTTPS</string>
|
||||||
|
<string name="peertube_instance_add_exists">Instance již existuje</string>
|
||||||
|
<string name="local">Místní</string>
|
||||||
|
<string name="recently_added">Přidány nedávno</string>
|
||||||
|
<string name="most_liked">Nejoblíbenější</string>
|
||||||
|
<string name="playlist_no_uploader">Autogenerovány (uploader nenalezen)</string>
|
||||||
|
<string name="recovering">obnovuji</string>
|
||||||
|
<string name="error_download_resource_gone">Toto stahování nelze obnovit</string>
|
||||||
|
<string name="choose_instance_prompt">Vyberte instanci</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">Náhled videa na zamknuté obrazovce</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_summary">Při použití přehrávače na pozadí se náhled videa ukáže na zamknuté obrazovce</string>
|
||||||
|
<string name="clear_download_history">Smazat historii stahování</string>
|
||||||
|
<string name="delete_downloaded_files">Smazat stažené soubory</string>
|
||||||
|
<string name="deleted_downloads">Smazat %1$s stahování</string>
|
||||||
|
<string name="permission_display_over_apps">Souhlasit se zobrazením přes jiné aplikace</string>
|
||||||
|
<string name="app_language_title">Jazyk aplikace</string>
|
||||||
|
<string name="systems_language">Jazyk systému</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Po vyřešení stiskni \"Hotovo\"</string>
|
||||||
|
<string name="recaptcha_done_button">Hotovo</string>
|
||||||
</resources>
|
</resources>
|
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources></resources>
|
|
@ -249,8 +249,8 @@
|
||||||
<string name="no_available_dir">Vælg venligst en tilgængelig downloadmappe</string>
|
<string name="no_available_dir">Vælg venligst en tilgængelig downloadmappe</string>
|
||||||
<string name="msg_popup_permission">Denne tilladelse er nødvendig for at kunne åbne i pop op-tilstand</string>
|
<string name="msg_popup_permission">Denne tilladelse er nødvendig for at kunne åbne i pop op-tilstand</string>
|
||||||
<string name="one_item_deleted">1 element slettet.</string>
|
<string name="one_item_deleted">1 element slettet.</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA-udfordring</string>
|
<string name="title_activity_recaptcha">reCAPTCHA-udfordring</string>
|
||||||
<string name="recaptcha_request_toast">Der blev anmodet om en reCAPTCHA-udfordring</string>
|
<string name="recaptcha_request_toast">Der blev anmodet om en reCAPTCHA-udfordring</string>
|
||||||
<string name="settings_category_downloads_title">Download</string>
|
<string name="settings_category_downloads_title">Download</string>
|
||||||
<string name="settings_file_charset_title">Tilladte tegn i filnavne</string>
|
<string name="settings_file_charset_title">Tilladte tegn i filnavne</string>
|
||||||
|
|
|
@ -110,9 +110,9 @@
|
||||||
<string name="msg_running">NewPipe lädt herunter</string>
|
<string name="msg_running">NewPipe lädt herunter</string>
|
||||||
<string name="msg_running_detail">Für Details antippen</string>
|
<string name="msg_running_detail">Für Details antippen</string>
|
||||||
<string name="msg_url_malform">Ungültige URL oder Internet nicht verfügbar</string>
|
<string name="msg_url_malform">Ungültige URL oder Internet nicht verfügbar</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="black_theme_title">Schwarz</string>
|
<string name="black_theme_title">Schwarz</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA-Aufgabe</string>
|
<string name="title_activity_recaptcha">reCAPTCHA-Aufgabe</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA-Aufgabe angefordert</string>
|
<string name="recaptcha_request_toast">reCAPTCHA-Aufgabe angefordert</string>
|
||||||
<string name="later">Später</string>
|
<string name="later">Später</string>
|
||||||
<string name="yes">Ja</string>
|
<string name="yes">Ja</string>
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
<string name="tab_about">Über</string>
|
<string name="tab_about">Über</string>
|
||||||
<string name="app_description">Freies und schlankes Streaming für Android.</string>
|
<string name="app_description">Freies und schlankes Streaming für Android.</string>
|
||||||
<string name="app_license_title">NewPipes Lizenz</string>
|
<string name="app_license_title">NewPipes Lizenz</string>
|
||||||
<string name="contribution_encouragement">Ob Ideen, Übersetzungen, Design-Änderungen, Code-Aufräumung oder richtig große Code-Änderungen – Hilfe ist immer willkommen. Je mehr geholfen wird, desto besser wird NewPipe!</string>
|
<string name="contribution_encouragement">Ob Ideen, Übersetzungen, Design-Änderungen, Code-Aufräumung oder richtig große Code-Änderungen — Hilfe ist immer willkommen. Je mehr geholfen wird, desto besser wird NewPipe!</string>
|
||||||
<string name="title_licenses">Drittanbieter-Lizenzen</string>
|
<string name="title_licenses">Drittanbieter-Lizenzen</string>
|
||||||
<string name="view_on_github">Auf GitHub ansehen</string>
|
<string name="view_on_github">Auf GitHub ansehen</string>
|
||||||
<string name="contribution_title">Beitragen</string>
|
<string name="contribution_title">Beitragen</string>
|
||||||
|
@ -366,7 +366,7 @@
|
||||||
<string name="import_soundcloud_instructions_hint">yourID, soundcloud.com/yourid</string>
|
<string name="import_soundcloud_instructions_hint">yourID, soundcloud.com/yourid</string>
|
||||||
<string name="no_streams_available_download">Keine Streams zum Download verfügbar</string>
|
<string name="no_streams_available_download">Keine Streams zum Download verfügbar</string>
|
||||||
<string name="preferred_open_action_settings_title">Bevorzugte \"Öffnen\" Aktion</string>
|
<string name="preferred_open_action_settings_title">Bevorzugte \"Öffnen\" Aktion</string>
|
||||||
<string name="preferred_open_action_settings_summary">Standardaktion beim Öffnen von Inhalten - %s</string>
|
<string name="preferred_open_action_settings_summary">Standardaktion beim Öffnen von Inhalten — %s</string>
|
||||||
<string name="caption_setting_title">Untertitel</string>
|
<string name="caption_setting_title">Untertitel</string>
|
||||||
<string name="caption_setting_description">Textgröße und Hintergrund der Untertitel im Player anpassen. Wird erst nach Neustart der App wirksam.</string>
|
<string name="caption_setting_description">Textgröße und Hintergrund der Untertitel im Player anpassen. Wird erst nach Neustart der App wirksam.</string>
|
||||||
<string name="toast_no_player">Keine App zum Abspielen dieser Datei installiert</string>
|
<string name="toast_no_player">Keine App zum Abspielen dieser Datei installiert</string>
|
||||||
|
@ -392,7 +392,7 @@
|
||||||
<string name="limit_data_usage_none_description">Unbegrenzt</string>
|
<string name="limit_data_usage_none_description">Unbegrenzt</string>
|
||||||
<string name="limit_mobile_data_usage_title">Auflösung bei Verwendung mobiler Daten begrenzen</string>
|
<string name="limit_mobile_data_usage_title">Auflösung bei Verwendung mobiler Daten begrenzen</string>
|
||||||
<string name="minimize_on_exit_title">Minimieren beim Appwechsel</string>
|
<string name="minimize_on_exit_title">Minimieren beim Appwechsel</string>
|
||||||
<string name="minimize_on_exit_summary">Aktion beim Umschalten auf eine andere App vom Haupt-Videoplayer - %s</string>
|
<string name="minimize_on_exit_summary">Aktion beim Umschalten auf eine andere App vom Haupt-Videoplayer — %s</string>
|
||||||
<string name="minimize_on_exit_none_description">Keine</string>
|
<string name="minimize_on_exit_none_description">Keine</string>
|
||||||
<string name="minimize_on_exit_background_description">Zum Hintergrund-Player minimieren</string>
|
<string name="minimize_on_exit_background_description">Zum Hintergrund-Player minimieren</string>
|
||||||
<string name="minimize_on_exit_popup_description">Zum Popup-Player minimieren</string>
|
<string name="minimize_on_exit_popup_description">Zum Popup-Player minimieren</string>
|
||||||
|
@ -484,7 +484,7 @@
|
||||||
<string name="watch_history_states_deleted">Wiedergabeposition gelöscht.</string>
|
<string name="watch_history_states_deleted">Wiedergabeposition gelöscht.</string>
|
||||||
<string name="missing_file">Datei verschoben oder gelöscht</string>
|
<string name="missing_file">Datei verschoben oder gelöscht</string>
|
||||||
<string name="overwrite_finished_warning">Eine heruntergeladene Datei mit diesem Namen existiert bereits</string>
|
<string name="overwrite_finished_warning">Eine heruntergeladene Datei mit diesem Namen existiert bereits</string>
|
||||||
<string name="overwrite_failed">kann die Datei nicht überschreiben</string>
|
<string name="overwrite_failed">Datei kann nicht überschrieben werden</string>
|
||||||
<string name="download_already_pending">Es gibt einen ausstehenden Download mit diesem Namen</string>
|
<string name="download_already_pending">Es gibt einen ausstehenden Download mit diesem Namen</string>
|
||||||
<string name="error_postprocessing_stopped">NewPipe wurde während der Verarbeitung der Datei geschlossen</string>
|
<string name="error_postprocessing_stopped">NewPipe wurde während der Verarbeitung der Datei geschlossen</string>
|
||||||
<string name="error_insufficient_storage">Kein Speicherplatz mehr auf dem Gerät</string>
|
<string name="error_insufficient_storage">Kein Speicherplatz mehr auf dem Gerät</string>
|
||||||
|
@ -495,9 +495,9 @@
|
||||||
<string name="start_downloads">Downloads starten</string>
|
<string name="start_downloads">Downloads starten</string>
|
||||||
<string name="pause_downloads">Downloads anhalten</string>
|
<string name="pause_downloads">Downloads anhalten</string>
|
||||||
<string name="downloads_storage_ask_title">Frage, wohin heruntergeladen werden soll</string>
|
<string name="downloads_storage_ask_title">Frage, wohin heruntergeladen werden soll</string>
|
||||||
<string name="downloads_storage_ask_summary">Du wirst gefragt, wohin Du jeden Download speichern willst</string>
|
<string name="downloads_storage_ask_summary">Du wirst gefragt, wohin du jeden Download speichern willst</string>
|
||||||
<string name="downloads_storage_ask_summary_kitkat">Du wirst gefragt, wohin Du jeden Download speichern willst.
|
<string name="downloads_storage_ask_summary_kitkat">Du wirst gefragt, wohin du jeden Download speichern willst.
|
||||||
\nAktiviere diese Option, wenn Du auf die externe SD-Karte herunterladen möchtest</string>
|
\nAktiviere diese Option, wenn du auf die externe SD-Karte herunterladen möchtest</string>
|
||||||
<string name="downloads_storage_use_saf_title">SAF verwenden</string>
|
<string name="downloads_storage_use_saf_title">SAF verwenden</string>
|
||||||
<string name="downloads_storage_use_saf_summary">Das Storage Access Framework erlaubt Downloads auf eine externe SD-Karte.
|
<string name="downloads_storage_use_saf_summary">Das Storage Access Framework erlaubt Downloads auf eine externe SD-Karte.
|
||||||
\nHinweis: Manche Geräte sind nicht kompatibel</string>
|
\nHinweis: Manche Geräte sind nicht kompatibel</string>
|
||||||
|
@ -506,7 +506,7 @@
|
||||||
<string name="delete_playback_states_alert">Alle Wiedergabepositionen löschen\?</string>
|
<string name="delete_playback_states_alert">Alle Wiedergabepositionen löschen\?</string>
|
||||||
<string name="download_choose_new_path">Ändere die Downloadordner, damit sie wirksam werden</string>
|
<string name="download_choose_new_path">Ändere die Downloadordner, damit sie wirksam werden</string>
|
||||||
<string name="drawer_header_description">Dienst umschalten, aktuell ausgewählt:</string>
|
<string name="drawer_header_description">Dienst umschalten, aktuell ausgewählt:</string>
|
||||||
<string name="default_kiosk_page_summary">Quiosque Predefinido</string>
|
<string name="default_kiosk_page_summary">Standard-Kiosk</string>
|
||||||
<string name="no_one_watching">Niemand schaut zu</string>
|
<string name="no_one_watching">Niemand schaut zu</string>
|
||||||
<plurals name="watching">
|
<plurals name="watching">
|
||||||
<item quantity="one">%s Zuschauer</item>
|
<item quantity="one">%s Zuschauer</item>
|
||||||
|
@ -539,4 +539,9 @@
|
||||||
<string name="clear_download_history">Downloadverlauf löschen</string>
|
<string name="clear_download_history">Downloadverlauf löschen</string>
|
||||||
<string name="delete_downloaded_files">Heruntergeladene Dateien löschen</string>
|
<string name="delete_downloaded_files">Heruntergeladene Dateien löschen</string>
|
||||||
<string name="deleted_downloads">%1$s Downloads gelöscht</string>
|
<string name="deleted_downloads">%1$s Downloads gelöscht</string>
|
||||||
|
<string name="permission_display_over_apps">Berechtigung zur Anzeige über andere Apps erteilen</string>
|
||||||
|
<string name="app_language_title">Sprache der App</string>
|
||||||
|
<string name="systems_language">Systemstandard</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">\"Fertig\" drücken, wenn es gelöst wurde</string>
|
||||||
|
<string name="recaptcha_done_button">Fertig</string>
|
||||||
</resources>
|
</resources>
|
|
@ -251,8 +251,8 @@
|
||||||
<string name="msg_popup_permission">Αυτή η άδεια είναι απαραίτητη για
|
<string name="msg_popup_permission">Αυτή η άδεια είναι απαραίτητη για
|
||||||
\nτο άνοιγμα αναδυόμενων παραθύρων</string>
|
\nτο άνοιγμα αναδυόμενων παραθύρων</string>
|
||||||
<string name="one_item_deleted">1 αντικείμενο διαγράφηκε.</string>
|
<string name="one_item_deleted">1 αντικείμενο διαγράφηκε.</string>
|
||||||
<string name="reCaptchaActivity">Αυτόματο τεστ</string>
|
<string name="recaptcha">Αυτόματο τεστ</string>
|
||||||
<string name="reCaptcha_title">Πρόκληση reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Πρόκληση reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Ζητήθηκε πρόκληση reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Ζητήθηκε πρόκληση reCAPTCHA</string>
|
||||||
<string name="settings_file_charset_title">Επιτρεπόμενοι χαρακτήρες σε ονόματα αρχείων</string>
|
<string name="settings_file_charset_title">Επιτρεπόμενοι χαρακτήρες σε ονόματα αρχείων</string>
|
||||||
<string name="settings_file_replacement_character_summary">Οι μη έγκυροι χαρακτήρες αντικαθίστανται με αυτήν την τιμή</string>
|
<string name="settings_file_replacement_character_summary">Οι μη έγκυροι χαρακτήρες αντικαθίστανται με αυτήν την τιμή</string>
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
<string name="upload_date_text">Eldonita je %1$s</string>
|
<string name="upload_date_text">Eldonita je %1$s</string>
|
||||||
<string name="install">Instali</string>
|
<string name="install">Instali</string>
|
||||||
<string name="cancel">Nuligi</string>
|
<string name="cancel">Nuligi</string>
|
||||||
<string name="open_in_browser">Malfermi per krozilo</string>
|
<string name="open_in_browser">Malfermi en retumilo</string>
|
||||||
<string name="share">Konigi</string>
|
<string name="share">Konigi</string>
|
||||||
<string name="download">Elŝuti</string>
|
<string name="download">Elŝuti</string>
|
||||||
<string name="search">Serĉi</string>
|
<string name="search">Serĉi</string>
|
||||||
<string name="settings">Agordoj</string>
|
<string name="settings">Agordoj</string>
|
||||||
<string name="did_you_mean">Ĉu vi signifis: %1$s\?</string>
|
<string name="did_you_mean">Ĉu vi signifis: %1$s\?</string>
|
||||||
<string name="share_dialog_title">Konigi kun</string>
|
<string name="share_dialog_title">Konigi kun</string>
|
||||||
<string name="choose_browser">Elekti krozilon</string>
|
<string name="choose_browser">Elekti retumilon</string>
|
||||||
<string name="screen_rotation">turno</string>
|
<string name="screen_rotation">turno</string>
|
||||||
<string name="use_external_video_player_title">Uzi eksteran filmetoludilon</string>
|
<string name="use_external_video_player_title">Uzi eksteran filmetoludilon</string>
|
||||||
<string name="use_external_audio_player_title">Uzi eksteran sonludilon</string>
|
<string name="use_external_audio_player_title">Uzi eksteran sonludilon</string>
|
||||||
|
@ -66,11 +66,11 @@
|
||||||
<string name="report_error">Signali eraron</string>
|
<string name="report_error">Signali eraron</string>
|
||||||
<string name="video">Filmeto</string>
|
<string name="video">Filmeto</string>
|
||||||
<string name="retry">Reprovi</string>
|
<string name="retry">Reprovi</string>
|
||||||
<string name="main_bg_subtitle">Premu serĉo por komenci</string>
|
<string name="main_bg_subtitle">Premi serĉon por komenci</string>
|
||||||
<string name="no_player_found_toast">Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin).</string>
|
<string name="no_player_found_toast">Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin).</string>
|
||||||
<string name="open_in_popup_mode">Malfermi en ŝprucfenestron modon</string>
|
<string name="open_in_popup_mode">Malfermi en ŝprucfenestran modon</string>
|
||||||
<string name="use_external_video_player_summary">Forigas aŭdon ĉe KELKAJ rezolucioj</string>
|
<string name="use_external_video_player_summary">Forigas aŭdon ĉe KELKAJ rezolucioj</string>
|
||||||
<string name="popup_mode_share_menu_title">NewPipe ŝprucfenestron modon</string>
|
<string name="popup_mode_share_menu_title">NewPipe ŝprucfenestran modon</string>
|
||||||
<string name="subscribe_button_title">Aboni</string>
|
<string name="subscribe_button_title">Aboni</string>
|
||||||
<string name="subscribed_button_title">Abonita</string>
|
<string name="subscribed_button_title">Abonita</string>
|
||||||
<string name="channel_unsubscribed">Kanalo malabonita</string>
|
<string name="channel_unsubscribed">Kanalo malabonita</string>
|
||||||
|
@ -87,12 +87,12 @@
|
||||||
<string name="controls_add_to_playlist_title">Aldonu al</string>
|
<string name="controls_add_to_playlist_title">Aldonu al</string>
|
||||||
<string name="autoplay_by_calling_app_title">Aŭtomata play</string>
|
<string name="autoplay_by_calling_app_title">Aŭtomata play</string>
|
||||||
<string name="autoplay_by_calling_app_summary">Ludas filmeton kiam NewPipe vokas el alia programo</string>
|
<string name="autoplay_by_calling_app_summary">Ludas filmeton kiam NewPipe vokas el alia programo</string>
|
||||||
<string name="default_popup_resolution_title">Defaŭlta rezolucio de la ŝprucfenestro</string>
|
<string name="default_popup_resolution_title">Defaŭlta rezolucio de la ŝprucfenestra ludilo</string>
|
||||||
<string name="show_higher_resolutions_title">Montri pli altajn rezoluciojn</string>
|
<string name="show_higher_resolutions_title">Montri pli altajn rezoluciojn</string>
|
||||||
<string name="show_higher_resolutions_summary">Nur kelkaj aparatoj subtenas ludi 2K / 4K filmetojn</string>
|
<string name="show_higher_resolutions_summary">Nur kelkaj aparatoj subtenas ludi 2K / 4K filmetojn</string>
|
||||||
<string name="default_video_format_title">Defaŭlta fomato de filmeto</string>
|
<string name="default_video_format_title">Defaŭlta fomato de filmeto</string>
|
||||||
<string name="black_theme_title">Nigra</string>
|
<string name="black_theme_title">Nigra</string>
|
||||||
<string name="popup_remember_size_pos_title">Memoru ŝprucfenestron kaj pozicion</string>
|
<string name="popup_remember_size_pos_title">Memoru ŝprucfenestran grandecon kaj pozicion</string>
|
||||||
<string name="popup_remember_size_pos_summary">Memoru lastan grandecon kaj pozicion de ŝprucfenestro</string>
|
<string name="popup_remember_size_pos_summary">Memoru lastan grandecon kaj pozicion de ŝprucfenestro</string>
|
||||||
<string name="use_inexact_seek_title">Uzu rapide, ne preciza serĉon</string>
|
<string name="use_inexact_seek_title">Uzu rapide, ne preciza serĉon</string>
|
||||||
<string name="use_inexact_seek_summary">Ne preciza serĉo permesas al la ludanto serĉi poziciojn pli rapide kun malalta precizeco</string>
|
<string name="use_inexact_seek_summary">Ne preciza serĉo permesas al la ludanto serĉi poziciojn pli rapide kun malalta precizeco</string>
|
||||||
|
@ -109,8 +109,8 @@
|
||||||
<string name="error_report_title">Erarosignalo</string>
|
<string name="error_report_title">Erarosignalo</string>
|
||||||
<string name="could_not_load_image">Ne povis ŝarĝi bildon</string>
|
<string name="could_not_load_image">Ne povis ŝarĝi bildon</string>
|
||||||
<string name="app_ui_crash">Apo kraŝis</string>
|
<string name="app_ui_crash">Apo kraŝis</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA defio</string>
|
<string name="title_activity_recaptcha">reCAPTCHA defio</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA defio petita</string>
|
<string name="recaptcha_request_toast">reCAPTCHA defio petita</string>
|
||||||
<string name="all">Ĉiuj</string>
|
<string name="all">Ĉiuj</string>
|
||||||
<string name="channel">Kanalo</string>
|
<string name="channel">Kanalo</string>
|
||||||
|
@ -120,10 +120,10 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="yes">Jes</string>
|
<string name="yes">Jes</string>
|
||||||
<string name="later">Poste</string>
|
<string name="later">Poste</string>
|
||||||
<string name="msg_popup_permission">Tiu permeso estas necesa por
|
<string name="msg_popup_permission">Tiu permeso estas necesa por
|
||||||
\nmalfermi en ŝprucfenestro modo</string>
|
\nmalfermi en ŝprucfenestra modo</string>
|
||||||
<string name="popup_playing_toast">Ludanta en ŝprucfenestro modo</string>
|
<string name="popup_playing_toast">Ludante en ŝprucfenestra modo</string>
|
||||||
<string name="disabled">Malaktiva</string>
|
<string name="disabled">Malŝatitaj</string>
|
||||||
<string name="filter">Filtri</string>
|
<string name="filter">Filtri</string>
|
||||||
<string name="refresh">Aktualigi</string>
|
<string name="refresh">Aktualigi</string>
|
||||||
<string name="clear">Forviŝi</string>
|
<string name="clear">Forviŝi</string>
|
||||||
|
@ -138,14 +138,14 @@
|
||||||
<string name="settings_category_downloads_title">Elŝuti</string>
|
<string name="settings_category_downloads_title">Elŝuti</string>
|
||||||
<string name="charset_letters_and_digits">Leteroj kaj ciferoj</string>
|
<string name="charset_letters_and_digits">Leteroj kaj ciferoj</string>
|
||||||
<string name="charset_most_special_characters">Plej specialaj karakteroj</string>
|
<string name="charset_most_special_characters">Plej specialaj karakteroj</string>
|
||||||
<string name="resume_on_audio_focus_gain_title">Rekomencu en fokusa gajno</string>
|
<string name="resume_on_audio_focus_gain_title">Rekomenci en fokusa gajno</string>
|
||||||
<string name="resume_on_audio_focus_gain_summary">Daŭrigi la ludon post la interrompaĵoj (ekzemple telefonadoj)</string>
|
<string name="resume_on_audio_focus_gain_summary">Daŭrigi la ludon post la interrompaĵoj (ekzemple telefonadoj)</string>
|
||||||
<string name="enable_search_history_title">Serĉa historio</string>
|
<string name="enable_search_history_title">Serĉa historio</string>
|
||||||
<string name="enable_search_history_summary">Konservi la historio de serĉo lokale</string>
|
<string name="enable_search_history_summary">Konservi la historio de serĉo lokale</string>
|
||||||
<string name="enable_watch_history_title">Rigardu historion</string>
|
<string name="enable_watch_history_title">Rigardu historion</string>
|
||||||
<string name="enable_watch_history_summary">Spuri la viditajn filmetojn</string>
|
<string name="enable_watch_history_summary">Spuri la viditajn filmetojn</string>
|
||||||
<string name="notification_channel_name">Newpipe Sciifo</string>
|
<string name="notification_channel_name">NewPipe Sciigo</string>
|
||||||
<string name="notification_channel_description">Sciigoj por NewPipe fono kaj ŝprucfenestroj ludiloj</string>
|
<string name="notification_channel_description">Sciigoj por NewPipe fonaj kaj ŝprucfenestraj ludiloj</string>
|
||||||
<string name="settings_category_player_title">Ludilo</string>
|
<string name="settings_category_player_title">Ludilo</string>
|
||||||
<string name="settings_category_player_behavior_title">Konduto</string>
|
<string name="settings_category_player_behavior_title">Konduto</string>
|
||||||
<string name="settings_category_history_title">Historio kaj kaŝmemoro</string>
|
<string name="settings_category_history_title">Historio kaj kaŝmemoro</string>
|
||||||
|
@ -156,53 +156,53 @@
|
||||||
<string name="top_50">Supro 50</string>
|
<string name="top_50">Supro 50</string>
|
||||||
<string name="new_and_hot">Nova & varma</string>
|
<string name="new_and_hot">Nova & varma</string>
|
||||||
<string name="show_hold_to_append_title">Montri la indiko « Tenu por aldoni »</string>
|
<string name="show_hold_to_append_title">Montri la indiko « Tenu por aldoni »</string>
|
||||||
<string name="show_hold_to_append_summary">Montri indikon kiam la fono aŭ ŝprucfenestro butono estas premita en la retpaĝo de dalatadoj de la filmeto</string>
|
<string name="show_hold_to_append_summary">Montri indikon kiam la fona aŭ ŝprucfenestra butono estas premita en la retpaĝo de dalatadoj de la filmeto</string>
|
||||||
<string name="background_player_append">Viciĝita en la ludilo en fono</string>
|
<string name="background_player_append">Viciĝita en la fona ludilo</string>
|
||||||
<string name="popup_playing_append">Viciĝita en ŝprucfenestro ludilo</string>
|
<string name="popup_playing_append">Viciĝita en ŝprucfenestra ludilo</string>
|
||||||
<string name="play_all">Ludi ĉiuj</string>
|
<string name="play_all">Ludi ĉiujn</string>
|
||||||
<string name="player_stream_failure">Ne povis ludi tion torenton</string>
|
<string name="player_stream_failure">Ne povis ludi tion torenton</string>
|
||||||
<string name="player_unrecoverable_failure">Neatendebla eraro de ludilo okazis</string>
|
<string name="player_unrecoverable_failure">Neatendebla eraro de ludilo okazis</string>
|
||||||
<string name="player_recoverable_failure">Reakiri el eraro de la ludilo</string>
|
<string name="player_recoverable_failure">Reakiri el eraro de la ludilo</string>
|
||||||
<string name="title_activity_background_player">Fona ludilo</string>
|
<string name="title_activity_background_player">Fona ludilo</string>
|
||||||
<string name="title_activity_popup_player">Ŝprucfenestro ludilo</string>
|
<string name="title_activity_popup_player">Ŝprucfenestra ludilo</string>
|
||||||
<string name="play_queue_remove">Retiri</string>
|
<string name="play_queue_remove">Retiri</string>
|
||||||
<string name="play_queue_stream_detail">Detalado</string>
|
<string name="play_queue_stream_detail">Detalado</string>
|
||||||
<string name="play_queue_audio_settings">Sonaj parametroj</string>
|
<string name="play_queue_audio_settings">Sonaj parametroj</string>
|
||||||
<string name="hold_to_append">Teni por viciĝi</string>
|
<string name="hold_to_append">Teni por viciĝi</string>
|
||||||
<string name="unknown_content">[Nekonata]</string>
|
<string name="unknown_content">[Nekonata]</string>
|
||||||
<string name="enqueue_on_background">Viciĝi en la fono</string>
|
<string name="enqueue_on_background">Viciĝi en la fona ludilo</string>
|
||||||
<string name="enqueue_on_popup">Viciĝi en nova ŝprucfenestro</string>
|
<string name="enqueue_on_popup">Viciĝi en nova ŝprucfenestro</string>
|
||||||
<string name="start_here_on_popup">Komencu ludi en nova ŝprucfenestro</string>
|
<string name="start_here_on_popup">Komenci ludi en nova ŝprucfenestro</string>
|
||||||
<string name="default_content_country_title">Defaŭlta enhava lando</string>
|
<string name="default_content_country_title">Preferata enhavlando</string>
|
||||||
<string name="toggle_orientation">Ŝangi Orientiĝon</string>
|
<string name="toggle_orientation">Ŝangi Orientiĝon</string>
|
||||||
<string name="switch_to_background">Ŝanĝi al Fono</string>
|
<string name="switch_to_background">Ŝanĝi al Fono</string>
|
||||||
<string name="switch_to_popup">Ŝanĝi al ŝprucfenestro</string>
|
<string name="switch_to_popup">Ŝanĝi al ŝprucfenestro</string>
|
||||||
<string name="switch_to_main">Ŝangi al Ĉefa</string>
|
<string name="switch_to_main">Ŝangi al Ĉefa</string>
|
||||||
<string name="service_title">Servo</string>
|
<string name="service_title">Servo</string>
|
||||||
<string name="always">Ĉiam</string>
|
<string name="always">Ĉiam</string>
|
||||||
<string name="just_once">Nur unfoje</string>
|
<string name="just_once">Nur unufoje</string>
|
||||||
<string name="invalid_url_toast">Nevalida ligilo</string>
|
<string name="invalid_url_toast">Nevalida ligilo</string>
|
||||||
<string name="video_streams_empty">Neniuj filmeta torentoj trovitaj</string>
|
<string name="video_streams_empty">Neniuj filmeta torentoj trovitaj</string>
|
||||||
<string name="audio_streams_empty">Neniuj sonaj torentoj trovis</string>
|
<string name="audio_streams_empty">Neniuj sonaj torentoj trovis</string>
|
||||||
<string name="popup_player">Ŝprucfenestro ludilo</string>
|
<string name="popup_player">Ŝprucfenestra ludilo</string>
|
||||||
<string name="import_data_title">Importi la datumbazon</string>
|
<string name="import_data_title">Importi la datumbazon</string>
|
||||||
<string name="export_data_title">Eksporti la datumbazon</string>
|
<string name="export_data_title">Eksporti la datumbazon</string>
|
||||||
<string name="import_data_summary">Anstataŭigas vian aktualan historion kaj abonojn</string>
|
<string name="import_data_summary">Anstataŭigas vian aktualan historion kaj abonojn</string>
|
||||||
<string name="export_data_summary">Eksporti historion, abonojn kaj ludlistoj</string>
|
<string name="export_data_summary">Eksporti historion, abonojn kaj ludlistoj</string>
|
||||||
<string name="always_ask_open_action">Ĉiam peti</string>
|
<string name="always_ask_open_action">Ĉiam peti</string>
|
||||||
<string name="create_playlist">Nova ludlisto</string>
|
<string name="create_playlist">Nova ludlisto</string>
|
||||||
<string name="delete_playlist">Forigi</string>
|
<string name="delete_playlist">Forviŝi</string>
|
||||||
<string name="rename_playlist">Alinomi</string>
|
<string name="rename_playlist">Alinomi</string>
|
||||||
<string name="playlist_name_input">Nomo</string>
|
<string name="playlist_name_input">Nomo</string>
|
||||||
<string name="append_playlist">Aldoni al la ludlisto</string>
|
<string name="append_playlist">Aldoni al la ludlisto</string>
|
||||||
<string name="set_as_playlist_thumbnail">Meti kiel bildeto de ludlisto</string>
|
<string name="set_as_playlist_thumbnail">Meti kiel bildeto de ludlisto</string>
|
||||||
<string name="bookmark_playlist">Legosigno Ludlisto</string>
|
<string name="bookmark_playlist">Legosigno Ludlisto</string>
|
||||||
<string name="unbookmark_playlist">Forigi Legosignon</string>
|
<string name="unbookmark_playlist">Forviŝi Legosignon</string>
|
||||||
<string name="delete_playlist_prompt">Ĉu forigi ĉi tiun ludliston \?</string>
|
<string name="delete_playlist_prompt">Ĉu forviŝi ĉi tiun ludliston \?</string>
|
||||||
<string name="playlist_creation_success">Ludlisto kreita</string>
|
<string name="playlist_creation_success">Ludlisto kreita</string>
|
||||||
<string name="playlist_add_stream_success">Ludlistita</string>
|
<string name="playlist_add_stream_success">Ludlistita</string>
|
||||||
<string name="playlist_thumbnail_change_success">Bildeto de ludlisto ŝanĝiĝita.</string>
|
<string name="playlist_thumbnail_change_success">Bildeto de ludlisto ŝanĝiĝita.</string>
|
||||||
<string name="playlist_delete_failure">Ne povis forigi ludlisto.</string>
|
<string name="playlist_delete_failure">Ne povis forviŝi ludliston.</string>
|
||||||
<string name="settings_category_debug_title">Malcimigi</string>
|
<string name="settings_category_debug_title">Malcimigi</string>
|
||||||
<string name="auto_queue_title">Auto-vico sekva fluo</string>
|
<string name="auto_queue_title">Auto-vico sekva fluo</string>
|
||||||
<string name="auto_queue_summary">Aŭto-aldoni rilatan enhavon kiam ludanta la lasta enhavo en malrepetita atendovico</string>
|
<string name="auto_queue_summary">Aŭto-aldoni rilatan enhavon kiam ludanta la lasta enhavo en malrepetita atendovico</string>
|
||||||
|
@ -218,7 +218,7 @@
|
||||||
\n3. Elŝuto devus komenci (ĝi estas la dosiero de eksporto)</string>
|
\n3. Elŝuto devus komenci (ĝi estas la dosiero de eksporto)</string>
|
||||||
<string name="import_soundcloud_instructions">Importu Soundcloud-n profilon tajpante ĉu la ligilon, ĉu vian ID :
|
<string name="import_soundcloud_instructions">Importu Soundcloud-n profilon tajpante ĉu la ligilon, ĉu vian ID :
|
||||||
\n
|
\n
|
||||||
\n1. Ebligu komputilon modon en krozilo (la retejo malhaveblas por poŝtelefonoj)
|
\n1. Ebligu komputilon modon en retumilon (la retejo malhaveblas por poŝtelefonoj)
|
||||||
\n2. Iru tien: %1$s
|
\n2. Iru tien: %1$s
|
||||||
\n3. Ensalutu kiam oni petas vin
|
\n3. Ensalutu kiam oni petas vin
|
||||||
\n4. Kopiu la ligilon de profilo ke oni kondikis vin.</string>
|
\n4. Kopiu la ligilon de profilo ke oni kondikis vin.</string>
|
||||||
|
@ -237,7 +237,7 @@
|
||||||
<string name="delete_search_history_alert">Ĉu vi volas forviŝi la totalon de la historio de serĉo \?</string>
|
<string name="delete_search_history_alert">Ĉu vi volas forviŝi la totalon de la historio de serĉo \?</string>
|
||||||
<string name="search_history_deleted">Historio de serĉo forviŝita.</string>
|
<string name="search_history_deleted">Historio de serĉo forviŝita.</string>
|
||||||
<string name="limit_mobile_data_usage_title">Limigi rezolucio kiam uzanta moveblan datumon</string>
|
<string name="limit_mobile_data_usage_title">Limigi rezolucio kiam uzanta moveblan datumon</string>
|
||||||
<string name="minimize_on_exit_popup_description">Minimumigi al ŝprucfenestro ludilo</string>
|
<string name="minimize_on_exit_popup_description">Minimumigi al ŝprucfenestra ludilo</string>
|
||||||
<string name="channels">Kanaloj</string>
|
<string name="channels">Kanaloj</string>
|
||||||
<string name="playlists">Ludlistoj</string>
|
<string name="playlists">Ludlistoj</string>
|
||||||
<string name="tracks">Spuroj</string>
|
<string name="tracks">Spuroj</string>
|
||||||
|
@ -252,7 +252,7 @@
|
||||||
<string name="settings_category_updates_title">Ĝisdatigoj</string>
|
<string name="settings_category_updates_title">Ĝisdatigoj</string>
|
||||||
<string name="file_deleted">Dosiero forviŝita</string>
|
<string name="file_deleted">Dosiero forviŝita</string>
|
||||||
<string name="app_update_notification_channel_name">Sciigo por ĝisdatigi apon</string>
|
<string name="app_update_notification_channel_name">Sciigo por ĝisdatigi apon</string>
|
||||||
<string name="app_update_notification_channel_description">Sciigo por nova versio de Newpipe</string>
|
<string name="app_update_notification_channel_description">Sciigo por nova versio de NewPipe</string>
|
||||||
<string name="download_to_sdcard_error_title">Ekstera konservejo malhavebla</string>
|
<string name="download_to_sdcard_error_title">Ekstera konservejo malhavebla</string>
|
||||||
<string name="download_to_sdcard_error_message">Elŝuti al ekstera SD-karto ne eblas. Ĉu vi volas restarigi la elŝutan dosierujon \?</string>
|
<string name="download_to_sdcard_error_message">Elŝuti al ekstera SD-karto ne eblas. Ĉu vi volas restarigi la elŝutan dosierujon \?</string>
|
||||||
<string name="queued">viciĝita</string>
|
<string name="queued">viciĝita</string>
|
||||||
|
@ -281,7 +281,7 @@
|
||||||
<string name="watch_history_states_deleted">Ludaj pozicioj forviŝitaj.</string>
|
<string name="watch_history_states_deleted">Ludaj pozicioj forviŝitaj.</string>
|
||||||
<string name="missing_file">Dosiero movita aŭ forviŝita</string>
|
<string name="missing_file">Dosiero movita aŭ forviŝita</string>
|
||||||
<string name="overwrite_failed">ne povas dispremi la dosieron</string>
|
<string name="overwrite_failed">ne povas dispremi la dosieron</string>
|
||||||
<string name="confirm_prompt">Ĉu vi certas\?</string>
|
<string name="confirm_prompt">Ĉu vi volas forviŝi vian historion de elŝutoj aŭ forviŝi la tutajn elŝutitajn dosierojn\?</string>
|
||||||
<string name="enable_queue_limit">Limigi la elŝutan atendovicon</string>
|
<string name="enable_queue_limit">Limigi la elŝutan atendovicon</string>
|
||||||
<string name="enable_queue_limit_desc">Unu elŝuto ruliĝos en la sama tempo</string>
|
<string name="enable_queue_limit_desc">Unu elŝuto ruliĝos en la sama tempo</string>
|
||||||
<string name="start_downloads">Komenci elŝutojn</string>
|
<string name="start_downloads">Komenci elŝutojn</string>
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
<string name="start">Komenci</string>
|
<string name="start">Komenci</string>
|
||||||
<string name="pause">Paŭzigi</string>
|
<string name="pause">Paŭzigi</string>
|
||||||
<string name="view">Ludi</string>
|
<string name="view">Ludi</string>
|
||||||
<string name="delete">Forigi</string>
|
<string name="delete">Forviŝi</string>
|
||||||
<string name="checksum">Kontrolsumo</string>
|
<string name="checksum">Kontrolsumo</string>
|
||||||
<string name="add">Nova misio</string>
|
<string name="add">Nova misio</string>
|
||||||
<string name="finish">Bone</string>
|
<string name="finish">Bone</string>
|
||||||
|
@ -341,7 +341,7 @@
|
||||||
<string name="tab_licenses">Permesiloj</string>
|
<string name="tab_licenses">Permesiloj</string>
|
||||||
<string name="view_on_github">Rigardu ĉe GitHub</string>
|
<string name="view_on_github">Rigardu ĉe GitHub</string>
|
||||||
<string name="app_license_title">Permesilo de NewPipe</string>
|
<string name="app_license_title">Permesilo de NewPipe</string>
|
||||||
<string name="contribution_encouragement">Ĉu vi havas ideojn pri; traduko, desegnaĵoj ŝanĝoj, purigado de kodo, aŭ realaj masivaj ŝanĝoj—helpo estas ĉiam bonvena. Ju pli oni faras, des pli bonas!</string>
|
<string name="contribution_encouragement">Ĉu vi havas ideojn pri; traduko, desegnaĵoj ŝanĝoj, purigado de kodo, aŭ realaj masivaj ŝanĝoj—helpo ĉiam estas bonvena. Ju pli oni faras, des pli bonas!</string>
|
||||||
<string name="read_full_license">Legi permesilon</string>
|
<string name="read_full_license">Legi permesilon</string>
|
||||||
<string name="contribution_title">Kontribui</string>
|
<string name="contribution_title">Kontribui</string>
|
||||||
<string name="settings_file_charset_title">Permesitaj karakteroj en dosiernomoj</string>
|
<string name="settings_file_charset_title">Permesitaj karakteroj en dosiernomoj</string>
|
||||||
|
@ -353,7 +353,7 @@
|
||||||
<string name="history_disabled">La historio estas malŝatita</string>
|
<string name="history_disabled">La historio estas malŝatita</string>
|
||||||
<string name="action_history">Historio</string>
|
<string name="action_history">Historio</string>
|
||||||
<string name="history_empty">La historio estas malplena</string>
|
<string name="history_empty">La historio estas malplena</string>
|
||||||
<string name="history_cleared">Historio vakigita</string>
|
<string name="history_cleared">Historio forviŝita</string>
|
||||||
<string name="search_no_results">Neniuj rezultoj</string>
|
<string name="search_no_results">Neniuj rezultoj</string>
|
||||||
<string name="empty_subscription_feed_subtitle">Neniu enhavo</string>
|
<string name="empty_subscription_feed_subtitle">Neniu enhavo</string>
|
||||||
<string name="no_subscribers">Neniuj abonantoj</string>
|
<string name="no_subscribers">Neniuj abonantoj</string>
|
||||||
|
@ -377,10 +377,10 @@
|
||||||
<string name="start_here_on_main">Komenci ludi ĉi tie</string>
|
<string name="start_here_on_main">Komenci ludi ĉi tie</string>
|
||||||
<string name="start_here_on_background">Komenci ludi fone</string>
|
<string name="start_here_on_background">Komenci ludi fone</string>
|
||||||
<string name="donation_title">Donaci</string>
|
<string name="donation_title">Donaci</string>
|
||||||
<string name="donation_encouragement">NewPipe estas programada par volontuoj, elspezante tempo por alporti vin la plej bona sperto. Redonu por helpi programistojn plibonigi NewPipe dum ĝuante tason da kafo.</string>
|
<string name="donation_encouragement">NewPipe estas programadita par volontuoj, elspezante tempo por alporti vin la plej bona sperto. Redoni por helpi programistojn plibonigi NewPipe dum ĝuante tason da kafo.</string>
|
||||||
<string name="give_back">Redoni</string>
|
<string name="give_back">Redoni</string>
|
||||||
<string name="website_title">Retejo</string>
|
<string name="website_title">Retejo</string>
|
||||||
<string name="website_encouragement">Vizitu la retejon de NewPipe por pli da informoj kaj novaĵoj.</string>
|
<string name="website_encouragement">Viziti la retejon de NewPipe por pli da informoj kaj novaĵoj.</string>
|
||||||
<string name="drawer_open">Malfermi la tirkeston</string>
|
<string name="drawer_open">Malfermi la tirkeston</string>
|
||||||
<string name="drawer_close">Fermi la tirtekston</string>
|
<string name="drawer_close">Fermi la tirtekston</string>
|
||||||
<string name="external_player_unsupported_link_type">Ekstaraj ludantoj ne suportas tiajn ligilojn</string>
|
<string name="external_player_unsupported_link_type">Ekstaraj ludantoj ne suportas tiajn ligilojn</string>
|
||||||
|
@ -395,8 +395,8 @@
|
||||||
<string name="override_current_data">Ĉi tio nuligos vian nunan aranĝon.</string>
|
<string name="override_current_data">Ĉi tio nuligos vian nunan aranĝon.</string>
|
||||||
<string name="detail_drag_description">Trenu por reorgidi</string>
|
<string name="detail_drag_description">Trenu por reorgidi</string>
|
||||||
<string name="create">Krei</string>
|
<string name="create">Krei</string>
|
||||||
<string name="delete_one">Forigi Unu</string>
|
<string name="delete_one">Forviŝi Unu</string>
|
||||||
<string name="delete_all">Forigi ĉiujn</string>
|
<string name="delete_all">Forviŝi ĉiujn</string>
|
||||||
<string name="dismiss">Rezigni</string>
|
<string name="dismiss">Rezigni</string>
|
||||||
<string name="rename">Alinomi</string>
|
<string name="rename">Alinomi</string>
|
||||||
<string name="delete_stream_history_prompt">Ĉu vi volas forviŝi tion eron el la spekta historio \?</string>
|
<string name="delete_stream_history_prompt">Ĉu vi volas forviŝi tion eron el la spekta historio \?</string>
|
||||||
|
@ -440,11 +440,11 @@
|
||||||
<string name="app_license">NewPipe estas programaro sub rajtoceda permesilo: Vi povas uzi, studi, komuniki kaj plibonigi ĝin kiel vi volas. Precize, vi povas redistribui kaj/aŭ modifi ĝin sub la kondiĉoj de la Ĝenerala Publika Permesilo de GNU, kiel publikigita per la Free Software Foundation, ĉu en la versio 3, ĉu (se vi volas) ajna posta versio.</string>
|
<string name="app_license">NewPipe estas programaro sub rajtoceda permesilo: Vi povas uzi, studi, komuniki kaj plibonigi ĝin kiel vi volas. Precize, vi povas redistribui kaj/aŭ modifi ĝin sub la kondiĉoj de la Ĝenerala Publika Permesilo de GNU, kiel publikigita per la Free Software Foundation, ĉu en la versio 3, ĉu (se vi volas) ajna posta versio.</string>
|
||||||
<string name="import_settings">Ĉu vi volas ankaŭ importi agordojn\?</string>
|
<string name="import_settings">Ĉu vi volas ankaŭ importi agordojn\?</string>
|
||||||
<string name="privacy_policy_title">Privateca politiko de NewPipe</string>
|
<string name="privacy_policy_title">Privateca politiko de NewPipe</string>
|
||||||
<string name="privacy_policy_encouragement">La NewPipe projekto serioze respektas vian privatecon. Konsekvence, la apo ne kolektas ajnan datumo sen via konsento.
|
<string name="privacy_policy_encouragement">La NewPipe projekto serioze respektas vian privatecon. Konsekvence, la apo ne kolektas ajnan datumon sen via konsento.
|
||||||
\nLa privateco politiko de Newpipe detale eksplikas kion datumon estas sendita kaj stokita kiam vi sendas falegosignalon.</string>
|
\nLa privateco politiko de NewPipe detale eksplikas kion datumon estas sendita kaj stokita kiam vi sendas falegosignalon.</string>
|
||||||
<string name="read_privacy_policy">Legi la privatecan politikon</string>
|
<string name="read_privacy_policy">Legi la privatecan politikon</string>
|
||||||
<string name="start_accept_privacy_policy">Por konformiĝi al la Ĝenerala Datum-Protekta Regularon (GDPR), ni allogas vian atenton al la privateca politiko de NewPipe. Bonvolu atentive legi ĝin.
|
<string name="start_accept_privacy_policy">Por konformiĝi al la Ĝenerala Datum-Protekta Regularon (GDPR), ni allogas vian atenton al la privateca politiko de NewPipe. Bonvolu atentive legi ĝin.
|
||||||
\nVi devas akcepti ĝin por sendi nin la cimsignalo.</string>
|
\nVi devas akcepti ĝin por sendi la cimsignalon al ni.</string>
|
||||||
<string name="accept">Akcepti</string>
|
<string name="accept">Akcepti</string>
|
||||||
<string name="decline">Rifuzi</string>
|
<string name="decline">Rifuzi</string>
|
||||||
<string name="limit_data_usage_none_description">Neniu limo</string>
|
<string name="limit_data_usage_none_description">Neniu limo</string>
|
||||||
|
@ -468,8 +468,8 @@
|
||||||
<string name="grid">Krado</string>
|
<string name="grid">Krado</string>
|
||||||
<string name="auto">Aŭto</string>
|
<string name="auto">Aŭto</string>
|
||||||
<string name="switch_view">Ŝanĝi vidon</string>
|
<string name="switch_view">Ŝanĝi vidon</string>
|
||||||
<string name="app_update_notification_content_title">Ĝisdatigo de NewPipe havebla !</string>
|
<string name="app_update_notification_content_title">Ĝisdatigo de NewPipe havebla!</string>
|
||||||
<string name="app_update_notification_content_text">Premu por elŝuti</string>
|
<string name="app_update_notification_content_text">Premi por elŝuti</string>
|
||||||
<string name="missions_header_finished">Finita</string>
|
<string name="missions_header_finished">Finita</string>
|
||||||
<string name="missions_header_pending">Pritraktata</string>
|
<string name="missions_header_pending">Pritraktata</string>
|
||||||
<string name="paused">Paŭzigita</string>
|
<string name="paused">Paŭzigita</string>
|
||||||
|
@ -507,8 +507,8 @@
|
||||||
<string name="default_kiosk_page_summary">Defaŭlta Kiosko</string>
|
<string name="default_kiosk_page_summary">Defaŭlta Kiosko</string>
|
||||||
<string name="no_one_watching">Neniu spektas</string>
|
<string name="no_one_watching">Neniu spektas</string>
|
||||||
<plurals name="watching">
|
<plurals name="watching">
|
||||||
<item quantity="one">%s spektanta</item>
|
<item quantity="one">%s spektanto</item>
|
||||||
<item quantity="other">%s spektanta</item>
|
<item quantity="other">%s spektantoj</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_one_listening">Neniu aŭskultas</string>
|
<string name="no_one_listening">Neniu aŭskultas</string>
|
||||||
<plurals name="listening">
|
<plurals name="listening">
|
||||||
|
@ -525,13 +525,25 @@
|
||||||
<string name="peertube_instance_add_fail">Ne povis validigi instanco</string>
|
<string name="peertube_instance_add_fail">Ne povis validigi instanco</string>
|
||||||
<string name="peertube_instance_add_https_only">Nur HTTPS ligiloj estas subtenitaj</string>
|
<string name="peertube_instance_add_https_only">Nur HTTPS ligiloj estas subtenitaj</string>
|
||||||
<string name="peertube_instance_add_exists">La instanco jam ekzistas</string>
|
<string name="peertube_instance_add_exists">La instanco jam ekzistas</string>
|
||||||
<string name="local">Loka</string>
|
<string name="local">Lokaj</string>
|
||||||
<string name="recently_added">Freŝdate ĝisdatigita</string>
|
<string name="recently_added">Freŝe aldonitaj</string>
|
||||||
<string name="most_liked">La plej ŝatitatj</string>
|
<string name="most_liked">La plej ŝatitaj</string>
|
||||||
<string name="playlist_no_uploader">Aŭtomate generita (neniu alŝutilo trovita)</string>
|
<string name="playlist_no_uploader">Aŭtomate generita (neniu alŝutilo trovita)</string>
|
||||||
<string name="recovering">Reakiranta</string>
|
<string name="recovering">Reakiranta</string>
|
||||||
<string name="error_download_resource_gone">Ne povas reakiri tion elŝuton</string>
|
<string name="error_download_resource_gone">Ne povas reakiri tion elŝuton</string>
|
||||||
<string name="choose_instance_prompt">Elektu instancon</string>
|
<string name="choose_instance_prompt">Elektu instancon</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Enablu bildeta filmeton ĉe ŝlosita ekrano</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Enablu bildeta filmeton ĉe ŝlosita ekrano</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">Uzante la fona ludilo, bildeta filmeto vidiĝos ĉe ŝlosita ekrano</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">Uzante la fona ludilo, bildeta filmeto vidiĝos ĉe ŝlosita ekrano</string>
|
||||||
|
<string name="clear_download_history">Forviŝi la historion de elŝutoj</string>
|
||||||
|
<string name="delete_downloaded_files">Forviŝi elŝutitajn dosierojn</string>
|
||||||
|
<string name="deleted_downloads">%1$s elŝutoj forviŝitaj</string>
|
||||||
|
<string name="videos_string">Filmetoj</string>
|
||||||
|
<string name="permission_display_over_apps">Doni la permeson por afiŝiĝi supre aliaj apoj</string>
|
||||||
|
<string name="app_language_title">Preferata aplingvo</string>
|
||||||
|
<string name="systems_language">Sistemnormo</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Premu « Finita » kiam solvita</string>
|
||||||
|
<string name="recaptcha_done_button">Finita</string>
|
||||||
|
<plurals name="dynamic_seek_duration_description">
|
||||||
|
<item quantity="other">%s sekundoj</item>
|
||||||
|
</plurals>
|
||||||
</resources>
|
</resources>
|
|
@ -115,11 +115,11 @@
|
||||||
<string name="short_thousand">k</string>
|
<string name="short_thousand">k</string>
|
||||||
<string name="short_million">M</string>
|
<string name="short_million">M</string>
|
||||||
<string name="short_billion">MM</string>
|
<string name="short_billion">MM</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="open_in_popup_mode">Abrir en modo emergente</string>
|
<string name="open_in_popup_mode">Abrir en modo emergente</string>
|
||||||
<string name="msg_popup_permission">Se necesita este permiso
|
<string name="msg_popup_permission">Se necesita este permiso
|
||||||
\npara abrir en modo emergente</string>
|
\npara abrir en modo emergente</string>
|
||||||
<string name="reCaptcha_title">Reto reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Reto reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Reto reCAPTCHA requerido</string>
|
<string name="recaptcha_request_toast">Reto reCAPTCHA requerido</string>
|
||||||
<string name="popup_mode_share_menu_title">Modo emergente de NewPipe</string>
|
<string name="popup_mode_share_menu_title">Modo emergente de NewPipe</string>
|
||||||
<string name="popup_playing_toast">Reproduciendo en modo emergente</string>
|
<string name="popup_playing_toast">Reproduciendo en modo emergente</string>
|
||||||
|
@ -221,7 +221,7 @@
|
||||||
<string name="select_a_channel">Seleccione un canal</string>
|
<string name="select_a_channel">Seleccione un canal</string>
|
||||||
<string name="no_channel_subscribed_yet">No hay suscripciones a canales todavía</string>
|
<string name="no_channel_subscribed_yet">No hay suscripciones a canales todavía</string>
|
||||||
<string name="select_a_kiosk">Seleccione un kiosco</string>
|
<string name="select_a_kiosk">Seleccione un kiosco</string>
|
||||||
<string name="kiosk">Kiosco</string>
|
<string name="kiosk">Quiosco</string>
|
||||||
<string name="trending">Tendencias</string>
|
<string name="trending">Tendencias</string>
|
||||||
<string name="top_50">50 mejores</string>
|
<string name="top_50">50 mejores</string>
|
||||||
<string name="show_hold_to_append_summary">Mostrar sugerencia cuando se presiona el botón de 2.º plano o emergente en la página de detalles del vídeo</string>
|
<string name="show_hold_to_append_summary">Mostrar sugerencia cuando se presiona el botón de 2.º plano o emergente en la página de detalles del vídeo</string>
|
||||||
|
@ -425,7 +425,7 @@
|
||||||
<string name="grid">Mostrar como grilla</string>
|
<string name="grid">Mostrar como grilla</string>
|
||||||
<string name="list">Mostrar como lista</string>
|
<string name="list">Mostrar como lista</string>
|
||||||
<string name="clear_finished_download">Limpiar descargas finalizadas</string>
|
<string name="clear_finished_download">Limpiar descargas finalizadas</string>
|
||||||
<string name="confirm_prompt">¿Lo confirma\?</string>
|
<string name="confirm_prompt">¿Quiere limpiar su historial de descargas o eliminar todos los ficheros descargados\?</string>
|
||||||
<string name="stop">Detener</string>
|
<string name="stop">Detener</string>
|
||||||
<string name="max_retry_msg">Intentos máximos</string>
|
<string name="max_retry_msg">Intentos máximos</string>
|
||||||
<string name="max_retry_desc">Cantidad máxima de intentos antes de cancelar la descarga</string>
|
<string name="max_retry_desc">Cantidad máxima de intentos antes de cancelar la descarga</string>
|
||||||
|
@ -517,7 +517,7 @@
|
||||||
<item quantity="one">%s escucha</item>
|
<item quantity="one">%s escucha</item>
|
||||||
<item quantity="other">%s escuchas</item>
|
<item quantity="other">%s escuchas</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="localization_changes_requires_app_restart">El idioma cambiará luego de que la app sea reiniciada.</string>
|
<string name="localization_changes_requires_app_restart">El idioma cambiará luego de que se reinicie la aplicación.</string>
|
||||||
<string name="seek_duration_title">Duración de búsqueda al avanzar y/o retroceder</string>
|
<string name="seek_duration_title">Duración de búsqueda al avanzar y/o retroceder</string>
|
||||||
<string name="peertube_instance_url_title">Instancias de PeerTube</string>
|
<string name="peertube_instance_url_title">Instancias de PeerTube</string>
|
||||||
<string name="peertube_instance_url_summary">Selecciona tus instancias favoritas de PeerTube</string>
|
<string name="peertube_instance_url_summary">Selecciona tus instancias favoritas de PeerTube</string>
|
||||||
|
@ -525,7 +525,7 @@
|
||||||
<string name="peertube_instance_add_title">Agregar instancia</string>
|
<string name="peertube_instance_add_title">Agregar instancia</string>
|
||||||
<string name="peertube_instance_add_help">Ingresar URL de la instancia</string>
|
<string name="peertube_instance_add_help">Ingresar URL de la instancia</string>
|
||||||
<string name="peertube_instance_add_fail">No se pudo validar la instancia</string>
|
<string name="peertube_instance_add_fail">No se pudo validar la instancia</string>
|
||||||
<string name="peertube_instance_add_https_only">Sólo URLs con HTTPS son soportados</string>
|
<string name="peertube_instance_add_https_only">Solo se admiten URL HTTPS</string>
|
||||||
<string name="peertube_instance_add_exists">La instancia ya existe</string>
|
<string name="peertube_instance_add_exists">La instancia ya existe</string>
|
||||||
<string name="local">Local</string>
|
<string name="local">Local</string>
|
||||||
<string name="recently_added">Agregados recientemente</string>
|
<string name="recently_added">Agregados recientemente</string>
|
||||||
|
@ -534,4 +534,12 @@
|
||||||
<string name="choose_instance_prompt">Elige una instancia</string>
|
<string name="choose_instance_prompt">Elige una instancia</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Habilitar miniatura de video de la pantalla de bloqueo</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Habilitar miniatura de video de la pantalla de bloqueo</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">Al usar el reproductor de fondo, se mostrará una miniatura de video en la pantalla de bloqueo</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">Al usar el reproductor de fondo, se mostrará una miniatura de video en la pantalla de bloqueo</string>
|
||||||
|
<string name="clear_download_history">Limpiar historial de descargas</string>
|
||||||
|
<string name="delete_downloaded_files">Eliminar archivos descargados</string>
|
||||||
|
<string name="deleted_downloads">Eliminadas %1$s descargas</string>
|
||||||
|
<string name="permission_display_over_apps">Dar permisos para que se muestre por sobre otras apps</string>
|
||||||
|
<string name="app_language_title">Idioma de aplicación</string>
|
||||||
|
<string name="systems_language">Predeterminado del sistema</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Pulse en «Hecho» cuando esté resuelto</string>
|
||||||
|
<string name="recaptcha_done_button">Hecho</string>
|
||||||
</resources>
|
</resources>
|
|
@ -238,7 +238,7 @@
|
||||||
<string name="msg_popup_permission">Need õigused on vajalikud
|
<string name="msg_popup_permission">Need õigused on vajalikud
|
||||||
\nhüpikakna avamiseks</string>
|
\nhüpikakna avamiseks</string>
|
||||||
<string name="one_item_deleted">Kustutati 1 element.</string>
|
<string name="one_item_deleted">Kustutati 1 element.</string>
|
||||||
<string name="reCaptchaActivity">"reCAPTCHA "</string>
|
<string name="recaptcha">"reCAPTCHA "</string>
|
||||||
<string name="settings_category_downloads_title">Laadi alla</string>
|
<string name="settings_category_downloads_title">Laadi alla</string>
|
||||||
<string name="settings_file_charset_title">Lubatud tähemärgid failinimedes</string>
|
<string name="settings_file_charset_title">Lubatud tähemärgid failinimedes</string>
|
||||||
<string name="settings_file_replacement_character_summary">Vigased tähemärgid asendatakse selle väärtusega</string>
|
<string name="settings_file_replacement_character_summary">Vigased tähemärgid asendatakse selle väärtusega</string>
|
||||||
|
@ -370,7 +370,7 @@
|
||||||
<string name="tracks">Lood</string>
|
<string name="tracks">Lood</string>
|
||||||
<string name="users">Kasutajad</string>
|
<string name="users">Kasutajad</string>
|
||||||
<string name="switch_to_main">Lülitu peamisele</string>
|
<string name="switch_to_main">Lülitu peamisele</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA nõue</string>
|
<string name="title_activity_recaptcha">reCAPTCHA nõue</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA nõude taotlus</string>
|
<string name="recaptcha_request_toast">reCAPTCHA nõude taotlus</string>
|
||||||
<string name="copyright" formatted="true">© %1$s %2$s %3$s alla</string>
|
<string name="copyright" formatted="true">© %1$s %2$s %3$s alla</string>
|
||||||
<string name="app_description">Vaba kergekaaluline Androidi voogesitus.</string>
|
<string name="app_description">Vaba kergekaaluline Androidi voogesitus.</string>
|
||||||
|
|
|
@ -139,8 +139,8 @@
|
||||||
<string name="no_available_dir">Ezarri deskargetarako karpeta bat ezarpenetan geroago</string>
|
<string name="no_available_dir">Ezarri deskargetarako karpeta bat ezarpenetan geroago</string>
|
||||||
<string name="msg_popup_permission">Baimen hau beharrezkoa da
|
<string name="msg_popup_permission">Baimen hau beharrezkoa da
|
||||||
\nlaster-leiho moduan irekitzeko</string>
|
\nlaster-leiho moduan irekitzeko</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA erronka</string>
|
<string name="title_activity_recaptcha">reCAPTCHA erronka</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA erronka eskatu da</string>
|
<string name="recaptcha_request_toast">reCAPTCHA erronka eskatu da</string>
|
||||||
<string name="title_activity_about">NewPipe aplikazioari buruz</string>
|
<string name="title_activity_about">NewPipe aplikazioari buruz</string>
|
||||||
<string name="action_settings">Ezarpenak</string>
|
<string name="action_settings">Ezarpenak</string>
|
||||||
|
@ -199,8 +199,8 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_videos">Bideorik ez</string>
|
<string name="no_videos">Bideorik ez</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="one">Bideoa</item>
|
<item quantity="one">Bideo %</item>
|
||||||
<item quantity="other">Bideoak</item>
|
<item quantity="other">% bideo</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="title_activity_history">Historiala</string>
|
<string name="title_activity_history">Historiala</string>
|
||||||
<string name="title_history_search">Bilatuta</string>
|
<string name="title_history_search">Bilatuta</string>
|
||||||
|
@ -488,7 +488,7 @@
|
||||||
<string name="error_postprocessing_stopped">NewPipe itxi egin da fitxategian lanean zegoela</string>
|
<string name="error_postprocessing_stopped">NewPipe itxi egin da fitxategian lanean zegoela</string>
|
||||||
<string name="error_insufficient_storage">Ez dago lekurik gailuan</string>
|
<string name="error_insufficient_storage">Ez dago lekurik gailuan</string>
|
||||||
<string name="error_progress_lost">Progresioa galdu da, fitxategia ezabatu delako</string>
|
<string name="error_progress_lost">Progresioa galdu da, fitxategia ezabatu delako</string>
|
||||||
<string name="confirm_prompt">Ziur al zaude\?</string>
|
<string name="confirm_prompt">Zure deskargen historiala garbitu nahi duzu ala deskargatutako fitxategi guztiak ezabatu\?</string>
|
||||||
<string name="enable_queue_limit">Mugatu deskargen ilara</string>
|
<string name="enable_queue_limit">Mugatu deskargen ilara</string>
|
||||||
<string name="enable_queue_limit_desc">Deskarga bakarra aldi berean</string>
|
<string name="enable_queue_limit_desc">Deskarga bakarra aldi berean</string>
|
||||||
<string name="start_downloads">Hasi deskargak</string>
|
<string name="start_downloads">Hasi deskargak</string>
|
||||||
|
@ -533,4 +533,14 @@
|
||||||
<string name="recovering">berreskuratzen</string>
|
<string name="recovering">berreskuratzen</string>
|
||||||
<string name="error_download_resource_gone">Ezin da deskarga hau berreskuratu</string>
|
<string name="error_download_resource_gone">Ezin da deskarga hau berreskuratu</string>
|
||||||
<string name="choose_instance_prompt">Aukeratu instantzia</string>
|
<string name="choose_instance_prompt">Aukeratu instantzia</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">Gaitu bideoaren iruditxoa blokeo pantailan</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_summary">Bigarren planoko erreproduzigailua erabiltzean bideoaren iruditxo bat bistaratuko da blokeo pantailan</string>
|
||||||
|
<string name="clear_download_history">Garbitu deskargen historiala</string>
|
||||||
|
<string name="delete_downloaded_files">Ezabatu deskargatutako fitxategiak</string>
|
||||||
|
<string name="deleted_downloads">%1$s deskarga ezabatuta</string>
|
||||||
|
<string name="permission_display_over_apps">Eman beste aplikazioen gainean erakusteko baimena</string>
|
||||||
|
<string name="app_language_title">Aplikazioaren hizkuntza</string>
|
||||||
|
<string name="systems_language">Sisteman lehenetsia</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Sakatu \"Egina\" konponduta dagoenean</string>
|
||||||
|
<string name="recaptcha_done_button">Egina</string>
|
||||||
</resources>
|
</resources>
|
|
@ -296,7 +296,7 @@
|
||||||
<string name="use_inexact_seek_title">زمان فعلی پخش کننده را به صورت تقریبی و سریع جلو ببر</string>
|
<string name="use_inexact_seek_title">زمان فعلی پخش کننده را به صورت تقریبی و سریع جلو ببر</string>
|
||||||
<string name="use_inexact_seek_summary">این گزینه باعث می شود هنگام جلو/عقب کردن زمان تصویر، به جای زمان دقیق انتخاب شده، به زمان غیر دقیق و نزدیک به مکان انتخاب شده برود که این کار سریع تر انجام می شود</string>
|
<string name="use_inexact_seek_summary">این گزینه باعث می شود هنگام جلو/عقب کردن زمان تصویر، به جای زمان دقیق انتخاب شده، به زمان غیر دقیق و نزدیک به مکان انتخاب شده برود که این کار سریع تر انجام می شود</string>
|
||||||
<string name="app_ui_crash">کاره یا رابط کاربری با خطا مواجه شد</string>
|
<string name="app_ui_crash">کاره یا رابط کاربری با خطا مواجه شد</string>
|
||||||
<string name="reCaptchaActivity">ریکپچا</string>
|
<string name="recaptcha">ریکپچا</string>
|
||||||
<string name="settings_category_downloads_title">بارگیری</string>
|
<string name="settings_category_downloads_title">بارگیری</string>
|
||||||
<string name="toggle_orientation">تغییر جهت</string>
|
<string name="toggle_orientation">تغییر جهت</string>
|
||||||
<string name="switch_to_background">تغییر وضعیت به پسزمینه</string>
|
<string name="switch_to_background">تغییر وضعیت به پسزمینه</string>
|
||||||
|
@ -361,7 +361,7 @@
|
||||||
<string name="undo">بازگردانی</string>
|
<string name="undo">بازگردانی</string>
|
||||||
<string name="background_player_append">در صف پخش کننده پسزمینه قرار گرفت</string>
|
<string name="background_player_append">در صف پخش کننده پسزمینه قرار گرفت</string>
|
||||||
<string name="info_labels">چه:\\nدرخواست:\\nزبان درخواست:\\nخدمت:\\nزمان GMT:\\nنگارش:\\nنگارش س.ع:\\nبازه آیپی:</string>
|
<string name="info_labels">چه:\\nدرخواست:\\nزبان درخواست:\\nخدمت:\\nزمان GMT:\\nنگارش:\\nنگارش س.ع:\\nبازه آیپی:</string>
|
||||||
<string name="reCaptcha_title">چالش ریکپچا</string>
|
<string name="title_activity_recaptcha">چالش ریکپچا</string>
|
||||||
<string name="recaptcha_request_toast">نیاز به چالش ریکپچا است</string>
|
<string name="recaptcha_request_toast">نیاز به چالش ریکپچا است</string>
|
||||||
<string name="msg_popup_permission">این مجوز مورد نیاز است
|
<string name="msg_popup_permission">این مجوز مورد نیاز است
|
||||||
\nتا بتوان به حالت تصویر در تصویر رفت</string>
|
\nتا بتوان به حالت تصویر در تصویر رفت</string>
|
||||||
|
|
|
@ -173,8 +173,8 @@
|
||||||
<string name="msg_copied">Kopioitu leikepöydälle</string>
|
<string name="msg_copied">Kopioitu leikepöydälle</string>
|
||||||
<string name="no_available_dir">Valitse saatavilla oleva latauskansio</string>
|
<string name="no_available_dir">Valitse saatavilla oleva latauskansio</string>
|
||||||
<string name="msg_popup_permission">Tämä käyttöoikeus tarvitaan ponnahdusikkunan käytölle</string>
|
<string name="msg_popup_permission">Tämä käyttöoikeus tarvitaan ponnahdusikkunan käytölle</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA Haaste</string>
|
<string name="title_activity_recaptcha">reCAPTCHA Haaste</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA Haaste pyydetty</string>
|
<string name="recaptcha_request_toast">reCAPTCHA Haaste pyydetty</string>
|
||||||
<string name="settings_category_downloads_title">Lataus</string>
|
<string name="settings_category_downloads_title">Lataus</string>
|
||||||
<string name="settings_file_charset_title">Sallitut merkit tiedostonimissä</string>
|
<string name="settings_file_charset_title">Sallitut merkit tiedostonimissä</string>
|
||||||
|
@ -400,4 +400,6 @@
|
||||||
<string name="unsubscribe">Peru tilaus</string>
|
<string name="unsubscribe">Peru tilaus</string>
|
||||||
<string name="tab_new">Uusi välilehti</string>
|
<string name="tab_new">Uusi välilehti</string>
|
||||||
<string name="tab_choose">Valitse välilehti</string>
|
<string name="tab_choose">Valitse välilehti</string>
|
||||||
|
<string name="missions_header_finished">Valmis</string>
|
||||||
|
<string name="enqueue">Jono</string>
|
||||||
</resources>
|
</resources>
|
|
@ -39,4 +39,7 @@
|
||||||
<string name="controls_popup_title">Popup</string>
|
<string name="controls_popup_title">Popup</string>
|
||||||
<string name="controls_add_to_playlist_title">Idagdag sa</string>
|
<string name="controls_add_to_playlist_title">Idagdag sa</string>
|
||||||
<string name="download_path_title">Folder ng pag-download ng video</string>
|
<string name="download_path_title">Folder ng pag-download ng video</string>
|
||||||
|
<string name="download_path_dialog_title">Pumili ng folder kung saan ido-download ang mga bidyo</string>
|
||||||
|
<string name="download_path_audio_summary">Nakaimbak sa folder na ito ang mga nai-download na mga audio files</string>
|
||||||
|
<string name="download_path_audio_dialog_title">Pumili ng folder kung saan ido-download ang mga audio files</string>
|
||||||
</resources>
|
</resources>
|
|
@ -19,14 +19,14 @@
|
||||||
<string name="share">Partager</string>
|
<string name="share">Partager</string>
|
||||||
<string name="share_dialog_title">Partager avec</string>
|
<string name="share_dialog_title">Partager avec</string>
|
||||||
<string name="show_play_with_kodi_summary">Affiche une option pour lire une vidéo via Kodi</string>
|
<string name="show_play_with_kodi_summary">Affiche une option pour lire une vidéo via Kodi</string>
|
||||||
<string name="show_play_with_kodi_title">Afficher l’option « Lire avec Kodi »</string>
|
<string name="show_play_with_kodi_title">Afficher l’option « Lire avec Kodi »</string>
|
||||||
<string name="upload_date_text">Publiée le %1$s</string>
|
<string name="upload_date_text">Publiée le %1$s</string>
|
||||||
<string name="view_count_text">%1$s vues</string>
|
<string name="view_count_text">%1$s vues</string>
|
||||||
<string name="play_audio">Audio</string>
|
<string name="play_audio">Audio</string>
|
||||||
<string name="default_audio_format_title">Format audio par défaut</string>
|
<string name="default_audio_format_title">Format audio par défaut</string>
|
||||||
<string name="download_dialog_title">Télécharger</string>
|
<string name="download_dialog_title">Télécharger</string>
|
||||||
<string name="next_video_title">Suivant</string>
|
<string name="next_video_title">Suivant</string>
|
||||||
<string name="show_next_and_similar_title">Afficher les vidéos « Suivantes » et « Similaires »</string>
|
<string name="show_next_and_similar_title">Afficher les vidéos « Suivantes » et « Similaires »</string>
|
||||||
<string name="url_not_supported_toast">URL non pris en charge</string>
|
<string name="url_not_supported_toast">URL non pris en charge</string>
|
||||||
<string name="settings_category_video_audio_title">Vidéo et audio</string>
|
<string name="settings_category_video_audio_title">Vidéo et audio</string>
|
||||||
<string name="settings_category_other_title">Autre</string>
|
<string name="settings_category_other_title">Autre</string>
|
||||||
|
@ -50,8 +50,8 @@
|
||||||
<string name="download_path_audio_title">Dossier de téléchargement audio</string>
|
<string name="download_path_audio_title">Dossier de téléchargement audio</string>
|
||||||
<string name="download_path_audio_summary">Les fichiers audio téléchargés sont stockés ici</string>
|
<string name="download_path_audio_summary">Les fichiers audio téléchargés sont stockés ici</string>
|
||||||
<string name="download_path_audio_dialog_title">Choisissez le dossier de téléchargement des fichiers audio</string>
|
<string name="download_path_audio_dialog_title">Choisissez le dossier de téléchargement des fichiers audio</string>
|
||||||
<string name="err_dir_create">Impossible de créer le répertoire de téléchargement « %1$s »</string>
|
<string name="err_dir_create">Impossible de créer le répertoire de téléchargement « %1$s »</string>
|
||||||
<string name="info_dir_created">Répertoire de téléchargement « %1$s » créé</string>
|
<string name="info_dir_created">Répertoire de téléchargement « %1$s » créé</string>
|
||||||
<string name="general_error">Erreur</string>
|
<string name="general_error">Erreur</string>
|
||||||
<string name="parsing_error">Impossible d’analyser le site web</string>
|
<string name="parsing_error">Impossible d’analyser le site web</string>
|
||||||
<string name="content_not_available">Contenu indisponible</string>
|
<string name="content_not_available">Contenu indisponible</string>
|
||||||
|
@ -105,18 +105,18 @@
|
||||||
<string name="no_available_dir">Veuillez définir ultérieurement un dossier de téléchargement dans les paramètres</string>
|
<string name="no_available_dir">Veuillez définir ultérieurement un dossier de téléchargement dans les paramètres</string>
|
||||||
<string name="could_not_load_image">Impossible de charger l’image</string>
|
<string name="could_not_load_image">Impossible de charger l’image</string>
|
||||||
<string name="app_ui_crash">L’application a planté</string>
|
<string name="app_ui_crash">L’application a planté</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="black_theme_title">Noir</string>
|
<string name="black_theme_title">Noir</string>
|
||||||
<string name="all">Tout</string>
|
<string name="all">Tout</string>
|
||||||
<string name="channel">Chaîne</string>
|
<string name="channel">Chaîne</string>
|
||||||
<string name="reCaptcha_title">Défi reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Défi reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Défi reCAPTCHA demandé</string>
|
<string name="recaptcha_request_toast">Défi reCAPTCHA demandé</string>
|
||||||
<string name="open_in_popup_mode">Ouvrir en mode flottant</string>
|
<string name="open_in_popup_mode">Ouvrir en mode flottant</string>
|
||||||
<string name="popup_mode_share_menu_title">Mode flottant NewPipe</string>
|
<string name="popup_mode_share_menu_title">Mode flottant NewPipe</string>
|
||||||
<string name="popup_playing_toast">Lecture en mode flottant</string>
|
<string name="popup_playing_toast">Lecture en mode flottant</string>
|
||||||
<string name="yes">Oui</string>
|
<string name="yes">Oui</string>
|
||||||
<string name="later">Plus tard</string>
|
<string name="later">Plus tard</string>
|
||||||
<string name="disabled">Désactivé</string>
|
<string name="disabled">Désactivés</string>
|
||||||
<string name="info_labels">Quoi :\\nRequête :\\nLangue du contenu :\\nService :\\nHeure UTC :\\nPaquet :\\nVersion :\\nVersion du système d’exploitation :</string>
|
<string name="info_labels">Quoi :\\nRequête :\\nLangue du contenu :\\nService :\\nHeure UTC :\\nPaquet :\\nVersion :\\nVersion du système d’exploitation :</string>
|
||||||
<string name="short_thousand">k</string>
|
<string name="short_thousand">k</string>
|
||||||
<string name="short_million">M</string>
|
<string name="short_million">M</string>
|
||||||
|
@ -205,8 +205,8 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_videos">Aucune vidéo</string>
|
<string name="no_videos">Aucune vidéo</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="one">Vidéo</item>
|
<item quantity="one">%s vidéo</item>
|
||||||
<item quantity="other">Vidéos</item>
|
<item quantity="other">%s vidéos</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="charset_most_special_characters">Caractères spéciaux</string>
|
<string name="charset_most_special_characters">Caractères spéciaux</string>
|
||||||
<string name="item_deleted">Élément supprimé</string>
|
<string name="item_deleted">Élément supprimé</string>
|
||||||
|
@ -231,8 +231,8 @@
|
||||||
<string name="play_queue_remove">Retirer</string>
|
<string name="play_queue_remove">Retirer</string>
|
||||||
<string name="play_queue_stream_detail">Détails</string>
|
<string name="play_queue_stream_detail">Détails</string>
|
||||||
<string name="play_queue_audio_settings">Paramètres audios</string>
|
<string name="play_queue_audio_settings">Paramètres audios</string>
|
||||||
<string name="show_hold_to_append_title">Afficher l’astuce « Maintenir pour ajouter »</string>
|
<string name="show_hold_to_append_title">Afficher l’astuce « Maintenir pour ajouter »</string>
|
||||||
<string name="show_hold_to_append_summary">Affiche l’astuce lors de l’appui du bouton « Arrière-plan » ou « Mode flottant » sur la page de détails d’une vidéo</string>
|
<string name="show_hold_to_append_summary">Affiche l’astuce lors de l’appui du bouton « Arrière-plan » ou « Mode flottant » sur la page de détails d’une vidéo</string>
|
||||||
<string name="unknown_content">[Inconnu]</string>
|
<string name="unknown_content">[Inconnu]</string>
|
||||||
<string name="player_recoverable_failure">Récupération depuis l’erreur du lecteur</string>
|
<string name="player_recoverable_failure">Récupération depuis l’erreur du lecteur</string>
|
||||||
<string name="kiosk_page_summary">Kiosque</string>
|
<string name="kiosk_page_summary">Kiosque</string>
|
||||||
|
@ -348,11 +348,11 @@
|
||||||
\n1. Suivez ce lien : %1$s.
|
\n1. Suivez ce lien : %1$s.
|
||||||
\n2. Connectez-vous à votre compte.
|
\n2. Connectez-vous à votre compte.
|
||||||
\n3. Un téléchargement va démarrer (celui du fichier d’exportation).</string>
|
\n3. Un téléchargement va démarrer (celui du fichier d’exportation).</string>
|
||||||
<string name="import_soundcloud_instructions">Veuillez importer un profil SoundCloud en saisissant l’URL de votre profil ou votre identifiant.
|
<string name="import_soundcloud_instructions">Veuillez importer un profil SoundCloud en saisissant l’URL de votre profil ou votre identifiant.
|
||||||
\n
|
\n
|
||||||
\n1. Activez le « mode bureau » dans votre navigateur web (le site n’est pas disponible pour les appareils mobiles).
|
\n1. Activez le « mode bureau » dans votre navigateur web (le site n’est pas disponible pour les appareils mobiles).
|
||||||
\n2. Suivez cette URL : %1$s.
|
\n2. Suivez cette URL : %1$s.
|
||||||
\n3. Connectez-vous à votre compte.
|
\n3. Connectez-vous à votre compte.
|
||||||
\n4. Copiez l’URL du profil vers lequel vous venez d’être redirigé.</string>
|
\n4. Copiez l’URL du profil vers lequel vous venez d’être redirigé.</string>
|
||||||
<string name="import_soundcloud_instructions_hint">votre identifiant, soundcloud.com/votreidentifiant</string>
|
<string name="import_soundcloud_instructions_hint">votre identifiant, soundcloud.com/votreidentifiant</string>
|
||||||
<string name="import_network_expensive_warning">Cette opération peut charger énormément la connexion réseau.
|
<string name="import_network_expensive_warning">Cette opération peut charger énormément la connexion réseau.
|
||||||
|
@ -484,7 +484,7 @@
|
||||||
<string name="error_postprocessing_stopped">NewPipe a été fermé alors qu’il travaillait sur le fichier</string>
|
<string name="error_postprocessing_stopped">NewPipe a été fermé alors qu’il travaillait sur le fichier</string>
|
||||||
<string name="error_insufficient_storage">Aucun espace disponible sur le périphérique</string>
|
<string name="error_insufficient_storage">Aucun espace disponible sur le périphérique</string>
|
||||||
<string name="error_progress_lost">Progression perdue, car le fichier a été effacé</string>
|
<string name="error_progress_lost">Progression perdue, car le fichier a été effacé</string>
|
||||||
<string name="confirm_prompt">Êtes-vous sûr \?</string>
|
<string name="confirm_prompt">Voulez-vous effacer l\'historique de téléchargement ou supprimer tous les fichiers téléchargés \?</string>
|
||||||
<string name="enable_queue_limit">Limiter la file d’attente de téléchargement</string>
|
<string name="enable_queue_limit">Limiter la file d’attente de téléchargement</string>
|
||||||
<string name="enable_queue_limit_desc">Un téléchargement s’exécutera en même temps</string>
|
<string name="enable_queue_limit_desc">Un téléchargement s’exécutera en même temps</string>
|
||||||
<string name="start_downloads">Démarrer les téléchargements</string>
|
<string name="start_downloads">Démarrer les téléchargements</string>
|
||||||
|
@ -508,8 +508,8 @@
|
||||||
<string name="default_kiosk_page_summary">Kiosque par défaut</string>
|
<string name="default_kiosk_page_summary">Kiosque par défaut</string>
|
||||||
<string name="no_one_watching">Personne ne regarde</string>
|
<string name="no_one_watching">Personne ne regarde</string>
|
||||||
<plurals name="watching">
|
<plurals name="watching">
|
||||||
<item quantity="one">%s regarde</item>
|
<item quantity="one">%s spectateur</item>
|
||||||
<item quantity="other">%s regardent</item>
|
<item quantity="other">%s spectateurs</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_one_listening">Personne n\'écoute</string>
|
<string name="no_one_listening">Personne n\'écoute</string>
|
||||||
<plurals name="listening">
|
<plurals name="listening">
|
||||||
|
@ -535,4 +535,12 @@
|
||||||
<string name="playlist_no_uploader">Généré automatiquement (pas de téléverseur trouvé)</string>
|
<string name="playlist_no_uploader">Généré automatiquement (pas de téléverseur trouvé)</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Activer la vidéo miniaturisée sur l\'écran de verrouillage</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Activer la vidéo miniaturisée sur l\'écran de verrouillage</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">En utilisant le lecteur audio, la miniature de la vidéo sera affichée sur l\'écran de verrouillage</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">En utilisant le lecteur audio, la miniature de la vidéo sera affichée sur l\'écran de verrouillage</string>
|
||||||
|
<string name="clear_download_history">Effacer l\'historique de téléchargement</string>
|
||||||
|
<string name="delete_downloaded_files">Supprimer les fichiers téléchargés</string>
|
||||||
|
<string name="deleted_downloads">%1$s téléchargements supprimés</string>
|
||||||
|
<string name="permission_display_over_apps">Autoriser la superposition d\'applis</string>
|
||||||
|
<string name="app_language_title">Langue de l\'application</string>
|
||||||
|
<string name="systems_language">Prédéfini par le système</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Appuyez sur « Terminé » une fois résolu</string>
|
||||||
|
<string name="recaptcha_done_button">Terminé</string>
|
||||||
</resources>
|
</resources>
|
|
@ -266,8 +266,8 @@
|
||||||
\npara abrir o vídeo no modo «popup»</string>
|
\npara abrir o vídeo no modo «popup»</string>
|
||||||
<string name="one_item_deleted">1 elemento foi eliminado.</string>
|
<string name="one_item_deleted">1 elemento foi eliminado.</string>
|
||||||
|
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Desafío reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Desafío reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Desafío reCAPTCHA solicitado</string>
|
<string name="recaptcha_request_toast">Desafío reCAPTCHA solicitado</string>
|
||||||
|
|
||||||
<string name="settings_category_downloads_title">Descarregar</string>
|
<string name="settings_category_downloads_title">Descarregar</string>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<string name="use_external_video_player_title">שימוש בנגן סרטונים חיצוני</string>
|
<string name="use_external_video_player_title">שימוש בנגן סרטונים חיצוני</string>
|
||||||
<string name="use_external_video_player_summary">בחלק מהרזולוציות השמע יוסר</string>
|
<string name="use_external_video_player_summary">בחלק מהרזולוציות השמע יוסר</string>
|
||||||
<string name="use_external_audio_player_title">שימוש בנגן סרטונים חיצוני</string>
|
<string name="use_external_audio_player_title">שימוש בנגן סרטונים חיצוני</string>
|
||||||
<string name="popup_mode_share_menu_title">מצב חלון צף של NewPipe</string>
|
<string name="popup_mode_share_menu_title">מצב חלון צף</string>
|
||||||
<string name="controls_background_title">רקע</string>
|
<string name="controls_background_title">רקע</string>
|
||||||
<string name="controls_popup_title">חלון צף</string>
|
<string name="controls_popup_title">חלון צף</string>
|
||||||
<string name="download_path_title">תיקייה להורדת סרטונים</string>
|
<string name="download_path_title">תיקייה להורדת סרטונים</string>
|
||||||
|
@ -33,9 +33,9 @@
|
||||||
<string name="default_resolution_title">רזולוציית בררת המחדל</string>
|
<string name="default_resolution_title">רזולוציית בררת המחדל</string>
|
||||||
<string name="default_popup_resolution_title">רזולוציית בררת המחדל לחלון צף</string>
|
<string name="default_popup_resolution_title">רזולוציית בררת המחדל לחלון צף</string>
|
||||||
<string name="show_higher_resolutions_title">הצגת רזולוציות גבוהות יותר</string>
|
<string name="show_higher_resolutions_title">הצגת רזולוציות גבוהות יותר</string>
|
||||||
<string name="show_higher_resolutions_summary">רק חלק מהמכשירים תומכים בצפייה בסרטונים ב־2K/4K</string>
|
<string name="show_higher_resolutions_summary">רק חלק מהמכשירים יכולים לנגן סרטונים ב־2K/4K</string>
|
||||||
<string name="play_with_kodi_title">נגינה ב־Kodi</string>
|
<string name="play_with_kodi_title">נגינה ב־Kodi</string>
|
||||||
<string name="kore_not_found">היישומון Kore לא נמצא. להתקין אותו\?</string>
|
<string name="kore_not_found">להתקין את יישומון Kore החסר\?</string>
|
||||||
<string name="show_play_with_kodi_title">הצגת האפשרות לניגון עם Kodi</string>
|
<string name="show_play_with_kodi_title">הצגת האפשרות לניגון עם Kodi</string>
|
||||||
<string name="show_play_with_kodi_summary">הצגת אפשרות לנגן סרטון דרך מרכז המדיה Kodi</string>
|
<string name="show_play_with_kodi_summary">הצגת אפשרות לנגן סרטון דרך מרכז המדיה Kodi</string>
|
||||||
<string name="play_audio">שמע</string>
|
<string name="play_audio">שמע</string>
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
<string name="play_btn_text">נגינה</string>
|
<string name="play_btn_text">נגינה</string>
|
||||||
<string name="content">תוכן</string>
|
<string name="content">תוכן</string>
|
||||||
<string name="show_age_restricted_content_title">תוכן עם הגבלת גיל</string>
|
<string name="show_age_restricted_content_title">תוכן עם הגבלת גיל</string>
|
||||||
<string name="video_is_age_restricted">הצגת סרטונים עם הגבלת גיל. ניתן לאפשר תכנים שכאלו דרך ההגדרות.</string>
|
<string name="video_is_age_restricted">הצגת סרטונים עם הגבלת גיל. ניתן לשנות את זה בעתיד דרך ההגדרות.</string>
|
||||||
<string name="duration_live">חי</string>
|
<string name="duration_live">חי</string>
|
||||||
<string name="downloads">הורדות</string>
|
<string name="downloads">הורדות</string>
|
||||||
<string name="downloads_title">הורדות</string>
|
<string name="downloads_title">הורדות</string>
|
||||||
|
@ -110,10 +110,10 @@
|
||||||
<string name="enable_search_history_summary">שמירת שאילתות החיפוש מקומית</string>
|
<string name="enable_search_history_summary">שמירת שאילתות החיפוש מקומית</string>
|
||||||
<string name="enable_watch_history_title">היסטוריית צפייה</string>
|
<string name="enable_watch_history_title">היסטוריית צפייה</string>
|
||||||
<string name="enable_watch_history_summary">תיעוד הסרטונים שנצפו</string>
|
<string name="enable_watch_history_summary">תיעוד הסרטונים שנצפו</string>
|
||||||
<string name="resume_on_audio_focus_gain_title">להמשיך את הניגון עם החזרת המיקוד</string>
|
<string name="resume_on_audio_focus_gain_title">להמשיך את הניגון</string>
|
||||||
<string name="resume_on_audio_focus_gain_summary">להמשיך לנגן לאחר הפרעות (למשל: שיחות טלפון)</string>
|
<string name="resume_on_audio_focus_gain_summary">להמשיך לנגן לאחר הפרעות (למשל: שיחות טלפון)</string>
|
||||||
<string name="show_hold_to_append_title">להציג את העצה „להחזיק כדי להוסיף לרשימת נגינה”</string>
|
<string name="show_hold_to_append_title">להציג את העצה „להחזיק כדי להוסיף לרשימת נגינה”</string>
|
||||||
<string name="show_hold_to_append_summary">להציג עצה בעת לחיצה על כפתור בנגן רקע או צף בעמוד פרטי סרטון</string>
|
<string name="show_hold_to_append_summary">להציג עצה בעת לחיצה על הרקע או על הכפתור של הנגן הצף ב„פרטים:” על הסרטון</string>
|
||||||
<string name="settings_category_player_title">נגן</string>
|
<string name="settings_category_player_title">נגן</string>
|
||||||
<string name="settings_category_player_behavior_title">התנהגות</string>
|
<string name="settings_category_player_behavior_title">התנהגות</string>
|
||||||
<string name="settings_category_history_title">היסטוריה ומטמון</string>
|
<string name="settings_category_history_title">היסטוריה ומטמון</string>
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
<string name="video">סרטון</string>
|
<string name="video">סרטון</string>
|
||||||
<string name="audio">שמע</string>
|
<string name="audio">שמע</string>
|
||||||
<string name="retry">ניסיון חוזר</string>
|
<string name="retry">ניסיון חוזר</string>
|
||||||
<string name="storage_permission_denied">הגישה לאחסון נדחתה</string>
|
<string name="storage_permission_denied">יש להעניק גישה לאחסון תחילה</string>
|
||||||
<string name="short_thousand">ק׳</string>
|
<string name="short_thousand">ק׳</string>
|
||||||
<string name="short_million">מ׳</string>
|
<string name="short_million">מ׳</string>
|
||||||
<string name="short_billion">מיליארד</string>
|
<string name="short_billion">מיליארד</string>
|
||||||
|
@ -167,10 +167,10 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_videos">אין סרטונים</string>
|
<string name="no_videos">אין סרטונים</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="one">סרטון %s</item>
|
<item quantity="one">סרטון</item>
|
||||||
<item quantity="two">%s סרטונים</item>
|
<item quantity="two">סרטונים</item>
|
||||||
<item quantity="many">%s סרטונים</item>
|
<item quantity="many">סרטונים</item>
|
||||||
<item quantity="other">%s סרטונים</item>
|
<item quantity="other">סרטונים</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="start">התחלה</string>
|
<string name="start">התחלה</string>
|
||||||
<string name="pause">השהיה</string>
|
<string name="pause">השהיה</string>
|
||||||
|
@ -192,8 +192,8 @@
|
||||||
<string name="no_available_dir">נא לציין תיקיית הורדה בהגדרות בהמשך</string>
|
<string name="no_available_dir">נא לציין תיקיית הורדה בהגדרות בהמשך</string>
|
||||||
<string name="msg_popup_permission">הרשאה זו נדרשת לטובת
|
<string name="msg_popup_permission">הרשאה זו נדרשת לטובת
|
||||||
\nפתיחה בחלון צף</string>
|
\nפתיחה בחלון צף</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">אתגר reCAPTCHA</string>
|
<string name="title_activity_recaptcha">אתגר reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">התקבלה בקשה לאתגר reCAPTCHA</string>
|
<string name="recaptcha_request_toast">התקבלה בקשה לאתגר reCAPTCHA</string>
|
||||||
<string name="settings_category_downloads_title">הורדה</string>
|
<string name="settings_category_downloads_title">הורדה</string>
|
||||||
<string name="settings_file_charset_title">רשימת תווים אפשרית בשמות קבצים</string>
|
<string name="settings_file_charset_title">רשימת תווים אפשרית בשמות קבצים</string>
|
||||||
|
@ -216,7 +216,7 @@
|
||||||
<string name="contribution_encouragement">אם יש לך רעיון כלשהו בנוגע לתרגום, שינויי עיצוב, ניקוי הקוד או שינויים מהותיים בקוד - אנו תמיד שמחים לקבל עזרה. ככל שיותר דברים מתבצעים כך היישומון משתפר!</string>
|
<string name="contribution_encouragement">אם יש לך רעיון כלשהו בנוגע לתרגום, שינויי עיצוב, ניקוי הקוד או שינויים מהותיים בקוד - אנו תמיד שמחים לקבל עזרה. ככל שיותר דברים מתבצעים כך היישומון משתפר!</string>
|
||||||
<string name="view_on_github">הצגה ב־GitHub</string>
|
<string name="view_on_github">הצגה ב־GitHub</string>
|
||||||
<string name="donation_title">תרומה</string>
|
<string name="donation_title">תרומה</string>
|
||||||
<string name="donation_encouragement">הפיתוח של NewPipe נערך ע״י מתנדבים שמשקיעים את זמנם כדי להגיש לך את החוויה הטובה ביותר. באפשרותך להעניק בחזרה כדי לסייע למפתחים לשפר את NewPipe בעודם נהנים מכוס קפה.</string>
|
<string name="donation_encouragement">הפיתוח של NewPipe נערך ע״י מתנדבים שמשקיעים את זמנם הפנוי כדי להגיש לך את חווית השימוש הטובה ביותר. באפשרותך להעניק בחזרה כדי לסייע למפתחים לשפר את NewPipe בעודם נהנים מכוס קפה.</string>
|
||||||
<string name="give_back">לתרום בחזרה</string>
|
<string name="give_back">לתרום בחזרה</string>
|
||||||
<string name="website_title">אתר הבית</string>
|
<string name="website_title">אתר הבית</string>
|
||||||
<string name="website_encouragement">מומלץ לבקר באתר של NewPipe לפרטים נוספים ולחדשות.</string>
|
<string name="website_encouragement">מומלץ לבקר באתר של NewPipe לפרטים נוספים ולחדשות.</string>
|
||||||
|
@ -338,7 +338,7 @@
|
||||||
<string name="download_thumbnail_summary">כיבוי האפשרות מונע את טעינת התמונות הממוזערות, חוסך בתקשורת נתונים ובניצולת הזיכרון. שינויים באפשרות זו מוחקים את המטמון בזיכרון ובכונן.</string>
|
<string name="download_thumbnail_summary">כיבוי האפשרות מונע את טעינת התמונות הממוזערות, חוסך בתקשורת נתונים ובניצולת הזיכרון. שינויים באפשרות זו מוחקים את המטמון בזיכרון ובכונן.</string>
|
||||||
<string name="metadata_cache_wipe_summary">הסרת כל נתוני העמודים שבמטמון</string>
|
<string name="metadata_cache_wipe_summary">הסרת כל נתוני העמודים שבמטמון</string>
|
||||||
<string name="auto_queue_title">הוספת התזרים הבא לרשימת הנגינה אוטומטית</string>
|
<string name="auto_queue_title">הוספת התזרים הבא לרשימת הנגינה אוטומטית</string>
|
||||||
<string name="auto_queue_summary">להוסיף אוטומטית תזרים דומה בעת נגינת התזרים האחרון בתור שאינו מחזורי</string>
|
<string name="auto_queue_summary">להמשיך תור נגינה סופית (בלתי מחזורית) על ידי הוספת תזרים קשור</string>
|
||||||
<string name="toggle_orientation">החלפת כיווניות</string>
|
<string name="toggle_orientation">החלפת כיווניות</string>
|
||||||
<string name="switch_to_main">העברה לראשי</string>
|
<string name="switch_to_main">העברה לראשי</string>
|
||||||
<string name="import_data_summary">משכתב את ההיסטוריה והמינויים הנוכחיים שלך</string>
|
<string name="import_data_summary">משכתב את ההיסטוריה והמינויים הנוכחיים שלך</string>
|
||||||
|
@ -377,7 +377,7 @@
|
||||||
<string name="resize_fit">התאמה</string>
|
<string name="resize_fit">התאמה</string>
|
||||||
<string name="caption_setting_title">כתוביות</string>
|
<string name="caption_setting_title">כתוביות</string>
|
||||||
<string name="caption_setting_description">שינוי גודל כותרת הנגן וסגנונות הרקע. נדרשת הפעלה מחדש כדי ששינויים אלה יכנסו לתוקף.</string>
|
<string name="caption_setting_description">שינוי גודל כותרת הנגן וסגנונות הרקע. נדרשת הפעלה מחדש כדי ששינויים אלה יכנסו לתוקף.</string>
|
||||||
<string name="enable_leak_canary_title">הפעלת LeakCanary</string>
|
<string name="enable_leak_canary_title">LeakCanary</string>
|
||||||
<string name="enable_leak_canary_summary">מעקב אחר זליגת זיכרון עשויה לגרום ליישומון להיות בלתי זמין בזמן העתקת תוכן הזיכרון לקובץ</string>
|
<string name="enable_leak_canary_summary">מעקב אחר זליגת זיכרון עשויה לגרום ליישומון להיות בלתי זמין בזמן העתקת תוכן הזיכרון לקובץ</string>
|
||||||
<string name="import_soundcloud_instructions_hint">המזהה שלך, soundcloud.com/המזהה שלך</string>
|
<string name="import_soundcloud_instructions_hint">המזהה שלך, soundcloud.com/המזהה שלך</string>
|
||||||
<string name="import_network_expensive_warning">נא לשים לב כי פעולה זו עשויה להעמיס על תקשורת הנתונים.
|
<string name="import_network_expensive_warning">נא לשים לב כי פעולה זו עשויה להעמיס על תקשורת הנתונים.
|
||||||
|
@ -399,18 +399,18 @@
|
||||||
<string name="tab_new">לשונית חדשה</string>
|
<string name="tab_new">לשונית חדשה</string>
|
||||||
<string name="tab_choose">בחירת לשונית</string>
|
<string name="tab_choose">בחירת לשונית</string>
|
||||||
<string name="volume_gesture_control_title">מחוות בקרת עצמת שמע</string>
|
<string name="volume_gesture_control_title">מחוות בקרת עצמת שמע</string>
|
||||||
<string name="volume_gesture_control_summary">ניתן להשתמש במחוות כדי לשלוט בעצמת השמע של הנגן</string>
|
<string name="volume_gesture_control_summary">שימוש במחוות כדי לשלוט בעצמת השמע של הנגן</string>
|
||||||
<string name="brightness_gesture_control_title">מחוות בקרת בהירות</string>
|
<string name="brightness_gesture_control_title">מחוות בקרת בהירות</string>
|
||||||
<string name="brightness_gesture_control_summary">ניתן להשתמש במחוות כדי לשלוט בבהירות הנגן</string>
|
<string name="brightness_gesture_control_summary">שימוש במחוות כדי לשלוט בבהירות הנגן</string>
|
||||||
<string name="settings_category_updates_title">עדכונים</string>
|
<string name="settings_category_updates_title">עדכונים</string>
|
||||||
<string name="file_deleted">נמחק קובץ</string>
|
<string name="file_deleted">נמחק קובץ</string>
|
||||||
<string name="app_update_notification_channel_name">התראת עדכון יישומון</string>
|
<string name="app_update_notification_channel_name">התראת עדכון יישומון</string>
|
||||||
<string name="app_update_notification_channel_description">התראות על גרסה חדשה של NewPipe</string>
|
<string name="app_update_notification_channel_description">התראות על גרסה חדשה של NewPipe</string>
|
||||||
<string name="download_to_sdcard_error_title">האחסון החיצוני אינו זמין</string>
|
<string name="download_to_sdcard_error_title">האחסון החיצוני אינו זמין</string>
|
||||||
<string name="download_to_sdcard_error_message">אין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\?</string>
|
<string name="download_to_sdcard_error_message">אין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\?</string>
|
||||||
<string name="saved_tabs_invalid_json">נעשה שימוש בלשוניות בררת המחדל, אירעה שגיאה בעת קריאת הלשוניות שנשמרו</string>
|
<string name="saved_tabs_invalid_json">לא ניתן לקרוא לשוניות שמורות, לכן נעשה שימוש באלו של בררת המחדל</string>
|
||||||
<string name="restore_defaults">שחזור בררות מחדל</string>
|
<string name="restore_defaults">שחזור בררות מחדל</string>
|
||||||
<string name="restore_defaults_confirmation">לשחזר את בררות המחדל\?</string>
|
<string name="restore_defaults_confirmation">לשחזר בררות מחדל\?</string>
|
||||||
<string name="subscribers_count_not_available">מספר המנויים אינו זמין</string>
|
<string name="subscribers_count_not_available">מספר המנויים אינו זמין</string>
|
||||||
<string name="main_page_content_summary">אילו לשוניות תופענה בעמוד הראשי</string>
|
<string name="main_page_content_summary">אילו לשוניות תופענה בעמוד הראשי</string>
|
||||||
<string name="selection">בחירה</string>
|
<string name="selection">בחירה</string>
|
||||||
|
@ -456,7 +456,7 @@
|
||||||
<string name="error_file_creation">לא ניתן ליצור את הקובץ</string>
|
<string name="error_file_creation">לא ניתן ליצור את הקובץ</string>
|
||||||
<string name="error_path_creation">לא ניתן ליצור את תיקיית היעד</string>
|
<string name="error_path_creation">לא ניתן ליצור את תיקיית היעד</string>
|
||||||
<string name="error_permission_denied">ההרשאה נדחתה על ידי המערכת</string>
|
<string name="error_permission_denied">ההרשאה נדחתה על ידי המערכת</string>
|
||||||
<string name="error_ssl_exception">החיבור המאובטח נכשל</string>
|
<string name="error_ssl_exception">לא ניתן להקים חיבור מאובטח</string>
|
||||||
<string name="error_unknown_host">לא ניתן למצוא את השרת</string>
|
<string name="error_unknown_host">לא ניתן למצוא את השרת</string>
|
||||||
<string name="error_connect_host">לא ניתן להתחבר לשרת</string>
|
<string name="error_connect_host">לא ניתן להתחבר לשרת</string>
|
||||||
<string name="error_http_no_content">השרת לא שולח נתונים</string>
|
<string name="error_http_no_content">השרת לא שולח נתונים</string>
|
||||||
|
@ -470,7 +470,7 @@
|
||||||
<string name="pause_downloads_on_mobile">לייצר הפרעה ברשתות מדודות</string>
|
<string name="pause_downloads_on_mobile">לייצר הפרעה ברשתות מדודות</string>
|
||||||
<string name="pause_downloads_on_mobile_desc">שימושי בעת מעבר לחיבור רשת סלולרית, למרות שישנן הורדות שלא ניתן להשהות</string>
|
<string name="pause_downloads_on_mobile_desc">שימושי בעת מעבר לחיבור רשת סלולרית, למרות שישנן הורדות שלא ניתן להשהות</string>
|
||||||
<string name="show_comments_title">הצגת תגובות</string>
|
<string name="show_comments_title">הצגת תגובות</string>
|
||||||
<string name="show_comments_summary">יש להשבית כדי להפסיק הצגת תגובות</string>
|
<string name="show_comments_summary">יש להשבית כדי להפסיק הסתרת תגובות</string>
|
||||||
<string name="autoplay_title">ניגון אוטומטי</string>
|
<string name="autoplay_title">ניגון אוטומטי</string>
|
||||||
<plurals name="comments">
|
<plurals name="comments">
|
||||||
<item quantity="one">תגובות</item>
|
<item quantity="one">תגובות</item>
|
||||||
|
@ -506,7 +506,7 @@
|
||||||
<string name="downloads_storage_ask_summary_kitkat">תוצג שאלה היכן לשמור כל הורדה.
|
<string name="downloads_storage_ask_summary_kitkat">תוצג שאלה היכן לשמור כל הורדה.
|
||||||
\nיש להפעיל זאת אם ברצונך להוריד לכרטיס SD חיצוני</string>
|
\nיש להפעיל זאת אם ברצונך להוריד לכרטיס SD חיצוני</string>
|
||||||
<string name="downloads_storage_use_saf_title">שימוש ב־SAF</string>
|
<string name="downloads_storage_use_saf_title">שימוש ב־SAF</string>
|
||||||
<string name="downloads_storage_use_saf_summary">תשתית גישה לאחסון מאפשרת הורדות לכרטיס SD חיוני.
|
<string name="downloads_storage_use_saf_summary">‚תשתית גישה לאחסון’ מאפשרת הורדות לכרטיס SD חיצוני.
|
||||||
\nלתשומת לבך: חלק מהמכשירים אינם נתמכים</string>
|
\nלתשומת לבך: חלק מהמכשירים אינם נתמכים</string>
|
||||||
<string name="clear_playback_states_title">מחיקת מיקומי נגינה</string>
|
<string name="clear_playback_states_title">מחיקת מיקומי נגינה</string>
|
||||||
<string name="clear_playback_states_summary">מחיקת כל מיקומי הנגינה</string>
|
<string name="clear_playback_states_summary">מחיקת כל מיקומי הנגינה</string>
|
||||||
|
@ -532,7 +532,7 @@
|
||||||
<string name="seek_duration_title">משך קפיצה מהירה קדימה/אחורה</string>
|
<string name="seek_duration_title">משך קפיצה מהירה קדימה/אחורה</string>
|
||||||
<string name="peertube_instance_url_title">מופעים של PeerTube</string>
|
<string name="peertube_instance_url_title">מופעים של PeerTube</string>
|
||||||
<string name="peertube_instance_url_summary">נא לבחור את מופעי ה־PeerTube המועדפים עליך</string>
|
<string name="peertube_instance_url_summary">נא לבחור את מופעי ה־PeerTube המועדפים עליך</string>
|
||||||
<string name="peertube_instance_url_help">איתור המופעים שהכי מתאימים לך תחת %s</string>
|
<string name="peertube_instance_url_help">איתור המופעים האהובים עליך תחת %s</string>
|
||||||
<string name="peertube_instance_add_title">הוספת מופע</string>
|
<string name="peertube_instance_add_title">הוספת מופע</string>
|
||||||
<string name="peertube_instance_add_help">נא להכניס כתובת מופע</string>
|
<string name="peertube_instance_add_help">נא להכניס כתובת מופע</string>
|
||||||
<string name="peertube_instance_add_fail">לא ניתן לאמת את המופע</string>
|
<string name="peertube_instance_add_fail">לא ניתן לאמת את המופע</string>
|
||||||
|
@ -545,9 +545,14 @@
|
||||||
<string name="recovering">בשחזור</string>
|
<string name="recovering">בשחזור</string>
|
||||||
<string name="error_download_resource_gone">לא ניתן לשחזר את ההורדה הזאת</string>
|
<string name="error_download_resource_gone">לא ניתן לשחזר את ההורדה הזאת</string>
|
||||||
<string name="choose_instance_prompt">נא לבחור מופע</string>
|
<string name="choose_instance_prompt">נא לבחור מופע</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">הפעלת תמונה מוקטנת של הסרטון במסך הנעילה</string>
|
<string name="enable_lock_screen_video_thumbnail_title">תמונה מוקטנת של הסרטון במסך הנעילה</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">בעת השימוש בנגן הרקע תופיע תמונה מוקטנת של הסרטון על מסך הנעילה</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">תמונה מוקטנת של הסרטון תופיע על מסך הנעילה בעת שימוש בנגן הרקע</string>
|
||||||
<string name="clear_download_history">מחיקת היסטוריית ההורדות</string>
|
<string name="clear_download_history">מחיקת היסטוריית ההורדות</string>
|
||||||
<string name="delete_downloaded_files">למחוק את הקבצים שהורדתי</string>
|
<string name="delete_downloaded_files">למחוק את הקבצים שהורדתי</string>
|
||||||
<string name="deleted_downloads">נמחקו %1$s הורדות</string>
|
<string name="deleted_downloads">נמחקו %1$s הורדות</string>
|
||||||
|
<string name="permission_display_over_apps">יש להעניק הרשאה להציג על גבי יישומונים אחרים</string>
|
||||||
|
<string name="app_language_title">שפת היישומון</string>
|
||||||
|
<string name="systems_language">בררת המחדל של המערכת</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">יש ללחוץ על „סיום” לאחר הפתירה</string>
|
||||||
|
<string name="recaptcha_done_button">סיום</string>
|
||||||
</resources>
|
</resources>
|
|
@ -206,8 +206,8 @@
|
||||||
<string name="msg_copied">क्लिपबोर्ड पर कॉपी हो गया है</string>
|
<string name="msg_copied">क्लिपबोर्ड पर कॉपी हो गया है</string>
|
||||||
<string name="no_available_dir">कृपया बाद में सेटिंग्स में डाउनलोड स्थान चुने</string>
|
<string name="no_available_dir">कृपया बाद में सेटिंग्स में डाउनलोड स्थान चुने</string>
|
||||||
<string name="msg_popup_permission">पॉपअप के तरीके में खोलने के लिए अनुमति की जरुरत है</string>
|
<string name="msg_popup_permission">पॉपअप के तरीके में खोलने के लिए अनुमति की जरुरत है</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA चुनौती</string>
|
<string name="title_activity_recaptcha">reCAPTCHA चुनौती</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA चुनौती का अनुरोध किया</string>
|
<string name="recaptcha_request_toast">reCAPTCHA चुनौती का अनुरोध किया</string>
|
||||||
<string name="settings_category_downloads_title">डाउनलोड</string>
|
<string name="settings_category_downloads_title">डाउनलोड</string>
|
||||||
<string name="settings_file_charset_title">फाइल के नाम के लिए आवश्यक characters(जैसे - १२३, abc) की अनुमति है</string>
|
<string name="settings_file_charset_title">फाइल के नाम के लिए आवश्यक characters(जैसे - १२३, abc) की अनुमति है</string>
|
||||||
|
|
|
@ -30,12 +30,12 @@
|
||||||
<string name="fragment_whats_new">Što je novo</string>
|
<string name="fragment_whats_new">Što je novo</string>
|
||||||
<string name="controls_background_title">Pozadina</string>
|
<string name="controls_background_title">Pozadina</string>
|
||||||
<string name="controls_popup_title">Skočni prozor</string>
|
<string name="controls_popup_title">Skočni prozor</string>
|
||||||
<string name="download_path_title">Put za preuzimanje videozapisa</string>
|
<string name="download_path_title">Mapa za preuzimanje videozapisa</string>
|
||||||
<string name="download_path_summary">Put za spremanje videozapisa u</string>
|
<string name="download_path_summary">Preuzete video datoteke se spremaju ovdje</string>
|
||||||
<string name="download_path_dialog_title">Unesi put za preuzimanje videozapisa</string>
|
<string name="download_path_dialog_title">Odaberi mapu za preuzimanje video datoteka</string>
|
||||||
<string name="download_path_audio_title">Mapa za preuzimanje zvuka</string>
|
<string name="download_path_audio_title">Mapa za preuzimanje zvuka</string>
|
||||||
<string name="download_path_audio_summary">Preuzeti zvuk je spremljen ovdje</string>
|
<string name="download_path_audio_summary">Preuzete audio datoteke se spremaju ovdje</string>
|
||||||
<string name="download_path_audio_dialog_title">Unesi put za preuzimanje zvučne datoteke</string>
|
<string name="download_path_audio_dialog_title">Odaberi mapu za preuzimanje audio datoteka</string>
|
||||||
<string name="autoplay_by_calling_app_title">Automatska reprodukcija</string>
|
<string name="autoplay_by_calling_app_title">Automatska reprodukcija</string>
|
||||||
<string name="autoplay_by_calling_app_summary">Reproducira videozapis kad je NewPipe pozvan iz druge aplikacije</string>
|
<string name="autoplay_by_calling_app_summary">Reproducira videozapis kad je NewPipe pozvan iz druge aplikacije</string>
|
||||||
<string name="default_resolution_title">Zadana razlučivost</string>
|
<string name="default_resolution_title">Zadana razlučivost</string>
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
<string name="show_search_suggestions_summary">Prikaži prijedloge pri traženju</string>
|
<string name="show_search_suggestions_summary">Prikaži prijedloge pri traženju</string>
|
||||||
<string name="enable_search_history_title">Povijest pretraživanja</string>
|
<string name="enable_search_history_title">Povijest pretraživanja</string>
|
||||||
<string name="enable_search_history_summary">Svaku pretragu spremi lokalno</string>
|
<string name="enable_search_history_summary">Svaku pretragu spremi lokalno</string>
|
||||||
<string name="enable_watch_history_title">Povijest & Predmemorija</string>
|
<string name="enable_watch_history_title">Prati povijest</string>
|
||||||
<string name="enable_watch_history_summary">Pratite pogledane videozapise</string>
|
<string name="enable_watch_history_summary">Pratite pogledane videozapise</string>
|
||||||
<string name="resume_on_audio_focus_gain_title">Nastavi nakon dobivanja fokusa</string>
|
<string name="resume_on_audio_focus_gain_title">Nastavi nakon dobivanja fokusa</string>
|
||||||
<string name="resume_on_audio_focus_gain_summary">Nastavi reproducirati nakon prekidanja (npr. telefonski pozivi)</string>
|
<string name="resume_on_audio_focus_gain_summary">Nastavi reproducirati nakon prekidanja (npr. telefonski pozivi)</string>
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
<string name="your_comment">Vaš komentar (na engleskom):</string>
|
<string name="your_comment">Vaš komentar (na engleskom):</string>
|
||||||
<string name="error_details_headline">Detalji:</string>
|
<string name="error_details_headline">Detalji:</string>
|
||||||
<string name="list_thumbnail_view_description">Sličica pregleda videozapisa</string>
|
<string name="list_thumbnail_view_description">Sličica pregleda videozapisa</string>
|
||||||
<string name="detail_thumbnail_view_description">Sličica pregleda videozapisa</string>
|
<string name="detail_thumbnail_view_description">Pokreni video, trajanje:</string>
|
||||||
<string name="detail_uploader_thumbnail_view_description">Profilna slika prenositelja</string>
|
<string name="detail_uploader_thumbnail_view_description">Profilna slika prenositelja</string>
|
||||||
<string name="detail_likes_img_view_description">Goreglasovi</string>
|
<string name="detail_likes_img_view_description">Goreglasovi</string>
|
||||||
<string name="detail_dislikes_img_view_description">Doljeglasovi</string>
|
<string name="detail_dislikes_img_view_description">Doljeglasovi</string>
|
||||||
|
@ -130,9 +130,9 @@
|
||||||
<string name="audio">Zvuk</string>
|
<string name="audio">Zvuk</string>
|
||||||
<string name="retry">Ponovno pokušaj</string>
|
<string name="retry">Ponovno pokušaj</string>
|
||||||
<string name="storage_permission_denied">Dozvola za pisanje po pohrani je odbijena</string>
|
<string name="storage_permission_denied">Dozvola za pisanje po pohrani je odbijena</string>
|
||||||
<string name="short_thousand">tis</string>
|
<string name="short_thousand">tis.</string>
|
||||||
<string name="short_million">mil</string>
|
<string name="short_million">mil</string>
|
||||||
<string name="short_billion">mlrd</string>
|
<string name="short_billion">mlrd.</string>
|
||||||
<string name="start">Počni</string>
|
<string name="start">Počni</string>
|
||||||
<string name="pause">Pauziraj</string>
|
<string name="pause">Pauziraj</string>
|
||||||
<string name="view">Reproduciraj</string>
|
<string name="view">Reproduciraj</string>
|
||||||
|
@ -150,11 +150,11 @@
|
||||||
<string name="msg_running_detail">Dodirni za detalje</string>
|
<string name="msg_running_detail">Dodirni za detalje</string>
|
||||||
<string name="msg_wait">Molimo pričekajte…</string>
|
<string name="msg_wait">Molimo pričekajte…</string>
|
||||||
<string name="msg_copied">Kopirano u međuspremnik</string>
|
<string name="msg_copied">Kopirano u međuspremnik</string>
|
||||||
<string name="no_available_dir">Molimo odaberite dostupnu mapu za preuzimanje</string>
|
<string name="no_available_dir">Kasnije odredite mapu za preuzimanje u postavkama</string>
|
||||||
<string name="msg_popup_permission">Ova dozvola je potrebna za
|
<string name="msg_popup_permission">Ova dozvola je potrebna za
|
||||||
\notvaranje skočnog prozora</string>
|
\notvaranje skočnog prozora</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA zadatak</string>
|
<string name="title_activity_recaptcha">reCAPTCHA zadatak</string>
|
||||||
<string name="recaptcha_request_toast">Traži se reCAPTCHA zadatak</string>
|
<string name="recaptcha_request_toast">Traži se reCAPTCHA zadatak</string>
|
||||||
<string name="settings_category_downloads_title">Preuzimanja</string>
|
<string name="settings_category_downloads_title">Preuzimanja</string>
|
||||||
<string name="settings_file_charset_title">Dozvoljeni znakovi u nazivima datoteka</string>
|
<string name="settings_file_charset_title">Dozvoljeni znakovi u nazivima datoteka</string>
|
||||||
|
@ -209,8 +209,8 @@
|
||||||
<string name="no_videos">Nema videozapisa</string>
|
<string name="no_videos">Nema videozapisa</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="one">%s video</item>
|
<item quantity="one">%s video</item>
|
||||||
<item quantity="few">%s videozapisa</item>
|
<item quantity="few">%s videa</item>
|
||||||
<item quantity="other">%s videozapisi</item>
|
<item quantity="other">%s videa</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="item_deleted">Stavka je izbrisana</string>
|
<string name="item_deleted">Stavka je izbrisana</string>
|
||||||
<string name="background_player_append">U redu čekanja za reprod. u pozadini</string>
|
<string name="background_player_append">U redu čekanja za reprod. u pozadini</string>
|
||||||
|
@ -397,7 +397,7 @@
|
||||||
<string name="settings_category_debug_title">Otkrivanje grešaka</string>
|
<string name="settings_category_debug_title">Otkrivanje grešaka</string>
|
||||||
<string name="app_update_notification_channel_name">Obavijest o ažuriranju aplikacije</string>
|
<string name="app_update_notification_channel_name">Obavijest o ažuriranju aplikacije</string>
|
||||||
<string name="toggle_orientation">Uključite ili isključite orijentaciju</string>
|
<string name="toggle_orientation">Uključite ili isključite orijentaciju</string>
|
||||||
<string name="download_to_sdcard_error_message">Preuzimanje na vanjsku SD karticu još nije moguće. Poništite lokaciju mape za preuzimanje\?</string>
|
<string name="download_to_sdcard_error_message">Preuzimanje na vanjsku SD karticu nije moguće. Ponovo postaviti lokaciju mape za preuzimanje\?</string>
|
||||||
<string name="external_player_unsupported_link_type">Vanjski playeri ne podržavaju ove vrste veza</string>
|
<string name="external_player_unsupported_link_type">Vanjski playeri ne podržavaju ove vrste veza</string>
|
||||||
<string name="video_streams_empty">Nije pronađen nijedan videozapis</string>
|
<string name="video_streams_empty">Nije pronađen nijedan videozapis</string>
|
||||||
<string name="audio_streams_empty">Nije pronađen nijedan zvuk</string>
|
<string name="audio_streams_empty">Nije pronađen nijedan zvuk</string>
|
||||||
|
@ -433,7 +433,7 @@
|
||||||
<string name="list_view_mode">Način prikaza popisa</string>
|
<string name="list_view_mode">Način prikaza popisa</string>
|
||||||
<string name="auto">Automatski</string>
|
<string name="auto">Automatski</string>
|
||||||
<string name="missions_header_finished">Gotovo</string>
|
<string name="missions_header_finished">Gotovo</string>
|
||||||
<string name="missions_header_pending">U redu za čekanje</string>
|
<string name="missions_header_pending">Na čekanju</string>
|
||||||
<string name="paused">pauzirano</string>
|
<string name="paused">pauzirano</string>
|
||||||
<string name="queued">Na redu za čekanje</string>
|
<string name="queued">Na redu za čekanje</string>
|
||||||
<string name="post_processing">naknadna obrada</string>
|
<string name="post_processing">naknadna obrada</string>
|
||||||
|
@ -446,8 +446,8 @@
|
||||||
<string name="overwrite_finished_warning">Preuzeta datoteka s tim nazivom već postoji</string>
|
<string name="overwrite_finished_warning">Preuzeta datoteka s tim nazivom već postoji</string>
|
||||||
<string name="download_already_running">U tijeku je preuzimanje s ovim nazivom</string>
|
<string name="download_already_running">U tijeku je preuzimanje s ovim nazivom</string>
|
||||||
<string name="label_code">Kod</string>
|
<string name="label_code">Kod</string>
|
||||||
<string name="error_path_creation">Datoteku nije moguće izraditi</string>
|
<string name="error_path_creation">Odredišnu mapu nije moguće stvoriti</string>
|
||||||
<string name="error_file_creation">Odredišnu mapu nije moguće izraditi</string>
|
<string name="error_file_creation">Datoteku nije moguće stvoriti</string>
|
||||||
<string name="error_permission_denied">Sustav je odbio dozvolu</string>
|
<string name="error_permission_denied">Sustav je odbio dozvolu</string>
|
||||||
<string name="error_ssl_exception">Sigurna veza nije uspjela</string>
|
<string name="error_ssl_exception">Sigurna veza nije uspjela</string>
|
||||||
<string name="error_unknown_host">Nije moguće pronaći server</string>
|
<string name="error_unknown_host">Nije moguće pronaći server</string>
|
||||||
|
@ -460,7 +460,7 @@
|
||||||
<string name="stop">Stop</string>
|
<string name="stop">Stop</string>
|
||||||
<string name="max_retry_msg">Maksimalnih ponovnih pokušaja</string>
|
<string name="max_retry_msg">Maksimalnih ponovnih pokušaja</string>
|
||||||
<string name="max_retry_desc">Maksimalni broj pokušaja prije poništavanja preuzimanja</string>
|
<string name="max_retry_desc">Maksimalni broj pokušaja prije poništavanja preuzimanja</string>
|
||||||
<string name="pause_downloads_on_mobile">Pauziraj prilikom prebacivanja na mobilne podatke</string>
|
<string name="pause_downloads_on_mobile">Prekini na mrežama s ograničenim prometom</string>
|
||||||
<string name="pause_downloads_on_mobile_desc">Preuzimanja koja se ne mogu zaustaviti ponovno će se pokrenuti</string>
|
<string name="pause_downloads_on_mobile_desc">Preuzimanja koja se ne mogu zaustaviti ponovno će se pokrenuti</string>
|
||||||
<string name="show_comments_title">Prikaži komentare</string>
|
<string name="show_comments_title">Prikaži komentare</string>
|
||||||
<string name="show_comments_summary">Onemogućite da biste prestali prikazivati komentare</string>
|
<string name="show_comments_summary">Onemogućite da biste prestali prikazivati komentare</string>
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
<string name="share_dialog_title">Megosztás ezzel</string>
|
<string name="share_dialog_title">Megosztás ezzel</string>
|
||||||
<string name="choose_browser">Válasszon böngészőt</string>
|
<string name="choose_browser">Válasszon böngészőt</string>
|
||||||
<string name="screen_rotation">forgatás</string>
|
<string name="screen_rotation">forgatás</string>
|
||||||
<string name="download_path_title">Videófájlok letöltési helye</string>
|
<string name="download_path_title">Videók letöltési helye</string>
|
||||||
<string name="download_path_summary">Útvonal a letöltött videók tárolásához</string>
|
<string name="download_path_summary">Ide kerülnek a letöltött videók</string>
|
||||||
<string name="download_path_dialog_title">Adja meg a videófájlok letöltési helyét</string>
|
<string name="download_path_dialog_title">Válassza ki a videófájlok letöltési helyét</string>
|
||||||
<string name="default_resolution_title">Alapértelmezett felbontás</string>
|
<string name="default_resolution_title">Alapértelmezett felbontás</string>
|
||||||
<string name="play_with_kodi_title">Lejátszás Kodi-val</string>
|
<string name="play_with_kodi_title">Lejátszás Kodi-val</string>
|
||||||
<string name="kore_not_found">A Kore alkalmazás nem található. Telepíted a Kore lejátszót?</string>
|
<string name="kore_not_found">A Kore alkalmazás nem található. Telepíted a Kore lejátszót?</string>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
<string name="url_not_supported_toast">Nem támogatott webcím</string>
|
<string name="url_not_supported_toast">Nem támogatott webcím</string>
|
||||||
<string name="use_external_video_player_title">Külső videólejátszó használata</string>
|
<string name="use_external_video_player_title">Külső videólejátszó használata</string>
|
||||||
<string name="use_external_audio_player_title">Külső hanglejátszó használata</string>
|
<string name="use_external_audio_player_title">Külső hanglejátszó használata</string>
|
||||||
<string name="download_path_audio_dialog_title">Add meg a hangfájlok letöltési helyét</string>
|
<string name="download_path_audio_dialog_title">Válaszd ki a hangfájlok letöltési helyét</string>
|
||||||
<string name="use_tor_title">Tor használata</string>
|
<string name="use_tor_title">Tor használata</string>
|
||||||
<string name="use_tor_summary">(Kísérleti) Adatforgalom Tor-on keresztüli kényszerítése a biztonság fokozása érdekében (a videó stream-elés még nem támogatott).</string>
|
<string name="use_tor_summary">(Kísérleti) Adatforgalom Tor-on keresztüli kényszerítése a biztonság fokozása érdekében (a videó stream-elés még nem támogatott).</string>
|
||||||
<string name="play_btn_text">Lejátszás</string>
|
<string name="play_btn_text">Lejátszás</string>
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
<string name="light_theme_title">Világos</string>
|
<string name="light_theme_title">Világos</string>
|
||||||
<string name="theme_title">Téma</string>
|
<string name="theme_title">Téma</string>
|
||||||
<string name="download_path_audio_title">Hangfájlok letöltési helye</string>
|
<string name="download_path_audio_title">Hangfájlok letöltési helye</string>
|
||||||
<string name="download_path_audio_summary">Letöltött hangfájlok itt találhatók</string>
|
<string name="download_path_audio_summary">A letöltött hangfájlok itt találhatóak</string>
|
||||||
<string name="detail_likes_img_view_description">Tetszik</string>
|
<string name="detail_likes_img_view_description">Tetszik</string>
|
||||||
<string name="detail_dislikes_img_view_description">Nem tetszik</string>
|
<string name="detail_dislikes_img_view_description">Nem tetszik</string>
|
||||||
<string name="list_thumbnail_view_description">Előnézeti kép</string>
|
<string name="list_thumbnail_view_description">Előnézeti kép</string>
|
||||||
|
@ -123,8 +123,7 @@
|
||||||
<string name="show_higher_resolutions_title">Mutassa a magasabb felbontásokat</string>
|
<string name="show_higher_resolutions_title">Mutassa a magasabb felbontásokat</string>
|
||||||
<string name="show_higher_resolutions_summary">Csak néhány eszköz támogatja a 2K/4K videók lejátszását</string>
|
<string name="show_higher_resolutions_summary">Csak néhány eszköz támogatja a 2K/4K videók lejátszását</string>
|
||||||
<string name="default_video_format_title">Alapértelmezett videó formátum</string>
|
<string name="default_video_format_title">Alapértelmezett videó formátum</string>
|
||||||
<string name="black_theme_title">Fekete
|
<string name="black_theme_title">Fekete</string>
|
||||||
\n</string>
|
|
||||||
<string name="popup_remember_size_pos_title">Jegyezze meg a felugró ablak helyét és méretét</string>
|
<string name="popup_remember_size_pos_title">Jegyezze meg a felugró ablak helyét és méretét</string>
|
||||||
<string name="popup_remember_size_pos_summary">Jegyezze meg a felugró ablak előző helyét és méretét</string>
|
<string name="popup_remember_size_pos_summary">Jegyezze meg a felugró ablak előző helyét és méretét</string>
|
||||||
<string name="show_search_suggestions_title">Keresési javaslatok</string>
|
<string name="show_search_suggestions_title">Keresési javaslatok</string>
|
||||||
|
@ -233,8 +232,8 @@
|
||||||
<string name="rename">Átnevezés</string>
|
<string name="rename">Átnevezés</string>
|
||||||
<string name="msg_popup_permission">Ez az engedély szükséges a felugró ablakban történő megnyitáshoz</string>
|
<string name="msg_popup_permission">Ez az engedély szükséges a felugró ablakban történő megnyitáshoz</string>
|
||||||
<string name="one_item_deleted">1 elem törölve.</string>
|
<string name="one_item_deleted">1 elem törölve.</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA rejtvény</string>
|
<string name="title_activity_recaptcha">reCAPTCHA rejtvény</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA rejtvény igényelve</string>
|
<string name="recaptcha_request_toast">reCAPTCHA rejtvény igényelve</string>
|
||||||
<string name="settings_category_downloads_title">Letöltés</string>
|
<string name="settings_category_downloads_title">Letöltés</string>
|
||||||
<string name="settings_file_charset_title">Fájlnevekben engedélyezett karakterek</string>
|
<string name="settings_file_charset_title">Fájlnevekben engedélyezett karakterek</string>
|
||||||
|
@ -382,4 +381,8 @@
|
||||||
<string name="dismiss">Figyelmen kívül hagy</string>
|
<string name="dismiss">Figyelmen kívül hagy</string>
|
||||||
<string name="bookmark_playlist">Lejátszási lista könyvjelzők közé</string>
|
<string name="bookmark_playlist">Lejátszási lista könyvjelzők közé</string>
|
||||||
<string name="auto_queue_summary">Hasonló videó beadása az utolsó videó után egy nem ismétlődő sorban</string>
|
<string name="auto_queue_summary">Hasonló videó beadása az utolsó videó után egy nem ismétlődő sorban</string>
|
||||||
|
<string name="enqueue">Sor</string>
|
||||||
|
<string name="overwrite_failed">a fájl nem írható felül</string>
|
||||||
|
<string name="seek_duration_title">Az előre- és visszatekerés időtartama</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">Videó előnézet megjelenítése a lezárási képernyőn</string>
|
||||||
</resources>
|
</resources>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="main_bg_subtitle">Ketuk pencarian untuk memulai</string>
|
<string name="main_bg_subtitle">Ketuk \"Cari\" untuk memulai</string>
|
||||||
<string name="view_count_text">%1$s ditonton</string>
|
<string name="view_count_text">%1$s ditonton</string>
|
||||||
<string name="upload_date_text">Dipublikasikan tanggal %1$s</string>
|
<string name="upload_date_text">Dipublikasikan tanggal %1$s</string>
|
||||||
<string name="install">Pasang</string>
|
<string name="install">Pasang</string>
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
<string name="autoplay_by_calling_app_summary">Putar video ketika NewPipe dijalankan dari aplikasi lain</string>
|
<string name="autoplay_by_calling_app_summary">Putar video ketika NewPipe dijalankan dari aplikasi lain</string>
|
||||||
<string name="default_resolution_title">Resolusi</string>
|
<string name="default_resolution_title">Resolusi</string>
|
||||||
<string name="play_with_kodi_title">Putar dengan Kodi</string>
|
<string name="play_with_kodi_title">Putar dengan Kodi</string>
|
||||||
<string name="kore_not_found">Apl Kore tidak ditemukan. Pasang Kore\?</string>
|
<string name="kore_not_found">Pasang apl Kore\?</string>
|
||||||
<string name="show_play_with_kodi_title">Tampilkan opsi \"Putar dengan Kodi\"</string>
|
<string name="show_play_with_kodi_title">Tampilkan opsi \"Putar dengan Kodi\"</string>
|
||||||
<string name="show_play_with_kodi_summary">Tampilkan opsi untuk memutar video via Kodi</string>
|
<string name="show_play_with_kodi_summary">Tampilkan opsi untuk memutar video via Kodi</string>
|
||||||
<string name="play_audio">Audio</string>
|
<string name="play_audio">Audio</string>
|
||||||
|
@ -43,12 +43,12 @@
|
||||||
<string name="play_btn_text">Putar</string>
|
<string name="play_btn_text">Putar</string>
|
||||||
<string name="content">Konten</string>
|
<string name="content">Konten</string>
|
||||||
<string name="show_age_restricted_content_title">Konten yang dibatasi usia</string>
|
<string name="show_age_restricted_content_title">Konten yang dibatasi usia</string>
|
||||||
<string name="video_is_age_restricted">Tampilkan video yang dibatasi usia. Membuka akses konten tersebut bisa dilakukan dari Pengaturan.</string>
|
<string name="video_is_age_restricted">Tampilkan video yang dibatasi usia. Bisa diubah nanti dari pengaturan.</string>
|
||||||
<string name="network_error">Galat jaringan</string>
|
<string name="network_error">Galat jaringan</string>
|
||||||
<string name="could_not_load_thumbnails">Tidak bisa memuat semua thumbnail</string>
|
<string name="could_not_load_thumbnails">Tidak bisa memuat semua thumbnail</string>
|
||||||
<string name="did_you_mean">Maksud anda: %1$s\?</string>
|
<string name="did_you_mean">Maksud anda: %1$s\?</string>
|
||||||
<string name="screen_rotation">rotasi</string>
|
<string name="screen_rotation">rotasi</string>
|
||||||
<string name="duration_live">LANGSUNG</string>
|
<string name="duration_live">Langsung</string>
|
||||||
<string name="downloads">Unduhan</string>
|
<string name="downloads">Unduhan</string>
|
||||||
<string name="downloads_title">Unduhan</string>
|
<string name="downloads_title">Unduhan</string>
|
||||||
<string name="error_report_title">Laporan galat</string>
|
<string name="error_report_title">Laporan galat</string>
|
||||||
|
@ -60,9 +60,9 @@
|
||||||
<string name="live_streams_not_supported">Siaran langsung belum didukung</string>
|
<string name="live_streams_not_supported">Siaran langsung belum didukung</string>
|
||||||
<string name="could_not_load_image">Tidak bisa memuat gambar</string>
|
<string name="could_not_load_image">Tidak bisa memuat gambar</string>
|
||||||
<string name="sorry_string">Maaf, hal tersebut seharusnya tidak terjadi.</string>
|
<string name="sorry_string">Maaf, hal tersebut seharusnya tidak terjadi.</string>
|
||||||
<string name="error_report_button_text">Lapor galat via surel</string>
|
<string name="error_report_button_text">Laporkan kesalahan via surel</string>
|
||||||
<string name="error_snackbar_message">Maaf, telah terjadi galat.</string>
|
<string name="error_snackbar_message">Maaf, telah terjadi galat.</string>
|
||||||
<string name="error_snackbar_action">LAPOR</string>
|
<string name="error_snackbar_action">Lapor</string>
|
||||||
<string name="what_device_headline">Info:</string>
|
<string name="what_device_headline">Info:</string>
|
||||||
<string name="what_happened_headline">Yang terjadi:</string>
|
<string name="what_happened_headline">Yang terjadi:</string>
|
||||||
<string name="your_comment">Komentar anda (dalam bahasa Inggris):</string>
|
<string name="your_comment">Komentar anda (dalam bahasa Inggris):</string>
|
||||||
|
@ -74,13 +74,13 @@
|
||||||
<string name="detail_dislikes_img_view_description">Tidak suka</string>
|
<string name="detail_dislikes_img_view_description">Tidak suka</string>
|
||||||
<string name="use_tor_title">Gunakan Tor</string>
|
<string name="use_tor_title">Gunakan Tor</string>
|
||||||
<string name="use_tor_summary">(Eksperimental) Paksa trafik unduhan melalui Tor untuk meningkatkan privasi (video stream belum didukung).</string>
|
<string name="use_tor_summary">(Eksperimental) Paksa trafik unduhan melalui Tor untuk meningkatkan privasi (video stream belum didukung).</string>
|
||||||
<string name="report_error">Laporkan Galat</string>
|
<string name="report_error">Laporkan kesalahan</string>
|
||||||
<string name="err_dir_create">Tidak bisa membuat direktori unduhan \'%1$s\'</string>
|
<string name="err_dir_create">Tidak bisa membuat direktori unduhan \'%1$s\'</string>
|
||||||
<string name="info_dir_created">Direktori unduhan dibuat \'%1$s\'</string>
|
<string name="info_dir_created">Direktori unduhan dibuat \'%1$s\'</string>
|
||||||
<string name="video">Video</string>
|
<string name="video">Video</string>
|
||||||
<string name="audio">Audio</string>
|
<string name="audio">Audio</string>
|
||||||
<string name="retry">Ulangi</string>
|
<string name="retry">Ulangi</string>
|
||||||
<string name="storage_permission_denied">Izin akses penyimpanan ditolak</string>
|
<string name="storage_permission_denied">Izinkan akses penyimpanan terlebih dahulu</string>
|
||||||
<string name="delete">Hapus</string>
|
<string name="delete">Hapus</string>
|
||||||
<string name="view">Putar</string>
|
<string name="view">Putar</string>
|
||||||
<string name="start">Mulai</string>
|
<string name="start">Mulai</string>
|
||||||
|
@ -98,15 +98,15 @@
|
||||||
<string name="msg_wait">Mohon tunggu…</string>
|
<string name="msg_wait">Mohon tunggu…</string>
|
||||||
<string name="msg_copied">Disalin ke papan klip</string>
|
<string name="msg_copied">Disalin ke papan klip</string>
|
||||||
<string name="no_available_dir">Silakan pilih folder unduhan di pengaturan</string>
|
<string name="no_available_dir">Silakan pilih folder unduhan di pengaturan</string>
|
||||||
<string name="no_player_found">Pemutar stream tidak ditemukan. Apakah anda ingin memasang VLC\?</string>
|
<string name="no_player_found">Pemutar stream tidak ditemukan. Pasang VLC\?</string>
|
||||||
<string name="youtube_signature_decryption_error">Tidak bisa dekripsi tanda tangan URL video</string>
|
<string name="youtube_signature_decryption_error">Tidak bisa dekripsi tanda tangan URL video</string>
|
||||||
<string name="app_ui_crash">App/UI rusak</string>
|
<string name="app_ui_crash">App/UI rusak</string>
|
||||||
<string name="could_not_get_stream">Tidak bisa mendapatkan stream apapun</string>
|
<string name="could_not_get_stream">Tidak bisa mendapatkan stream apapun</string>
|
||||||
<string name="info_labels">Apa:\\nPermintaan:\\nBahasa Konten:\\nLayanan:\\nWaktu GMT:\\nPaket:\\nVersi:\\nVersi OS:</string>
|
<string name="info_labels">Apa:\\nPermintaan:\\nBahasa Konten:\\nLayanan:\\nWaktu GMT:\\nPaket:\\nVersi:\\nVersi OS:</string>
|
||||||
<string name="user_report">Laporan pengguna</string>
|
<string name="user_report">Laporan pengguna</string>
|
||||||
<string name="msg_threads">Thread</string>
|
<string name="msg_threads">Thread</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Tantangan reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Tantangan reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Meminta kode reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Meminta kode reCAPTCHA</string>
|
||||||
<string name="black_theme_title">Hitam</string>
|
<string name="black_theme_title">Hitam</string>
|
||||||
<string name="all">Semua</string>
|
<string name="all">Semua</string>
|
||||||
|
@ -119,19 +119,19 @@
|
||||||
<string name="open_in_popup_mode">Buka di mode popup</string>
|
<string name="open_in_popup_mode">Buka di mode popup</string>
|
||||||
<string name="msg_popup_permission">Izin ini dibutuhkan untuk
|
<string name="msg_popup_permission">Izin ini dibutuhkan untuk
|
||||||
\nmembuka di mode popup</string>
|
\nmembuka di mode popup</string>
|
||||||
<string name="popup_mode_share_menu_title">Mode popup NewPipe</string>
|
<string name="popup_mode_share_menu_title">Mode popup</string>
|
||||||
<string name="popup_playing_toast">Memutar dalam mode popup</string>
|
<string name="popup_playing_toast">Memutar dalam mode popup</string>
|
||||||
<string name="disabled">Dinonaktifkan</string>
|
<string name="disabled">Dinonaktifkan</string>
|
||||||
<string name="default_video_format_title">Format video</string>
|
<string name="default_video_format_title">Format video</string>
|
||||||
<string name="default_popup_resolution_title">Resolusi popup</string>
|
<string name="default_popup_resolution_title">Resolusi popup</string>
|
||||||
<string name="show_higher_resolutions_title">Tampilkan resolusi yang lebih tinggi</string>
|
<string name="show_higher_resolutions_title">Tampilkan resolusi yang lebih tinggi</string>
|
||||||
<string name="show_higher_resolutions_summary">Hanya perangkat tertentu yang mendukung pemutaran video 2K/4K</string>
|
<string name="show_higher_resolutions_summary">Hanya perangkat tertentu yang bisa memutar video 2K/4K</string>
|
||||||
<string name="controls_background_title">Latar Belakang</string>
|
<string name="controls_background_title">Latar Belakang</string>
|
||||||
<string name="controls_popup_title">Popup</string>
|
<string name="controls_popup_title">Popup</string>
|
||||||
<string name="refresh">Segarkan</string>
|
<string name="refresh">Segarkan</string>
|
||||||
<string name="clear">Bersihkan</string>
|
<string name="clear">Bersihkan</string>
|
||||||
<string name="filter">Filter</string>
|
<string name="filter">Filter</string>
|
||||||
<string name="use_external_video_player_summary">Menghapus audio pada BEBERAPA resolusi</string>
|
<string name="use_external_video_player_summary">Menghapus audio pada beberapa resolusi</string>
|
||||||
<string name="popup_remember_size_pos_title">Ingat ukuran dan posisi popup</string>
|
<string name="popup_remember_size_pos_title">Ingat ukuran dan posisi popup</string>
|
||||||
<string name="popup_remember_size_pos_summary">Ingat ukuran dan posisi terakhir popup</string>
|
<string name="popup_remember_size_pos_summary">Ingat ukuran dan posisi terakhir popup</string>
|
||||||
<string name="settings_category_popup_title">Popup</string>
|
<string name="settings_category_popup_title">Popup</string>
|
||||||
|
@ -166,8 +166,8 @@
|
||||||
<string name="subscribe_button_title">Subscribe</string>
|
<string name="subscribe_button_title">Subscribe</string>
|
||||||
<string name="subscribed_button_title">Disubscribe</string>
|
<string name="subscribed_button_title">Disubscribe</string>
|
||||||
<string name="fragment_whats_new">Apa Yang Baru</string>
|
<string name="fragment_whats_new">Apa Yang Baru</string>
|
||||||
<string name="resume_on_audio_focus_gain_title">Lanjutkan saat fokus</string>
|
<string name="resume_on_audio_focus_gain_title">Lanjutkan pemutaran</string>
|
||||||
<string name="resume_on_audio_focus_gain_summary">Lanjutkan pemutaran setelah interupsi (mis. panggilan telepon)</string>
|
<string name="resume_on_audio_focus_gain_summary">Melanjutkan pemutaran setelah interupsi (mis. panggilan telepon)</string>
|
||||||
<string name="tab_main">Utama</string>
|
<string name="tab_main">Utama</string>
|
||||||
<string name="enable_search_history_title">Riwayat pencarian</string>
|
<string name="enable_search_history_title">Riwayat pencarian</string>
|
||||||
<string name="enable_search_history_summary">Simpan pencarian secara lokal</string>
|
<string name="enable_search_history_summary">Simpan pencarian secara lokal</string>
|
||||||
|
@ -183,10 +183,10 @@
|
||||||
<string name="metadata_cache_wipe_title">Hapus tembolok metadata</string>
|
<string name="metadata_cache_wipe_title">Hapus tembolok metadata</string>
|
||||||
<string name="metadata_cache_wipe_summary">Buang semua data tembolok laman web</string>
|
<string name="metadata_cache_wipe_summary">Buang semua data tembolok laman web</string>
|
||||||
<string name="metadata_cache_wipe_complete_notice">Cache metadata dihapus</string>
|
<string name="metadata_cache_wipe_complete_notice">Cache metadata dihapus</string>
|
||||||
<string name="auto_queue_summary">Otomatis tambahkan stream terkait ketika memutar stream terakhir dalam antrean tanpa perulangan</string>
|
<string name="auto_queue_summary">Melanjutkan akhir dari antrean pemutaran (tak berulang) dengan menambahkan stream terkait</string>
|
||||||
<string name="enable_watch_history_summary">Simpan daftar video yang telah ditonton</string>
|
<string name="enable_watch_history_summary">Simpan daftar video yang telah ditonton</string>
|
||||||
<string name="show_hold_to_append_title">Tampilkan tip \"Tahan untuk menambahkan\"</string>
|
<string name="show_hold_to_append_title">Tampilkan tip \"Tahan untuk menambahkan\"</string>
|
||||||
<string name="show_hold_to_append_summary">Tampilkan tip ketika tombol latar belakang atau popup disentuh pada halaman detail video</string>
|
<string name="show_hold_to_append_summary">Tampilkan tip ketika menekan tombol latar belakang atau popup di dalam \"Detail:\" video</string>
|
||||||
<string name="default_content_country_title">Negara konten</string>
|
<string name="default_content_country_title">Negara konten</string>
|
||||||
<string name="service_title">Layanan</string>
|
<string name="service_title">Layanan</string>
|
||||||
<string name="settings_category_player_title">Pemutar</string>
|
<string name="settings_category_player_title">Pemutar</string>
|
||||||
|
@ -309,7 +309,7 @@
|
||||||
<string name="resize_fill">Isi</string>
|
<string name="resize_fill">Isi</string>
|
||||||
<string name="resize_zoom">Perbesar</string>
|
<string name="resize_zoom">Perbesar</string>
|
||||||
<string name="caption_auto_generated">Otomatis dibuat</string>
|
<string name="caption_auto_generated">Otomatis dibuat</string>
|
||||||
<string name="enable_leak_canary_title">Aktifkan LeakCanary</string>
|
<string name="enable_leak_canary_title">LeakCanary</string>
|
||||||
<string name="playback_default">Bawaan</string>
|
<string name="playback_default">Bawaan</string>
|
||||||
<string name="no_player_found_toast">Pemutar stream tidak ditemukan (anda bisa memasang VLC untuk memutarnya).</string>
|
<string name="no_player_found_toast">Pemutar stream tidak ditemukan (anda bisa memasang VLC untuk memutarnya).</string>
|
||||||
<string name="controls_download_desc">Unduh berkas stream</string>
|
<string name="controls_download_desc">Unduh berkas stream</string>
|
||||||
|
@ -410,10 +410,10 @@
|
||||||
<string name="app_update_notification_channel_description">Notifikasi untuk versi NewPipe baru</string>
|
<string name="app_update_notification_channel_description">Notifikasi untuk versi NewPipe baru</string>
|
||||||
<string name="download_to_sdcard_error_title">Penyimpanan eksternal tidak tersedia</string>
|
<string name="download_to_sdcard_error_title">Penyimpanan eksternal tidak tersedia</string>
|
||||||
<string name="download_to_sdcard_error_message">Tidak bisa mengunduh ke kartu SD eksternal. Atur ulang lokasi folder unduhan\?</string>
|
<string name="download_to_sdcard_error_message">Tidak bisa mengunduh ke kartu SD eksternal. Atur ulang lokasi folder unduhan\?</string>
|
||||||
<string name="saved_tabs_invalid_json">Menggunakan tab baku, ralat saat membaca tab yang disimpan</string>
|
<string name="saved_tabs_invalid_json">Tidak bisa membaca tab yang disimpan, beralih menggunakan tab bawaan</string>
|
||||||
<string name="restore_defaults">Kembali ke awal</string>
|
<string name="restore_defaults">Kembali ke awal</string>
|
||||||
<string name="restore_defaults_confirmation">Apakah anda ingin kembali ke awal\?</string>
|
<string name="restore_defaults_confirmation">Apakah anda ingin mengembalikan ke bawaan\?</string>
|
||||||
<string name="subscribers_count_not_available">Jumlah pelanggan tidak tersedia</string>
|
<string name="subscribers_count_not_available">Jumlah subscriber tidak tersedia</string>
|
||||||
<string name="main_page_content_summary">Tab apa yang ditampilkan di halaman utama</string>
|
<string name="main_page_content_summary">Tab apa yang ditampilkan di halaman utama</string>
|
||||||
<string name="selection">Pilihan</string>
|
<string name="selection">Pilihan</string>
|
||||||
<string name="conferences">Konferensi</string>
|
<string name="conferences">Konferensi</string>
|
||||||
|
@ -445,7 +445,7 @@
|
||||||
<string name="error_file_creation">File tidak dapat dibuat</string>
|
<string name="error_file_creation">File tidak dapat dibuat</string>
|
||||||
<string name="error_path_creation">Folder tujuan tidak dapat dibuat</string>
|
<string name="error_path_creation">Folder tujuan tidak dapat dibuat</string>
|
||||||
<string name="error_permission_denied">Izin ditolak oleh sistem</string>
|
<string name="error_permission_denied">Izin ditolak oleh sistem</string>
|
||||||
<string name="error_ssl_exception">Koneksi aman gagal</string>
|
<string name="error_ssl_exception">Tidak bisa membuat koneksi yang aman</string>
|
||||||
<string name="error_unknown_host">Tidak dapat menemukan server</string>
|
<string name="error_unknown_host">Tidak dapat menemukan server</string>
|
||||||
<string name="error_connect_host">Tidak dapat terhubung ke server</string>
|
<string name="error_connect_host">Tidak dapat terhubung ke server</string>
|
||||||
<string name="error_http_no_content">Server tidak mengirim data</string>
|
<string name="error_http_no_content">Server tidak mengirim data</string>
|
||||||
|
@ -459,7 +459,7 @@
|
||||||
<string name="pause_downloads_on_mobile">Berhenti pada jaringan terbatas</string>
|
<string name="pause_downloads_on_mobile">Berhenti pada jaringan terbatas</string>
|
||||||
<string name="pause_downloads_on_mobile_desc">Berguna saat beralih ke data seluler, walaupun beberapa unduhan tidak bisa ditangguhkan</string>
|
<string name="pause_downloads_on_mobile_desc">Berguna saat beralih ke data seluler, walaupun beberapa unduhan tidak bisa ditangguhkan</string>
|
||||||
<string name="show_comments_title">Tampilkan komentar</string>
|
<string name="show_comments_title">Tampilkan komentar</string>
|
||||||
<string name="show_comments_summary">Nonaktifkan untuk berhenti menampilkan komentar</string>
|
<string name="show_comments_summary">Nonaktifkan untuk menyembunyikan komentar</string>
|
||||||
<string name="autoplay_title">Otomatis putar</string>
|
<string name="autoplay_title">Otomatis putar</string>
|
||||||
<plurals name="comments">
|
<plurals name="comments">
|
||||||
<item quantity="other">Komentar</item>
|
<item quantity="other">Komentar</item>
|
||||||
|
@ -480,7 +480,7 @@
|
||||||
<string name="error_postprocessing_stopped">NewPipe telah ditutup saat sedang memproses berkas</string>
|
<string name="error_postprocessing_stopped">NewPipe telah ditutup saat sedang memproses berkas</string>
|
||||||
<string name="error_insufficient_storage">Tidak ada ruang kosong tersisa pada perangkat</string>
|
<string name="error_insufficient_storage">Tidak ada ruang kosong tersisa pada perangkat</string>
|
||||||
<string name="error_progress_lost">Kehilangan laju, karena berkas telah dihapus</string>
|
<string name="error_progress_lost">Kehilangan laju, karena berkas telah dihapus</string>
|
||||||
<string name="confirm_prompt">Apakah anda yakin\?</string>
|
<string name="confirm_prompt">Apakah anda yakin ingin menghapus semua riwayat unduhan dan berkas yang telah diunduh\?</string>
|
||||||
<string name="enable_queue_limit">Batasi antrean unduhan</string>
|
<string name="enable_queue_limit">Batasi antrean unduhan</string>
|
||||||
<string name="enable_queue_limit_desc">Satu unduhan akan berjalan pada waktu yang bersamaan</string>
|
<string name="enable_queue_limit_desc">Satu unduhan akan berjalan pada waktu yang bersamaan</string>
|
||||||
<string name="start_downloads">Mulai unduh</string>
|
<string name="start_downloads">Mulai unduh</string>
|
||||||
|
@ -491,7 +491,7 @@
|
||||||
\nPilih SAF jika anda ingin mengunduh ke kartu SD eksternal</string>
|
\nPilih SAF jika anda ingin mengunduh ke kartu SD eksternal</string>
|
||||||
<string name="error_timeout">Batas waktu koneksi</string>
|
<string name="error_timeout">Batas waktu koneksi</string>
|
||||||
<string name="downloads_storage_use_saf_title">Gunakan SAF</string>
|
<string name="downloads_storage_use_saf_title">Gunakan SAF</string>
|
||||||
<string name="downloads_storage_use_saf_summary">Storage Access Framework memungkinkan mengunduh ke kartu SD eksternal.
|
<string name="downloads_storage_use_saf_summary">\'Storage Access Framework\' memungkinkan untuk mengunduh ke kartu SD eksternal.
|
||||||
\nCatatan: beberapa perangkat tidak kompatibel</string>
|
\nCatatan: beberapa perangkat tidak kompatibel</string>
|
||||||
<string name="clear_playback_states_title">Hapus posisi pemutaran</string>
|
<string name="clear_playback_states_title">Hapus posisi pemutaran</string>
|
||||||
<string name="clear_playback_states_summary">Hapus semua posisi pemutaran</string>
|
<string name="clear_playback_states_summary">Hapus semua posisi pemutaran</string>
|
||||||
|
@ -512,7 +512,7 @@
|
||||||
<string name="localization_changes_requires_app_restart">Bahasa akan diterapkan setelah aplikasi dimulai ulang.</string>
|
<string name="localization_changes_requires_app_restart">Bahasa akan diterapkan setelah aplikasi dimulai ulang.</string>
|
||||||
<string name="peertube_instance_url_title">Situs PeerTube</string>
|
<string name="peertube_instance_url_title">Situs PeerTube</string>
|
||||||
<string name="peertube_instance_url_summary">Pilih situs PeerTube favorit anda</string>
|
<string name="peertube_instance_url_summary">Pilih situs PeerTube favorit anda</string>
|
||||||
<string name="peertube_instance_url_help">Temukan situs yang sesuai dengan anda di %s</string>
|
<string name="peertube_instance_url_help">Temukan situs yang anda suka di %s</string>
|
||||||
<string name="peertube_instance_add_title">Tambah situs</string>
|
<string name="peertube_instance_add_title">Tambah situs</string>
|
||||||
<string name="peertube_instance_add_help">Masukkan URL situs</string>
|
<string name="peertube_instance_add_help">Masukkan URL situs</string>
|
||||||
<string name="peertube_instance_add_fail">Tidak bisa memvalidasi situs</string>
|
<string name="peertube_instance_add_fail">Tidak bisa memvalidasi situs</string>
|
||||||
|
@ -525,6 +525,16 @@
|
||||||
<string name="recovering">memulihkan</string>
|
<string name="recovering">memulihkan</string>
|
||||||
<string name="error_download_resource_gone">Tidak bisa memulihkan unduhan ini</string>
|
<string name="error_download_resource_gone">Tidak bisa memulihkan unduhan ini</string>
|
||||||
<string name="choose_instance_prompt">Pilih situs</string>
|
<string name="choose_instance_prompt">Pilih situs</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Aktifkan kunci layar thumbnail video</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Thumbnail video layar kunci</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">Ketika menggunakan pemutar latar belakang, thumbnail video akan ditampilkan di tampilan kunci layar</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">Ketika menggunakan pemutar latar belakang, thumbnail video akan ditampilkan pada layar kunci</string>
|
||||||
|
<string name="default_kiosk_page_summary">Kiosk Default</string>
|
||||||
|
<string name="clear_download_history">Hapus riwayat unduhan</string>
|
||||||
|
<string name="delete_downloaded_files">Hapus berkas yang diunduh</string>
|
||||||
|
<string name="deleted_downloads">%1$s unduhan dihapus</string>
|
||||||
|
<string name="permission_display_over_apps">Izinkan untuk ditampilkan di atas aplikasi lain</string>
|
||||||
|
<string name="app_language_title">Bahasa apl</string>
|
||||||
|
<string name="systems_language">Default sistem</string>
|
||||||
|
<string name="recaptcha_done_button">Selesai</string>
|
||||||
|
<string name="seek_duration_title">Durasi maju/mundur cepat</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Tekan \"Selesai\" saat selesai</string>
|
||||||
</resources>
|
</resources>
|
|
@ -30,9 +30,9 @@
|
||||||
<string name="url_not_supported_toast">URL non supportato</string>
|
<string name="url_not_supported_toast">URL non supportato</string>
|
||||||
<string name="content_language_title">Lingua Predefinita per Contenuti</string>
|
<string name="content_language_title">Lingua Predefinita per Contenuti</string>
|
||||||
<string name="settings_category_video_audio_title">Video e Audio</string>
|
<string name="settings_category_video_audio_title">Video e Audio</string>
|
||||||
<string name="list_thumbnail_view_description">Miniatura anteprima video</string>
|
<string name="list_thumbnail_view_description">Copertina di anteprima video</string>
|
||||||
<string name="detail_thumbnail_view_description">Riproduci video, durata:</string>
|
<string name="detail_thumbnail_view_description">Riproduci video, durata:</string>
|
||||||
<string name="detail_uploader_thumbnail_view_description">Miniatura dell\'immagine di profilo dell\'utente</string>
|
<string name="detail_uploader_thumbnail_view_description">Immagine di profilo dell\'utente</string>
|
||||||
<string name="detail_dislikes_img_view_description">Non mi piace</string>
|
<string name="detail_dislikes_img_view_description">Non mi piace</string>
|
||||||
<string name="detail_likes_img_view_description">Mi piace</string>
|
<string name="detail_likes_img_view_description">Mi piace</string>
|
||||||
<string name="err_dir_create">Impossibile creare la cartella di download \'%1$s\'</string>
|
<string name="err_dir_create">Impossibile creare la cartella di download \'%1$s\'</string>
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
<string name="play_btn_text">Riproduci</string>
|
<string name="play_btn_text">Riproduci</string>
|
||||||
<string name="general_error">Errore</string>
|
<string name="general_error">Errore</string>
|
||||||
<string name="network_error">Errore di connessione</string>
|
<string name="network_error">Errore di connessione</string>
|
||||||
<string name="could_not_load_thumbnails">Impossibile caricare tutte le miniature</string>
|
<string name="could_not_load_thumbnails">Impossibile caricare tutte le copertine</string>
|
||||||
<string name="youtube_signature_decryption_error">Impossibile decriptare la firma dell\'URL del video</string>
|
<string name="youtube_signature_decryption_error">Impossibile decriptare la firma dell\'URL del video</string>
|
||||||
<string name="content_not_available">Contenuto non disponibile</string>
|
<string name="content_not_available">Contenuto non disponibile</string>
|
||||||
<string name="use_tor_title">Usa Tor</string>
|
<string name="use_tor_title">Usa Tor</string>
|
||||||
|
@ -106,8 +106,8 @@
|
||||||
<string name="could_not_load_image">Impossibile caricare l\'immagine</string>
|
<string name="could_not_load_image">Impossibile caricare l\'immagine</string>
|
||||||
<string name="app_ui_crash">L\'app/UI si è interrotta</string>
|
<string name="app_ui_crash">L\'app/UI si è interrotta</string>
|
||||||
<string name="info_labels">Cosa:\\nRichiesta:\\nLingua contenuto:\\nServizio:\\nOrario GMT:\\nPacchetto:\\nVersione:\\nVersione SO:</string>
|
<string name="info_labels">Cosa:\\nRichiesta:\\nLingua contenuto:\\nServizio:\\nOrario GMT:\\nPacchetto:\\nVersione:\\nVersione SO:</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Risoluzione reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Risoluzione reCAPTCHA</string>
|
||||||
<string name="black_theme_title">Nero</string>
|
<string name="black_theme_title">Nero</string>
|
||||||
<string name="all">Tutto</string>
|
<string name="all">Tutto</string>
|
||||||
<string name="channel">Canale</string>
|
<string name="channel">Canale</string>
|
||||||
|
@ -117,19 +117,19 @@
|
||||||
<string name="recaptcha_request_toast">È richiesta la risoluzione del reCAPTCHA</string>
|
<string name="recaptcha_request_toast">È richiesta la risoluzione del reCAPTCHA</string>
|
||||||
<string name="yes">Sì</string>
|
<string name="yes">Sì</string>
|
||||||
<string name="later">Più tardi</string>
|
<string name="later">Più tardi</string>
|
||||||
<string name="open_in_popup_mode">Apri in modalità popup</string>
|
<string name="open_in_popup_mode">Apri in modalità Popup</string>
|
||||||
<string name="popup_mode_share_menu_title">Modalità popup di NewPipe</string>
|
<string name="popup_mode_share_menu_title">Modalità Popup di NewPipe</string>
|
||||||
<string name="popup_playing_toast">Riproduzione in Modalità Popup</string>
|
<string name="popup_playing_toast">Riproduzione in modalità Popup</string>
|
||||||
<string name="disabled">Disattivato</string>
|
<string name="disabled">Disattivato</string>
|
||||||
<string name="use_external_video_player_summary">L\'audio potrebbe non essere disponibile per ALCUNE risoluzioni</string>
|
<string name="use_external_video_player_summary">L\'audio potrebbe non essere disponibile per ALCUNE risoluzioni</string>
|
||||||
<string name="controls_background_title">In sottofondo</string>
|
<string name="controls_background_title">In Sottofondo</string>
|
||||||
<string name="controls_popup_title">Popup</string>
|
<string name="controls_popup_title">Popup</string>
|
||||||
<string name="default_popup_resolution_title">Risoluzione Predefinita Popup</string>
|
<string name="default_popup_resolution_title">Risoluzione Predefinita Popup</string>
|
||||||
<string name="show_higher_resolutions_title">Mostra Altre Risoluzioni</string>
|
<string name="show_higher_resolutions_title">Mostra Altre Risoluzioni</string>
|
||||||
<string name="show_higher_resolutions_summary">Solo alcuni dispositivi supportano la riproduzione video in 2K e 4K</string>
|
<string name="show_higher_resolutions_summary">Solo alcuni dispositivi supportano la riproduzione video in 2K e 4K</string>
|
||||||
<string name="default_video_format_title">Formato Video Predefinito</string>
|
<string name="default_video_format_title">Formato Video Predefinito</string>
|
||||||
<string name="popup_remember_size_pos_title">Ricorda Dimensione e Posizione Popup</string>
|
<string name="popup_remember_size_pos_title">Ricorda Dimensione e Posizione Popup</string>
|
||||||
<string name="popup_remember_size_pos_summary">Ricorda l\'ultima dimensione e posizione della finestra popup</string>
|
<string name="popup_remember_size_pos_summary">Ricorda dimensione e posizione della finestra Popup</string>
|
||||||
<string name="player_gesture_controls_title">Controllo Movimenti Lettore Multimediale</string>
|
<string name="player_gesture_controls_title">Controllo Movimenti Lettore Multimediale</string>
|
||||||
<string name="player_gesture_controls_summary">Usa i movimenti per controllare luminosità e volume del lettore multimediale</string>
|
<string name="player_gesture_controls_summary">Usa i movimenti per controllare luminosità e volume del lettore multimediale</string>
|
||||||
<string name="show_search_suggestions_title">Suggerimenti Ricerca</string>
|
<string name="show_search_suggestions_title">Suggerimenti Ricerca</string>
|
||||||
|
@ -140,8 +140,8 @@
|
||||||
<string name="clear">Cancella</string>
|
<string name="clear">Cancella</string>
|
||||||
<string name="popup_resizing_indicator_title">Ridimensionamento</string>
|
<string name="popup_resizing_indicator_title">Ridimensionamento</string>
|
||||||
<string name="best_resolution">Risoluzione migliore</string>
|
<string name="best_resolution">Risoluzione migliore</string>
|
||||||
<string name="msg_popup_permission">Questo permesso è necessario
|
<string name="msg_popup_permission">Questo permesso è necessario
|
||||||
\nper riprodurre in modalità popup</string>
|
\nper utilizzare il lettore Popup</string>
|
||||||
<string name="action_settings">Impostazioni</string>
|
<string name="action_settings">Impostazioni</string>
|
||||||
<string name="action_about">Informazioni</string>
|
<string name="action_about">Informazioni</string>
|
||||||
<string name="title_licenses">Licenze di Terze Parti</string>
|
<string name="title_licenses">Licenze di Terze Parti</string>
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
<string name="playlist">Playlist</string>
|
<string name="playlist">Playlist</string>
|
||||||
<string name="undo">Annulla</string>
|
<string name="undo">Annulla</string>
|
||||||
<string name="notification_channel_name">Notifiche NewPipe</string>
|
<string name="notification_channel_name">Notifiche NewPipe</string>
|
||||||
<string name="notification_channel_description">Notifiche per NewPipe in background e per il lettore a comparsa</string>
|
<string name="notification_channel_description">Notifiche per lettore in Sottofondo e Popup</string>
|
||||||
<string name="search_no_results">Nessun risultato</string>
|
<string name="search_no_results">Nessun risultato</string>
|
||||||
<string name="no_subscribers">Nessun iscritto</string>
|
<string name="no_subscribers">Nessun iscritto</string>
|
||||||
<plurals name="subscribers">
|
<plurals name="subscribers">
|
||||||
|
@ -225,25 +225,25 @@
|
||||||
<string name="top_50">Top 50</string>
|
<string name="top_50">Top 50</string>
|
||||||
<string name="new_and_hot">New & hot</string>
|
<string name="new_and_hot">New & hot</string>
|
||||||
<string name="show_hold_to_append_title">Mostra Suggerimento \"Tieni Premuto per Accocodare\"</string>
|
<string name="show_hold_to_append_title">Mostra Suggerimento \"Tieni Premuto per Accocodare\"</string>
|
||||||
<string name="show_hold_to_append_summary">Mostra suggerimento quando il pulsante per la riproduzione \"popup\" o \"in sottofondo\" viene premuto nella pagina dei dettagli del video</string>
|
<string name="show_hold_to_append_summary">Nella pagina dei dettagli del video, mostra un suggerimento alla pressione dei pulsanti per la riproduzione Popup o in Sottofondo</string>
|
||||||
<string name="background_player_append">In Coda in Sottofondo</string>
|
<string name="background_player_append">Accoda in Sottofondo</string>
|
||||||
<string name="popup_playing_append">In Coda in Modalità Popup</string>
|
<string name="popup_playing_append">Accodato in Popup</string>
|
||||||
<string name="play_all">Riproduci tutto</string>
|
<string name="play_all">Riproduci tutto</string>
|
||||||
<string name="player_stream_failure">Impossibile riprodurre questo flusso</string>
|
<string name="player_stream_failure">Impossibile riprodurre questo flusso</string>
|
||||||
<string name="player_unrecoverable_failure">Si è verificato un errore irreversibile</string>
|
<string name="player_unrecoverable_failure">Si è verificato un errore irreversibile</string>
|
||||||
<string name="player_recoverable_failure">Ripristino dell\'errore del lettore multimediale</string>
|
<string name="player_recoverable_failure">Ripristino dell\'errore del lettore multimediale</string>
|
||||||
<string name="title_activity_background_player">Riproduzione in sottofondo</string>
|
<string name="title_activity_background_player">Riproduzione in Sottofondo</string>
|
||||||
<string name="title_activity_popup_player">Riproduzione in modalità a comparsa</string>
|
<string name="title_activity_popup_player">Lettore Popup</string>
|
||||||
<string name="play_queue_remove">Rimuovi</string>
|
<string name="play_queue_remove">Rimuovi</string>
|
||||||
<string name="play_queue_stream_detail">Dettagli</string>
|
<string name="play_queue_stream_detail">Dettagli</string>
|
||||||
<string name="play_queue_audio_settings">Impostazioni audio</string>
|
<string name="play_queue_audio_settings">Impostazioni Audio</string>
|
||||||
<string name="hold_to_append">Tenere premuto per aggiungere alla coda</string>
|
<string name="hold_to_append">Tenere premuto per accodare</string>
|
||||||
<string name="unknown_content">[Sconosciuto]</string>
|
<string name="unknown_content">[Sconosciuto]</string>
|
||||||
<string name="enqueue_on_background">In coda in sottofondo</string>
|
<string name="enqueue_on_background">Accoda in Sottofondo</string>
|
||||||
<string name="enqueue_on_popup">In coda nel riproduttore a comparsa</string>
|
<string name="enqueue_on_popup">Accoda in Popup</string>
|
||||||
<string name="start_here_on_main">Inizia la riproduzione qui</string>
|
<string name="start_here_on_main">Inizia la riproduzione qui</string>
|
||||||
<string name="start_here_on_background">Avvia riproduzione in sottofondo</string>
|
<string name="start_here_on_background">Avvia riproduzione in sottofondo</string>
|
||||||
<string name="start_here_on_popup">Avvia riproduzione a comparsa</string>
|
<string name="start_here_on_popup">Avvia subito in Popup</string>
|
||||||
<string name="donation_title">Dona</string>
|
<string name="donation_title">Dona</string>
|
||||||
<string name="website_title">Sito</string>
|
<string name="website_title">Sito</string>
|
||||||
<string name="website_encouragement">Visita il sito di NewPipe per informazioni e novità.</string>
|
<string name="website_encouragement">Visita il sito di NewPipe per informazioni e novità.</string>
|
||||||
|
@ -251,9 +251,9 @@
|
||||||
<string name="give_back">Restituisci</string>
|
<string name="give_back">Restituisci</string>
|
||||||
<string name="default_content_country_title">Paese Predefinito per Contenuti</string>
|
<string name="default_content_country_title">Paese Predefinito per Contenuti</string>
|
||||||
<string name="toggle_orientation">Cambia orientamento</string>
|
<string name="toggle_orientation">Cambia orientamento</string>
|
||||||
<string name="switch_to_background">Passa alla riproduzione in background</string>
|
<string name="switch_to_background">Passa in Sottofondo</string>
|
||||||
<string name="switch_to_popup">Passa a Popup</string>
|
<string name="switch_to_popup">Passa a Popup</string>
|
||||||
<string name="switch_to_main">Passa alla produzione predefinita</string>
|
<string name="switch_to_main">Passa a Principale</string>
|
||||||
<string name="service_title">Servizio</string>
|
<string name="service_title">Servizio</string>
|
||||||
<string name="drawer_open">Apri il menu</string>
|
<string name="drawer_open">Apri il menu</string>
|
||||||
<string name="drawer_close">Chiudi il menu</string>
|
<string name="drawer_close">Chiudi il menu</string>
|
||||||
|
@ -265,8 +265,8 @@
|
||||||
<string name="video_streams_empty">Nessun flusso video trovato</string>
|
<string name="video_streams_empty">Nessun flusso video trovato</string>
|
||||||
<string name="audio_streams_empty">Nessun flusso audio trovato</string>
|
<string name="audio_streams_empty">Nessun flusso audio trovato</string>
|
||||||
<string name="video_player">Lettore video</string>
|
<string name="video_player">Lettore video</string>
|
||||||
<string name="background_player">Riproduzione in sottofondo</string>
|
<string name="background_player">Riproduzione in Sottofondo</string>
|
||||||
<string name="popup_player">Riproduzione in modalità popup</string>
|
<string name="popup_player">Lettore Popup</string>
|
||||||
<string name="preferred_player_fetcher_notification_title">Raccogliendo informazioni…</string>
|
<string name="preferred_player_fetcher_notification_title">Raccogliendo informazioni…</string>
|
||||||
<string name="preferred_player_fetcher_notification_message">Caricamento del contenuto richiesto</string>
|
<string name="preferred_player_fetcher_notification_message">Caricamento del contenuto richiesto</string>
|
||||||
<string name="import_data_title">Importa database</string>
|
<string name="import_data_title">Importa database</string>
|
||||||
|
@ -298,13 +298,13 @@
|
||||||
<string name="rename_playlist">Rinomina</string>
|
<string name="rename_playlist">Rinomina</string>
|
||||||
<string name="playlist_name_input">Nome</string>
|
<string name="playlist_name_input">Nome</string>
|
||||||
<string name="append_playlist">Aggiunti alla playlist</string>
|
<string name="append_playlist">Aggiunti alla playlist</string>
|
||||||
<string name="set_as_playlist_thumbnail">Imposta come miniatura della playlist</string>
|
<string name="set_as_playlist_thumbnail">Imposta come Copertina della Playlist</string>
|
||||||
<string name="bookmark_playlist">Segnalibri playlist</string>
|
<string name="bookmark_playlist">Segnalibri playlist</string>
|
||||||
<string name="unbookmark_playlist">Rimuovi segnalibro</string>
|
<string name="unbookmark_playlist">Rimuovi segnalibro</string>
|
||||||
<string name="delete_playlist_prompt">Eliminare la playlist\?</string>
|
<string name="delete_playlist_prompt">Eliminare la playlist\?</string>
|
||||||
<string name="playlist_creation_success">Playlist creata</string>
|
<string name="playlist_creation_success">Playlist creata</string>
|
||||||
<string name="playlist_add_stream_success">Aggiunto alla Playlist</string>
|
<string name="playlist_add_stream_success">Aggiunto alla Playlist</string>
|
||||||
<string name="playlist_thumbnail_change_success">Miniatura della Playlist cambiata.</string>
|
<string name="playlist_thumbnail_change_success">Copertina playlist cambiata.</string>
|
||||||
<string name="playlist_delete_failure">Impossibile eliminare la Playlist.</string>
|
<string name="playlist_delete_failure">Impossibile eliminare la Playlist.</string>
|
||||||
<string name="caption_none">Nessun Sottotitolo</string>
|
<string name="caption_none">Nessun Sottotitolo</string>
|
||||||
<string name="resize_fit">Rientrato</string>
|
<string name="resize_fit">Rientrato</string>
|
||||||
|
@ -352,7 +352,7 @@
|
||||||
<string name="import_network_expensive_warning">Tieni presente che questa operazione può consumare una grande quantità di traffico dati.
|
<string name="import_network_expensive_warning">Tieni presente che questa operazione può consumare una grande quantità di traffico dati.
|
||||||
\n
|
\n
|
||||||
\nVuoi continuare?</string>
|
\nVuoi continuare?</string>
|
||||||
<string name="download_thumbnail_title">Carica Anteprime</string>
|
<string name="download_thumbnail_title">Carica Copertine</string>
|
||||||
<string name="download_thumbnail_summary">Disabilita per prevenire il caricamento delle anteprime, risparmiando dati e memoria. La modifica di questa opzione cancellerà la cache delle immagini in memoria e sul disco.</string>
|
<string name="download_thumbnail_summary">Disabilita per prevenire il caricamento delle anteprime, risparmiando dati e memoria. La modifica di questa opzione cancellerà la cache delle immagini in memoria e sul disco.</string>
|
||||||
<string name="thumbnail_cache_wipe_complete_notice">Cache immagini svuotata</string>
|
<string name="thumbnail_cache_wipe_complete_notice">Cache immagini svuotata</string>
|
||||||
<string name="metadata_cache_wipe_title">Pulisci Cache Metadati</string>
|
<string name="metadata_cache_wipe_title">Pulisci Cache Metadati</string>
|
||||||
|
@ -393,11 +393,11 @@
|
||||||
<string name="skip_silence_checkbox">Avanzamento veloce durante il silenzio</string>
|
<string name="skip_silence_checkbox">Avanzamento veloce durante il silenzio</string>
|
||||||
<string name="playback_step">Step</string>
|
<string name="playback_step">Step</string>
|
||||||
<string name="playback_reset">Reset</string>
|
<string name="playback_reset">Reset</string>
|
||||||
<string name="minimize_on_exit_title">Minimizza al cambio dell\'applicazione</string>
|
<string name="minimize_on_exit_title">Riduci Cambiando App</string>
|
||||||
<string name="minimize_on_exit_summary">Azione quando si passa ad un\'altra app dal lettore video principale — %s</string>
|
<string name="minimize_on_exit_summary">Azione da eseguire cambiando app dal lettore video principale — %s</string>
|
||||||
<string name="minimize_on_exit_none_description">Nessuna</string>
|
<string name="minimize_on_exit_none_description">Niente</string>
|
||||||
<string name="minimize_on_exit_background_description">Minimizza al lettore in sottofondo</string>
|
<string name="minimize_on_exit_background_description">Riduci in Sottofondo</string>
|
||||||
<string name="minimize_on_exit_popup_description">Minimizza al lettore popup</string>
|
<string name="minimize_on_exit_popup_description">Riduci a Popup</string>
|
||||||
<string name="channels">Canali</string>
|
<string name="channels">Canali</string>
|
||||||
<string name="playlists">Playlist</string>
|
<string name="playlists">Playlist</string>
|
||||||
<string name="tracks">Tracce</string>
|
<string name="tracks">Tracce</string>
|
||||||
|
@ -423,7 +423,7 @@
|
||||||
<string name="selection">Selezione</string>
|
<string name="selection">Selezione</string>
|
||||||
<string name="updates_setting_title">Aggiornamenti</string>
|
<string name="updates_setting_title">Aggiornamenti</string>
|
||||||
<string name="updates_setting_description">Mostra una notifica per suggerire l\'aggiornamento dell\'app se una nuova versione è disponibile</string>
|
<string name="updates_setting_description">Mostra una notifica per suggerire l\'aggiornamento dell\'app se una nuova versione è disponibile</string>
|
||||||
<string name="list_view_mode">Visualizzazione a lista</string>
|
<string name="list_view_mode">Modalità Visualizzazione Lista</string>
|
||||||
<string name="list">Lista</string>
|
<string name="list">Lista</string>
|
||||||
<string name="grid">Griglia</string>
|
<string name="grid">Griglia</string>
|
||||||
<string name="auto">Automatica</string>
|
<string name="auto">Automatica</string>
|
||||||
|
@ -433,14 +433,14 @@
|
||||||
<string name="missions_header_finished">Finito</string>
|
<string name="missions_header_finished">Finito</string>
|
||||||
<string name="missions_header_pending">In attesa</string>
|
<string name="missions_header_pending">In attesa</string>
|
||||||
<string name="paused">in pausa</string>
|
<string name="paused">in pausa</string>
|
||||||
<string name="queued">in coda</string>
|
<string name="queued">accodato</string>
|
||||||
<string name="post_processing">post-processo</string>
|
<string name="post_processing">post-processo</string>
|
||||||
<string name="enqueue">Accoda</string>
|
<string name="enqueue">Accoda</string>
|
||||||
<string name="permission_denied">Azione negata dal sistema</string>
|
<string name="permission_denied">Azione negata dal sistema</string>
|
||||||
<string name="download_failed">Download fallito</string>
|
<string name="download_failed">Download fallito</string>
|
||||||
<string name="download_finished">Download terminato</string>
|
<string name="download_finished">Download terminato</string>
|
||||||
<string name="download_finished_more">%s download terminati</string>
|
<string name="download_finished_more">%s download terminati</string>
|
||||||
<string name="generate_unique_name">Genera un nome unico</string>
|
<string name="generate_unique_name">Genera Nome Univoco</string>
|
||||||
<string name="overwrite">Sovrascrivi</string>
|
<string name="overwrite">Sovrascrivi</string>
|
||||||
<string name="overwrite_finished_warning">Esiste già un file scaricato con lo stesso nome</string>
|
<string name="overwrite_finished_warning">Esiste già un file scaricato con lo stesso nome</string>
|
||||||
<string name="download_already_running">C\'è un download in corso con questo nome</string>
|
<string name="download_already_running">C\'è un download in corso con questo nome</string>
|
||||||
|
@ -484,11 +484,11 @@
|
||||||
<string name="missing_file">File spostato o cancellato</string>
|
<string name="missing_file">File spostato o cancellato</string>
|
||||||
<string name="overwrite_unrelated_warning">Esiste già un file con questo nome</string>
|
<string name="overwrite_unrelated_warning">Esiste già un file con questo nome</string>
|
||||||
<string name="overwrite_failed">impossibile sovrascrivere il file</string>
|
<string name="overwrite_failed">impossibile sovrascrivere il file</string>
|
||||||
<string name="download_already_pending">C\'è un download in corso con questo nome</string>
|
<string name="download_already_pending">C\'è un download in attesa con questo nome</string>
|
||||||
<string name="error_postprocessing_stopped">NewPipe è stato chiuso mentre lavorava sul file</string>
|
<string name="error_postprocessing_stopped">NewPipe è stato chiuso mentre lavorava sul file</string>
|
||||||
<string name="error_insufficient_storage">Spazio insufficiente sul dispositivo</string>
|
<string name="error_insufficient_storage">Spazio insufficiente sul dispositivo</string>
|
||||||
<string name="error_progress_lost">Progresso perso poiché il file è stato eliminato</string>
|
<string name="error_progress_lost">Progresso perso poiché il file è stato eliminato</string>
|
||||||
<string name="confirm_prompt">Sei sicuro\?</string>
|
<string name="confirm_prompt">Pulire la cronologia dei download o eliminare tutti i file scaricati\?</string>
|
||||||
<string name="enable_queue_limit_desc">Sarà avviato un solo dowload per volta</string>
|
<string name="enable_queue_limit_desc">Sarà avviato un solo dowload per volta</string>
|
||||||
<string name="start_downloads">Avvia downloads</string>
|
<string name="start_downloads">Avvia downloads</string>
|
||||||
<string name="pause_downloads">Metti in pausa i downloads</string>
|
<string name="pause_downloads">Metti in pausa i downloads</string>
|
||||||
|
@ -519,10 +519,10 @@
|
||||||
<string name="default_kiosk_page_summary">Contenuti in Evidenza Predefiniti</string>
|
<string name="default_kiosk_page_summary">Contenuti in Evidenza Predefiniti</string>
|
||||||
<string name="seek_duration_title">Durata Avanzamento e Riavvolgimento Rapidi</string>
|
<string name="seek_duration_title">Durata Avanzamento e Riavvolgimento Rapidi</string>
|
||||||
<string name="peertube_instance_url_title">Istanze PeerTube</string>
|
<string name="peertube_instance_url_title">Istanze PeerTube</string>
|
||||||
<string name="peertube_instance_url_summary">Imposta le tue istanze PeerTube preferite</string>
|
<string name="peertube_instance_url_summary">Seleziona le istanze PeerTube preferite</string>
|
||||||
<string name="peertube_instance_url_help">Trova le istanze più adatte a te su https://joinpeertube.org/instances#instances-list</string>
|
<string name="peertube_instance_url_help">Trova le istanze più adatte a te su %s</string>
|
||||||
<string name="peertube_instance_add_title">Aggiungi Istanza</string>
|
<string name="peertube_instance_add_title">Aggiungi Istanza</string>
|
||||||
<string name="peertube_instance_add_help">Inserisci URL Istanza</string>
|
<string name="peertube_instance_add_help">Inserisci URL istanza</string>
|
||||||
<string name="peertube_instance_add_fail">Impossibile convalidare l\'istanza</string>
|
<string name="peertube_instance_add_fail">Impossibile convalidare l\'istanza</string>
|
||||||
<string name="peertube_instance_add_https_only">Sono supportati solo gli URL HTTPS</string>
|
<string name="peertube_instance_add_https_only">Sono supportati solo gli URL HTTPS</string>
|
||||||
<string name="peertube_instance_add_exists">L\'istanza esiste già</string>
|
<string name="peertube_instance_add_exists">L\'istanza esiste già</string>
|
||||||
|
@ -533,4 +533,14 @@
|
||||||
<string name="recovering">recupero</string>
|
<string name="recovering">recupero</string>
|
||||||
<string name="error_download_resource_gone">Impossibile recuperare questo download</string>
|
<string name="error_download_resource_gone">Impossibile recuperare questo download</string>
|
||||||
<string name="choose_instance_prompt">Scegli un\'Istanza</string>
|
<string name="choose_instance_prompt">Scegli un\'Istanza</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">Abilita Copertine sulla Schermata di Blocco</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_summary">Durante la riproduzione in sottofondo, verrà mostrata la copertina del video sulla schermata di blocco</string>
|
||||||
|
<string name="clear_download_history">Svuota Cronologia Download</string>
|
||||||
|
<string name="delete_downloaded_files">Elimina File Scaricati</string>
|
||||||
|
<string name="deleted_downloads">%1$s download eliminati</string>
|
||||||
|
<string name="permission_display_over_apps">Consentire la visualizzazione sopra altre applicazioni</string>
|
||||||
|
<string name="app_language_title">Lingua Applicazione</string>
|
||||||
|
<string name="systems_language">Predefinita di Sistema</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Premere \"Fatto\" quando risolto</string>
|
||||||
|
<string name="recaptcha_done_button">Fatto</string>
|
||||||
</resources>
|
</resources>
|
|
@ -106,8 +106,8 @@
|
||||||
<string name="could_not_load_image">画像を読み込みできません</string>
|
<string name="could_not_load_image">画像を読み込みできません</string>
|
||||||
<string name="app_ui_crash">アプリ/UI がクラッシュしました</string>
|
<string name="app_ui_crash">アプリ/UI がクラッシュしました</string>
|
||||||
<string name="info_labels">何:\\\\n提案:\\\\nコンテンツ言語:\\\\nサービス:\\\\nGMT 時間:\\\\nパッケージ:\\\\nバージョン:\\\\nOSバージョン:</string>
|
<string name="info_labels">何:\\\\n提案:\\\\nコンテンツ言語:\\\\nサービス:\\\\nGMT 時間:\\\\nパッケージ:\\\\nバージョン:\\\\nOSバージョン:</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA の要求</string>
|
<string name="title_activity_recaptcha">reCAPTCHA の要求</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA を要求しました</string>
|
<string name="recaptcha_request_toast">reCAPTCHA を要求しました</string>
|
||||||
<string name="black_theme_title">ブラック</string>
|
<string name="black_theme_title">ブラック</string>
|
||||||
<string name="all">すべて</string>
|
<string name="all">すべて</string>
|
||||||
|
@ -212,7 +212,7 @@
|
||||||
<string name="feed_page_summary">フィードページ</string>
|
<string name="feed_page_summary">フィードページ</string>
|
||||||
<string name="channel_page_summary">チャンネルページ</string>
|
<string name="channel_page_summary">チャンネルページ</string>
|
||||||
<string name="select_a_channel">チャンネルを選択</string>
|
<string name="select_a_channel">チャンネルを選択</string>
|
||||||
<string name="no_channel_subscribed_yet">購読しているチャンネルはありません</string>
|
<string name="no_channel_subscribed_yet">登録しているチャンネルはありません</string>
|
||||||
<string name="select_a_kiosk">Kioskを選択</string>
|
<string name="select_a_kiosk">Kioskを選択</string>
|
||||||
<string name="kiosk">Kiosk</string>
|
<string name="kiosk">Kiosk</string>
|
||||||
<string name="trending">人気</string>
|
<string name="trending">人気</string>
|
||||||
|
@ -232,8 +232,8 @@
|
||||||
<string name="just_once">一度だけ</string>
|
<string name="just_once">一度だけ</string>
|
||||||
<string name="import_data_title">データベースをインポート</string>
|
<string name="import_data_title">データベースをインポート</string>
|
||||||
<string name="export_data_title">データベースをエクスポート</string>
|
<string name="export_data_title">データベースをエクスポート</string>
|
||||||
<string name="import_data_summary">既存の履歴と購読リストは上書きされます</string>
|
<string name="import_data_summary">既存の履歴と登録リストは上書きされます</string>
|
||||||
<string name="export_data_summary">履歴や購読リスト、プレイリストをエクスポートします</string>
|
<string name="export_data_summary">履歴や登録リスト、プレイリストをエクスポートします</string>
|
||||||
<string name="player_recoverable_failure">再生エラーからの回復中</string>
|
<string name="player_recoverable_failure">再生エラーからの回復中</string>
|
||||||
<string name="external_player_unsupported_link_type">外部プレイヤーは、これらのタイプのリンクをサポートしていません</string>
|
<string name="external_player_unsupported_link_type">外部プレイヤーは、これらのタイプのリンクをサポートしていません</string>
|
||||||
<string name="invalid_url_toast">無効なURL</string>
|
<string name="invalid_url_toast">無効なURL</string>
|
||||||
|
@ -254,7 +254,7 @@
|
||||||
<string name="preferred_player_fetcher_notification_message">コンテンツを読み込んでいます</string>
|
<string name="preferred_player_fetcher_notification_message">コンテンツを読み込んでいます</string>
|
||||||
<string name="controls_download_desc">動画ファイルをダウンロード</string>
|
<string name="controls_download_desc">動画ファイルをダウンロード</string>
|
||||||
<string name="show_info">情報を表示</string>
|
<string name="show_info">情報を表示</string>
|
||||||
<string name="tab_bookmarks">ブックマーク</string>
|
<string name="tab_bookmarks">プレイリスト</string>
|
||||||
<string name="download_thumbnail_title">サムネイルを読み込む</string>
|
<string name="download_thumbnail_title">サムネイルを読み込む</string>
|
||||||
<string name="thumbnail_cache_wipe_complete_notice">画像キャッシュを消去しました</string>
|
<string name="thumbnail_cache_wipe_complete_notice">画像キャッシュを消去しました</string>
|
||||||
<string name="metadata_cache_wipe_title">キャッシュを消去</string>
|
<string name="metadata_cache_wipe_title">キャッシュを消去</string>
|
||||||
|
@ -301,8 +301,8 @@
|
||||||
<string name="export_ongoing">エクスポートしています…</string>
|
<string name="export_ongoing">エクスポートしています…</string>
|
||||||
<string name="import_file_title">ファイルからインポート</string>
|
<string name="import_file_title">ファイルからインポート</string>
|
||||||
<string name="previous_export">前回のエクスポート先</string>
|
<string name="previous_export">前回のエクスポート先</string>
|
||||||
<string name="subscriptions_import_unsuccessful">購読リストがインポートできませんでした</string>
|
<string name="subscriptions_import_unsuccessful">登録リストがインポートできませんでした</string>
|
||||||
<string name="subscriptions_export_unsuccessful">購読リストがエクスポートできませんでした</string>
|
<string name="subscriptions_export_unsuccessful">登録リストがエクスポートできませんでした</string>
|
||||||
<string name="playback_tempo">速度</string>
|
<string name="playback_tempo">速度</string>
|
||||||
<string name="playback_pitch">音程</string>
|
<string name="playback_pitch">音程</string>
|
||||||
<string name="playback_default">デフォルト</string>
|
<string name="playback_default">デフォルト</string>
|
||||||
|
@ -330,7 +330,7 @@
|
||||||
<string name="delete_search_history_alert">すべての検索履歴を削除しますか?</string>
|
<string name="delete_search_history_alert">すべての検索履歴を削除しますか?</string>
|
||||||
<string name="invalid_source">このファイル/コンテンツはありません</string>
|
<string name="invalid_source">このファイル/コンテンツはありません</string>
|
||||||
<plurals name="subscribers">
|
<plurals name="subscribers">
|
||||||
<item quantity="other">登録者数 %s 人</item>
|
<item quantity="other">%s を登録しています</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_views">視聴なし</string>
|
<string name="no_views">視聴なし</string>
|
||||||
<plurals name="views">
|
<plurals name="views">
|
||||||
|
@ -339,7 +339,7 @@
|
||||||
<string name="one_item_deleted">1 つのアイテムが削除されました。</string>
|
<string name="one_item_deleted">1 つのアイテムが削除されました。</string>
|
||||||
<string name="give_back">支援する</string>
|
<string name="give_back">支援する</string>
|
||||||
<string name="privacy_policy_encouragement">NewPipe プロジェクトはあなたのプライバシーを非常に大切にしています。あなたの同意がない限り、アプリはいかなるデータも収集しません。NewPipe のプライバシー・ポリシーでは、クラッシュリポート送信時にどのような種類のデータが送信・記録されるかを詳細に説明しています。</string>
|
<string name="privacy_policy_encouragement">NewPipe プロジェクトはあなたのプライバシーを非常に大切にしています。あなたの同意がない限り、アプリはいかなるデータも収集しません。NewPipe のプライバシー・ポリシーでは、クラッシュリポート送信時にどのような種類のデータが送信・記録されるかを詳細に説明しています。</string>
|
||||||
<string name="app_license">NewPipe は著作権が自由のソフトウェアです。あなたは自由にそれを使用し、研究し、そして改善することができます。あなたは、GNU フリーソフトウェア財団が公開する GNU General Public ライセンス バージョン3以降の下に、自由に再配布・修正を行うことができます。</string>
|
<string name="app_license">NewPipe はコピーレフトなソフトウェアです。あなたは自由にそれを使用し、研究し、そして改善することができます。あなたは、GNU フリーソフトウェア財団が公開する GNU General Public ライセンス バージョン3以降の下に、自由に再配布・修正を行うことができます。</string>
|
||||||
<string name="title_last_played">最終再生日時</string>
|
<string name="title_last_played">最終再生日時</string>
|
||||||
<string name="title_most_played">最も再生した動画</string>
|
<string name="title_most_played">最も再生した動画</string>
|
||||||
<string name="resize_zoom">ズーム</string>
|
<string name="resize_zoom">ズーム</string>
|
||||||
|
@ -360,10 +360,10 @@
|
||||||
<string name="caption_auto_generated">自動生成</string>
|
<string name="caption_auto_generated">自動生成</string>
|
||||||
<string name="caption_setting_description">プレーヤーのキャプションテキストの縮尺と背景スタイルを変更します。有効にするには、アプリの再起動が必要です。</string>
|
<string name="caption_setting_description">プレーヤーのキャプションテキストの縮尺と背景スタイルを変更します。有効にするには、アプリの再起動が必要です。</string>
|
||||||
<string name="empty_subscription_feed_subtitle">何もありません</string>
|
<string name="empty_subscription_feed_subtitle">何もありません</string>
|
||||||
<string name="import_youtube_instructions">保存したエクスポートファイルからYouTubeの購読をインポート:
|
<string name="import_youtube_instructions">保存したエクスポートファイルからYouTubeの登録をインポート:
|
||||||
\n
|
\n
|
||||||
\n1. このURLを開きます: %1$s
|
\n1. このURLを開きます: %1$s
|
||||||
\n2. ログインしていなければログインします
|
\n2. ログインしていなければログインします
|
||||||
\n3. ダウンロードが始まります (これがエクスポートファイルです)</string>
|
\n3. ダウンロードが始まります (これがエクスポートファイルです)</string>
|
||||||
<string name="playback_reset">リセット</string>
|
<string name="playback_reset">リセット</string>
|
||||||
<string name="accept">同意する</string>
|
<string name="accept">同意する</string>
|
||||||
|
@ -393,7 +393,7 @@
|
||||||
<string name="unhook_checkbox">速度と音程を連動せずに変更 (歪むかもしれません)</string>
|
<string name="unhook_checkbox">速度と音程を連動せずに変更 (歪むかもしれません)</string>
|
||||||
<string name="skip_silence_checkbox">無音の間に早送り</string>
|
<string name="skip_silence_checkbox">無音の間に早送り</string>
|
||||||
<string name="playback_step">音程幅</string>
|
<string name="playback_step">音程幅</string>
|
||||||
<string name="unsubscribe">購読解除</string>
|
<string name="unsubscribe">登録解除</string>
|
||||||
<string name="tab_new">新しいタブ</string>
|
<string name="tab_new">新しいタブ</string>
|
||||||
<string name="tab_choose">タブを選択</string>
|
<string name="tab_choose">タブを選択</string>
|
||||||
<string name="settings_category_updates_title">アプリの更新</string>
|
<string name="settings_category_updates_title">アプリの更新</string>
|
||||||
|
@ -402,7 +402,7 @@
|
||||||
<string name="download_to_sdcard_error_title">外部記憶装置は利用できません</string>
|
<string name="download_to_sdcard_error_title">外部記憶装置は利用できません</string>
|
||||||
<string name="restore_defaults">既定値に戻す</string>
|
<string name="restore_defaults">既定値に戻す</string>
|
||||||
<string name="restore_defaults_confirmation">既定の設定を復元しますか\?</string>
|
<string name="restore_defaults_confirmation">既定の設定を復元しますか\?</string>
|
||||||
<string name="subscribers_count_not_available">登録者数は表示できません</string>
|
<string name="subscribers_count_not_available">登録者数は利用できません</string>
|
||||||
<string name="selection">選択</string>
|
<string name="selection">選択</string>
|
||||||
<string name="conferences">会議</string>
|
<string name="conferences">会議</string>
|
||||||
<string name="start_accept_privacy_policy">ヨーロッパの一般データ保護規制(GDPR)に準拠するために、NewPipeの個人情報保護方針にご注意ください。よく読んでください。
|
<string name="start_accept_privacy_policy">ヨーロッパの一般データ保護規制(GDPR)に準拠するために、NewPipeの個人情報保護方針にご注意ください。よく読んでください。
|
||||||
|
@ -415,7 +415,7 @@
|
||||||
<string name="switch_view">スイッチビュー</string>
|
<string name="switch_view">スイッチビュー</string>
|
||||||
<string name="app_update_notification_content_title">NewPipeのアップデートがあります!</string>
|
<string name="app_update_notification_content_title">NewPipeのアップデートがあります!</string>
|
||||||
<string name="app_update_notification_content_text">タップでダウンロード</string>
|
<string name="app_update_notification_content_text">タップでダウンロード</string>
|
||||||
<string name="missions_header_finished">終了しました</string>
|
<string name="missions_header_finished">完了</string>
|
||||||
<string name="missions_header_pending">保留中</string>
|
<string name="missions_header_pending">保留中</string>
|
||||||
<string name="paused">一時停止</string>
|
<string name="paused">一時停止</string>
|
||||||
<string name="queued">順番待ちに追加しました</string>
|
<string name="queued">順番待ちに追加しました</string>
|
||||||
|
@ -480,7 +480,7 @@
|
||||||
<string name="error_postprocessing_stopped">ファイルの作業中に NewPipe が閉じられました</string>
|
<string name="error_postprocessing_stopped">ファイルの作業中に NewPipe が閉じられました</string>
|
||||||
<string name="error_insufficient_storage">デバイスに空き容量がありません</string>
|
<string name="error_insufficient_storage">デバイスに空き容量がありません</string>
|
||||||
<string name="error_progress_lost">ファイルが削除されたため、進行状況が失われました</string>
|
<string name="error_progress_lost">ファイルが削除されたため、進行状況が失われました</string>
|
||||||
<string name="confirm_prompt">よろしいですか\?</string>
|
<string name="confirm_prompt">ダウンロード履歴、またはダウンロードしたファイルを消去しますか\?</string>
|
||||||
<string name="enable_queue_limit">ダウンロード キューの制限</string>
|
<string name="enable_queue_limit">ダウンロード キューの制限</string>
|
||||||
<string name="enable_queue_limit_desc">同時に1つのダウンロードが実行されます</string>
|
<string name="enable_queue_limit_desc">同時に1つのダウンロードが実行されます</string>
|
||||||
<string name="start_downloads">ダウンロードの開始</string>
|
<string name="start_downloads">ダウンロードの開始</string>
|
||||||
|
@ -498,16 +498,42 @@
|
||||||
<string name="download_choose_new_path">ダウンロードフォルダーを変更して有効にします</string>
|
<string name="download_choose_new_path">ダウンロードフォルダーを変更して有効にします</string>
|
||||||
<string name="drawer_header_description">サービスの切り替え、現在の選択:</string>
|
<string name="drawer_header_description">サービスの切り替え、現在の選択:</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="other">動画</item>
|
<item quantity="other">%s つの動画</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="default_kiosk_page_summary">デフォルトのキオスク</string>
|
<string name="default_kiosk_page_summary">デフォルトのキオスク</string>
|
||||||
<string name="no_one_watching">誰も見ていません</string>
|
<string name="no_one_watching">誰も見ていません</string>
|
||||||
<plurals name="watching">
|
<plurals name="watching">
|
||||||
<item quantity="other">%s 見ています</item>
|
<item quantity="other">%s 視聴中</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_one_listening">誰も聞いていません</string>
|
<string name="no_one_listening">誰も聞いていません</string>
|
||||||
<plurals name="listening">
|
<plurals name="listening">
|
||||||
<item quantity="other">%s リスナー</item>
|
<item quantity="other">%s リスナー</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="localization_changes_requires_app_restart">アプリを再起動すると、言語が変更されます。</string>
|
<string name="localization_changes_requires_app_restart">アプリを再起動すると、言語が変更されます。</string>
|
||||||
|
<string name="seek_duration_title">高速早送り/巻き戻し時間</string>
|
||||||
|
<string name="peertube_instance_url_title">PeerTube インスタンス</string>
|
||||||
|
<string name="peertube_instance_url_summary">PeerTube インスタンスを選択する</string>
|
||||||
|
<string name="peertube_instance_url_help">あなたに最適なインスタンスを探せます: %s</string>
|
||||||
|
<string name="peertube_instance_add_title">インスタンスを追加</string>
|
||||||
|
<string name="peertube_instance_add_help">インスタンスの URL を入力</string>
|
||||||
|
<string name="peertube_instance_add_fail">インスタンスを検証することができませんでした</string>
|
||||||
|
<string name="peertube_instance_add_https_only">HTTPS な URL のみがサポートされています</string>
|
||||||
|
<string name="peertube_instance_add_exists">インスタンスはすでに存在しています</string>
|
||||||
|
<string name="local">ローカル</string>
|
||||||
|
<string name="recently_added">最近追加された</string>
|
||||||
|
<string name="most_liked">高評価</string>
|
||||||
|
<string name="recovering">修復中</string>
|
||||||
|
<string name="error_download_resource_gone">ダウンロードが修復できません</string>
|
||||||
|
<string name="choose_instance_prompt">インスタンスを選択</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">ロック画面の動画サムネイルを有効にする</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_summary">バックグラウンドプレイヤーを使用中、ロック画面に動画のサムネイルが表示されるようになります</string>
|
||||||
|
<string name="clear_download_history">ダウンロード履歴を消去</string>
|
||||||
|
<string name="delete_downloaded_files">ダウンロードしたファイルを消去</string>
|
||||||
|
<string name="deleted_downloads">%1$s 個削除しました</string>
|
||||||
|
<string name="playlist_no_uploader">自動生成 (アップローダーが見つかりません)</string>
|
||||||
|
<string name="permission_display_over_apps">他のアプリの上に表示する権限を与えてください</string>
|
||||||
|
<string name="app_language_title">アプリの言語</string>
|
||||||
|
<string name="systems_language">システムの既定</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">解けたら \"完了\" を押してください</string>
|
||||||
|
<string name="recaptcha_done_button">完了</string>
|
||||||
</resources>
|
</resources>
|
|
@ -180,7 +180,7 @@
|
||||||
<string name="no_available_dir">다운로드 할 폴더를 설정에서 지정하세요</string>
|
<string name="no_available_dir">다운로드 할 폴더를 설정에서 지정하세요</string>
|
||||||
<string name="msg_popup_permission">이 권한은 팝업 모드에서
|
<string name="msg_popup_permission">이 권한은 팝업 모드에서
|
||||||
\n열기 위해 필요합니다</string>
|
\n열기 위해 필요합니다</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA 확인 요청됨</string>
|
<string name="recaptcha_request_toast">reCAPTCHA 확인 요청됨</string>
|
||||||
<string name="settings_category_downloads_title">다운로드</string>
|
<string name="settings_category_downloads_title">다운로드</string>
|
||||||
<string name="settings_file_charset_title">파일명에 허용되는 문자</string>
|
<string name="settings_file_charset_title">파일명에 허용되는 문자</string>
|
||||||
|
@ -274,7 +274,7 @@
|
||||||
<string name="delete_all">모두 삭제하기</string>
|
<string name="delete_all">모두 삭제하기</string>
|
||||||
<string name="dismiss">취소</string>
|
<string name="dismiss">취소</string>
|
||||||
<string name="rename">이름 바꾸기</string>
|
<string name="rename">이름 바꾸기</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA 확인</string>
|
<string name="title_activity_recaptcha">reCAPTCHA 확인</string>
|
||||||
<string name="delete_stream_history_prompt">이 항목을 시청 기록에서 삭제하시겠습니까?</string>
|
<string name="delete_stream_history_prompt">이 항목을 시청 기록에서 삭제하시겠습니까?</string>
|
||||||
<string name="delete_all_history_prompt">모든 항목을 시청 기록에서 삭제하시겠습니까?</string>
|
<string name="delete_all_history_prompt">모든 항목을 시청 기록에서 삭제하시겠습니까?</string>
|
||||||
<string name="title_last_played">마지막으로 재생</string>
|
<string name="title_last_played">마지막으로 재생</string>
|
||||||
|
@ -482,7 +482,7 @@
|
||||||
<string name="error_insufficient_storage">남은 저장공간이 없습니다</string>
|
<string name="error_insufficient_storage">남은 저장공간이 없습니다</string>
|
||||||
<string name="error_progress_lost">파일이 삭제되어 진행이 중지되었습니다</string>
|
<string name="error_progress_lost">파일이 삭제되어 진행이 중지되었습니다</string>
|
||||||
<string name="error_timeout">연결시간 초과</string>
|
<string name="error_timeout">연결시간 초과</string>
|
||||||
<string name="confirm_prompt">확실합니까\?</string>
|
<string name="confirm_prompt">모든 다운로드 기록과 파일을 삭제합니다.확실합니까\?</string>
|
||||||
<string name="enable_queue_limit">다운로드 대기 제한</string>
|
<string name="enable_queue_limit">다운로드 대기 제한</string>
|
||||||
<string name="start_downloads">다운로드 시작</string>
|
<string name="start_downloads">다운로드 시작</string>
|
||||||
<string name="pause_downloads">다운로드 일시정지</string>
|
<string name="pause_downloads">다운로드 일시정지</string>
|
||||||
|
@ -497,10 +497,40 @@
|
||||||
<string name="downloads_storage_ask_summary_kitkat">매 다운로드 마다 저장경로를 묻습니다.
|
<string name="downloads_storage_ask_summary_kitkat">매 다운로드 마다 저장경로를 묻습니다.
|
||||||
\n외장 SD카드에 다운로드 하고자 한다면 SAF를 선택하십시오</string>
|
\n외장 SD카드에 다운로드 하고자 한다면 SAF를 선택하십시오</string>
|
||||||
<plurals name="videos">
|
<plurals name="videos">
|
||||||
<item quantity="other">%s개의 동영상</item>
|
<item quantity="other">동영상</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="enable_queue_limit_desc">하나의 다운로드가 동시에 진행됩니다</string>
|
<string name="enable_queue_limit_desc">하나의 다운로드가 동시에 진행됩니다</string>
|
||||||
<string name="download_choose_new_path">적용하려면 다운로드 폴더를 변경하세요</string>
|
<string name="download_choose_new_path">적용하려면 다운로드 폴더를 변경하세요</string>
|
||||||
<string name="drawer_header_description">서비스 토글, 현재 선택된 서비스:</string>
|
<string name="drawer_header_description">서비스 토글, 현재 선택된 서비스:</string>
|
||||||
<string name="default_kiosk_page_summary">기본 키오스크</string>
|
<string name="default_kiosk_page_summary">기본 키오스크</string>
|
||||||
|
<string name="no_one_watching">시청자가 없습니다.</string>
|
||||||
|
<plurals name="watching">
|
||||||
|
<item quantity="other">%s 시청</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="no_one_listening">듣고 있는 사람이 없습니다.</string>
|
||||||
|
<plurals name="listening">
|
||||||
|
<item quantity="other">%s 듣는사람</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="localization_changes_requires_app_restart">앱을 재시작하면 언어가 변경됩니다.</string>
|
||||||
|
<string name="seek_duration_title">빠른-감기/되감기 찾는 시간</string>
|
||||||
|
<string name="peertube_instance_url_title">피어튜브 인스턴스</string>
|
||||||
|
<string name="peertube_instance_url_summary">당신이 선호하는 피어튜브 인스턴스를 선택하세요.</string>
|
||||||
|
<string name="peertube_instance_url_help">%s에서 당신에게 가장 잘 어울리는 인스턴스를 찾으세요.</string>
|
||||||
|
<string name="peertube_instance_add_title">인스턴스 추가하기</string>
|
||||||
|
<string name="peertube_instance_add_help">인스턴스 URL을 입력하세요.</string>
|
||||||
|
<string name="peertube_instance_add_fail">인스턴스를 검증할 수 없습니다.</string>
|
||||||
|
<string name="peertube_instance_add_https_only">오직 HTTPS URL들만 지원합니다.</string>
|
||||||
|
<string name="peertube_instance_add_exists">인스턴스가 이미 존재합니다.</string>
|
||||||
|
<string name="local">로컬</string>
|
||||||
|
<string name="recently_added">최근에 추가됨.</string>
|
||||||
|
<string name="most_liked">가장 선호하는</string>
|
||||||
|
<string name="playlist_no_uploader">자동생성된(업로더를 찾지못함)</string>
|
||||||
|
<string name="recovering">복구하기</string>
|
||||||
|
<string name="error_download_resource_gone">이 다운로드를 복구할 수 없습니다</string>
|
||||||
|
<string name="choose_instance_prompt">인스턴스를 선택하세요</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">비디어 썸네일 화면 고정을 가능하게 한다</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_summary">백그라운드 플레이어를 사용하는 경우 비디오 썸네일은 고정된 스크린 위에 표시됩니다.</string>
|
||||||
|
<string name="clear_download_history">다운로드 기록 삭제</string>
|
||||||
|
<string name="delete_downloaded_files">다운로드된 파일 삭제</string>
|
||||||
|
<string name="deleted_downloads">%1$s 다운로드 삭제</string>
|
||||||
</resources>
|
</resources>
|
|
@ -1,22 +1,22 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="main_bg_subtitle">گرته له گهڕان بكه بۆ دهستپێكردن</string>
|
<string name="main_bg_subtitle">گرته له ”گهڕان” بكه بۆ دهستپێكردن</string>
|
||||||
<string name="view_count_text">%1$s بینراو</string>
|
<string name="view_count_text">%1$s بینراو</string>
|
||||||
<string name="upload_date_text">بڵاوكراوهتهوه له %1$s</string>
|
<string name="upload_date_text">بڵاوكراوهتهوه له %1$s</string>
|
||||||
<string name="no_player_found">هیچ كارپێكهرێكی ڤیدیۆیی نهدۆزرایهوه. دهتهوێت VLC داگریت؟</string>
|
<string name="no_player_found">هیچ كارپێكهرێكی ڤیدیۆیی نهدۆزرایهوه. دهتهوێت VLC دابمەزرێنیت؟</string>
|
||||||
<string name="no_player_found_toast">هیچ کارپێکەرێکی ڤیدیۆ نەدۆزرایەوە (دەتوانی کارپێکەری VLC دامەزرێنی) .</string>
|
<string name="no_player_found_toast">هیچ کارپێکەرێکی ڤیدیۆیی نەدۆزرایەوە (دەتوانی کارپێکەری VLC دامەزرێنی) .</string>
|
||||||
<string name="install">دامەزراندن</string>
|
<string name="install">دامەزراندن</string>
|
||||||
<string name="cancel">پاشگهزبوونهوه</string>
|
<string name="cancel">پاشگهزبوونهوه</string>
|
||||||
<string name="open_in_browser">كردنهوه له وێبگهر</string>
|
<string name="open_in_browser">كردنهوه له وێبگهر</string>
|
||||||
<string name="open_in_popup_mode">كردنهوه له پهنجهرهی بچووک</string>
|
<string name="open_in_popup_mode">كردنهوه له پهنجهرهی بچووک</string>
|
||||||
<string name="share">هاوبهشپێكردن</string>
|
<string name="share">هاوبهشپێكردن</string>
|
||||||
<string name="download">داگرتن</string>
|
<string name="download">داگرتن</string>
|
||||||
<string name="controls_download_desc">داگرتنی فایلی پەخش</string>
|
<string name="controls_download_desc">داگرتنی پەڕگەی پەخش</string>
|
||||||
<string name="search">گهڕان</string>
|
<string name="search">گهڕان</string>
|
||||||
<string name="settings">ڕێكخستنهكان</string>
|
<string name="settings">ڕێكخستنهكان</string>
|
||||||
<string name="did_you_mean">مەبەستت ئەمەیە:
|
<string name="did_you_mean">مەبەستت ئەمەیە:
|
||||||
\n%1$s\?</string>
|
\n%1$s\?</string>
|
||||||
<string name="share_dialog_title">"هاوبهشپێكردن لهگهڵ "</string>
|
<string name="share_dialog_title">هاوبهشپێكردن لهگهڵ</string>
|
||||||
<string name="choose_browser">ههڵبژاردنی وێبگهر</string>
|
<string name="choose_browser">ههڵبژاردنی وێبگهر</string>
|
||||||
<string name="screen_rotation">لاربوونەوە</string>
|
<string name="screen_rotation">لاربوونەوە</string>
|
||||||
<string name="use_external_video_player_title">بهكارهێنانی كارپێكهری ڤیدیۆی دهرهكی</string>
|
<string name="use_external_video_player_title">بهكارهێنانی كارپێكهری ڤیدیۆی دهرهكی</string>
|
||||||
|
@ -31,17 +31,17 @@
|
||||||
<string name="show_info">پیشاندانی زانیاری</string>
|
<string name="show_info">پیشاندانی زانیاری</string>
|
||||||
<string name="tab_main">سهرهكی</string>
|
<string name="tab_main">سهرهكی</string>
|
||||||
<string name="tab_subscriptions">بهشدارییهكان</string>
|
<string name="tab_subscriptions">بهشدارییهكان</string>
|
||||||
<string name="tab_bookmarks">لیستی کارپێکردنەکان نیشانەکران</string>
|
<string name="tab_bookmarks">خشتەی کارپێکردنەکان نیشانەکران</string>
|
||||||
<string name="fragment_whats_new">چی نوێ ههیه</string>
|
<string name="fragment_whats_new">چی نوێ ههیه</string>
|
||||||
<string name="controls_background_title">لە پاشبنەما</string>
|
<string name="controls_background_title">لە پاشبنەما</string>
|
||||||
<string name="controls_popup_title">پهنجهرهی بچووک</string>
|
<string name="controls_popup_title">پهنجهرهی بچووک</string>
|
||||||
<string name="controls_add_to_playlist_title">زیادکردن بۆ</string>
|
<string name="controls_add_to_playlist_title">زیادکردن بۆ</string>
|
||||||
<string name="download_path_title">فۆڵدەری داگرتنی ڤیدیۆ</string>
|
<string name="download_path_title">فۆڵدەری داگرتنی ڤیدیۆ</string>
|
||||||
<string name="download_path_summary">ڤیدیۆ داگیراوەکان لێرەدا هەڵدەگیرێن</string>
|
<string name="download_path_summary">ڤیدیۆ داگیراوەکان لێرەدا هەڵدەگیرێن</string>
|
||||||
<string name="download_path_dialog_title">فۆڵدەری داگرتن بۆ ڤیدیۆکان هەڵبژێرە</string>
|
<string name="download_path_dialog_title">پەڕگەی داگرتن بۆ ڤیدیۆکان هەڵبژێرە</string>
|
||||||
<string name="download_path_audio_title">فۆڵدەری داگرتنی دهنگ</string>
|
<string name="download_path_audio_title">فۆڵدەری داگرتنی دهنگ</string>
|
||||||
<string name="download_path_audio_summary">دەنگە داگیراوەکان لێرەدا هەڵدەگیرێن</string>
|
<string name="download_path_audio_summary">دەنگە داگیراوەکان لێرەدا هەڵدەگیرێن</string>
|
||||||
<string name="download_path_audio_dialog_title">فۆڵدەری داگرتنی دەنگەکان هەڵبژێرە</string>
|
<string name="download_path_audio_dialog_title">پەڕگەی داگرتنی دەنگەکان هەڵبژێرە</string>
|
||||||
<string name="autoplay_by_calling_app_title">كاركردنی خۆكارانه</string>
|
<string name="autoplay_by_calling_app_title">كاركردنی خۆكارانه</string>
|
||||||
<string name="default_resolution_title">قهبارهی بنەڕەتی</string>
|
<string name="default_resolution_title">قهبارهی بنەڕەتی</string>
|
||||||
<string name="default_popup_resolution_title">قهبارهی بنەڕەتی پهنجهرهی بچووک</string>
|
<string name="default_popup_resolution_title">قهبارهی بنەڕەتی پهنجهرهی بچووک</string>
|
||||||
|
@ -215,8 +215,7 @@
|
||||||
<string name="no_available_dir">تکایە فۆڵدەرێک بۆ شوێنی داگرتن دیاریبکە لە ڕێکخستنەکان</string>
|
<string name="no_available_dir">تکایە فۆڵدەرێک بۆ شوێنی داگرتن دیاریبکە لە ڕێکخستنەکان</string>
|
||||||
<string name="msg_popup_permission">ئەم دەسەڵاتە پێویستە بۆ
|
<string name="msg_popup_permission">ئەم دەسەڵاتە پێویستە بۆ
|
||||||
\nکردنەوەی پەنجەرەی بچووک</string>
|
\nکردنەوەی پەنجەرەی بچووک</string>
|
||||||
<string name="reCaptchaActivity" translatable="false">reCAPTCHA</string>
|
<string name="title_activity_recaptcha">reCAPTCHA داواکاری</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA داواکاری</string>
|
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA داواکراوە</string>
|
<string name="recaptcha_request_toast">reCAPTCHA داواکراوە</string>
|
||||||
<string name="settings_category_downloads_title">داگرتن</string>
|
<string name="settings_category_downloads_title">داگرتن</string>
|
||||||
<string name="charset_letters_and_digits">پیت و ژمارەکان</string>
|
<string name="charset_letters_and_digits">پیت و ژمارەکان</string>
|
||||||
|
@ -517,7 +516,7 @@
|
||||||
<string name="error_insufficient_storage">بیرگەی ناوەکیت پڕبووە</string>
|
<string name="error_insufficient_storage">بیرگەی ناوەکیت پڕبووە</string>
|
||||||
<string name="error_progress_lost">کردارەکە شکستی هێنا, چونکە ئەو فایلە سڕاوەتەوە</string>
|
<string name="error_progress_lost">کردارەکە شکستی هێنا, چونکە ئەو فایلە سڕاوەتەوە</string>
|
||||||
<string name="error_timeout">هێڵی ئینتەرنێت نەما</string>
|
<string name="error_timeout">هێڵی ئینتەرنێت نەما</string>
|
||||||
<string name="confirm_prompt">ئایا دڵنیای؟</string>
|
<string name="confirm_prompt">ئایا دەتەوێ مێژووی داگرتنەکانت بسڕدرێنەوە یان هەموو فایلە داگیراوەکان بسڕدرێنەوە؟</string>
|
||||||
<string name="enable_queue_limit">سنوری ڕیزبوونی داگرتنەکان</string>
|
<string name="enable_queue_limit">سنوری ڕیزبوونی داگرتنەکان</string>
|
||||||
<string name="enable_queue_limit_desc">تەنها یەک داگرتن کاردەکات لەیەک کاتدا</string>
|
<string name="enable_queue_limit_desc">تەنها یەک داگرتن کاردەکات لەیەک کاتدا</string>
|
||||||
<string name="start_downloads">دەستپێکردنەوەی داگرتنەکان</string>
|
<string name="start_downloads">دەستپێکردنەوەی داگرتنەکان</string>
|
||||||
|
@ -538,4 +537,12 @@
|
||||||
<string name="choose_instance_prompt">دۆخێک هەڵبژێرە</string>
|
<string name="choose_instance_prompt">دۆخێک هەڵبژێرە</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">چالاککردنی وێنۆچکەی ڤیدیۆی داخستنی ڕوونما</string>
|
<string name="enable_lock_screen_video_thumbnail_title">چالاککردنی وێنۆچکەی ڤیدیۆی داخستنی ڕوونما</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">کاتێ کارپێکەری پاشبنەما کاردەکات ئەوا وێنۆچکەی ڤیدیۆکە لە ڕوونما داخراوەکەدا نیشاندەدرێت</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">کاتێ کارپێکەری پاشبنەما کاردەکات ئەوا وێنۆچکەی ڤیدیۆکە لە ڕوونما داخراوەکەدا نیشاندەدرێت</string>
|
||||||
|
<string name="clear_download_history">سڕینەوەی مێژووی داگرتن</string>
|
||||||
|
<string name="delete_downloaded_files">سڕینەوەی فایلە داگیراوەکان</string>
|
||||||
|
<string name="deleted_downloads">%1$ لە داگرتنەکان سڕانەوە</string>
|
||||||
|
<string name="permission_display_over_apps">دەسەڵاتی پێبدە بۆ پیشاندان لەسەرووی ئەپەکانیترەوە</string>
|
||||||
|
<string name="app_language_title">زمانی ئەپ</string>
|
||||||
|
<string name="systems_language">بنەڕەتی سیستەم</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">گرتە بکە لەسەر ”تەواو” کاتێ کە چارەسەرکرا</string>
|
||||||
|
<string name="recaptcha_done_button">تەواو</string>
|
||||||
</resources>
|
</resources>
|
|
@ -153,8 +153,8 @@
|
||||||
<string name="no_available_dir">Prašome pasirinkti galimą atsisiuntimų aplankalą</string>
|
<string name="no_available_dir">Prašome pasirinkti galimą atsisiuntimų aplankalą</string>
|
||||||
<string name="msg_popup_permission">Šis leidimas nereikalingas, kad atidarytiviššokančio lango rėžime</string>
|
<string name="msg_popup_permission">Šis leidimas nereikalingas, kad atidarytiviššokančio lango rėžime</string>
|
||||||
|
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA iššūkis</string>
|
<string name="title_activity_recaptcha">reCAPTCHA iššūkis</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA prašomas iššūkis</string>
|
<string name="recaptcha_request_toast">reCAPTCHA prašomas iššūkis</string>
|
||||||
|
|
||||||
<string name="subscribe_button_title">Prenumeruoti</string>
|
<string name="subscribe_button_title">Prenumeruoti</string>
|
||||||
|
|
|
@ -230,8 +230,8 @@
|
||||||
<string name="no_available_dir">Одберете достапна локација за превземања</string>
|
<string name="no_available_dir">Одберете достапна локација за превземања</string>
|
||||||
<string name="msg_popup_permission">Оваа привилегија е потребна за
|
<string name="msg_popup_permission">Оваа привилегија е потребна за
|
||||||
\nотворање во подпрозорче</string>
|
\nотворање во подпрозорче</string>
|
||||||
<string name="reCaptchaActivity">„reCAPTCHA“</string>
|
<string name="recaptcha">„reCAPTCHA“</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA Предизвик</string>
|
<string name="title_activity_recaptcha">reCAPTCHA Предизвик</string>
|
||||||
<string name="recaptcha_request_toast">Потребен е reCAPTCHA предизвик</string>
|
<string name="recaptcha_request_toast">Потребен е reCAPTCHA предизвик</string>
|
||||||
<string name="settings_category_downloads_title">Превземања</string>
|
<string name="settings_category_downloads_title">Превземања</string>
|
||||||
<string name="settings_file_charset_title">Дозволени знаци во имињата на датотеките</string>
|
<string name="settings_file_charset_title">Дозволени знаци во имињата на датотеките</string>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="main_bg_subtitle">Tekan carian untuk bermula</string>
|
<resources>
|
||||||
|
<string name="main_bg_subtitle">Tekan carian untuk bermula</string>
|
||||||
<string name="view_count_text">%1$s tontonan</string>
|
<string name="view_count_text">%1$s tontonan</string>
|
||||||
<string name="upload_date_text">Diterbitkan pada %1$s</string>
|
<string name="upload_date_text">Diterbitkan pada %1$s</string>
|
||||||
<string name="no_player_found">Tiada pemain strim ditemui. Adakah anda mahu memasang VLC\?</string>
|
<string name="no_player_found">Tiada pemain strim ditemui. Adakah anda mahu memasang VLC\?</string>
|
||||||
|
@ -27,7 +28,6 @@
|
||||||
<string name="subscription_change_failed">Tidak dapat menukar langganan</string>
|
<string name="subscription_change_failed">Tidak dapat menukar langganan</string>
|
||||||
<string name="subscription_update_failed">Tidak dapat mengemaskini langganan</string>
|
<string name="subscription_update_failed">Tidak dapat mengemaskini langganan</string>
|
||||||
<string name="show_info">Papar maklumat</string>
|
<string name="show_info">Papar maklumat</string>
|
||||||
|
|
||||||
<string name="tab_main">Utama</string>
|
<string name="tab_main">Utama</string>
|
||||||
<string name="tab_subscriptions">Langganan</string>
|
<string name="tab_subscriptions">Langganan</string>
|
||||||
<string name="tab_bookmarks">Penanda halaman Senarai main</string>
|
<string name="tab_bookmarks">Penanda halaman Senarai main</string>
|
||||||
|
@ -38,12 +38,12 @@
|
||||||
<string name="controls_background_title">Latar Belakang</string>
|
<string name="controls_background_title">Latar Belakang</string>
|
||||||
<string name="controls_popup_title">Popup</string>
|
<string name="controls_popup_title">Popup</string>
|
||||||
<string name="controls_add_to_playlist_title">Tambahkan Ke</string>
|
<string name="controls_add_to_playlist_title">Tambahkan Ke</string>
|
||||||
<string name="download_path_title">Lokasi muat turun video</string>
|
<string name="download_path_title">Folder muat turun video</string>
|
||||||
<string name="download_path_summary">Lokasi untuk menyimpan video yang dimuat turun</string>
|
<string name="download_path_summary">Fail video yang dimuat turun disimpan di sini</string>
|
||||||
<string name="download_path_dialog_title">Memasukkan lokasi muat turun video</string>
|
<string name="download_path_dialog_title">Pilih folder muat turun untuk fail video</string>
|
||||||
<string name="download_path_audio_title">Lokasi muat turun audio</string>
|
<string name="download_path_audio_title">Lokasi muat turun audio</string>
|
||||||
<string name="download_path_audio_summary">Audio yang dimuat turun disimpan sini</string>
|
<string name="download_path_audio_summary">Fail audio yang dimuat turun disimpan di sini</string>
|
||||||
<string name="download_path_audio_dialog_title">Memasukkan lokasi muat turun fail audio</string>
|
<string name="download_path_audio_dialog_title">Pilih folder muat turun untuk fail audio</string>
|
||||||
<string name="autoplay_by_calling_app_title">Main secara automatik</string>
|
<string name="autoplay_by_calling_app_title">Main secara automatik</string>
|
||||||
<string name="autoplay_by_calling_app_summary">Memain video apabila NewPipe dipanggil dari app lain</string>
|
<string name="autoplay_by_calling_app_summary">Memain video apabila NewPipe dipanggil dari app lain</string>
|
||||||
<string name="default_resolution_title">Resolusi utama</string>
|
<string name="default_resolution_title">Resolusi utama</string>
|
||||||
|
@ -224,13 +224,13 @@
|
||||||
<string name="short_billion">B</string>
|
<string name="short_billion">B</string>
|
||||||
<string name="no_subscribers">Tiada pelanggan</string>
|
<string name="no_subscribers">Tiada pelanggan</string>
|
||||||
<plurals name="subscribers">
|
<plurals name="subscribers">
|
||||||
<item quantity="other">%s pelanggan</item>
|
<item quantity="other">%s pelanggan</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="subscribers_count_not_available">Kira pelanggan tidak tersedia</string>
|
<string name="subscribers_count_not_available">Kira pelanggan tidak tersedia</string>
|
||||||
<string name="no_views">Tiada tontonan</string>
|
<string name="no_views">Tiada tontonan</string>
|
||||||
<plurals name="views">
|
<plurals name="views">
|
||||||
<item quantity="other">%s tontonan</item>
|
<item quantity="other">%s tontonan</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="no_videos">Tiada video</string>
|
<string name="no_videos">Tiada video</string>
|
||||||
<string name="start">Mula</string>
|
<string name="start">Mula</string>
|
||||||
<string name="pause">Jeda</string>
|
<string name="pause">Jeda</string>
|
||||||
|
@ -258,8 +258,8 @@
|
||||||
<string name="msg_popup_permission">Kebenaran ini diperlukan untuk
|
<string name="msg_popup_permission">Kebenaran ini diperlukan untuk
|
||||||
\nbuka dalam mod popup</string>
|
\nbuka dalam mod popup</string>
|
||||||
<string name="one_item_deleted">1 item dipadamkan.</string>
|
<string name="one_item_deleted">1 item dipadamkan.</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Cabaran reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Cabaran reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Meminta kod reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Meminta kod reCAPTCHA</string>
|
||||||
<string name="settings_category_downloads_title">Muat turun</string>
|
<string name="settings_category_downloads_title">Muat turun</string>
|
||||||
<string name="settings_file_charset_title">Karakter yang dibenarkan dalam nama fail</string>
|
<string name="settings_file_charset_title">Karakter yang dibenarkan dalam nama fail</string>
|
||||||
|
@ -459,4 +459,6 @@
|
||||||
<string name="pause_downloads_on_mobile">Jeda semasa beralih ke data mudah alih</string>
|
<string name="pause_downloads_on_mobile">Jeda semasa beralih ke data mudah alih</string>
|
||||||
<string name="pause_downloads_on_mobile_desc">Muat turun yang tidak dapat dihentikan akan dimulakan semula</string>
|
<string name="pause_downloads_on_mobile_desc">Muat turun yang tidak dapat dihentikan akan dimulakan semula</string>
|
||||||
<string name="missions_header_pending">Menunggu</string>
|
<string name="missions_header_pending">Menunggu</string>
|
||||||
|
<string name="download_choose_new_path">Ubah folder muat turun untuk melihat kesan</string>
|
||||||
|
<string name="enable_lock_screen_video_thumbnail_title">Dayakan lakaran kecil video skrin kunci</string>
|
||||||
</resources>
|
</resources>
|
|
@ -106,8 +106,8 @@
|
||||||
<string name="add">Nytt mål</string>
|
<string name="add">Nytt mål</string>
|
||||||
<string name="msg_url_malform">Feilaktig nettadresse eller manglende internettilknytning</string>
|
<string name="msg_url_malform">Feilaktig nettadresse eller manglende internettilknytning</string>
|
||||||
<string name="no_available_dir">Definer en nedlastingsmappe senere i innstillingene</string>
|
<string name="no_available_dir">Definer en nedlastingsmappe senere i innstillingene</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA-oppgave</string>
|
<string name="title_activity_recaptcha">reCAPTCHA-oppgave</string>
|
||||||
<string name="open_in_popup_mode">Åpne i oppsprettsmodus</string>
|
<string name="open_in_popup_mode">Åpne i oppsprettsmodus</string>
|
||||||
<string name="popup_mode_share_menu_title">NewPipe oppsprettsmodus</string>
|
<string name="popup_mode_share_menu_title">NewPipe oppsprettsmodus</string>
|
||||||
<string name="default_popup_resolution_title">Forvalgt oppsprettsoppløsning</string>
|
<string name="default_popup_resolution_title">Forvalgt oppsprettsoppløsning</string>
|
||||||
|
@ -524,6 +524,22 @@
|
||||||
<string name="clear_download_history">Tøm nedlastingshistorikk</string>
|
<string name="clear_download_history">Tøm nedlastingshistorikk</string>
|
||||||
<string name="delete_downloaded_files">Slett nedlastede filer</string>
|
<string name="delete_downloaded_files">Slett nedlastede filer</string>
|
||||||
<string name="deleted_downloads">Slettet %1$s nedlastninger</string>
|
<string name="deleted_downloads">Slettet %1$s nedlastninger</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Aktiver videominiatyrbilde med låseskjerm</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Aktiver videominiatyrbilde på låseskjerm</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">Når du bruker bakgrunnsspilleren, vises en videominiaturbilde på låseskjermen</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">Når du bruker bakgrunnsspilleren, vises ent videominiatyrbilde på låseskjermen</string>
|
||||||
|
<string name="peertube_instance_url_summary">Velg dine favoritter blandt PeerTube-instansene</string>
|
||||||
|
<string name="peertube_instance_url_help">Finn instansene som passer deg best på %s</string>
|
||||||
|
<string name="peertube_instance_add_title">Legg til instans</string>
|
||||||
|
<string name="peertube_instance_add_help">Skriv inn nettadresse til instans</string>
|
||||||
|
<string name="peertube_instance_add_fail">Kunne ikke bekrefte instans</string>
|
||||||
|
<string name="peertube_instance_add_https_only">Kun HTTPS-nettadresser støttes</string>
|
||||||
|
<string name="peertube_instance_add_exists">Instansen finnes allerede</string>
|
||||||
|
<string name="playlist_no_uploader">Autogenerert (fant ingen opplaster)</string>
|
||||||
|
<string name="recovering">gjenoppretter</string>
|
||||||
|
<string name="error_download_resource_gone">Kan ikke gjenopprette denne nedlastingen</string>
|
||||||
|
<string name="seek_duration_title">Hurtigframoverspoling/-tilbakeblafringsvarighet</string>
|
||||||
|
<string name="permission_display_over_apps">Gi tilgang til visning over andre programmer</string>
|
||||||
|
<string name="app_language_title">Programspråk</string>
|
||||||
|
<string name="systems_language">Systemforvalg</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Trykk \"Ferdig\" når den er løst</string>
|
||||||
|
<string name="recaptcha_done_button">Ferdig</string>
|
||||||
</resources>
|
</resources>
|
|
@ -230,8 +230,8 @@
|
||||||
<string name="msg_copied">Gekopieerd naar klembord</string>
|
<string name="msg_copied">Gekopieerd naar klembord</string>
|
||||||
<string name="no_available_dir">Kies een beschikbare downloadmap</string>
|
<string name="no_available_dir">Kies een beschikbare downloadmap</string>
|
||||||
<string name="msg_popup_permission">Deze toestemming is vereist voor te openen in pop-upmodus</string>
|
<string name="msg_popup_permission">Deze toestemming is vereist voor te openen in pop-upmodus</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA-uitdaging</string>
|
<string name="title_activity_recaptcha">reCAPTCHA-uitdaging</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA-uitdaging gevraagd</string>
|
<string name="recaptcha_request_toast">reCAPTCHA-uitdaging gevraagd</string>
|
||||||
<string name="settings_category_downloads_title">Download</string>
|
<string name="settings_category_downloads_title">Download</string>
|
||||||
<string name="settings_file_charset_title">Toegelaten tekens in bestandsnamen</string>
|
<string name="settings_file_charset_title">Toegelaten tekens in bestandsnamen</string>
|
||||||
|
|
|
@ -107,8 +107,8 @@
|
||||||
<string name="msg_copied">Gekopieerd naar klembord</string>
|
<string name="msg_copied">Gekopieerd naar klembord</string>
|
||||||
<string name="no_available_dir">Kies een beschikbare downloadmap</string>
|
<string name="no_available_dir">Kies een beschikbare downloadmap</string>
|
||||||
<string name="black_theme_title">Zwart</string>
|
<string name="black_theme_title">Zwart</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">reCAPTCHA-uitdaging</string>
|
<string name="title_activity_recaptcha">reCAPTCHA-uitdaging</string>
|
||||||
<string name="recaptcha_request_toast">reCAPTCHA-uitdaging gevraagd</string>
|
<string name="recaptcha_request_toast">reCAPTCHA-uitdaging gevraagd</string>
|
||||||
<string name="open_in_popup_mode">Openen in pop-upmodus</string>
|
<string name="open_in_popup_mode">Openen in pop-upmodus</string>
|
||||||
<string name="all">Alles</string>
|
<string name="all">Alles</string>
|
||||||
|
|
|
@ -237,8 +237,8 @@
|
||||||
<string name="no_available_dir">ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਵਿਚੋਂ ਇੱਕ ਡਾਉਨਲੋਡ ਫੋਲਡਰ ਨੂੰ ਚੁਣੋ</string>
|
<string name="no_available_dir">ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਵਿਚੋਂ ਇੱਕ ਡਾਉਨਲੋਡ ਫੋਲਡਰ ਨੂੰ ਚੁਣੋ</string>
|
||||||
<string name="msg_popup_permission">ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ ਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</string>
|
<string name="msg_popup_permission">ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ ਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</string>
|
||||||
<string name="one_item_deleted">1 ਆਈਟਮ ਮਿਟਾਈ ਗਈ.</string>
|
<string name="one_item_deleted">1 ਆਈਟਮ ਮਿਟਾਈ ਗਈ.</string>
|
||||||
<string name="reCaptchaActivity">ReCaptcha</string>
|
<string name="recaptcha">ReCaptcha</string>
|
||||||
<string name="reCaptcha_title">ReCaptcha ਚੁਣੌਤੀ</string>
|
<string name="title_activity_recaptcha">ReCaptcha ਚੁਣੌਤੀ</string>
|
||||||
<string name="recaptcha_request_toast">ReCaptcha ਚੁਣੌਤੀ ਲਈ ਬੇਨਤੀ</string>
|
<string name="recaptcha_request_toast">ReCaptcha ਚੁਣੌਤੀ ਲਈ ਬੇਨਤੀ</string>
|
||||||
<string name="settings_category_downloads_title">ਡਾਊਨਲੋਡ</string>
|
<string name="settings_category_downloads_title">ਡਾਊਨਲੋਡ</string>
|
||||||
<string name="settings_file_charset_title">ਫਾਈਲ ਨਾਮ ਵਿੱਚ ਪ੍ਰਵਾਨਿਤ ਅੱਖਰ</string>
|
<string name="settings_file_charset_title">ਫਾਈਲ ਨਾਮ ਵਿੱਚ ਪ੍ਰਵਾਨਿਤ ਅੱਖਰ</string>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="main_bg_subtitle">Naciśnij Szukaj, aby zacząć</string>
|
<string name="main_bg_subtitle">Naciśnij „Szukaj”, aby zacząć</string>
|
||||||
<string name="install">Zainstaluj</string>
|
<string name="install">Zainstaluj</string>
|
||||||
<string name="cancel">Anuluj</string>
|
<string name="cancel">Anuluj</string>
|
||||||
<string name="open_in_browser">Otwórz w przeglądarce</string>
|
<string name="open_in_browser">Otwórz w przeglądarce</string>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
<string name="use_external_audio_player_title">Użyj zewnętrznego odtwarzacza audio</string>
|
<string name="use_external_audio_player_title">Użyj zewnętrznego odtwarzacza audio</string>
|
||||||
<string name="view_count_text">%1$s wyświetleń</string>
|
<string name="view_count_text">%1$s wyświetleń</string>
|
||||||
<string name="upload_date_text">Opublikowano %1$s</string>
|
<string name="upload_date_text">Opublikowano %1$s</string>
|
||||||
<string name="no_player_found">Nie znaleziono odtwarzacza strumieni. Czy chcesz zainstalować VLC\?</string>
|
<string name="no_player_found">Nie znaleziono odtwarzacza strumieni. Zainstalować VLC\?</string>
|
||||||
<string name="download_path_title">Folder pobierania wideo</string>
|
<string name="download_path_title">Folder pobierania wideo</string>
|
||||||
<string name="download_path_summary">Pobrane pliki wideo są przechowywane tutaj</string>
|
<string name="download_path_summary">Pobrane pliki wideo są przechowywane tutaj</string>
|
||||||
<string name="download_path_dialog_title">Wybierz folder pobierania plików wideo</string>
|
<string name="download_path_dialog_title">Wybierz folder pobierania plików wideo</string>
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
<string name="autoplay_by_calling_app_summary">Odtwórz wideo, kiedy NewPipe zostanie wywołany z innej aplikacji</string>
|
<string name="autoplay_by_calling_app_summary">Odtwórz wideo, kiedy NewPipe zostanie wywołany z innej aplikacji</string>
|
||||||
<string name="default_resolution_title">Domyślna rozdzielczość</string>
|
<string name="default_resolution_title">Domyślna rozdzielczość</string>
|
||||||
<string name="play_with_kodi_title">Odtwórz w Kodi</string>
|
<string name="play_with_kodi_title">Odtwórz w Kodi</string>
|
||||||
<string name="kore_not_found">Nie znaleziono aplikacji Kore. Zainstalować ją\?</string>
|
<string name="kore_not_found">Zainstalować brakującą aplikację Kore\?</string>
|
||||||
<string name="show_play_with_kodi_title">Pokaż opcję „Odtwórz z Kodi”</string>
|
<string name="show_play_with_kodi_title">Pokaż opcję „Odtwórz z Kodi”</string>
|
||||||
<string name="show_play_with_kodi_summary">Wyświetl opcję odtwarzania filmów za pośrednictwem centrum multimedialnego Kodi</string>
|
<string name="show_play_with_kodi_summary">Wyświetl opcję odtwarzania filmów za pośrednictwem centrum multimedialnego Kodi</string>
|
||||||
<string name="play_audio">Dźwięk</string>
|
<string name="play_audio">Dźwięk</string>
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
<string name="sorry_string">Przepraszamy, to nie powinno mieć miejsca.</string>
|
<string name="sorry_string">Przepraszamy, to nie powinno mieć miejsca.</string>
|
||||||
<string name="error_report_button_text">Zgłoś błąd przez e-mail</string>
|
<string name="error_report_button_text">Zgłoś błąd przez e-mail</string>
|
||||||
<string name="error_snackbar_message">Przepraszamy, wystąpiły pewne błędy.</string>
|
<string name="error_snackbar_message">Przepraszamy, wystąpiły pewne błędy.</string>
|
||||||
<string name="error_snackbar_action">ZGŁOŚ</string>
|
<string name="error_snackbar_action">Zgłoś</string>
|
||||||
<string name="what_device_headline">Informacje:</string>
|
<string name="what_device_headline">Informacje:</string>
|
||||||
<string name="what_happened_headline">Co się stało:</string>
|
<string name="what_happened_headline">Co się stało:</string>
|
||||||
<string name="info_labels">Co:\\nRequest:\\nJęzyk treści:\\nUsługa:\\nCzas GMT:\\nPakiet:\\nWersja:\\nWersja systemu:</string>
|
<string name="info_labels">Co:\\nRequest:\\nJęzyk treści:\\nUsługa:\\nCzas GMT:\\nPakiet:\\nWersja:\\nWersja systemu:</string>
|
||||||
|
@ -84,7 +84,7 @@
|
||||||
<string name="video">Film</string>
|
<string name="video">Film</string>
|
||||||
<string name="audio">Dźwięk</string>
|
<string name="audio">Dźwięk</string>
|
||||||
<string name="retry">Ponów</string>
|
<string name="retry">Ponów</string>
|
||||||
<string name="storage_permission_denied">Odmowa dostępu do pamięci</string>
|
<string name="storage_permission_denied">Najpierw udziel dostępu do pamięci</string>
|
||||||
<string name="pause">Wstrzymaj</string>
|
<string name="pause">Wstrzymaj</string>
|
||||||
<string name="view">Odtwórz</string>
|
<string name="view">Odtwórz</string>
|
||||||
<string name="delete">Usuń</string>
|
<string name="delete">Usuń</string>
|
||||||
|
@ -106,8 +106,8 @@
|
||||||
<string name="app_ui_crash">Awaria aplikacji/interfejsu</string>
|
<string name="app_ui_crash">Awaria aplikacji/interfejsu</string>
|
||||||
<string name="use_tor_summary">(Eksperymentalne) Wymuś pobieranie przez Tora w celu zwiększenia prywatności (strumieniowe wideo nie jest jeszcze obsługiwane).</string>
|
<string name="use_tor_summary">(Eksperymentalne) Wymuś pobieranie przez Tora w celu zwiększenia prywatności (strumieniowe wideo nie jest jeszcze obsługiwane).</string>
|
||||||
<string name="start">Start</string>
|
<string name="start">Start</string>
|
||||||
<string name="reCaptchaActivity">CAPTCHA</string>
|
<string name="recaptcha">CAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Wyzwanie reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Wyzwanie reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Wymagane wyzwanie dotyczące reCAPTCHA</string>
|
<string name="recaptcha_request_toast">Wymagane wyzwanie dotyczące reCAPTCHA</string>
|
||||||
<string name="use_external_video_player_summary">Usuwa dźwięk w niektórych rozdzielczościach</string>
|
<string name="use_external_video_player_summary">Usuwa dźwięk w niektórych rozdzielczościach</string>
|
||||||
<string name="controls_background_title">Tło</string>
|
<string name="controls_background_title">Tło</string>
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
<string name="msg_popup_permission">To pozwolenie jest wymagane, aby
|
<string name="msg_popup_permission">To pozwolenie jest wymagane, aby
|
||||||
\notworzyć w trybie okienkowym</string>
|
\notworzyć w trybie okienkowym</string>
|
||||||
<string name="open_in_popup_mode">Odtwórz w trybie okienkowym</string>
|
<string name="open_in_popup_mode">Odtwórz w trybie okienkowym</string>
|
||||||
<string name="popup_mode_share_menu_title">Tryb okienkowy NewPipe</string>
|
<string name="popup_mode_share_menu_title">Tryb okienkowy</string>
|
||||||
<string name="controls_popup_title">Tryb okienkowy</string>
|
<string name="controls_popup_title">Tryb okienkowy</string>
|
||||||
<string name="best_resolution">Najlepsza rozdzielczość</string>
|
<string name="best_resolution">Najlepsza rozdzielczość</string>
|
||||||
<string name="settings_category_downloads_title">Pobierz</string>
|
<string name="settings_category_downloads_title">Pobierz</string>
|
||||||
|
@ -174,7 +174,7 @@
|
||||||
<string name="enable_search_history_summary">Zapisuj lokalnie historię wyszukiwania</string>
|
<string name="enable_search_history_summary">Zapisuj lokalnie historię wyszukiwania</string>
|
||||||
<string name="enable_watch_history_title">Historia oglądanych</string>
|
<string name="enable_watch_history_title">Historia oglądanych</string>
|
||||||
<string name="enable_watch_history_summary">Zapisuj historię oglądania</string>
|
<string name="enable_watch_history_summary">Zapisuj historię oglądania</string>
|
||||||
<string name="resume_on_audio_focus_gain_title">Wznów gdy na pierwszym planie</string>
|
<string name="resume_on_audio_focus_gain_title">Wznów odtwarzanie</string>
|
||||||
<string name="resume_on_audio_focus_gain_summary">Kontynuuj odtwarzanie po przerwaniu (np. po rozmowie telefonicznej)</string>
|
<string name="resume_on_audio_focus_gain_summary">Kontynuuj odtwarzanie po przerwaniu (np. po rozmowie telefonicznej)</string>
|
||||||
<string name="notification_channel_name">Powiadomienia NewPipe</string>
|
<string name="notification_channel_name">Powiadomienia NewPipe</string>
|
||||||
<string name="notification_channel_description">Powiadomienia dla NewPipe w tle i trybie wyskakujących okien odtwarzania</string>
|
<string name="notification_channel_description">Powiadomienia dla NewPipe w tle i trybie wyskakujących okien odtwarzania</string>
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="charset_most_special_characters">Większość znaków specjalnych</string>
|
<string name="charset_most_special_characters">Większość znaków specjalnych</string>
|
||||||
<string name="donation_title">Dotacja</string>
|
<string name="donation_title">Dotacja</string>
|
||||||
<string name="donation_encouragement">NewPipe rozwijane jest przez wolontariuszy, którzy poświęcają swój wolny czas, by zapewnić Ci jak najlepsze wrażenia podczas korzystania z aplikacji. To dobry moment, aby wesprzeć programistów i sprawić, by program był jeszcze lepszy, delektując się filiżanką kawy.</string>
|
<string name="donation_encouragement">NewPipe jest rozwijany przez wolontariuszy, którzy poświęcają swój wolny czas, by zapewnić Ci jak najlepsze wrażenia podczas korzystania z aplikacji. To dobry moment, aby wesprzeć programistów i sprawić, by program był jeszcze lepszy, delektując się filiżanką kawy.</string>
|
||||||
<string name="give_back">Wspomóż</string>
|
<string name="give_back">Wspomóż</string>
|
||||||
<string name="website_title">Witryna</string>
|
<string name="website_title">Witryna</string>
|
||||||
<string name="website_encouragement">By otrzymać więcej informacji oraz najnowsze wiadomości o NewPipe, odwiedź naszą stronę.</string>
|
<string name="website_encouragement">By otrzymać więcej informacji oraz najnowsze wiadomości o NewPipe, odwiedź naszą stronę.</string>
|
||||||
|
@ -316,7 +316,7 @@
|
||||||
<string name="resize_fill">Wypełnij</string>
|
<string name="resize_fill">Wypełnij</string>
|
||||||
<string name="resize_zoom">Powiększ</string>
|
<string name="resize_zoom">Powiększ</string>
|
||||||
<string name="caption_auto_generated">Wygenerowane automatycznie</string>
|
<string name="caption_auto_generated">Wygenerowane automatycznie</string>
|
||||||
<string name="enable_leak_canary_title">Włącz LeakCanary</string>
|
<string name="enable_leak_canary_title">LeakCanary</string>
|
||||||
<string name="enable_leak_canary_summary">Monitorowanie wycieków pamięci może powodować niestabilność aplikacji podczas zrzutu pamięci</string>
|
<string name="enable_leak_canary_summary">Monitorowanie wycieków pamięci może powodować niestabilność aplikacji podczas zrzutu pamięci</string>
|
||||||
<string name="enable_disposed_exceptions_title">Zgłaszanie błędów poza cyklem życia</string>
|
<string name="enable_disposed_exceptions_title">Zgłaszanie błędów poza cyklem życia</string>
|
||||||
<string name="enable_disposed_exceptions_summary">Wymusza raportowanie niedostarczonych wyjątków Rx poza cyklem życia fragmentu lub aktywności</string>
|
<string name="enable_disposed_exceptions_summary">Wymusza raportowanie niedostarczonych wyjątków Rx poza cyklem życia fragmentu lub aktywności</string>
|
||||||
|
@ -329,7 +329,7 @@
|
||||||
<string name="metadata_cache_wipe_summary">Wyczyść pamięć podręczną stron</string>
|
<string name="metadata_cache_wipe_summary">Wyczyść pamięć podręczną stron</string>
|
||||||
<string name="metadata_cache_wipe_complete_notice">Wyczyszczono pamięć podręczną metadanych</string>
|
<string name="metadata_cache_wipe_complete_notice">Wyczyszczono pamięć podręczną metadanych</string>
|
||||||
<string name="auto_queue_title">Automatyczne kolejkowanie następnego strumienia</string>
|
<string name="auto_queue_title">Automatyczne kolejkowanie następnego strumienia</string>
|
||||||
<string name="auto_queue_summary">Automatycznie dodaj kolejny powiązany strumień podczas odtwarzania ostatniego strumienia w niezapętlonej kolejce</string>
|
<string name="auto_queue_summary">Kontynuuj kończenie (niepowtarzanie) kolejki odtwarzania, dołączając powiązany strumień</string>
|
||||||
<string name="file">Plik</string>
|
<string name="file">Plik</string>
|
||||||
<string name="invalid_directory">Nie ma takiego folderu</string>
|
<string name="invalid_directory">Nie ma takiego folderu</string>
|
||||||
<string name="invalid_source">Nie ma takiego źródła plików/treści</string>
|
<string name="invalid_source">Nie ma takiego źródła plików/treści</string>
|
||||||
|
@ -409,7 +409,7 @@
|
||||||
<string name="tab_new">Nowa karta</string>
|
<string name="tab_new">Nowa karta</string>
|
||||||
<string name="tab_choose">Wybierz kartę</string>
|
<string name="tab_choose">Wybierz kartę</string>
|
||||||
<string name="volume_gesture_control_title">Kontrola gestów głośności</string>
|
<string name="volume_gesture_control_title">Kontrola gestów głośności</string>
|
||||||
<string name="volume_gesture_control_summary">Użyj gestów do sterowania głośnośnością odtwarzania</string>
|
<string name="volume_gesture_control_summary">Użyj gestów do sterowania głośnośnością odtwarzacza</string>
|
||||||
<string name="brightness_gesture_control_title">Kontrola gestów jasności</string>
|
<string name="brightness_gesture_control_title">Kontrola gestów jasności</string>
|
||||||
<string name="brightness_gesture_control_summary">Użyj gestów do sterowania jasnością odtwarzacza</string>
|
<string name="brightness_gesture_control_summary">Użyj gestów do sterowania jasnością odtwarzacza</string>
|
||||||
<string name="settings_category_updates_title">Aktualizacje</string>
|
<string name="settings_category_updates_title">Aktualizacje</string>
|
||||||
|
@ -418,10 +418,10 @@
|
||||||
<string name="app_update_notification_channel_description">Powiadomienia o nowej wersji NewPipe</string>
|
<string name="app_update_notification_channel_description">Powiadomienia o nowej wersji NewPipe</string>
|
||||||
<string name="download_to_sdcard_error_title">Pamięć zewnętrzna jest niedostępna</string>
|
<string name="download_to_sdcard_error_title">Pamięć zewnętrzna jest niedostępna</string>
|
||||||
<string name="download_to_sdcard_error_message">Pobieranie na zewnętrzną kartę SD nie jest możliwe. Zresetować lokalizację folderu pobierania\?</string>
|
<string name="download_to_sdcard_error_message">Pobieranie na zewnętrzną kartę SD nie jest możliwe. Zresetować lokalizację folderu pobierania\?</string>
|
||||||
<string name="saved_tabs_invalid_json">Korzystanie z domyślnych kart, błąd podczas czytania zapisanych kart</string>
|
<string name="saved_tabs_invalid_json">Nie można odczytać zapisanych kart, więc będzie używana domyślna</string>
|
||||||
<string name="restore_defaults">Przywróć domyślne</string>
|
<string name="restore_defaults">Przywróć domyślne</string>
|
||||||
<string name="restore_defaults_confirmation">Czy chcesz przywrócić ustawienia domyślne\?</string>
|
<string name="restore_defaults_confirmation">Czy chcesz przywrócić ustawienia domyślne\?</string>
|
||||||
<string name="subscribers_count_not_available">Subskrybenci nie są dostępni</string>
|
<string name="subscribers_count_not_available">Subskrybent jest niedostępny</string>
|
||||||
<string name="main_page_content_summary">Karty wyświetlane na stronie głównej</string>
|
<string name="main_page_content_summary">Karty wyświetlane na stronie głównej</string>
|
||||||
<string name="selection">Wybierz</string>
|
<string name="selection">Wybierz</string>
|
||||||
<string name="updates_setting_title">Aktualizacje</string>
|
<string name="updates_setting_title">Aktualizacje</string>
|
||||||
|
@ -451,7 +451,7 @@
|
||||||
<string name="error_file_creation">Nie można utworzyć pliku</string>
|
<string name="error_file_creation">Nie można utworzyć pliku</string>
|
||||||
<string name="error_path_creation">Nie można utworzyć folderu docelowego</string>
|
<string name="error_path_creation">Nie można utworzyć folderu docelowego</string>
|
||||||
<string name="error_permission_denied">Odmowa dostępu do systemu</string>
|
<string name="error_permission_denied">Odmowa dostępu do systemu</string>
|
||||||
<string name="error_ssl_exception">Bezpieczne połączenie nie powiodło się</string>
|
<string name="error_ssl_exception">Nie można nawiązać bezpiecznego połączenia</string>
|
||||||
<string name="error_unknown_host">Nie można znaleźć serwera</string>
|
<string name="error_unknown_host">Nie można znaleźć serwera</string>
|
||||||
<string name="error_connect_host">Nie można połączyć się z serwerem</string>
|
<string name="error_connect_host">Nie można połączyć się z serwerem</string>
|
||||||
<string name="error_http_no_content">Serwer nie wysyła danych</string>
|
<string name="error_http_no_content">Serwer nie wysyła danych</string>
|
||||||
|
@ -468,7 +468,7 @@
|
||||||
<string name="conferences">Konferencje</string>
|
<string name="conferences">Konferencje</string>
|
||||||
<string name="missions_header_pending">Oczekuje</string>
|
<string name="missions_header_pending">Oczekuje</string>
|
||||||
<string name="show_comments_title">Pokaż komentarze</string>
|
<string name="show_comments_title">Pokaż komentarze</string>
|
||||||
<string name="show_comments_summary">Wyłącz, aby przestać wyświetlać komentarze</string>
|
<string name="show_comments_summary">Wyłącz, aby ukryć komentarze</string>
|
||||||
<string name="autoplay_title">Automatyczne odtwarzanie</string>
|
<string name="autoplay_title">Automatyczne odtwarzanie</string>
|
||||||
<plurals name="comments">
|
<plurals name="comments">
|
||||||
<item quantity="one">Komentarze</item>
|
<item quantity="one">Komentarze</item>
|
||||||
|
@ -502,7 +502,7 @@
|
||||||
<string name="downloads_storage_ask_summary_kitkat">Zostaniesz zapytany, gdzie zapisać każde pobranie.
|
<string name="downloads_storage_ask_summary_kitkat">Zostaniesz zapytany, gdzie zapisać każde pobranie.
|
||||||
\nWybierz SAF, jeśli chcesz pobrać na zewnętrzną kartę SD</string>
|
\nWybierz SAF, jeśli chcesz pobrać na zewnętrzną kartę SD</string>
|
||||||
<string name="downloads_storage_use_saf_title">Użyj SAF</string>
|
<string name="downloads_storage_use_saf_title">Użyj SAF</string>
|
||||||
<string name="downloads_storage_use_saf_summary">Biblioteka dostępu do pamięci pozwala na pobieranie danych na zewnętrzną kartę.
|
<string name="downloads_storage_use_saf_summary">Struktura dostępu do pamięci masowej umożliwia pobieranie danych na zewnętrzną kartę SD.
|
||||||
\nUwagi: Niektóre urządzenia nie są kompatybilne</string>
|
\nUwagi: Niektóre urządzenia nie są kompatybilne</string>
|
||||||
<string name="clear_playback_states_title">Usuń pozycje odtwarzania</string>
|
<string name="clear_playback_states_title">Usuń pozycje odtwarzania</string>
|
||||||
<string name="clear_playback_states_summary">Usuwa wszystkie pozycje odtwarzania</string>
|
<string name="clear_playback_states_summary">Usuwa wszystkie pozycje odtwarzania</string>
|
||||||
|
@ -526,7 +526,7 @@
|
||||||
<string name="seek_duration_title">Krok czasu przewijania</string>
|
<string name="seek_duration_title">Krok czasu przewijania</string>
|
||||||
<string name="peertube_instance_url_title">Wystąpienia PeerTube</string>
|
<string name="peertube_instance_url_title">Wystąpienia PeerTube</string>
|
||||||
<string name="peertube_instance_url_summary">Wybierz swoje ulubione instancje PeerTube</string>
|
<string name="peertube_instance_url_summary">Wybierz swoje ulubione instancje PeerTube</string>
|
||||||
<string name="peertube_instance_url_help">Znajdź wystąpienia, które najbardziej Ci odpowiadają na %s</string>
|
<string name="peertube_instance_url_help">Znajdź wystąpienia, które lubisz na %s</string>
|
||||||
<string name="peertube_instance_add_title">Dodaj instancję</string>
|
<string name="peertube_instance_add_title">Dodaj instancję</string>
|
||||||
<string name="peertube_instance_add_help">Wprowadź adres URL instancji</string>
|
<string name="peertube_instance_add_help">Wprowadź adres URL instancji</string>
|
||||||
<string name="peertube_instance_add_fail">Nie można sprawdzić poprawności instancji</string>
|
<string name="peertube_instance_add_fail">Nie można sprawdzić poprawności instancji</string>
|
||||||
|
@ -539,9 +539,14 @@
|
||||||
<string name="recovering">odzyskiwanie</string>
|
<string name="recovering">odzyskiwanie</string>
|
||||||
<string name="error_download_resource_gone">Nie można odzyskać tego pobrania</string>
|
<string name="error_download_resource_gone">Nie można odzyskać tego pobrania</string>
|
||||||
<string name="choose_instance_prompt">Wybierz instancję</string>
|
<string name="choose_instance_prompt">Wybierz instancję</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Włącz miniaturę wideo na ekranie blokady</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Zablokuj miniaturę wideo na ekranie</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">Podczas korzystania z odtwarzacza w tle na ekranie blokady zostanie wyświetlona miniatura filmu</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">Podczas korzystania z odtwarzacza w tle na ekranie blokady wyświetlana jest miniatura filmu</string>
|
||||||
<string name="clear_download_history">Wyczyść historię pobierania</string>
|
<string name="clear_download_history">Wyczyść historię pobierania</string>
|
||||||
<string name="delete_downloaded_files">Usuń pobrane pliki</string>
|
<string name="delete_downloaded_files">Usuń pobrane pliki</string>
|
||||||
<string name="deleted_downloads">Usunięte% 1$s pobrania</string>
|
<string name="deleted_downloads">Usunięte %1$s pobrania</string>
|
||||||
|
<string name="permission_display_over_apps">Zezwól na wyświetlanie w innych aplikacjach</string>
|
||||||
|
<string name="app_language_title">Język aplikacji</string>
|
||||||
|
<string name="systems_language">Domyślny systemu</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Po rozwiązaniu naciśnij „Gotowe”</string>
|
||||||
|
<string name="recaptcha_done_button">Gotowe</string>
|
||||||
</resources>
|
</resources>
|
|
@ -50,8 +50,8 @@
|
||||||
<string name="next_video_title">Próximo</string>
|
<string name="next_video_title">Próximo</string>
|
||||||
<string name="open_in_browser">Abrir no navegador</string>
|
<string name="open_in_browser">Abrir no navegador</string>
|
||||||
<string name="pause">Pausar</string>
|
<string name="pause">Pausar</string>
|
||||||
<string name="reCaptchaActivity">reCAPTCHA</string>
|
<string name="recaptcha">reCAPTCHA</string>
|
||||||
<string name="reCaptcha_title">Desafio reCAPTCHA</string>
|
<string name="title_activity_recaptcha">Desafio reCAPTCHA</string>
|
||||||
<string name="recaptcha_request_toast">Desafio reCAPTCHA solicitado</string>
|
<string name="recaptcha_request_toast">Desafio reCAPTCHA solicitado</string>
|
||||||
<string name="report_error">Reportar um erro</string>
|
<string name="report_error">Reportar um erro</string>
|
||||||
<string name="retry">Tentar novamente</string>
|
<string name="retry">Tentar novamente</string>
|
||||||
|
@ -496,7 +496,7 @@ abrir em modo popup</string>
|
||||||
<string name="error_insufficient_storage">Não há espaço disponível no dispositivo</string>
|
<string name="error_insufficient_storage">Não há espaço disponível no dispositivo</string>
|
||||||
<string name="error_progress_lost">Progresso perdido devido ao arquivo ter sido apagado</string>
|
<string name="error_progress_lost">Progresso perdido devido ao arquivo ter sido apagado</string>
|
||||||
<string name="error_timeout">Tempo limite de conexão</string>
|
<string name="error_timeout">Tempo limite de conexão</string>
|
||||||
<string name="confirm_prompt">Tem certeza\?</string>
|
<string name="confirm_prompt">Apagar todo o histórico de downloads ou excluir todos os arquivos baixados\?</string>
|
||||||
<string name="enable_queue_limit">Limitar tamanho da fila de download</string>
|
<string name="enable_queue_limit">Limitar tamanho da fila de download</string>
|
||||||
<string name="enable_queue_limit_desc">Um download será executado ao mesmo tempo</string>
|
<string name="enable_queue_limit_desc">Um download será executado ao mesmo tempo</string>
|
||||||
<string name="start_downloads">Iniciar downloads</string>
|
<string name="start_downloads">Iniciar downloads</string>
|
||||||
|
@ -543,4 +543,12 @@ abrir em modo popup</string>
|
||||||
<string name="choose_instance_prompt">Escolha uma instância</string>
|
<string name="choose_instance_prompt">Escolha uma instância</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_title">Ativar capa do vídeo na tela de bloqueio</string>
|
<string name="enable_lock_screen_video_thumbnail_title">Ativar capa do vídeo na tela de bloqueio</string>
|
||||||
<string name="enable_lock_screen_video_thumbnail_summary">Mostra capa do vídeo na tela de bloqueio ao usar player em segundo plano</string>
|
<string name="enable_lock_screen_video_thumbnail_summary">Mostra capa do vídeo na tela de bloqueio ao usar player em segundo plano</string>
|
||||||
|
<string name="clear_download_history">Limpar histórico de downloads</string>
|
||||||
|
<string name="delete_downloaded_files">Excluir arquivos baixados</string>
|
||||||
|
<string name="deleted_downloads">%1$s arquivos excluídos</string>
|
||||||
|
<string name="permission_display_over_apps">Permita sobreposição a outros aplicativos</string>
|
||||||
|
<string name="app_language_title">Idioma do aplicativo</string>
|
||||||
|
<string name="systems_language">Padrão do sistema</string>
|
||||||
|
<string name="subtitle_activity_recaptcha">Toque em \"Feito\" ao resolver</string>
|
||||||
|
<string name="recaptcha_done_button">Feito</string>
|
||||||
</resources>
|
</resources>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue