diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java index e50162b9d..2ddf6b122 100644 --- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java +++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java @@ -59,7 +59,8 @@ import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; -import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.*; +import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.AUDIO; +import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.VIDEO; import static org.schabi.newpipe.util.ThemeHelper.resolveResourceIdFromAttr; /** @@ -67,13 +68,10 @@ import static org.schabi.newpipe.util.ThemeHelper.resolveResourceIdFromAttr; */ public class RouterActivity extends AppCompatActivity { - @State - protected int currentServiceId = -1; + @State protected int currentServiceId = -1; private StreamingService currentService; - @State - protected LinkType currentLinkType; - @State - protected int selectedRadioPosition = -1; + @State protected LinkType currentLinkType; + @State protected int selectedRadioPosition = -1; protected int selectedPreviously = -1; protected String currentUrl; @@ -94,8 +92,7 @@ public class RouterActivity extends AppCompatActivity { } setTheme(ThemeHelper.isLightThemeSelected(this) - ? R.style.RouterActivityThemeLight - : R.style.RouterActivityThemeDark); + ? R.style.RouterActivityThemeLight : R.style.RouterActivityThemeDark); } @Override @@ -162,49 +159,65 @@ public class RouterActivity extends AppCompatActivity { protected void onSuccess() { final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); - boolean isExtVideoEnabled = preferences.getBoolean(getString(R.string.use_external_video_player_key), false); - boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false); - - if ((isExtAudioEnabled || isExtVideoEnabled) && currentLinkType != LinkType.STREAM) { - Toast.makeText(this, R.string.external_player_unsupported_link_type, Toast.LENGTH_LONG).show(); - finish(); - return; - } - - final String playerChoiceKey = preferences.getString(getString(R.string.preferred_open_action_key), getString(R.string.preferred_open_action_default)); + final String selectedChoiceKey = preferences.getString(getString(R.string.preferred_open_action_key), getString(R.string.preferred_open_action_default)); + final String showInfoKey = getString(R.string.show_info_key); final String videoPlayerKey = getString(R.string.video_player_key); final String backgroundPlayerKey = getString(R.string.background_player_key); final String popupPlayerKey = getString(R.string.popup_player_key); final String alwaysAskKey = getString(R.string.always_ask_open_action_key); - final List capabilities = currentService.getServiceInfo().getMediaCapabilities(); + if (selectedChoiceKey.equals(alwaysAskKey)) { + final List choices = getChoicesForService(currentService, currentLinkType); - boolean serviceSupportsPlayer = false; - if (playerChoiceKey.equals(videoPlayerKey) || playerChoiceKey.equals(popupPlayerKey)) { - serviceSupportsPlayer = capabilities.contains(VIDEO); - } else if (playerChoiceKey.equals(backgroundPlayerKey)) { - serviceSupportsPlayer = capabilities.contains(AUDIO); - } - - if (playerChoiceKey.equals(alwaysAskKey) || !serviceSupportsPlayer) { - showDialog(); + if (choices.size() == 1) { + handleChoice(choices.get(0).key); + } else if (choices.size() == 0) { + handleChoice(showInfoKey); + } else { + showDialog(choices); + } + } else if (selectedChoiceKey.equals(showInfoKey)) { + handleChoice(showInfoKey); } else { - handleChoice(playerChoiceKey); + final boolean isExtVideoEnabled = preferences.getBoolean(getString(R.string.use_external_video_player_key), false); + final boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false); + final boolean isVideoPlayerSelected = selectedChoiceKey.equals(videoPlayerKey) || selectedChoiceKey.equals(popupPlayerKey); + final boolean isAudioPlayerSelected = selectedChoiceKey.equals(backgroundPlayerKey); + + if (currentLinkType != LinkType.STREAM) { + if (isExtAudioEnabled && isAudioPlayerSelected || isExtVideoEnabled && isVideoPlayerSelected) { + Toast.makeText(this, R.string.external_player_unsupported_link_type, Toast.LENGTH_LONG).show(); + handleChoice(showInfoKey); + return; + } + } + + final List capabilities = currentService.getServiceInfo().getMediaCapabilities(); + + boolean serviceSupportsChoice = false; + if (isVideoPlayerSelected) { + serviceSupportsChoice = capabilities.contains(VIDEO); + } else if (selectedChoiceKey.equals(backgroundPlayerKey)) { + serviceSupportsChoice = capabilities.contains(AUDIO); + } + + if (serviceSupportsChoice) { + handleChoice(selectedChoiceKey); + } else { + handleChoice(showInfoKey); + } } } - private void showDialog() { + private void showDialog(final List choices) { final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); - final ContextThemeWrapper themeWrapperContext = new ContextThemeWrapper(this, - ThemeHelper.isLightThemeSelected(this) ? R.style.LightTheme : R.style.DarkTheme); + final Context themeWrapperContext = getThemeWrapperContext(); final LayoutInflater inflater = LayoutInflater.from(themeWrapperContext); final LinearLayout rootLayout = (LinearLayout) inflater.inflate(R.layout.preferred_player_dialog_view, null, false); final RadioGroup radioGroup = rootLayout.findViewById(android.R.id.list); - final List choices = getChoicesForService(themeWrapperContext, currentService); - final DialogInterface.OnClickListener dialogButtonsClickListener = (dialog, which) -> { final int indexOfChild = radioGroup.indexOfChild( radioGroup.findViewById(radioGroup.getCheckedRadioButtonId())); @@ -278,21 +291,27 @@ public class RouterActivity extends AppCompatActivity { alertDialog.show(); } - private List getChoicesForService(Context context, StreamingService service) { + private List getChoicesForService(StreamingService service, LinkType linkType) { + final Context context = getThemeWrapperContext(); + final List returnList = new ArrayList<>(); final List capabilities = service.getServiceInfo().getMediaCapabilities(); + final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + boolean isExtVideoEnabled = preferences.getBoolean(getString(R.string.use_external_video_player_key), false); + boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false); + returnList.add(new AdapterChoiceItem(getString(R.string.show_info_key), getString(R.string.show_info), resolveResourceIdFromAttr(context, R.attr.info))); - if (capabilities.contains(VIDEO)) { + if (capabilities.contains(VIDEO) && !(isExtVideoEnabled && linkType != LinkType.STREAM)) { returnList.add(new AdapterChoiceItem(getString(R.string.video_player_key), getString(R.string.video_player), resolveResourceIdFromAttr(context, R.attr.play))); returnList.add(new AdapterChoiceItem(getString(R.string.popup_player_key), getString(R.string.popup_player), resolveResourceIdFromAttr(context, R.attr.popup))); } - if (capabilities.contains(AUDIO)) { + if (capabilities.contains(AUDIO) && !(isExtAudioEnabled && linkType != LinkType.STREAM)) { returnList.add(new AdapterChoiceItem(getString(R.string.background_player_key), getString(R.string.background_player), resolveResourceIdFromAttr(context, R.attr.audio))); } @@ -300,6 +319,11 @@ public class RouterActivity extends AppCompatActivity { return returnList; } + private Context getThemeWrapperContext() { + return new ContextThemeWrapper(this, + ThemeHelper.isLightThemeSelected(this) ? R.style.LightTheme : R.style.DarkTheme); + } + private void setDialogButtonsState(AlertDialog dialog, boolean state) { final Button negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE); final Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -309,15 +333,15 @@ public class RouterActivity extends AppCompatActivity { positiveButton.setEnabled(state); } - private void handleChoice(final String playerChoiceKey) { + private void handleChoice(final String selectedChoiceKey) { final List validChoicesList = Arrays.asList(getResources().getStringArray(R.array.preferred_open_action_values_list)); - if (validChoicesList.contains(playerChoiceKey)) { + if (validChoicesList.contains(selectedChoiceKey)) { PreferenceManager.getDefaultSharedPreferences(this).edit() - .putString(getString(R.string.preferred_open_action_last_selected_key), playerChoiceKey) + .putString(getString(R.string.preferred_open_action_last_selected_key), selectedChoiceKey) .apply(); } - if (playerChoiceKey.equals(getString(R.string.popup_player_key)) && !PermissionHelper.isPopupEnabled(this)) { + if (selectedChoiceKey.equals(getString(R.string.popup_player_key)) && !PermissionHelper.isPopupEnabled(this)) { PermissionHelper.showPopupEnablementToast(this); finish(); return; @@ -325,7 +349,7 @@ public class RouterActivity extends AppCompatActivity { // stop and bypass FetcherService if InfoScreen was selected since // StreamDetailFragment can fetch data itself - if (playerChoiceKey.equals(getString(R.string.show_info_key))) { + if (selectedChoiceKey.equals(getString(R.string.show_info_key))) { disposables.add(Observable .fromCallable(() -> NavigationHelper.getIntentByLink(this, currentUrl)) .subscribeOn(Schedulers.io()) @@ -342,7 +366,7 @@ public class RouterActivity extends AppCompatActivity { } final Intent intent = new Intent(this, FetcherService.class); - final Choice choice = new Choice(currentService.getServiceId(), currentLinkType, currentUrl, playerChoiceKey); + final Choice choice = new Choice(currentService.getServiceId(), currentLinkType, currentUrl, selectedChoiceKey); intent.putExtra(FetcherService.KEY_CHOICE, choice); startService(intent); diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index bfbae21cb..3ed09e62a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -299,7 +299,7 @@ Zurückgeben Website Um mehr Informationen und die neuesten Nachrichten über NewPipe zu erhalten, besuche unsere Website. - NewPipe wird von Freiwilligen entwickelt, die ihre Freizeit darauf verwenden, dir die beste Nutzererfahrung zu bieten. Hilf jetzt den Entwicklern, NewPipe noch besser zu machen, und spendiere Ihnen eine Tasse Java-Kaffee! + NewPipe wird von Freiwilligen entwickelt, die ihre Freizeit dafür aufbringen, die beste Nutzererfahrung zu bieten. Jetzt ist es an Dir, ein wenig zurückzugeben und sicherzustellen, dass unsere Entwickler NewPipe noch besser machen können, während sie sich an einer Tasse Java-Kaffee erfreuen! Service Kein Streamplayer gefunden (Du kannst VLC installieren, um ihn abzuspielen) Standard-Land des Inhalts @@ -460,4 +460,6 @@ Untertitel Ändere Textgröße und Hintergrundstil des Untertitels im Player. Wird erst nach Neustart des Players wirksam. + Für diese Datei wurde kein Player gefunden + diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 0a47cda28..0a73759a9 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -171,7 +171,7 @@ 복구할 수 없는 플레이어 오류가 발생했습니다 플레이어 오류로부터 복구 중 - 무엇을:\\n요청:\\n컨텐츠 언어:\\n서비스:\\nGMT 기준 시간:\\n패키지:\\n버전:\\n안드로이드 버전:\\nIP주소 범위: + 무엇을:\\n요청:\\n컨텐츠 언어:\\n서비스:\\nGMT 기준 시간:\\n패키지:\\n버전:\\n안드로이드 버전: 결과 없음 구독할 항목을 추가하세요 @@ -437,4 +437,14 @@ 후크 취소 (소리가 깨질수 있음) 나이트코어 기본 - +다운로드 가능한 스트림이 없습니다 + + 이 파일을 위한 플레이어가 발견되지 않았습니다 + + 선호하는 열기 동작 + 컨텐츠를 열 때 사용할 기본 동작 — %s + + 자막 + 플레이어 자막 텍스트 크기와 배경 스타일을 변경합니다. 효과를 적용하려면 앱을 재시작 해야합니다. + + diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml new file mode 100644 index 000000000..9cc644dc2 --- /dev/null +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -0,0 +1,430 @@ + +Tik op zoeken voor te beginnen + %1$s keer bekeken + Gepubliceerd op %1$s + Gene speler met streamondersteuning gevonden. Wilt ge VLC installeren? + Gene speler met streamondersteuning gevonden (ge kunt VLC installeren voor het af te spelen) + Installeren + Annuleren + In browser openen + Openen in pop-upmodus + Delen + Downloaden + Streambestand downloaden. + Zoeken + Instellingen + Bedoelde ge: %1$s ? + Delen met + Kies nen browser + rotatie + Externe videospeler gebruiken + Sommige resoluties zullen geen geluid hebben als deze optie is ingeschakeld + Externen audiospeler gebruiken + NewPipe-pop-upmodus + Abonneer + Geabonneerd + Abonnement opgezegd + Kan het abonnement niet veranderen + Kan het abonnement niet vernieuwen + Info tonen + + Start + Abonnementen + Bladwijzers + + Nieuw + + Achtergrond + Pop-up + Toevoegen aan + + Downloadlocatie voor video’s + Locatie voor gedownloade video’s in op te slaan + Voer downloadlocatie in voor video’s + + Downloadlocatie voor audio + Locatie voor gedownloade muziek in op te slaan + Voer downloadlocatie voor audiobestanden in + + Automatisch afspelen + Speelt video’s automatisch af wanneer dat NewPipe vanuit nen anderen app geopend wordt + Standaardresolutie + Standaardresolutie voor pop-up + Hogere resoluties weergeven + Video’s afspelen in 2K/4K wordt maar op sommige apparaten ondersteund + Afspelen met Kodi + Kore-app niet gevonden. Installeren? + Toon “Afspelen met Kodi”-optie + Toont een optie voor ne video op een Kodi media center af te spelen + Audio + Standaardaudioformaat + Standaardvideoformaat + WebM — vrij formaat + M4A — betere kwaliteit + Thema + Licht + Donker + Zwart + Onthoud grootte en positie van pop-up + Onthoud laatste grootte en positie van pop-up + Snel, minder exact spoelen gebruiken + Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie + Miniatuurvoorbeelden laden + Schakelt dit uit voor alle miniatuurvoorbeelden niet meer te laden; dit bespaart gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache. + Afbeeldingscache gewist + Gecachete metagegevens wissen + Alle gecachete webpagina-gegevens wissen + Metagegevens-cache gewist + Volgende stream automatisch in wachtrij plaatsen + Automatisch ne gerelateerde stream toevoegen als het afspelen van de laatste stream start in een niet-herhalende afspeelwachtlijst. + Bewegingscontrole + Gebruik bewegingen voor helderheid en volume van de speler aan te passen + Zoeksuggesties + Toon suggesties bij zoeken + Zoekgeschiedenis + Sla zoekopdrachten lokaal op + Geschiedenis + Kijkgeschiedenis bijhouden + Hervat bij focus + Ga verder met afspelen na onderbrekingen (zoals telefoongesprekken) + Downloaden + Volgende video + Toon volgende en vergelijkbare video’s + Toon tip voor ingedrukt houden voor toe te voegen + Toon tip wanneer dat den achtergrond- of pop-upknop is ingedrukt op de video-detailpagina + URL wordt niet ondersteund + Standaardinhoudsland + Dienst + Standaardtaal voor inhoud + Speler + Gedrag + Video & audio + Geschiedenis & cache + Pop-up + Uiterlijk + Overige + Foutopsporing + Speelt af in achtergrond + Speelt af in pop-upmodus + Toegevoegd aan wachtrij voor achtergrondspeler + Toegevoegd aan wachtrij voor pop-upspeler + Afspelen + Inhoud + Toon inhoud met leeftijdsbeperking + Video heeft leeftijdsbeperking. Leeftijdsbeperkte video’s kunnen ingeschakeld worden in de instellingen. + live + Downloads + Downloads + Foutrapport + Alles + Kanaal + Afspeellijst + Ja + Later + Uitgeschakeld + Filter + Verversen + Wissen + Bezig met schalen + Beste resolutie + Ongedaan maken + Alles afspelen + Altijd + Eenmalig + Bestand + + NewPipe-melding + Meldingen voor NewPipe-achtergrond- en pop-upspelers + + [Onbekend] + + Oriëntatie wijzigen + Verplaatsen naar achtergrond + Verplaatsen naar pop-up + Verplaatsen naar normaal + + Databank importeren + Databank exporteren + Dit zal uw huidige geschiedenis en abonnementen overschrijven + Exporteer geschiedenis, abonnementen en speellijsten. + Fout + Netwerkfout + Kon niet alle miniaturen laden + Kon video-URL-ondertekening niet ontsleutelen + Kon website niet verwerken + Kon de website niet volledig inlezen + Inhoud niet beschikbaar + Geblokkeerd door GEMA + Kon downloadmenu niet instellen + Dit is ne LIVESTREAM, deze worden nog niet ondersteund. + Kon geen streams vinden + Kon afbeelding niet laden + App/UI gecrasht + Kon deze stream niet afspelen + Onherstelbare spelerfout opgetreden + Bezig met herstellen van spelerfout + Externe spelers ondersteunen deze soorten koppelingen niet + Ongeldige URL + Geen videostreams gevonden + Geen audiostreams gevonden + Ongeldige map + Ongeldig bestand/ongeldigen inhoudsbron + Het bestand bestaat niet of ge beschikt niet over voldoende machtiging voor het te lezen/ernaar te schrijven + Den bestandsnaam mag niet leeg zijn + Der is een fout opgetreden: %1$s + Geen streams beschikbaar voor downloaden + + Sorry, dit zou niet mogen gebeuren. + Fout melden via e-mail + Sorry, der traden enkele fouten op. + MELDEN + Info: + Wat is der gebeurd: + Wat:\\nVerzoek:\\nTaal van inhoud:\\nDienst:\\nTijd in GMT:\\nPakket:\\nVersie:\\nVersie van besturingssysteem: + Uw opmerking (in het Engels): + Details: + + + Videovoorbeeldminiatuur + Videovoorbeeldminiatuur + Avatarminiatuur van uploader + Duimen + Duimen omlaag + Gebruik Tor + (Experimenteel) Dwing downloadverkeer door Tor voor verhoogde privacy (streamen van video’s wordt nog niet ondersteund). + Meld een probleem + Gebruikersrapport + Geen resultaten + Niks te zien + Versleep voor de volgorde te wijzigen + + Kan downloadmap ‘%1$s’ niet aanmaken + Downloadmap ‘%1$s’ aangemaakt + + Video + Geluid + Opnieuw proberen + Toegang tot opslag geweigerd + Gebruik oude speler + Verouderden ingebouwde Mediaframework-speler + + K + M + B + + Geen abonnees + + %s abonnee + %s abonnees + + + Geen weergaven + + %s weergave + %s weergaven + + + Geen video’s + + %s video + %s video’s + + + Begin + Pauzeren + Afspelen + Aanmaken + Verwijderen + Één verwijderen + Alles verwijderen + Controlesom + Sluiten + Hernoemen + + Nieuwe missie + Oké + + Bestandsnaam + Threads + Fout + Server wordt niet ondersteund + Bestand bestaat al + Verkeerden URL of internet niet beschikbaar + NewPipe is aan het downloaden + Tik voor meer informatie + Efkens geduld… + Gekopieerd naar klembord + Kies een beschikbare downloadmap + Deze toestemming is vereist voor te openen in pop-upmodus + + reCAPTCHA + reCAPTCHA-uitdaging + reCAPTCHA-uitdaging gevraagd + + Download + Toegelaten tekens in bestandsnamen + Ongeldige tekens worden vervangen door deze waarde + Vervangend teken + + Letters en cijfers + Meeste speciale tekens + + Gene speler gevonden voor dit bestand + + Over NewPipe + Instellingen + Over + Derdepartijlicenties + © %1$s door %2$s, uitgebracht onder de %3$s + Kon licentie niet laden + Website openen + Over + Bijdragers + Licenties + Ne vrijen en lichte YouTube-cliënt voor Android. + Bijdragen + Hulp is altijd welkom, of ge nu nieuwe ideeën hebt, vertalingen kunt bijdragen, wijzigingen hebt voor het ontwerp, de code kunt opkuisen of der zelfs grote wijzigingen in wilt maken. Hoe meer hulp, hoe beter dat het wordt! + Bekijken op GitHub + Doneren + NewPipe wordt door vrijwilligers in hunne vrijen tijd ontwikkeld voor u de beste ervaring te brengen. Nu is het tijd voor terug te geven, zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl ze van hun taske koffie genieten! + Teruggeven + Website + Bezoek onze website voor meer informatie en het laatste nieuws over NewPipe. + Licentie van NewPipe + Licentie lezen + + + Geschiedenis + Gezocht + Gekeken + Geschiedenis is uitgeschakeld + Geschiedenis + De geschiedenis is leeg + Geschiedenis gewist + Item verwijderd + Wilt ge dit item uit uw zoekgeschiedenis verwijderen? + Wilt ge dit item uit uw kijkgeschiedenis verwijderen? + Wilt ge alle items uit uw geschiedenis verwijderen? + Laatst afgespeeld + Meest afgespeeld + + Content van hoofdpagina + Blanco pagina + Kioskpagina + Abonnementenpagina + Feedpagina + Kanaalpagina + Selecteer een kanaal + Nog niet geabonneerd op een kanaal + Selecteer ne kiosk + Export voltooid + Import voltooid + Geen geldig ZIP-bestand + Opgelet: kon niet alle bestanden importeren. + Dit zal uw huidige configuratie overschrijven. + + Kiosk + Trending + Top 50 + Nieuw en populair + Achtergrondspeler + Pop-upspeler + Verwijderen + Details + Audio-instellingen + Houd ingedrukt voor toe te voegen aan wachtrij + Toevoegen aan wachtrij in achtergrond + Toevoegen aan wachtrij in pop-up + Hier beginnen spelen + Hier beginnen in achtergrond + Hier beginnen in pop-up + + Menu openen + Menu sluiten + Hier zal binnenkort iets verschijnen ;D + + + Voorkeursactie voor openen + Standaardactie bij openen van inhoud — %s + + Videospeler + Achtergrondspeler + Pop-upspeler + Altijd vragen + + Info ophalen… + De gevraagde inhoud is aan het laden + + Nieuwen afspeellijst aanmaken + Afspeellijst verwijderen + Afspeellijst hernoemen + Naam + Toevoegen aan afspeellijst + Instellen als miniatuur voor afspeellijst + + Afspeellijst toevoegen aan bladwijzers + Bladwijzer verwijderen + + Wilt ge dezen afspeellijst verwijderen? + Afspeellijst aangemaakt + Toegevoegd aan afspeellijst + Miniatuur voor afspeellijst gewijzigd + Verwijderen van afspeellijst mislukt + + Geen bijschrift + + PASSEN + OPVULLEN + INZOOMEN + + Automatisch gegenereerd + + Kop + Koptekstgrootte en achtergrondstijlen wijzigen. Vereist een herstart van de speler. + + LeakCanary inschakelen + Het monitoren van geheugenlekken kan dervoor zorgen dat den app niet goed meer reageert + + Ouf-of-Lifecycle-fouten melden + Forceer het melden van niet-bezorgbare Rx-uitzonderingen die gebeuren buiten fragment- of activiteitscyclus + + Importeren/exporteren + Importeren + Importeren uit + Exporteren naar + + Bezig met importeren… + Bezig met exporteren… + + Bestand importeren + Vorige exportering + + Importeren van abonnementen is mislukt + Exporteren van abonnementen is mislukt + + Als ge uw YouTube-abonnementen wilt importeren hebt ge het exportbestand nodig. Dit kan gedownload worden door onderstaande stappen te volgen: +\n +\n1. Ga naar dit adres: %1$s +\n2. Logt, indien nodig, in op uwen account +\n3. Den download met het exportbestand zou nu moeten starten + Als ge uw SoundCloud-abonnementen wilt importeren, moet ge uwe profiels-URL of -ID kennen. Als ge hem kent, typ hem dan hieronder in. +\n +\nAls ge hem niet kent, volg dan onderstaande stappen: +\n +\n1. Kiest ne webbrowser en schakel bureaubladmodus in (de website is niet beschikbaar voor mobiele apparaten) +\n2. Volg deze koppeling: %1$s +\n3. Logt, indien nodig, in op uwen account +\n4. Kopieert de koppeling van de pagina waar ge op terechtkomt (dat is uwe profiel-URL) + uwenid, soundcloud.com/uwenid + + Let op: deze actie kan veel MB’s van uw netwerk gebruiken. +\n +\nWilt ge doorgaan? + + Afspeelsnelheid + Tempo + Toon + Ontkoppelen (kan ruis veroorzaken) + Nightcore + Standaard + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 5e2cf8ccc..e0f4f5072 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -462,4 +462,6 @@ te openen in pop-upmodus Kop Koptekstgrootte en achtergrondstijlen wijzigen. Vereist een herstart van de speler. + Geen speler gevonden voor dit bestand + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b4e8144c6..77944149e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -375,7 +375,7 @@ Miniaturka playlisty zmieniona Błąd podczas usuwania playlisty - Brak etykiety + Bez napisów DOPASUJ WYPEŁNIJ @@ -450,9 +450,12 @@ \n2. Odwiedź stronę: %1$s \n3. Zaloguj się na swoje konto \n4. Skopiuj adres, na który przeglądarka przekieruje cię po zalogowaniu (to jest adres twojego profilu)" - Brak źródeł dostępnych do pobrania + Brak źródeł do pobrania - Preferowane otwieranie - Domyślna akcja podczas otwierania treści - %s + Preferowana akcja podczas otwierania + Domyślna akcja podczas otwierania materiału - %s + + Napisy + Zmień kolor tekstu i tła napisów. Wymaga restartu odtwarzacza. diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-sq/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index b3536d619..ad6fd822d 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -458,4 +458,6 @@ Ek Açıklama Oynatıcıdaki ek açıklamalar metninin ölçeğini ve arka plan biçimlerini düzenle. Etki için yeniden başlatma gerekir. + Bu dosya için oynatıcı bulunamadı + diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index a6b3daec9..997334e8e 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -1,2 +1,11 @@ - - \ No newline at end of file + +شروع کرنے کیلئے تلاش کو ٹپ کریں + ملاحظات + کوشائع ہوا + انسٹال + منسوخ کریں + اشتراک کریں + ڈاؤن لوڈکریں + تلاش کریں + نتائج دکھارہاہےبرائے + diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 881520b8e..9f8305c99 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -444,4 +444,6 @@ 字幕 調整播放器字幕大小與背景樣式。必須重新啟動播放器才會生效。 + 此檔案找不到播放器 +